feat: Split methods between HugrMut and HugrMutInternals

Splits the mutable methods between HugrMutInternals & HugrMut.
When implemented by a (future) non-AsMut<Hugr>, the default impl checks whether the related nodes are valid in the view before calling the internal hugrs mutable primitives.
Other small changes:

Moved canonicalize_nodes from HugrMut to Hugr, since it doesn't make sense to call in on a view.
Added a root parameter to Hugr::canonical_order so we can get the canonical order for regions.
Added an assert to validate the root type when querying a hugrview
~Add a lifetime to HugrInternals::Portgraph so the views can return clones instead of double references.~
I had to roll it back due to the convex check requiring Copy on the portgraph view.

I'll re-add the rolled-back lifetime parameters in HugrViewInternals::Portgraph once the fix is released on portgraph.
https://github.com/CQCL/portgraph/pull/104

I'd also mention in the description - remove add_node and add_op (keeping only the variants thereof that specify a position in the hierarchy) - I think that's quite significant


Life in C#

I've taken the liberty of adding an optional argument --wait that makes the game pause for a while between iterations. This allows players to watch the simulation evolving overtime.

Looks good, great work!


Add Named Entity Recognition Example using Transformers

Description of the model to be implemented
I want to implement different variants of the Transformer Architecture (Vaswani et al., 2017) perhaps along with Reformer or Performer for Named Entity Recognition
Dataset the model could be trained on
Annotated Corpus for Named Entity Recognition published under Open Data Commons, Database Commons License using GMB(Groningen Meaning Bank) corpus
Reference implementations in other frameworks

NER using Reformer
Tensorflow: Bidirectional LSTMs

Hi @SauravMaheshkar -- we generally don't accept new official flax/examples unless they cover an important new class of models, to make sure that Flax works well for those use-cases. We would love to see such a model, and would be happy to link to an external github repo from https://flax.readthedocs.io/en/latest/examples.html, feel free to file a pull requests against our docs to showcase your model!


'declare' modifier shouldn't be allowed on a type alias.

Given:
declare type Foo = string;

we report no error; however, for
declare interface Foo {
}

we report
A 'declare' modifier cannot be used with an interface declaration.

From issue #1940, above example is now desirable and instead we should stop reporting an error on interface instead


headings with circle but no text - need a simpler "circle-off" alternative page design

From Wouter, DISSco

I find the factsheet titles very big, it covers my entire screen! I have to scroll down to see any content. Perhaps it can be reduced in size?

The default page design needs reducing, perhaps normalising on the Handbook page. @cazinc how did you do that and can we easily toggle between two page designs (circle-on/circle-off) in the frontmatter?

Think there are two issues here. I realise now that the Factsheets were simply ported without much thought on how they look. I checked a few of them and there’s always an introduction part that could easily be put in the block opposite the circle. I actually like the format and I’ll take an action to update them all. The other issue is if we need a simple page format for some content types without the circle and I totally agree here - definitely for some of the documentation I have yet to migrate - I don’t want to have to always create PDFs for this.

Agreed - we just need to be able to toggle the circle on/off really and decide per page
On 24 Feb 2023, at 16:23, JonathanClarkDOIF @.***> wrote:
Think there are two issues here. I realise now that the Factsheets were simply ported without much thought on how they look. I checked a few of them and there’s always an introduction part that could easily be put in the block opposite the circle. I actually like the format and I’ll take an action to update them all. The other issue is if we need a simple page format for some content types without the circle and I totally agree here - definitely for some of the documentation I have yet to migrate - I don’t want to have to always create PDFs for this.
—
Reply to this email directly, view it on GitHub https://github.com/doi-foundation/doi-website/issues/33#issuecomment-1443948390, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABVC5FC5LVBSRALVFB3KHLLWZDN63ANCNFSM6AAAAAAVEZMR3Q.
You are receiving this because you authored the thread.

Hello,
There are various options here:

Factsheets (or any set of pages) could be made to use the circle-off template automatically (like the Handbook);
We could enable a way to allow content editors to pick and choose per page;
We could force all third level or lower pages to use the circle-off template.

Option 1 is no problem, it would just be an an extension of how things work for the Handbook, and it has the advantage of being automated for only specific sets of pages. Option 2 is the most flexible, but used by itself could end up causing some inconsistency (it's easy to forget use it on 1 out of 10 pages for example, or an editor may not think about the pros/cons of using it on a specific page). Option 3 could cause problems as perhaps some third level pages would benefit from the larger header?
I would suggest option 1, and of course we can apply this to any particular area of the site if need be. The basis would be a directory, like /the-identifier/resources/factsheets.
Another route could be options 1 and 2, i.e. some areas automatically use the circle-off, but editors can also use it on any given page via a frontmatter setting.
Let me know your pref.
We can also tweak the circle-off design any way desired, e.g. less spacing. It should be possible to do this in a way that is clear. Or we could work in a line or something - maybe a smaller circle element even - for consistency, clarity, etc.


Update golangci-lint-action to v3

https://github.com/networkservicemesh/sdk/issues/1255

Closing unmerged since we don't maintain cloudtest actively anymore.


Fatal error while running Ansible playbook

Hi, I am not proficient with Ansible. I was trying to follow your guide and DigitalOcean guide how to prepare control host.
While running paybook with ansible I am getting fatal error:
TASK [common : update xfce /etc/skel files] ****************************************************************************
fatal: [XXX.XX.XX.XXX]: FAILED! => {"changed": false, "msg": "Failed to find handler for \"/root/.ansible/tmp/ansible-tmp-1585832679.98-69685067466233/source\". Make sure the required command to extract the file is installed. Command \"/usr/bin/unzip\" could not handle archive. Command \"/bin/tar\" could not handle archive."}

I double-checked unzip and tar are in propper locations on ubuntu. Everything is a default Digital Ocean ubuntu 18.04
user@host:~$ whereis unzip
unzip: /usr/bin/unzip /usr/share/man/man1/unzip.1.gz
user@host:~$ whereis tar
tar: /usr/lib/tar /bin/tar /usr/share/man/man1/tar.1.gz

So for some unknown to me reason, this archive is damaged, I couldn't extract it on ubuntu's from Digital Ocean, and I was able to extract it with 7zip on my Windows host.
root@manager:/opt/threatbox/roles/common/files# tar -xvf skel_xfce.tar.gz
tar: This does not look like a tar archive

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

So I just uploaded tar version (skel_xfce.tar) to my ansible host and changed config in file threatbox/roles/common/tasks/main.yml to work on tar version of this archive.

I'm a bit late on this, but I'll dig into this. Thanks for the feedback.


Add a way to filter on column (for main window "JLCPCB Tools" and "JLCPCB Library")

Add a way to filter on column (for main window "JLCPCB Tools" and "JLCPCB Library")

Just a simple filter (Sort Ascending/Descending) on one column at a time if possible with "natural sort" (like we have in LibreOffice Calc => Menu Data => Sort... => Options => Enable natural sort)

wx allow to make columns sortable, which I added with the latest commit. Not sure if it sorts the way you want it to but I'm statisfied 😉
@bvernoux please check if this fit your needs

I confirm the column sort work fine (even if it does not use "natural sort" which means for example when you have C1 to C9 then C10 the natural sort will sort it like that in your case with standard sort it does C10, C1, C2 ....) which is not very convenient but ok

I think I could implement a custom sorting function and call it on click to the header.
But to be honest, thats a lot of work for a minor improvement.
Maybe I go for that in the future and leave it as it is for now.
I hope you can live with that 😅


feat: add ChatAvatars component

this is to render the avatars from the old ChatSettingsTop component- I decided to pull it out into it's own component, I think it could be reused elsewhere

Just add a reply to both then feel free to Squash and Merge 👍


Add new weekly report for 17th to 24th Jan 2022

@philberty, hmm, that one has not yet made it to https://thephilbert.io/, as far as I can tell?

Ah thanks for pointing this out


Cannot resolve babel module when compiler ohter folder

Bug report

What is the current behavior?
when i run webpack, Module build failed: ReferenceError: Unknown plugin "transform-async-to-generator" specified.
i tryed to don't import code in top folder, it success
my folder is like this

my basic folder is in generate-react, the file named getWebpackCommonConfig.js is webpack config and getBabelCommonConfig.js is babel config
// getWebpackCommonConfig.js
...
resolve: {
    modules: ['node_modules', path.join(__dirname, '../../node_modules')],
    extensions: ['.web.tsx', '.web.ts', '.web.jsx', '.web.js', '.ts', '.tsx', '.js', '.jsx', '.json'],
  },
  resolveLoader: {
    modules: ['node_modules', path.join(__dirname, '../../node_modules')],
  },
...

// getBabelCommonConfig.js
...
function getBabelCommonConfig() {
  return {
    presets: [
      'react',
      [
        'es2015',
      ],
      'stage-1',
    ],
    plugins: [
      'transform-async-to-generator',
      'transform-decorators-legacy',
      'transform-class-properties',
      'transform-runtime',
      'lodash',
      [
        'import',
        [
          {
            libraryName: 'choerodon-ui',
            style: true,
          },
          {
            libraryName: 'antd',
            style: true,
          }
        ]
      ],
    ],
  };
}

module.exports = getBabelCommonConfig;
...

If the current behavior is a bug, please provide the steps to reproduce.
i don't think is is a bug, but i have no idea to solve it.

What is the expected behavior?
can webpack success when i start in a folder (nodue_modules in this folder) but import code in other folder

Other relevant information:
webpack version:  3.12.0
Node.js version: v8.9.3
Operating System: win 10
Additional tools:in the blow pic

and in the webpack 4 and babel7, this way can be success, so what i should do in webpack3 and babel6

@HuangQiii please format you issue using issue template, otherwise you issue will be closed

Not webpack problem, you need install plugin for babel-loader


Make a default method for dumping DC (make it dcsync)

--ntds drsuapi    is not very intuitive. Maybe make --ntds without an argument just default to DCSYNC. or make an intuitive flag like --dumpdc or something.

Colomboscope?

Done in https://github.com/byt3bl33d3r/CrackMapExec/commit/0b936def2306047afb7277ad77f8bb8df59d9dfe


[Bug] Loaded inputs stay disabled after enabling

Is there an existing issue for this?

[X] I have searched the existing issues

Have you updated FilePond and its plugins?

[X] I have updated FilePond and its plugins

Describe the bug
When FilePond starts disabled, all of the hidden inputs from load are disabled, but enabling it doesn't remove the disabled attribute, resulting in the inputs not getting sent to the server.
Reproduction
https://codesandbox.io/p/sandbox/hopeful-scooby-rwcd9q

Create a FilePond instance with the disabled option and some initial files
Enable it using setOptions({ disabled: false })

Environment
- Device: HP Laptop 14-em0xxx
- OS: Windows 11
- Browser: Zen Browser 1.0.0-a.34 (Firefox 130)

@viyic Thanks for reporting, fixed in v4.31.3


Disabled useCSSTransforms by default on Firefox due to Mozilla bug wi…

…th SVG and CSS3 transforms. Fixes #1748.

This is too blunt a hammer. I would suggest a development warning instead if an svg child is detected.


Error in $.packages.cassava.constraints.flags['bytestring--lt-0_10_4']: Invalid flag name: "bytestring--lt-0_10_4"

zhiwei@zhiwei-Lenovo-Rescuer-15ISK:/media/zhiwei/DATA/haskell emulator/dcpu16-hs$ stack install
Downloaded lts-11.2 build plan.
AesonException "Error in $.packages.cassava.constraints.flags['bytestring--lt-0_10_4']: Invalid flag name: "bytestring--lt-0_10_4""

Which version of stack are you using?  I believe this was fixed in recent versions.

zhiwei@zhiwei-Lenovo-Rescuer-15ISK:/media/zhiwei/DATA/haskell emulator/dcpu16-hs$ stack --version
Version 1.5.1 x86_64


Updating contributing.md file and Added contributing guidelines

Description
Please include a summary of the change and which issue is fixed. List any dependencies that are required for this change.

added guidelines to the contributing.md file

Fixed #42
Type of change
Please check options that are relevant to your PR.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

Checklist:

[x] I have pulled the latest changes in the repository
[x] I have squashed my commits
[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented on my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings

Alright ?


optionally strip certain commands

For example, if you have \includepackage[disable]{todonotes}, if you're stripping comments you probably also want to strip the contents of \todo{}.
Similarly, probably want to remove the contents of any \iffalse blocks.
Of course this might require a proper tex parser to do correctly....

TexSoup seems like an option, but it doesn't seem very mature.


Issue with k8s.io/docs/reference/kubectl/overview/

This is a...

[ ] Feature Request
[ ] Bug Report

Problem:
Proposed Solution:
Page to Update:
https://kubernetes.io/...

incomplete report, closing
/close


carousel for the user testemonials

I want to create the carousel for the user testemonials to make the website more dynamic and super awersome to look.
@SaranshBangar Assign this to me under gssoc 2024 ext and hacktoberfest

@tarunkumar2005 You can proceed with it. Please remember to -

Send a photo here of of the new design before raising a PR
Follow the proper file structure
Star the repo :)

All the best!

https://github.com/user-attachments/assets/86ce7e16-9f12-436e-891c-74266756ca72
Here is the demo you asked for check it once then i will create the PR for it

@SaranshBangar

@tarunkumar2005 Looks good, please raise a PR for the same

@SaranshBangar Done


Kindly Request for Websocket Connection over Proxy example

Hi, I look inside the beast library and it's examples about Websocket connection over a proxy but no chance up to the present my actual intention could be explanied using below image please have a look at.
https://user-images.githubusercontent.com/12622800/42079517-94912a3a-7b88-11e8-987f-879939874c43.png
Since I'm a newbie in both C++ and boost/beast i kindly request a websocket client example over proxy.

I'm a newbie in both C++ and boost/beast

You are going to have a very difficult time using Beast successfully without a grasp of C++ and Boost.Asio. I suggest you take a step back and first become proficient in C++, and then learn Boost.Asio. Then the Beast documentation will be more approachable, and you will be able to understand the examples.

Hi @vinniefalco actually I've managed to compile and run examples on repository My only need is proxy enhancement or any code change set that provide proxy support.

Okay, well I suggest you read the documentation or specification on the type of proxy support you need, and then add the necessary code.

Hi @vinniefalco i read the documentation which is below https://www.boost.org/doc/libs/develop/libs/beast/doc/html/index.html
and found out that proxy support seems not supported by beast
About specification of proxy type it can be any outgoing explicit HTTP proxy for regular and secure websockets.


Adding support for arrays

Hello,
I'm working on support for arrays in go-jet. I was wondering if this is a feature that is considered in the long run and if it maybe merged into upstream in the long term. I'd like to show the progress I made so far and if it's any use trying to get it merged at all. If not I will not spend any effort in making it work with the different database types. Currently I only implemented postgres.
I can see from the Range support that is added earlier that the types from the pgtypes packages are being used. I took this into consideration for use as the SQL types in the generated table types. But the pgtypes.Array* structs are tailored to represent the internal representation of the postgresql array types. In constrast to the pq.Array* types which are much more user friendly, thats why I chose to use the latter.

Hi @arjen-ag5, thanks for starting the work on arrays.

hey, would this be merged any time sooner? Have been using go-jet for a production project (https://wapikit.com) and just noticed, it does not supports arrays yet.


fix: invalid redirect url after sign up

Fix: https://github.com/casdoor/casdoor/issues/856
Signed-off-by: Yixiang Zhao<EMAIL_ADDRESS>

@tetra12 plz review

@seriouszyx demo link?

@seriouszyx demo link?

Casnode (1).webm


Yo Generator Error

Latest version 1.4.0 has problem to generators like yo angular, yo backbone. All scaffolding generators are filed. Please how to generator angular in the latest version

Please look through existing issues before opening a new one.
https://github.com/yeoman/yo/issues/264


Order Reset Button Issue in Add to Cart Section

Describe the bug
The 'Reset' button in the 'Add to Cart' section does not clear the checkout table, retaining added items and quantities despite resetting the price and items to zero.
To Reproduce
Steps to reproduce the behavior:

Go to 'Orders' in navigation
Click on 'Order Now'
Add items
Click 'Reset' button
See error

Expected behavior
When the 'Reset' button is utilized in the 'Add to Cart' section, it should completely reset the order, including both the price and the items to zero, ensuring a complete refresh of the checkout table by clearing all added items and their quantities.
Screenshots
Before Reset

After Reset

I would also be willing to change the Currency symbol to Dollars after the Reset button is clicked

Good find @ShaikhAman01  !!


1081 - User sees only COMPLETE/INCOMPLETE statuses

Context
User sees only COMPLETE/INCOMPLETE statuses
Changes proposed in this pull request
On the task-list user only sees COMPLETE/INCOMPLETE statuses for a better UX. However, we do keep the logic behind that relies on three statuses currently:

:complete
:incomplete
:not_started_yet

These are still needed to ensure correct service behavior.
Guidance to review

Link to Trello card
https://trello.com/c/VadMIhzi
Checklist

[x] Attach to Trello card
[x] Rebased main
[x] Cleaned commit history
[x] Tested by running locally

If it desn't serve any purpose, shouldn't we remove the not_started_yet status?

If it desn't serve any purpose, shouldn't we remove the not_started_yet status?

We can't really do that without massive work because our entire user journey logic and where to land from the task list relies on the not_started_yet status. We still need that logic, but for the user it still means incomplete. We can discuss a potential refactor if we want to get rid completely of not_started_yet.


Repaired potter's wheel not appearing in collection log

The repaired potter's wheel at the soul wars island, after being examined, does not lose the asterisk hint. It doesn't appear in the collection log, either.

Got a fix. Opening a PR now.


Fix navigator

This fixes navigator crash when updated (https://github.com/whawker/react-jsx-highcharts/issues/228#issuecomment-551308361).
The root cause was that navigator re-creates it's axes when navigator is updated.
There were several problems:

3e65a8d creates axis earlier, so that navigator can access the parent series axis
b8e74fd allows provided axis to change, so that plotbands can react to axis changes
cf538e7 forces plotbands to re-render when axis was changed
e1d3ff1 fixes the navigator itself

Related issue on highcharts repository: https://github.com/highcharts/highcharts/issues/12406
Probably more axis consumers, like Annotations and maybe Series need updating, but maybe we should test this in another alpha first?

Codecov Report

Merging #251 into master will increase coverage by 6.82%.
The diff coverage is 95.45%.

@@            Coverage Diff             @@
##           master     #251      +/-   ##
==========================================
+ Coverage   86.41%   93.23%   +6.82%
==========================================
  Files          77       63      -14
  Lines         964      769     -195
  Branches      179      150      -29
==========================================
- Hits          833      717     -116
+ Misses        112       46      -66
+ Partials       19        6      -13

Impacted Files
Coverage Δ

...omponents/PlotBandLine/UsePlotBandLineLifecycle.js
100% <100%> (ø)
:arrow_up:

...s/react-jsx-highcharts/src/components/Axis/Axis.js
88.88% <100%> (-1.12%)
:arrow_down:

...act-jsx-highcharts/src/components/UseAxis/index.js
95.23% <92.3%> (-4.77%)
:arrow_down:

...ts/src/components/BaseChart/createProvidedChart.js
42.85% <0%> (-42.86%)
:arrow_down:

...ct-jsx-highstock/src/components/Navigator/index.js

packages/react-jsx-highstock/src/index.js

...rc/components/RangeSelector/RangeSelectorButton.js

...hstock/src/components/Navigator/NavigatorSeries.js

packages/react-jsx-highstock/test/test-utils.js

...sx-highstock/src/components/RangeSelector/index.js

... and 4 more

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 83c0589...e1d3ff1. Read the comment docs.

If we rebase this branch on master, I'll publish an alpha from it, then after testing we decide whether to merge or not?

If we rebase this branch on master, I'll publish an alpha from it, then after testing we decide whether to merge or not?

I rebased this. Any chance we can include #250 in the alpha too or just merge it to master first.

Just this second merged #250, any chance you could rebase again? (Sorry!)
I'll publish one alpha from master, and one alpha from this branch.

Just this second merged #250, any chance you could rebase again? (Sorry!)
I'll publish one alpha from master, and one alpha from this branch.

Rebased. And great!

Published master as

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
And this branch as (note dev)

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

<EMAIL_ADDRESS>crashes LineSeries, but only sometimes. I'll try to make a reproduction of it.

This won't work.
Under some conditions react runs the render twice on mount. On second render the axisRef.current does not keep the previous renders value. This leads to creating the axis on both renders.
So this PR needs to be scrapped. Also the ColorAxis needs to be fixed to use useEffect too.
I am out of ideas how to fix the Navigator now.


Some more space videos added to the community file (spanish)

cf. https://github.com/JohnCoates/Aerial/pull/713#issuecomment-45976065

@aitor thank you so much ! Merging this !

@glouel Here they are.
If more languages are going to be maintained I'd strongly suggest to adapt a more organized approached to the internationalization. Most specialized SaaS tools offer a free plan for open source projects:
https://docs.transifex.com/projects/open-source-project
https://phraseapp.com/pricing
https://lokalise.co/pricing/
This way we'll all manage the same keys and will be easy to coordinate new releases.
I'd happily help to integrate any of these tools in the project if needed. 👍

Great suggestion, this would definitely make things a LOT more manageable !
I never looked into those so if you have a suggestion about a particular solution, let me know. Could we integrate the JSON format as is or would it need changes ?
Side note, I hope you won't mind but I probably won't be posting beta 4 with your changes today, as I'm trying to fix an auto update bug before pushing beta 4. Thanks again !

@aitor so took some time but I finally released beta4 with your file, as I'm working with the new format thing ;) beta 4 here :
https://github.com/JohnCoates/Aerial/releases/download/v1.4.7beta4/Aerial.saver.zip


Update "validate-collection-is-active" step to support multi-versioned stacks

Multiple version of a given stack can be activated at a given time.  The default pipeline for each stack contains sample pipelines that includes a step validate-collection-is-active, to make sure the stack that is being built is active.
This step currently take the image value from the git-source .appsody-config.yaml, and compares that value against the list of images that have been activated to determine if the build can proceed.
The issue we seek to fix is that appsody only includes two digits (major.minor) in their image specification with .appsody-config.yaml, which means at pipeline build time,  we cannot disambiguate between versions of stack because we do not have a third digit/patch (major.minor.patch) version number.
Therefore we want to implement this check algorithm to be able to enforce only building active version of the stack:

Parse .appsody-config for user, repo, STACKNAME, VERSION 2 digit)
Issue oc get stack ,  get 3 digit version number(s) for active STACKNAME
Query image registry to get sha256 for tag "VERSION"
Query image registry to get sha256 for version(s) tag(s) from step 2
The sha256 obtained in step 3 must be included in the sha256 list obtained in step 4 for the build to proceed

Future improvement will include the Kabanero operator caching the sha256 from the image registry at the time the stack(s) are activated.  This means step 4 will get the sha256 list from the CR instead of querying the image registry.

According to Scott some of the work will go into 0.6.0 and the rest in 0.7.0.

@smcclem - Is the issue ready to close?

https://github.com/kabanero-io/kabanero-pipelines/pull/204/files


ibmse: add debug_assertions for debug and release branch

Add #[cfg(debug_assertions)] to make sure non-release code never built in release build

https://github.com/confidential-containers/trustee/pull/418 was closed, I guess it's because of my force push? I created this new PR to track it.

@Xynnn007 @fitzthum

Seems that debug_assertions would only affact building time code

Yes, but I don't think we should be skipping certs whenever debug is enabled. Instead having debug enabled should allow the option to skip the certs.


Adjust CSS dfns extraction rules

CSS Animations now uses  instead of
 for production rules (see https://github.com/w3c/webref/pull/307#pullrequestreview-712521622). The update extends the query selector accordingly (we could probably just use .prod but that seems slightly too generic).

Taking the libery to merge. I made sure that this change does not introduce false positives: it merely brings back the value spaces that should not have disappeared in css-animations.


RSS Feed Errors

When navigating to the rss feed, I get the following error:
XML Parsing Error: not well-formed
Location: https://stacker.news/rss
Line Number 86, Column 99:
      <link>https://twitter.com/irisenergyco/status/1428677975537377285?t=esQNOfvjbmpMrItP9oHjSA&s=19</link>
--------------------------------------------------------------------------------------------------^

Weird that it failed on that = and not the others. I'm an XML noob. I'll see what I can do.

I guess I needed to escape links of special characters too. smh xml. Thanks for reporting!

Was it just the = or did you have to escape other special characters as well, like & and ??

It was the ampersand which is why single GET param URLs worked fine.


Resolve CSIP vs CS IP spelling variation

The current version 2.0.0-DRAFT at http://earkcsip.dilcis.eu/ has the following  spelling variations of CSIP:

CS IP 58 instances
CSIP 401 instances

Also, there are 12 instances of CS IP Information Package, which can be misread as "common specification information package information package."
I propose unifying the spelling to CSIP.

There are other issues regarding this.

Will be picked up in a semi-automated consistency check once PRs and review issues dealt with.

The same problem had been posted earlier as #229.

Fixed.


Add function to export Firestore documents to Storage.

I want to be able to schedule data exports, exactly how it is done here:
https://firebase.google.com/docs/firestore/solutions/schedule-export
But the following client is not available in the interop
const firestore = require('@google-cloud/firestore'); const client = new firestore.v1.FirestoreAdminClient();
...
client.exportDocuments({     name: databaseName,    ...    })
and thus the function to export the documents cannot be used.

If it's helpful, I tracked down the docs for the google cloud admin API here: FirestoreAdminClient and exportDocuments

Thanks @Levi-Lesches, I have actually already tried to write the necessary bindings for the exportDocuments method, but I can't get it work. I feel like I'm missing something...

Hey, sorry for the late response. Mind elaborating on what exactly fails? It would also help if you could copy-and-paste your code instead of a screenshot so I could play around with it. Other than that I'll try to take a look to see what this repo did differently, but a specific error message will help.


[FEATURE] Disabling all charts

Hello,
I would like to add a button "ALL" to disable all charts, in the case we have a lot of charts, just like the others :

I know that I could add a button for deleting/creating again the chart, but it seems not the good way for me. Is this feature implemented in chartjs ?
Thanks in advance,
Regards
Chart.js version: 2.5.0

You could go through all the datasets and set them as hidden in the same way the legend onClick handler works

Ok thanks, I'll add the button then and make it do this,
Thanks


Added courses to the logic readme

Added courses to the logic readme to better introduce people on how to think

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

@kakoon8 Awesome! Thanks! Congrats on your first open source contribution to this repository!

@QuincyLarson  Thanks! Look forward to a lot more!


cant download files

when i use
send_from_directory
or
send_file
i have this error
[7252:8536:0112/182339.125:ERROR:extension_function_dispatcher.cc(487)] Permission denied for metricsPrivate.recordValue
the file i want download is an pdf and show it, but the download option dont appear
in static/docs/ yes the file is in the folder but when i put all in pyinstaller in onefile i wanna the user can get the download option
on Google Chrome

when i use flask-desktop

Hmmm looks like we're missing a handle for the downloadRequest event in pyqt5.
https://stackoverflow.com/questions/56872960/pdfjs-print-button-does-not-work-with-pyqt5
    @QtCore.pyqtSlot(QtWebEngineWidgets.QWebEngineDownloadItem)
    def on_downloadRequested(self, download):
        path, _ = QtWidgets.QFileDialog.getSaveFileName(
            self, "Save File", "sample.pdf", "*.pdf"
        )
        if path:
            download.setPath(path)
            download.accept()

This example has some hardcoded stuff for downloading pdfs but wouldn't be far off what we need.
I'm not actively working on this project anymore but if someone wants to make a pull request I'll review it.

Hmmm looks like we're missing a handle for the downloadRequest event in pyqt5.
https://stackoverflow.com/questions/56872960/pdfjs-print-button-does-not-work-with-pyqt5
    @QtCore.pyqtSlot(QtWebEngineWidgets.QWebEngineDownloadItem)
    def on_downloadRequested(self, download):
        path, _ = QtWidgets.QFileDialog.getSaveFileName(
            self, "Save File", "sample.pdf", "*.pdf"
        )
        if path:
            download.setPath(path)
            download.accept()

This example has some hardcoded stuff for downloading pdfs but wouldn't be far off what we need.
I'm not actively working on this project anymore but if someone wants to make a pull request I'll review it.


chore: change picsed finngen outputh path

to align it with gwas_catalog_preprocess.py

Codecov Report
Attention: 29 lines in your changes are missing coverage. Please review.

Comparison is base (42b366c) 85.67% compared to head (5b51a87) 86.84%.
Report is 36 commits behind head on dev.

Additional details and impacted files

@@            Coverage Diff             @@
##              dev     #385      +/-   ##
==========================================
+ Coverage   85.67%   86.84%   +1.17%
==========================================
  Files          89       92       +3
  Lines        2101     2433     +332
==========================================
+ Hits         1800     2113     +313
- Misses        301      320      +19

Files
Coverage Δ

src/airflow/dags/common_airflow.py
90.38% <ø> (ø)

src/airflow/dags/finngen_preprocess.py
100.00% <100.00%> (ø)

src/otg/dataset/l2g_feature_matrix.py
82.92% <ø> (+7.31%)
:arrow_up:

src/otg/dataset/study_locus.py
96.20% <100.00%> (+0.04%)
:arrow_up:

src/otg/datasource/eqtl_catalogue/study_index.py
85.00% <ø> (ø)

src/otg/datasource/finngen/study_index.py
100.00% <100.00%> (ø)

src/otg/datasource/finngen/summary_stats.py
100.00% <100.00%> (ø)

src/otg/datasource/gwas_catalog/study_index.py
100.00% <ø> (ø)

src/otg/datasource/ukbiobank/study_index.py
100.00% <ø> (ø)

src/otg/l2g.py
58.06% <ø> (ø)

... and 8 more


Add review app

Context
Create review app deployments on PR. This PR adds the workflow modification to deploy review apps on a pull request with a label deploy. Another workflow is added to cleanup the review apps deployment on PR close.
Trello card
https://trello.com/c/DSfHSmFr

 Create review apps


Mouth/smile detector not working?

Tried to use the mouth or smile detector with this libary they just 99% of false postive.. firing all crazy randomaly places tried to limit so confidence>10 still not help.
than I tried to use the smile detector from opencv I tranform it to array and when tried to use it I get an error of
Uncaught TypeError: Cannot read property '7' of undefineddetect @ objectdetect.js:508detector.detect @ objectdetect.js:717play @ a.html:64

this the not working converted smile detector:
http://jsfiddle.net/hnjtL5zy/
I even tried to use 2 detectors so I detect a face and than give this to the smile detect:
//detector = face detect;
var coords = detector.detect(video, 1);
if (coords[0]) {
coord = coords[0];
var coords2 = smile.detect(video, 1,1,coord);
etc...

still not working give me a lot of false positive randomaly in the camera not even inside the face.. tried both with mouth and smile.
I tried foreach coords and check the one with the high confidence also false positive
here is demo of one of my tires
http://bit.ly/1PGOEYG
what I am missing? thanks

Hi boynet,
the correct approach to smile detection is:

Detect the face
Define a region of interest (ROI) within the face where you expect the mouth to be
Detect the smile within this region of interest (ROI)

This approach leads to very good runtime and detection performance.
Example (didn't test the code):
// Define face detector:
var width = ~~(60 * video.videoWidth / video.videoHeight);
var faceDetector = new objectdetect.detector(width, 60, 1.1, objectdetect.frontalface);

// Define smile detector:
var smileDetector = new objectdetect.detector(36 * 1.5, 24 * 1.5, 1.05, objectdetect.smile),

// Detect face:
var faceRects = faceDetector.detect(video, 1)
if (faceRects[0]) {
  var faceRect = faceRects[0];

  // Rescale face coordinates from detector to video coordinate space:
  faceRect[0] *= video.videoWidth / faceDetector.canvas.width;
  faceRect[1] *= video.videoHeight / faceDetector.canvas.height;
  faceRect[2] *= video.videoWidth / faceDetector.canvas.width;
  faceRect[3] *= video.videoHeight / faceDetector.canvas.height;

  // Detect smile:
  var smileROI = [~~(faceRect[0] + faceRect[2] * 0.15), ~~(faceRect[1] + faceRect[3] * 0.55), ~~(faceRect[2] * 0.7), ~~(faceRect[2] * 0.7 * smileDetector.canvas.height / smileDetector.canvas.width)];
  var smileRects = smileDetector.detect(video, 1, 1, smileROI);
  ...
}

thanks for give me something to start with.. I got it to work with your code.. but with the opencv smile detector.. the detector you have give me a lot of false positive.. where can I find some info to start understand what happening? I look at the code but I cant understand the logic of what to use with detector width and height? like why in the smile detector you use different values from face detector? base on what? thanks

The smile detector included in the js-objectdetect repository is the same as the OpenCV-smile detector, just converted into the js-objectdetect format. Therefore I don't understand how you can have different results for both...
Each detector has a user defined width and height. If you detect objects on an image or video using this detector, the image or video is first resized to the detector's width and height. You have make sure the aspect ratio of the detector and the source image or video is identical. The coordinates of detected objects are relative to the detector's width and height. A region of interest however is always given in coordinates relative to the source image or video's width and height. Therefore a conversion is necessary.
I understand that this is a bit confusing and I might simplify this in a future release of js-objectdetect.
Concerning the different values for face and smile detector: The face detector has a size of 60x60 pixel and scale-factor of 1.1. These values have been chosen to give good results with good runtime performance. If you increase the size of the face detector, you will be able to detect smaller faces in the source image or video, however the number of false positives will increase and the runtime performance will decrease.
Also, if you decrease the scale factor, detection performance will improve at the cost of a reduced runtime performance.
The aspect ratio of the smile detector (54x36) is identical to that of the region of interest for smile detection.

thanks starting to see some good results..

what is the advantage of decrease/increase scale factor vs width/height ?
as you said  for capturing smaller things I need to increase the dimensions and to get more  accurate ressults I need to decrease the scale factor? I saw that 1 scale factor isn't working so its need to be >1.

about detect stepSize its the same effect as the scale factor? increase for better perfomance and decrease for better results?

I saw the canny parameter I guess it shouldent be use? I tried it and saw no difference

Each classifier has been trained on and detects images of certain width and height. The face classifier for example was trained on 24x24 pixel face images. However, in real life, you want to detect faces of all kinds of sizes and not only 24x24 pixels. Therefore, the detector applies the classifier to resized versions of the camera image.  Then, you resize the camera image to lets say 500x500 pixel and run the classifier again on the resized image. This time, the classifier still detects only 24x24 pixel faces, however these faces correspond to bigger (closer) faces in the original camera image. These resizing and classifying steps are repeated until all "scales" or sizes from 24x24 pixel to the original camera image dimensions have been covered.

Width and height of the detector determine the the dimensions of the smallest detectable object. E.g. if you set width and height to 24x24 and use the (24x24) face classifier to detect faces, it would only detect a face if it fills out the whole 24x24 image.
The scale factor determines how the camera image will be resized in the resize step. E.g. if you set the scale factor to 2, detection will be performed on 24x24, 48x48, 96x96, ... resized versions of the original camera image.

The step size determines how often the classifier is applied to one image or scale, e.g. the number of horizontal and vertical pixels between each application. Better always set it to 1.

Canny pruning can be used to exclude parts of the camera image with less structure (edges) from the computationally costly detection process. However, it is tricky to use, leads to only minor performance improvements while at the same time reducing accuracy, so better don't use it.

thanks a lot clearer right now :) I can improve the demos a little bit you accept a pr?
I think there is little change that can make huge benefit is that detector.detect will return results ordered by confidence for example the example_gesture_input If I order the coords by confidence and add threshold of confidence>2 I get almost none false positive.
if not its detect my neck as a fist with little confidence between 1-3 where a real fist always get 2-100.

its a lot more complicated but again make it a lot more accurate is to develop some kind dumb  guessing.
in some frame my neck get a bigger confidene than my fist and its jumping between my fist and my neck where I can make something like: if my last fist was at points 10,10 => 10,11 =>10,12 and in the next step it detect 2 fist one at 10,13 and the other at 150,150 its should prefer the closest to the latest detection as there is a little change that my fist move that far. so the move will be more smoother without jumping

If you want to improve the demos, go ahead. However, I would like to keep the demos as simple as possible, as a kind of first 'practical example' for beginners who look at the js-objectdetect library. Perhaps I should better give them the name 'examples' instead of 'demos', so we can have another folder with more complex and interesting 'real' demonstrations, too...

detector.detect already returns the results ordered by confidence (detector.detect returns an array of [x, y, width, height, confidence]).

 This is called "object tracking" and a separate process from "object detection" (where the tracking algorithm decides when and how often to call the object detection function). For simple applications such as in the demos, tracking of a single object (e.g. fist) can be done by running the object detection every frame. However, there are several better ways to track objects, among them the so-called "Kalman filter" or, especially when it comes to face tracking the "Camshift" algorithm. Your suggestion of tracking spatially close objects is probably sufficient for a lot of applications.

I didn't implement a tracking algorithm in js-objectdetect since, as the name says, this library focuses on performant object detection. However, since there is also a smoother included, I don't see why it couldn't be added as a supplementary javascript unit in the future.

about confidence ordering  in the "example_gesture_scroll" exmaple you order them in line 316 maybe its there from some old code..
found some implemntions of  Camshift and Kalman filter https://github.com/auduno/headtrackr/blob/master/src/camshift.js https://github.com/itamarwe/kalman I will check them out if i am gonna need more perfomance
just made some mouth+face detection sample on pc I got 50-60fps where on mobile its somewhere around 20-30fps which is great.
thank you very much for this libary


Path error when attempting to load Lazy (same issue as in Requires.jl)

I get the following error when I run using Lazy in the Julia REPL
ERROR: LoadError: LoadError: LoadError: InitError: UndefVarError: lastname/.julia/v0.4/MacroTools/src/utils.jl not defined
The correct path is /Users/firstname_lastname/.julia/v0.4/MacroTools/src/utils.jl and the file exists.
I can load the MacroTools package from the REPL without error

@sdacek I can't reproduce this, have you tried modifying the package directory (temporarily) in the REPL and reinstalling the packages?
julia> ENV["JULIA_PKGDIR"] = joinpath(homedir(), "test_underscore")
"/Users/jacobbolewski/test_underscore"

julia> Pkg.init()
INFO: Initializing package repository /Users/jacobbolewski/test_underscore/v0.4
INFO: Cloning METADATA from git://github.com/JuliaLang/METADATA.jl

julia> Pkg.add("Lazy")
INFO: Cloning cache of Compat from git://github.com/JuliaLang/Compat.jl.git
INFO: Cloning cache of Lazy from git://github.com/one-more-minute/Lazy.jl.git
INFO: Cloning cache of MacroTools from git://github.com/one-more-minute/MacroTools.jl.git
INFO: Installing Compat v0.7.8
INFO: Installing Lazy v0.10.1
INFO: Installing MacroTools v0.2.0
INFO: Package database updated

julia> using Lazy
INFO: Precompiling module Lazy...
INFO: Recompiling stale cache file /Users/jacobbolewski/.julia/lib/v0.4.1/Compat.ji for module Compat.

julia> versioninfo()
Julia Version 0.4.1
Commit cbe1bee* (2015-11-08 10:33 UTC)
Platform Info:
  System: Darwin (x86_64-apple-darwin15.0.0)
  CPU: Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
  WORD_SIZE: 64
  BLAS: libopenblas (DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblas
  LIBM: libopenlibm
  LLVM: libLLVM-3.3

I am assuming you are on OSX given the path above.

I still get this issue, at both places that underscores are present
ERROR: LoadError: LoadError: UndefVarError: lastname/test not defined
in include at ./boot.jl:261
in include_from_node1 at ./loading.jl:304
in include at ./boot.jl:261
in include_from_node1 at ./loading.jl:304
[inlined code] from none:2
in anonymous at no file:0
in process_options at ./client.jl:257
in start at ./client.jl:378
while loading /Users/firstname lastname/test_underscore/v0.4/Lazy/src/liblazy.jl, in expression starting on line 105
while loading /Users/firstname_ lastname/test_underscore/v0.4/Lazy/src/Lazy.jl, in expression starting on line 91
ERROR: Failed to precompile Lazy to /Users/firstname_ lastname/.julia/lib/v0.4/Lazy.ji
in error at ./error.jl:21
in compilecache at loading.jl:384
in require at ./loading.jl:250

You have a space in your path firstname_ lastname, :imp:!

I don't, its how it copied over. I have two logons, one with my firstname and lastname and another one wit the same format. Its easier for me to keep the issue agnostic. The actual trace for my user looks like this. Sorry, made a copy error
ERROR: LoadError: LoadError: UndefVarError: Dacek/.julia/v0.4/MacroTools/src/utils.jl not defined
in include at ./boot.jl:261
in include_from_node1 at ./loading.jl:304
in include at ./boot.jl:261
in include_from_node1 at ./loading.jl:304
[inlined code] from none:2
in anonymous at no file:0
in process_options at ./client.jl:257
in _start at ./client.jl:378
while loading /Users/Stephen_Dacek/.julia/v0.4/Lazy/src/liblazy.jl, in expression starting on line 105
while loading /Users/Stephen_Dacek/.julia/v0.4/Lazy/src/Lazy.jl, in expression starting on line 91
ERROR: Failed to precompile Lazy to /Users/Stephen_Dacek/.julia/lib/v0.4/Lazy.ji
in error at ./error.jl:21
in compilecache at loading.jl:384
in require at ./loading.jl:250

The error is arising in MacroTools macro capture which calls  the function tbnew in MacroTools file types.jl
This function gets passed a path and is split on "_" in line 16 of MacroTools types.jl  (https://github.com/one-more-minute/MacroTools.jl/blob/master/src/types.jl)
function tbnew(s::Symbol)
  istb(s) || return s
  ts = map(symbol, split(string(s), "_"))
  name = shift!(ts)
  ts = map(totype, ts)
  Expr(:$, :(MacroTools.TypeBind($(Expr(:quote, name)), Set{Any}([$(ts...)]))))
end

How to solve this problem? Have i change the user name?!!

You can just Pkg.checkout("MacroTools") for now.


Missing LICENSE File

Our company's dependency scanning wants to see a LICENSE file on the repo of packages we use for development. I saw that the license is MIT in the package.json but we'd like to see a LICENSE file included with the project. Could you add one?
Thanks!

Good catch!
I just released this as 0.0.6, I hope that works for you :)


Install plugins from npm?

So cerebro-npm is not on the plugins list on my cerebro installation and i tried to install it by doing yarn add cerebro-npm on the .config/Cerebro/plugins folder, but after restart it does not seem that Cerebro recognised the newly installed plugin?

See #194 and #203

So there already is an unmerged fix? Thanks!


ExportJob ErrorMsg is UNKNOWN when job cancelled cause by time out

Describe the bug
ExportJob ErrorMsg is "type:UNKNOWN; msg: "when job cancelled cause by time out
To Reproduce

set ExportJob
PROPERTIES("timeout" = "10"...)

See ErrorMsg is "type:UNKNOWN; msg: " when the job is cancelled because of time out

Expected behavior
The actual reason for the timeout error is displayed in the contents of this field
Doris version:

Version [0.13.15]

Arthas monitor is used to monitor when ExportJob task is canceled when it has timed out:
watch org.apache.doris.load.ExportJob cancel  "{params,returnObj}" -x 2

We can see that the  parameter passed in cancel() when the task was canceled is null

so failMsg is null
when we use showexport stmt:

Arthas monitor
watch org.apache.doris.load.ExportJob getFailMsg  "{params,returnObj}" -x 2


New Data Feed in wcds.py

Data Source
Pull Daily Operation Monthly Reports from US Army Corps of Engineers Sacramento District Website - Water Control Data System:
URL to be used = https://www.spk-wc.usace.army.mil/fcgi-bin/monthly.py?month=feb&year=2023&project=frm
Where "month=", "year=" and "project=" are inputs to a function.
Sample Code:
def download_table(month, year, project):
    url = f"https://www.spk-wc.usace.army.mil/fcgi-bin/monthly.py?month={month}&year={year}&project={project}&textonly=true"
    response = requests.get(url, verify=False)
    lines = response.text.splitlines()
    rows = [line.split() for line in lines if line.strip()]
    return rows

def save_to_csv(data, file, month_num, year):
	for j, sublist in enumerate(data):
		if sublist[0] == 'Totals':
			break

	for i, sublist in enumerate(data[2:]):
		if sublist[0] == 'Date':
			name_list = sublist
			break

	units=data[i+3]
	column_name = []
	for i, item in enumerate(name_list):
		if i > 0 and item.startswith('#'):
			column_name[-1] = ' '.join([column_name[-1], item])
		else:
			column_name.append(item)
	in_index = column_name.index('(in)')
	units.insert(0, '')
	units.insert(in_index, '(in)')

	if len(column_name)==len(units):
		column_list = [f'{column_name[i]}\n{units[i]}' for i in range(len(column_name))]
	else:
		column_list = data[8]

	df = pd.DataFrame(data[9:j])
	df['datetime']= [f'{year}-{month_num}-{i}' for i in df[0]]
	df.set_index('datetime', inplace=True)
	df.columns = column_list

	table = df
	print(table)
	table.to_csv(file, index = True, header=column_list, mode='a')

def download_and_save(month_num, months, years, project, file_prefix):
	for year in years:
		for i in range(len(month_num)):
			data = download_table(months[i], year, project)
			file = f"{year}_{month_num[i]}_{file_prefix}.csv"
			save_to_csv(data, file, month_num[i], year)

def append_to_csv(input_file, output_file):
	with open(input_file, 'r') as in_file, open(output_file, 'a') as out_file:
		reader = csv.reader(in_file)
		writer = csv.writer(out_file)
		header = next(reader)
		if not os.path.isfile(output_file):
			writer.writerow(header)
		for row in reader:
			writer.writerow(row)

months = ['jan', 'feb', 'mar','apr','may','dec']
month_num = ['01','02','03','12']
years = range(2000,2004)
project = 'eng'
file_prefix = 'eng'
download_and_save(month_num, months, years, project, file_prefix)

output_file = 'eng_output_1990-2022.csv'

for year in years:
	for i in range(len(month_num)):
		input_file = f"{year}_{month_num[i]}_{file_prefix}.csv"
		append_to_csv(input_file, output_file)

Use Case
This URL will be an alternative source to pull data starting 1990 as opposed to starting 1995 when collecting from Corps and Section 7 Projects in California - Hourly/Daily Data and Plots
This feature will be added in ".../collect/collect/usace/wcds.py"
Breaking Changes
Unknown
Priority
Low

@cmora1es here's my pseudo-code notes from our meeting:
def get_monthly_report_data_for_reservoir(reservoir, year, month):
    """
    description (omit the totals)

    Arguments:
        reservoir (str):
        year (int):
        month (??): as a number or as a string?
    Returns:
    """

    # use helper function to lookup the columns as long as it's reliable for the reservoir
    # for the whole period of record

    return {'data': df, # date-indexed dataframe
            'info': {'url': ,
                    'date_published':
                    'date_retrieved': dt.datetime.now(),
                    'raw': the plain text}}

def get_por_monthly_report_data_for_reservoir(reservoir, start, end):

    frames = []
    # list of months between start and end
    for month in list:
        frames.append(get_monthly_report_data_for_reservoir(reservoir, year, month)['data'])
    df = pd.concat(frames, axis=0)

    return {'data': df,
            'info': {
                    'urls': [],
                    'dates_published': [],
                    'date_retrieved': dt.datetime.now(),
                    }}


basic scaffold: add maven folder, ui folder

Adds ui/ folder, which includes a basic scaffold for a LitElement project. Scaffold was made from https://open-wc.org/ (as per LitElement docs recommendation).

Added prettier and eslint; configured them to follow the Google Open Source configs

Adds server/ which includes a basic Maven AppEngine scaffold.

NOTE This does not yet import the UI on compile.

LGTM except potentially the MIT License?

apparently I can't merge till you manually approve this @mmallett

apparently I can't merge till you manually approve this @mmallett

My bad good to go


Week 4: Integration of Slurm Cluster Monitoring with Grafana

Topic: Integrate Prometheus data into Grafana and create dashboards for Slurm monitoring.
Tasks:

Add Prometheus as a Data Source: Configure Grafana to use Prometheus.
Import Dashboards: Search for pre-built Slurm and system dashboards or create custom ones from scratch.
Alerts Setup: Configure alerts for critical metrics (e.g., node down, job failures).
Stress Test: Run Slurm jobs simulate real-world usage.
Monitor Metrics: Ensure Grafana shows correct metrics and alerts during heavy load.

Hey team  @Rosemary2301 @LesegoSenamela @Karabo-Lekolwane @smasuku @Sphiwencube
I hope you are making progress on your project.

You need to have started your poster by now.

You need to have a fork of the Student Cluster Competition Git Repo, that your whole team and mentor has access to and a feature-branch for the project you are working on.

If you would like my direct assistance and guidance, you can add me to this repo.

You need to have started preparing your competition benchmarks, i.e.:

You should have a repo, with at the very least a folder for each of the competition benchmarks and a README.md for each with information that you've already researched regarding building, installing, compiling and running the various benchmarks.
You need to breakdown and allocate the various benchmarks and tasks amongst your team mates.

You need to start preparing a short presentation (lightning talk)... Each of your team members (excluding mentor) needs to start thinking about which benchmarking / aspect of your cluster they are responsible for, and think of some talking points to present to the judges

If you would like to arrange a meeting with me to discuss and review your progress please let me know.
DO NOT LEAVE THINGS TO THE LAST MINUTE!!!
Do a little bit of work every week, and ensure you're consistently making progress.
Good Luck with the remainder of your exams and assignments!

Hi Team,
In less than two weeks time, you'll be traveling to Gqeberha to participate in the Student Cluster Competition at the CHPC National Conference.
By this stage you should have a dedicated plan in place to tackle the Competition Benchmarks. You MUST KNOW HOWTO:

Configure and deploy your Operating Systems on your bare-metal clusters,
Configure and deploy your Infrastructure, Networking and Software Stack (drivers, environments, lmod, compilers, mpi, etc, etc...)

You have VM's to practice all of this. Make use of a private GitHub repo. You are strongly encourage to invite me, Mmabatho and / or your project mentors to assist and review your progress on your private repos.

Assign a project manager (does not have to be the team lead or technical lead) to make sure everyone is doing what they are supposed to be doing and to keep track of progress from now and throughout the competition.
Ensure that you have practiced deploying and installing the known benchmarks:

Synthetics

HPCC

LINPACK

HPCG

LAMMPS
NWCHEM
RegCM
MILC
MATLAB
Secret Applications

You will be interacting with CSIR Staff, High School, University Undergraduate and Postgraduate, as well as full time employed working students, and general industry professionals. Use this opportunity to network, engage and meet prospective contacts that may assist you in your own careers.
To help you introduce and present yourselves to all of the prospective guests, delegates and judges that may pass by your booths, in addition to your posters, you are strongly encouraged to prepare a slide-deck and associated lightning talks, briefly covering aspects of your journey from the Selection Round up until the Competition Floor at the CHPC Conference. Your slide deck should be brief and succinct and include:

1 Slide with a group photo, with names, degrees, year of study of all members including mentor - indicate Team Name and Institution on this slide,
1 Slide with a picture very briefly covering your experience of the Selection Round and the Build-Up to Nationals,
1 - 3 Slides describing your project:

Not everyone who comes by your booth will have a technical background in the specific topic you've been assigned,
Make sure you explain the task you were given,
Explain the challenges you encounters,
Explain the results you've obtained,
Explain the additions (if any) that you've made to the SCC Selection Round Training Content,
Remember that  a "GOOD" picture or diagram is worth a thousand words...

1 - 2 Slides describing your cluster design:

motivate your decisions,
explain the pros and cons,
explain your networking and interconnectivity,
explain you choice of OS and software stack
having prometheus and grafana dashboard "might" impress some judges...

1 slide per application with:

DO NOT COPY AND PASTE GENERAL INFO FROM WIKIPEDIA OR THE APPLICATION PAGE,
At most, have one short sentence briefly describing the benchmark,
Describe how you installed it, frameworks, software stacks used, dependencies
Get to reporting your application benchmark results quickly,
Briefly describe challenges faced, improvements planned or implemented,
If you have a "meaningful" diagram, image or graph, this can go on a 2nd slide for the application.

Final slide, with a general project plan overview of:

What are you currently working on,
What have you completed,
Where are you stuck,
What is you plan to get unstuck

This may seem like a daunting amount of information, but it is here to assist you in succeeding in the competition. Everybody in the group needs to demonstrate to the judges that they've ALL CONTRIBUTED to the success of the team.
There is not much time left. You should be finalizing your posters and preparing your presentations.
I will available myself tomorrow and maybe Friday for an hour between 15:00 - 16:00 for a general Teams Call for anyone to come and ask questions about anything related to the competition.

Hey team @Rosemary2301 @LesegoSenamela @Karabo-Lekolwane @smasuku @Sphiwencube
I hope you are making progress on your project.

You need to have started your poster by now.
You need to have a fork of the Student Cluster Competition Git Repo, that your whole team and mentor has access to and a feature-branch for the project you are working on.

If you would like my direct assistance and guidance, you can add me to this repo.

You need to have started preparing your competition benchmarks, i.e.:

You should have a repo, with at the very least a folder for each of the competition benchmarks and a README.md for each with information that you've already researched regarding building, installing, compiling and running the various benchmarks. You need to breakdown and allocate the various benchmarks and tasks amongst your team mates.

You need to start preparing a short presentation (lightning talk)... Each of your team members (excluding mentor) needs to start thinking about which benchmarking / aspect of your cluster they are responsible for, and think of some talking points to present to the judges

If you would like to arrange a meeting with me to discuss and review your progress please let me know.
DO NOT LEAVE THINGS TO THE LAST MINUTE!!!
Do a little bit of work every week, and ensure you're consistently making progress.
Good Luck with the remainder of your exams and assignments!

Hi Mmabatho, thank you for the check in. We are currently busy with the poster and and compiling research and documents for the benchmarks as well. There has just been a delay on our side because not all of us are done with exams, but we are making progress as a team.
Thank you

Hi @mmhashatsi , we are having a problem with starting prometheus, I tried starting it again and checking permissions and everything seems to be working fine but the activity status is not changing. could you please assist

Hi @mmhashatsi we are having a problem with our Grafana Dashboard, it is not loading any data. Could you please provide insight on what could be wrong, the firewall is correctly setup and everything is setup and running correctly but the dashboard still isn't loading any data.
You can also close the week 2 issue as we set up everything and it is working independently.

Hey @LesegoSenamela
The metrics that show on grafana are collected using Node Exporter, so :

Ensure that node exporter is correctly installed and running
Verify using your browser and listen through the port set for node export (See the section on ssh tunnelling in tutorial 4 for a detailed explanation )
Also ensure that your dashboard is fetching the metrics from the correct place, all the yaml files contain the correct information

Hi @mmhashatsi, we've been attempting to install slurm on our compute node 2,the problem  were facing is that the slurm.rpm files do not exit in the directories of the node,and also the rpm directory itself.  Please assist

Hey @Karabo-Lekolwane arrange a meeting and send an invite, looking at the time I think it would quicker than typing bcak and forth cause I need more context to be able to assist

https://teams.microsoft.com/l/meetup-join/19%3Aa3b76d5409ff411d9c737b0127282adc%40thread.tacv2/1732466335705?context={"Tid"%3A"a4ba450a-f2ef-4658-9311-1e8d8a06683c"%2C"Oid"%3A"51948a9c-c2e6-4e6b-b7a3-388ae992abd2"}


[error] Upgrade plan without disk_space attribute

Since the upgrade in 2.4.0,
there is no way to safely upgrade or downgrade a service plan.
I also get an error with the attribute disk_space before the result of terraform plan
Thanks

Hi @Neodbaryd, what is the error that you get while upgrading a service plan?

When I upgrade an aiven_kafka from business-4 to business-8 without change disk_space (null):
│ Error: 1 error occurred:
│       * requested disk size is too small: '600GiB' < '1200GiB'

Thanks for the additional information, it looks like we do set a default value for the disc_size field during the creation of the service, and it causes problems when chaining plans.
I will check what could be done on the Terraform provider side to remedy this. Most likely, we will stop setting a default disc_size.


Unclear Error Descriptions in DevChat During Workflow Execution

The error descriptions in DevChat are currently not clear, especially during the execution of workflows. This issue affects the ability to diagnose and resolve problems efficiently.
Steps to reproduce:

Trigger a workflow in DevChat.
Observe the error messages displayed during the workflow execution.

Expected behavior:
Error messages should provide clear and detailed information about the issue, facilitating quick troubleshooting.
Current behavior:
Error messages are vague and do not offer sufficient details to understand the underlying problem.
Suggestions for improvement:

Enhance the error logging mechanism to include more context and specifics about the error.
Consider implementing a more user-friendly error reporting format.
Review and update existing error messages to ensure clarity and usefulness.

对于权限类错误，例如账户余额不足、KEY错误等，需要自动结束工作流执行，并输出错误描述。
对于服务器错误，例如模型不支持，需要自动结束工作流执行，并输出错误描述。


allow snap <0.15 as snap version constraint (vs current < 0.14)

hey @ocharles, i think snap-cors can reasonably be made to relax that version constraint. Or at the very least things seem to build fine when i --allow-newer=snap to do a test build, and that also enables a much wider range of newer build plans to be possible for applications that depend on snap-cors.
thoughts?

Hey hey. I didn't even know I wasn't up to date with the latest bounds, I'll push them all now. Should be fine.

thanks!
likewise, a slightly more meta issue is that in the context of the web application i'm helping folks work on, we only depend on snap-core/snap-server otherwise, and depending on snap-cors (which we need) forces us to depend on full snap in all its snaplet glory.
if you'd be open to shifting the wrapCORS* snaplet machinery into a haddock comment for how to do it or something like that (as part of say a major version bump), a colleague of mine would be more than happy to provide the PR

Not sure I understand - are you looking to just shave the dependencies? I'm afraid for that case, I'm not interested in changing the API. If it's because you believe you now have to use snap, that shouldn't be the case - applyCORS should work just fine in a snap-core application.

strictly dep shaving.

Yea, I'm afraid I'm not really willing to split this into two libraries, and the snap functionality is probably the most idiomatic way of using this library, so I would want to keep that all too. Sorry :(

no worries, figured i'd ask

Just confirming, snap-cors works fine with snap <IP_ADDRESS> here.

So this took so long to release - I bumped the bounds and then forgot to actually release anything! This is now on Hackage as 1.2.8.


Tooltip positioned wrong if Drawer is present

Trying to use Tooltip with Web app when using Drawer.
Steps to Reproduce

Switch to dev branch and enable web

flutter channel dev
flutter upgrade
flutter config --enable-web

Place this into main.dart:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Row(
      children: <Widget>[
        Drawer(
          child: Container(
            color: Colors.green,
          ),
        ),
        Expanded(
          child: Navigator(
            initialRoute: '/',
            onGenerateRoute: _generateRoute,
          ),
        ),
      ],
    );
  }

  Route<dynamic> _generateRoute(RouteSettings settings) {
    switch (settings.name) {
      case '/':
        return MaterialPageRoute(
          builder: (context) => Scaffold(
            appBar: AppBar(
              title: Text('First screen'),
            ),
            body: Container(
              color: Colors.grey,
              child: Center(
                child: RaisedButton(
                  child: Text('Press me'),
                  onPressed: () => Navigator.of(context).pushNamed('next'),
                ),
              ),
            ),
          ),
        );
      default:
        return MaterialPageRoute(
          builder: (_) => Scaffold(
            appBar: AppBar(
              title: Text('Second screen'),
            ),
            body: Container(
              color: Colors.grey,
            ),
          ),
        );
    }
  }
}

Run the app, press Press me button and hover mouse on the Back button. You'll see Back tooltip is offset. All works good if there's no Drawer.

It's probably something with RenderBox.localToGlobal. _TooltipState._createNewEntry uses that to calculate offset.

Does this only happen on the web, or on Android/iOS as well?

I don't know. My app targets web only. I can't even compile it for iOS and Android: the build crashes.

Sounds good. We'll try reproducing it ourselves. Thanks for providing a sample app!

did u fix it? i meet the same question!

flutter doctor -v
[✓] Flutter (Channel dev, 1.20.0-3.0.pre, on Mac OS X 10.15.5 19F101, locale en-GB)
    • Flutter version 1.20.0-3.0.pre at /Users/taha/Code/flutter_dev
    • Framework revision 0af027f805 (4 days ago), 2020-07-04 12:19:20 -0700
    • Engine revision a751393804
    • Dart version 2.9.0 (build 2.9.0-20.0.dev 22da8934ac)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/taha/Code/sdk
    • Platform android-30, build-tools 30.0.0
    • ANDROID_HOME = /Users/taha/Code/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.5, Build version 11E608c
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.46.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.12.1

[✓] Connected device (3 available)
    • Taha’s iPhone (mobile) • 00008020-001059882212002E • ios            • iOS 13.5.1
    • Web Server (web)       • web-server                • web-javascript • Flutter Tools
    • Chrome (web)           • chrome                    • web-javascript • Google Chrome
      83.0.4103.116

• No issues found!


Introduce memory primitives

Introduce the memory primitives, including relax.memory.{alloc_storage, alloc_tensor, kill_storage, kill_tensor}.

cc folks working on USMP: @gigiblender @mbaret @areusch: Lesheng introduces the memory primitives (relax.memory.{alloc_storage, alloc_tensor, kill_storage, kill_tensor}) in this PR.
He presented it yesterday at Relax open dev meeting, feel free to check out! Here is the doc, and here is the recording (passcode: ?$5xhnh5).

cc folks working on USMP: @gigiblender @mbaret @areusch: Lesheng introduces the memory primitives (relax.memory.{alloc_storage, alloc_tensor, kill_storage, kill_tensor}) in this PR.
He presented it yesterday at Relax open dev meeting, feel free to check out! Here is the doc, and here is the recording (passcode: ?$5xhnh5).

Thank you, @LeshengJin for this PR! The memory primitives look good to me for what we need with USMP. It is not yet clear how the NaiveMemoryPlan or any other fancier algos will interact with USMP. For the moment, I think that USMP will do its own lowering from relax.builtin.alloc_tensor -> relax.memory.alloc_tensor as part of its final mutator pass.
cc @mbaret @areusch if they have other thoughts.

Reviewing the NaiveMemoryPlan pass, I found this case that seems not to do the right thing:
Input:
@R.function
def func_0(
        i: Tensor((), "float32"), s: Tensor((2, 3), "float32"), x: Tensor((2, 3), "float32")
) -> Tensor((2, 3), "float32"):
    tensor_1 = relax.builtin.alloc_tensor((2, 3), dtype="float32", runtime_device_index=0)
    alias_tensor_1 = tensor_1
    cond: Tensor((), "bool") = relax.call_packed(
        "test.vm.less", i, relax.const(10), type_args=(Tensor(ndim=0, dtype="bool"))
    )
    tensor_3 = relax.builtin.alloc_tensor((2, 3), dtype="float32", runtime_device_index=0)     <---- tensor_3 is never assigned
    if cond:
       <---- tensor_1 is not used when this branch is taken
        tensor_2 = relax.builtin.alloc_tensor((2, 3), dtype="float32", runtime_device_index=0)
        new_i: Tensor((), "float32") = relax.add(i, tensor_2)
        new_s: Tensor((2, 3), "float32") = relax.add(s, x)
        r: Tensor((2, 3), "float32") = relax.add(new_i, new_s)
    else:
        r = alias_tensor_1
    return r

Output:
@R.function
def func_0(i: Tensor((), "float32"), s: Tensor((2, 3), "float32"), x: Tensor((2, 3), "float32")) -> Tensor(None, "float32", ndim = 2):
    # block 0
    storage: Object = relax.memory.alloc_storage((24,), virtual_device_index=0, storage_scope="global", dtype="float32", attrs_type_key="relax.attrs.MemAllocStorageAttrs")
    tensor_1: Tensor((2, 3), "float32") = relax.memory.alloc_tensor(storage, (2, 3), offset=0, dtype="float32", attrs_type_key="relax.attrs.MemAllocTensorAttrs")
    alias_tensor_1: Tensor((2, 3), "float32") = tensor_1
    cond: Tensor((), "bool") = R.call_packed("test.vm.less", i, 10, type_args=(Tensor(ndim=0, dtype="bool")))
    storage1: Object = relax.memory.alloc_storage((24,), virtual_device_index=0, storage_scope="global", dtype="float32", attrs_type_key="relax.attrs.MemAllocStorageAttrs")
    tensor_3: Tensor((2, 3), "float32") = relax.memory.alloc_tensor(storage1, (2, 3), offset=0, dtype="float32", attrs_type_key="relax.attrs.MemAllocTensorAttrs")
    if cond:
        # block 0
        tensor_2: Tensor((2, 3), "float32") = relax.builtin.alloc_tensor((2, 3), dtype="float32", runtime_device_index=0, attrs_type_key="relax.attrs.AllocTensorAttrs")   <----- for some reason does not lower to alloc_storage + alloc_tensor
        new_i: Tensor((), "float32") = relax.add(i, tensor_2)
        new_s: Tensor((2, 3), "float32") = relax.add(s, x)
        r = relax.add(new_i, new_s)

    else:
        r = alias_tensor_1
    return r

Expected output:
@R.function
def func_0(i: Tensor((), "float32"), s: Tensor((2, 3), "float32"), x: Tensor((2, 3), "float32")) -> Tensor(None, "float32", ndim = 2):
    # block 0
    storage: Object = relax.memory.alloc_storage((24,), virtual_device_index=0, storage_scope="global", dtype="float32", attrs_type_key="relax.attrs.MemAllocStorageAttrs")
    tensor_1: Tensor((2, 3), "float32") = relax.memory.alloc_tensor(storage, (2, 3), offset=0, dtype="float32", attrs_type_key="relax.attrs.MemAllocTensorAttrs")
    alias_tensor_1: Tensor((2, 3), "float32") = tensor_1
    cond: Tensor((), "bool") = R.call_packed("test.vm.less", i, 10, type_args=(Tensor(ndim=0, dtype="bool")))
    storage1: Object = relax.memory.alloc_storage((24,), virtual_device_index=0, storage_scope="global", dtype="float32", attrs_type_key="relax.attrs.MemAllocStorageAttrs")
    tensor_3: Tensor((2, 3), "float32") = relax.memory.alloc_tensor(storage1, (2, 3), offset=0, dtype="float32", attrs_type_key="relax.attrs.MemAllocTensorAttrs")
    if cond:
        # block 0
        storage2: Object = relax.memory.alloc_storage((24,), virtual_device_index=0, storage_scope="global", dtype="float32", attrs_type_key="relax.attrs.MemAllocStorageAttrs")
        tensor_2: Tensor((2, 3), "float32") = relax.memory.alloc_tensor(storage2, (2, 3), offset=0, dtype="float32", attrs_type_key="relax.attrs.MemAllocTensorAttrs")    <---- lowers to alloc_storage + alloc_tensor
        new_i: Tensor((), "float32") = relax.add(i, tensor_2)
        new_s: Tensor((2, 3), "float32") = relax.add(s, x)
        r = relax.add(new_i, new_s)
        kill_tensor: Tuple() = relax.memory.kill_tensor(tensor_1)
        kill_storage: Tuple() = relax.memory.kill_storage(storage) <--- kills unused tensor + storage in this if block
    else:
        r = alias_tensor_1
    kill_tensor: Tuple() = relax.memory.kill_tensor(tensor_3)
    kill_storage: Tuple() = relax.memory.kill_storage(storage1)   <--- kills unused unused tensor and storage
    return r

Hi, folks, thanks for your helpful comments!
To make things clearer, I removed the new memory lowering from this pr, and kept only the new memory primitives. I'll bring new memory planning and memory lowering back in a following pr:)

Thanks for your review! @mbaret @gigiblender

When do we want to 'move up' the kills so they match the storage liveness? We could do that as part of the NaiveMemoryPlan pass, it could be its own pass, or it could always be the responsibility of the subsequent memory planners.

As we discussed in the open dev meeting, I would do some liveness analysis as a standalone pass in the following prs.

We probably need some more extensive testing here. I saw there was a comment suggesting there's a dependency on another pass, BlockCombine. What's the status there?

Yeah, I agree that we need more testing.

Reviewing the NaiveMemoryPlan pass, I found this case that seems not to do the right thing:

I would fix it in the following pr. Thanks for testing it!

Thanks @LeshengJin for introducing the memory primitives! And thanks @gigiblender @mbaret @areusch for the reviews and discussions!

Hey, myself and @gigiblender are encountering an error trying to create alloc_storage using TVMScript. Specifically, we can only get it to work if we give the size of the allocation as a Constant, not just a plain integer. Simple reproducer:
@R.function
    def main(x: Tensor((5, 7), "float32")):
        storage: Tensor((35, 1, "int8")) = relax.memory.alloc_storage(35)
        output = relax.memory.alloc_tensor(x, (5, 7), offset=0, dtype="float32")
        _ = relax.call_packed("test_identity", x, output, type_args=Tensor(ndim=2, dtype="int32"))
        return output

@LeshengJin @YuchenJin could one of you take a look?

@mbaret, the storage size needs to be an Expr, and you can use a ShapeExpr to represent a static or a symbolic shape for the size.
You can try storage =  relax.memory.alloc_storage((35,)). (35,) will be parsed as a ShapeExpr.

Does it make sense to allocate storage with a shape? I'm not sure how we'd define the behaviour under that circumstance - storage should just be a block of memory.

Does it make sense to allocate storage with a shape? I'm not sure how we'd define the behaviour under that circumstance - storage should just be a block of memory.

One use case would be 2D texture memory or other multi-dimensional memory.


An error was encountered while trying to load this plugin.

this shows in better discord plugin manager

What plugin? What error?
Check that you have installed the latest version firstly.

TypeError: Cannot destructure property 'ChannelTypes' of 'DiscordConstants' as it is undefined.
at plugin (betterdiscord://plugins/ChannelsPreview.plugin.js:234:17)
at eval (betterdiscord://plugins/ChannelsPreview.plugin.js:659:16)
at eval (betterdiscord://plugins/ChannelsPreview.plugin.js:660:7)
at eval (betterdiscord://plugins/ChannelsPreview.plugin.js:661:3)
at Object.requireAddon (:4:39192)
at Object.loadAddon (:4:9163)
at Object.loadAddon (:4:36864)
at AsyncFunction. (:4:7155)

Download the latest version
https://arg0nny.github.io/bd/download/?id=ChannelsPreview


[DOCFIX] Explain the different heap config for metastore types

alluxio-bot, merge this please

alluxio-bot, cherry-pick this to branch-2.4 please


Correction for raw affiliation CNRS, ISIR, Sorbonne Université, Paris, France

Correction needed for raw affiliation CNRS, ISIR, Sorbonne Université, Paris, France
raw_affiliation_name: CNRS, ISIR, Sorbonne Université, Paris, France
new_rors: 02en5vm52;02feahw73;05neq8668
previous_rors: 02en5vm52;02feahw73
works_examples: W4387784380
contact: 0805728a8637dbcb44f14689b9e744c7:4c327d2f60a799f285a10fbb62 @ sorbonne-universite.fr

This issue was accepted and ingested by the OpenAlex team on 2024-11-01. The new affiliations should be visible within the next 7 days.


Add Azure storage account upload support

This change adds support for uploading scan reports to Azure storage accounts.
The primary downside to this change is that the Azure python packages have a dependency on cffi, which performs a compile when installed in alpine.  Thus, it requires gcc and some other support libraries to complete installation. build-base is removed again after the pip installations complete.

Just my random 2 cents. This could be done without bringing in Azure dependencies.
With a shared access signature URL files can be saved in storage accounts with a plain old PUT request.
Additionally, it means you can created a SAS token with only access to write new blobs without needing the storage account key with full access.
It could also done in a generic way that supports POST or PUT to any URL.

@coderpatros I don't personally think the fact the change utilises Azure dependencies matters? The existing AWS and GCP exports both have dependencies on their retrospective CLI tools.

@jusso-dev Just putting it out there that a bunch of extra bundled code, in the form of dependencies, could be dropped with a few lines of standard library code.


Split Shiny app into UI and API for Rmd gen

See Performance in tech notes | mhk-env - Google Docs.
Separate Shiny user:

Shiny app for user interface to configure tags and location, login and table of reports.
API to generate the report.

Done :)


Update README.md

Added a new FAQ
Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

This was an example PR


fix for bug 315743:Bring back .. for test setting text box

fix for bug 315743:Bring back .. for test setting text box
added filepath back

looks fine.

Looks  fine


Warn cli option

Any of the checked boxes below indicate that I took action:

[x] Reviewed the Contribution Guidelines.
[x] Signed the Gradle CLA.
[x] Ensured that basic checks pass: ./gradlew quickCheck

For all non-trivial changes that modify the behavior or public API:

[ ] Before submitting a pull request, I started a discussion on the Gradle developer list,
the forum or can reference a JIRA issue.
[ ] I considered writing a design document. A design document can be
brief but explains the use case or problem you are trying to solve,
touches on the planned implementation approach as well as the test cases
that verify the behavior. Optimally, design documents should be submitted
as a separate pull request. Samples
can be found in the Gradle GitHub repository. Please let us know if you need help with
creating the design document. We are happy to help!
[x] The pull request contains an appropriate level of unit and integration
test coverage to verify the behavior. Before submitting the pull request
I ran a build on your local machine via the command
./gradlew quickCheck <impacted-subproject>:check.
[x] The pull request updates the Gradle documentation like user guide,
DSL reference and Javadocs where applicable.

I realized after this that I should make an additional change for the output when the build fails and it displays text to the user to enable --stacktrace, --info, or --debug. It probably makes sense to also include --warn.

I thought it would make sense to add the --warn to the outputs I mentioned above. Looking at it now, it doesn't fit because those outputs are around producing more log output, not less.
I think this is ok for review for https://github.com/gradle/gradle/issues/935

@mkobit Thank you very much for the PR.
There's still a major user concern unaddressed by this (through absolutely no fault of yours) that Gradle does not configure and route logs from subprocesses properly.
I am speccing significant improvements to logging, and they make this change obsolete.
Are you good if we close this, with our full appreciation? Is there any particular need you must address in this area now?

@eriwen definitely fine with closing it.
Was using it as the first opportunity to kinda dive into the Gradle source as it seemed like a fairly simple fix, and hopefully make a contribution. I don't have an immediate need for it.
I'll keep an eye out for a different issue to jump on.

@mkobit That is very honorable all the way around. You can always check the help-wanted label if you like. I'm looking forward to your future contributions :)

@mkobit It seems that the logging changes I mentioned earlier won't be implemented soon, so I'm going to resurrect/merge this change in the meantime.


Menu display is incorrect on Pimax

The drawing of the menu is not oriented properly due to canted displays.

This will probably help with fixing the view for Pimax Canted displays.  The same issue was fixed on the Resident Evil VR mod by praydog in this commit.
https://github.com/praydog/REFramework/commit/3663a260a67314ce202bdca75f1c758a6b9ae559

related: https://github.com/mbucchia/OpenXR-Toolkit/issues/139

Thanks for supporting Pimax!

This will likely be fixed by #178, but until then nothing we can do. FW1FontWrapper does not support orientation so our hands are tied.
Best we can do is maybe add an option to only display one eye...

Dang. Was going to try again tonight, but wanted to try the FFR. Does the FFR/VRS just center the radii on the center of the image? If so it won't work for Pimax's games in parallel projection mode (which FS2020 still requires due to the fact that the focal point of each eye is far more to the right in the left eye and vice versa). In DCS, fholger stated that he couldn't change the position of the radius simply because he couldn't determine "which eye" was being rendered when the injection occurs. Anothe reserves forced it to default to center,, which is fine for non-paralell games like DCS, but could be optimized if the position was movable.. Are you able to poll the "which-eye" rendering and move the radius for the VRS/FFR accordingly for Pimax/wide FOV (or allow a slider so users can manually move the center) for FFR/VRS?  Boo on Asobo for putting Wide FOV support off until 2023. So insulting. Thanks again for your work. I pray DLSS does as promised and that support for wide FOV comes soon.

FFR is not release yet so you won't be able to test. But otherwise yes, we are doing frame rendering analysis to determine which eye is being rendered, and this allows to make the VRS mask specific to the eye being rendered. It works OK with Flight Sim for now, except an issue that wrongfully apply VRS to menu items (but I guess this isn't too important at this time).
We don't have a Pimax to test with, so we'll have to see after the release how it does.

Excellent. There's a database for angles which may be helpful as to specific settings for specific headsets https://risa2000.github.io/hmdgdb/ - note that it include mode with/without parallel projections.

This isn't a real fix, but I am still closing the issue. Here we're adding an option to only display the menu in one eye, so that it's more usable. The real solution should come later with #178.

One eye is fine!

No hurry as I'm sure you're busy with the release pending. Maybe future: Does FW1FontWrapper allow for changing the focal point of the VRS/FFR at all? Is it preselected for non canted displays, or centered on the render?  If that could be exposed or adjustable, even as experimental or through a .cfg or something I'd hope to not get shut-out on a Pimax thanks again.

You mean this issue #139 which I am trying to work on next

I mean I am confused because FW1FontWrapper is the thing we use to display text in the menu... nothing to do with FFR.

No I mean the VRS/FFR itself. Not the menus. One eye is fine for menus. I meant the "focal region" center of FFR and or VRS.  (Maybe the FWwrapper has nothing to do with it, sorry.)  I wondered if the focal center can be adjusted/moved such that it actually fits the profile of canted displays when in parallel projection mode. VRPerfKit by fholger stated that openVr allowed for movement of the focal center, but the software (in that case DCS) didn't expose which-eye information making it nonsense to move the focal center. He was able to calculate the offsets, but not implement them for DCS. (Another coder made it default to center). I wondered if a similar process could either be performed or opened in OpenXR such that you or I could change the focal centers position to match what we find in both Parallell and non-parallell projection modes. (Currently FS2020 is paralell-projection only, but has plan for 2023 support for non-parellel projection, which will provide ~30% improved visuals/performance). One good source of information is here: https://risa2000.github.io/hmdgdb/ .  Thanks for your consideration for Pimax users.
HMD Geometry Database | Collected geometry data from some commercially available VR headsets.https://risa2000.github.io/hmdgdb/
HMD Geometry Database. The following table lists the calculated values of rendered FOVs and other view geometry of some commercially available headsets. The data have been recorded and calculated by using the hmdq tool. Different datasets come from different contributors, typically owners of the particular model.
risa2000.github.io

From: Matthieu Bucchianeri @.>
Sent: Monday, February 21, 2022 4:33 PM
To: mbucchia/OpenXR-Toolkit @.>
Cc: DJSlane @.>; Comment @.>
Subject: Re: [mbucchia/OpenXR-Toolkit] Menu display is incorrect on Pimax (Issue #115)
You mean this issue #139https://github.com/mbucchia/OpenXR-Toolkit/issues/139 which I am trying to work on next
—
Reply to this email directly, view it on GitHubhttps://github.com/mbucchia/OpenXR-Toolkit/issues/115#issuecomment-1047243886, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AXLZBGZWUVMU7LJ33BARJ7LU4KVTNANCNFSM5NCWHPCA.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you commented.Message ID: @.***>

Right sorry. I thought it had to do with FFR/VRS forgive me.

We're using the same code as VRperfkit for adjusting the projection center (credit to Frydrych for this code).
I have a Pimax tester now and he says it's centered appropriately for him. Not perfect, but acceptable.
Exposing further settings is always an issue since it:

Confuse novice people, and we already have too many settings for the majority of our audience
Enable people to do things that are incorrect, like combination of settings that will lead to poor results
Create more opportunities for bug

So I would prefer not to expose a way to change the center offsets. At least it probably won't be in this version, maybe later.
As for the issue you mention with DCS, we've worked around the same issue for Flight Sim, which involves writing a heuristic (a guess) to determine which eye is which. It works OK with Flight Sim but I expect it might not work with other titles in the future and we will have to come up with more improvements. But as of this version, we properly tell left from right eye.
The remaining bug is with the menus, where we incorrectly apply VRS to some menu items. It's inconvenient but not blocking. We'll try to do better but these heuristics are extremely hard to implement.

OK after reconsideration, I have added both horizontal and vertical offsets (see below), so that in theory you could adjust even further the projection center. It will be hidden behind an "Expert setting" mode, but functional:

Haha read what I wrote then laugh as I saw your newest comment.
Very satisfying response! Wow heuristics is no joke. I am surprised that it works at all if that information is not directly exposed. Thanks for your time. Thanks for working with a Pimax users. Long-term then. I do want your focus on the community at large and really don't want to take away from that as the response has been wonderful.
Even Asobo had to put Wide FOV off until 2023 (I've been pushy in their forums) so I get it. I will look forward to improvements down the road.
Having said all that and still keeping the above in mind:
I do like .cfg files or perhaps a tie-in to your current  "experimental features". In addition to the sometimes "wrong center" when rendering in PP mode for Wide FOV as we discussed earlier, I believe people also assume that the center of your focus is the only sweet spot. I feel like the binocular overlap is 2nd in importance then the down direction for instruments, then up, then finally the outer portion. So thats another place where my desire to tweak the focal point came from as I also wanted to see if an offset was simply a variable in VRS or FFR that I could tweak toward the binocular portion of the render or even downward for instruments.  I also had a crazy thought that it could somehow dynamically poll and adjust based on eye tracking software to make that real for once as nothing AAA seems to work with the Pimax eye tracking or with Varjos Aero eye-tracking. I doubt its dynamically adjustable from the code I see and poorly understand.
If the focal-offset is just a variable please consider exposing it somehow, someday. Until then, let my thanks be sincere and know that I recognize the barriers and that my excitement is certainly well-ahead of my coding experience. I know that you'll be getting a lot of issues, pulls, and bug reports in the coming weeks.
Chao, Cheers, Thanks.

Maybe I misunderstand the second part of your message. Config files are not user friendly, and I do not want to resort to them. For short the Horizontal/Vertical offsets I've added allow you to change the focal point. No need for an extra config file. For the instruments, you can use the Vertical offset indeed, and lower the rings if you prefer is that way.
Eye tracking is possible and this is what the tech was designed for, but I don't have an eye tracking device, and at this stage we're still talking about a very small number of devices out there, so I have no plan to support it.

Understood! Very satisfied! Can't wait to show my fellow simmers. Perhaps another can tie in eye tracking. Can't wait for release day!

I see you have closed this now for Pimax, but also restricted the functionality to Pimax.
I think the Valve Index has this issue,too. The menu hovers too close for comfort. The Valve Index also has canted displays. So my change request would be, to also enable this functionality for the valve index. Thanks, keep up the good work!

@AfromD the change your are referring to has absolutely nothing to do with the menu position.
The only proper fix for menu display with canted displays is #178, which is a significant rework that we haven't started. Pimax users are able to use the menu AFAICT even though we have not made any changes specific for them. You can use the "Menu visibility" option in the Companion app to only display the menu in one  eye, which is more comfortable to use for now.

This should finally be sorted out in the next release, since we closed #178 today.


Missing License

We would like to use and expand these guidelines, unfortunately it is lacking a license so we can't do that legally.
Can you please add an OSS license like MIT or Apache?

Cool, thanks!


Fix HTTP method name in protocol analyzer

Signed-off-by: spacewander<EMAIL_ADDRESS>

Thanks. Could you also update the method name in the Go runtime and the CHANGES file?

Thanks. Could you also update the method name in the Go and the CHANGES file?

Done


Add Python 3.5 to the checklist

Summary
Make using Python 3.5 a requirement for all code in this repo by adding it to the checklist

:+1:


Problems with Prestashop 1.7

Hi !
I'm trying to use this scrip in a Symfony 3.2 project with Prestashop 1.7 and it's currently not working.
The first issue is that if I use the whole script you made, the \CompareProduct is not found (it seems it does not exist anymore)
$ctx->cookie->id_compare = isset($ctx->cookie->id_compare) ? $ctx->cookie->id_compare : \CompareProduct::getIdCompareByIdCustomer($customer->id);

I tried commenting this code, a cookie is created but it's not login in Prestashop.
So i searched for a newer version of this and i found this function in Presta 1.7 :
https://github.com/PrestaShop/PrestaShop/blob/develop/classes/Context.php#L305
Now I'm trying to adapt your script with this new code but i'm facing 2 main errors when I test something :
UndefinedMethodException in appDevDebugProjectContainer.php line 3866:
Attempted to call an undefined method named "setDisplayOptions" of class "Symfony\Component\VarDumper\Dumper\HtmlDumper".

Or
UndefinedMethodException in UnitOfWork.php line 1131:
Attempted to call an undefined method named "hasNode" of class "Doctrine\ORM\Internal\CommitOrderCalculator".

So if you have any idea of how to make your script work with Presta 1.7, it would very nice :)
Which version of Prestashop are working with this scrip ? (1.6 maybe ?)
Thank you in advance.

Hi,
It was written for an now old version of prestashop (it was the latest version at the time).
I guess your new bugs in setDisplayOptions and hasNode are not related to this lib.
I do not maintain anymore this lib.