Not only TensorType for Intput-Output params

Hello! When I tried to create Session I got error:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: PointerShouldNotBeNull("CastTypeInfoToTensorInfo")'

I made small research and find java bindings for onnxruntime: https://github.com/microsoft/onnxruntime/blob/6832b688a2848f64d4d43ac0084c6609aa0203bc/java/src/main/native/OrtJniUtil.c.
I made something close to the implementation.

This is breaking changes for API. If it's ok - I can fix tests. Or I'm open to suggestions)

This is a great start for supporting sequences & maps! I'd like to merge this into the v2 branch since it is a breaking API change, could you port these changes over to there? I think it would require creating a new PR.

Yes, I will do it.

@decahedron1 I rebased from v2 branch)


remove trainable setter on Parameter

delete Parameter.trainable setter, for #1184 , at least I think this was the intended action. let me know if not

I do not understand the request about "Should set_trainable() be constrained to only run in eager mode?". The whole TF2.0 is the eager mode and doing set_trainable doesn't make sense at all - this is just a utility function.

I see what you’re doing here. However, there are lots of functions that don’t work with tf.function (and with tf.functioned functions), and it would be unmanageable to add such a check to all of them. I suggest we leave the check out.

If you are interested, I can make a presentation on how TF is fragile!

i'm not sure i can cope with hearing about how things are fragile atm


Type Error: Typescript infers props with default values as required in custom render functions

Version
3.0.0-beta.15
Reproduction link
https://github.com/kightlingerh/vue-type-error-reproduction
Steps to reproduce

git clone git@github.com:kightlingerh/vue-type-error-reproduction.git
cd vue-type-error-reproduction
yarn
yarn tsc

Output:
src/index.ts:20:7 - error TS6133: 'ComponentB' is declared but its value is never read.

20 const ComponentB = defineComponent({
         ~~~~~~~~~~

src/index.ts:23:32 - error TS2769: No overload matches this call.
  The last overload gave the following error.
    Argument of type '{ isFullheight: true; }' is not assignable to parameter of type 'VNodeProps & { __v_isVNode?: undefined; [Symbol.iterator]?: undefined; } & { isFullheight: boolean; isThemeable: boolean; } & {} & { isFullheight: boolean; } & { isThemeable?: boolean | undefined; }'.
      Property 'isThemeable' is missing in type '{ isFullheight: true; }' but required in type '{ isFullheight: boolean; isThemeable: boolean; }'.

23     return () => h(ComponentA, {
                                  ~
24       // typescript says props isThemeable is required here
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25       isFullheight: true
   ~~~~~~~~~~~~~~~~~~~~~~~~
26     });
   ~~~~~

  node_modules/@vue/runtime-core/dist/runtime-core.d.ts:539:25
    539 export declare function h<P>(type: Constructor<P>, props?: (RawProps & P) | ({} extends P ? null : never), children?: RawChildren | RawSlots): VNode;
                                ~
    The last overload is declared here.

Found 2 errors.

What is expected?
That props with default values be inferred as optional for custom render functions using h
What is actually happening?
Props are being inferred as required

This is for a component library that exclusively utilizes render functions.

Should be fixed by 2961e149 (unreleased)

Thanks @yyx990803, your work is very much appreciated!!


POW evidence get for contexts

Coverage decreased (-0.2%) to 71.891% when pulling 4b0ac5e88b18c27fdc9807f99a0ab4c2a17eaada on 257-neurotransmitter-test into 8e58ee5cda0c6f1b60b4300af6283748cabb3222 on dev.


[WIP]feat: add e2e with nydus snapshotter

Description
Add a new GitHub actions that run dragonfly + nydus in e2e test.

Related Issue

Motivation and Context

Screenshots (if appropriate)
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation Update (if none of the other choices apply)

Checklist

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.

Codecov Report

Merging #1860 (f15da68) into main (c0abbf1) will decrease coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1860      +/-   ##
==========================================
- Coverage   42.87%   42.84%   -0.04%
==========================================
  Files         131      131
  Lines       16601    16601
==========================================
- Hits         7117     7112       -5
- Misses       8944     8951       +7
+ Partials      540      538       -2

Flag
Coverage Δ

Object-compatibility-e2etests
?

e2etests
?

unittests
42.84% <ø> (-0.04%)
:arrow_down:

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

Impacted Files
Coverage Δ

client/daemon/peer/piece_manager.go
52.99% <0.00%> (-0.41%)
:arrow_down:

client/daemon/peer/peertask_conductor.go
56.67% <0.00%> (-0.37%)
:arrow_down:

...ent/daemon/peer/peertask_piecetask_synchronizer.go
50.45% <0.00%> (+0.91%)
:arrow_up:


Lime changes to ios keyboard and android status bar for non fullscreen.

Do you remember what this was trying to accomplish? The title doesn't provide much to go on.

I think so. It was something to do with the status bar at the top changing by the keyboard being pulled up.

A lot of these changes look project-specific, better suited to an extension. For instance, if you want a transparent status bar, you can set that yourself.
As for the Gradle and SDL updates, that's way too much stuff for a single pull request. (Oh, and 8.2.0-Dev already has an updated version of SDL.) It's much easier to verify a small pull request.
Hope you don't mind if I close this. If you figure out what you were going for, feel free to make a new PR with only those changes.


⚠ Processors has degraded performance

In c2ab669, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 97 ms

Resolved: Processors performance has improved in 974c748.


⚠ TROJAN 🇸🇬 Singapore SGV 1 has degraded performance

In 454125d, TROJAN 🇸🇬 Singapore SGV 1 (https://sgt-1.optnl.com/) experienced degraded performance:

HTTP code: 200
Response time: 16978 ms

Resolved: TROJAN 🇸🇬 Singapore SGV 1 performance has improved in 22dcd47.


Finding images

Takes care of #63 - @cneill & @devGregA please take a look.  Upgrade documentation found in docs/features.rst under Finding.

@grendel513 awesome! will review shorlty

@devGregA, @cneill - hold off a bit, i am making some improvements.  I did not like exposing the media root to allow the report async process to have access to them.  give me a day or so.

@devGregA, @cneill all done and ready to be merged once you review it.  i ended up coding a one time token solution for reports (PDF) to be able to access the finding images without having to "authenticate" - once image is rendered once the token is deleted and no linger usable. The token is generated when the image tag is rendered - tied to the finding and size needed.

@grendel513 great work! Merging. I'm correcting my issues with deduplication tonight.


Blockstack.org favicon not appearing

Blockstack.org's favicon is not appearing. Look into issue.
http://blockstack.org/

Complete.


[Direct Line] How to trigger specific dialogs via URL endpoint?

Bot Info

App ID: 745ff47b-893c-4438-a83d-699bd57b86ec
SDK Platform: Node.js
Active Channels: Skype,Direct Line, etc
Deployment Environment: Auzure Bot Service

Issue Description
I'm currently maintaining two repos with one handling the bot logic and one for a custom chat interface via the Directline API. One roadblock i'm facing is that i would like to trigger a specific dialog if the user enters a custom URL such as https://foo.com/?dialog=bar which in the case would trigger the bar dialog. Since the directline repo will not have access to the Bot object , is there anyway i can send a POST request to the bot repo (along with conversation ID and User ID) to trigger specific dialogs?
Code Example
If both the bot and directline reside in the same repo , the code will probably look something like this
return new Promise((resolve, reject)=>{
        var _directlineAddress = {
            bot: {"id":config.BOT.ID, "name": config.BOT.HANDLE},
            channelId: "directline",
            serviceUrl: config.BOT.DIRECTLINE_URL,
            useAuth: true,
            user:{"id": userId},
            "conversation": {"id": conversationId}
        }
        if(params.options){
            var _re = /^\?(\w+)*=(\w+)*/
            var _programType = _re.exec(params.options);

            if (_programType[1] === "foo") {
                var _dialogId = "*:/foo";
            }
            else {
                var _dialogId = "*:/" + _programType[1];
            }

        } else {
            var _dialogId = "*:/";
        }
        bot.beginDialog(_directlineAddress, _dialogId, _specialParams, function(err){
            else{
                resolve();
            }
        });
    })
};

but i do not have access to the bot object anymore , is it possible to send a POST request somehow to the bot to start the specific dialog?

@Kannaj Check out this article on Sending Proactive Messages - it explains a lot of the concepts you need to be familiar with in order to achieve your goals here.
You will also find a great code example demonstrating proactive messages here:
https://github.com/Microsoft/BotBuilder-Samples/tree/master/Node/core-proactiveMessages
There is also a demonstration of sending dialog-based proactive message here:
https://github.com/Microsoft/BotBuilder-Samples/tree/master/Node/core-proactiveMessages/startNewDialog
The key element is to save the user's address information, found in the session.message.address object, so that your bot can know where to send the message later.  As long as you have the users address information, you can trigger a proactive message via a custom URL endpoint defined by your bot.


Always use Object.values(template.abilities)

The list of ability keys is still hardcoded in three places. The rest of the code already uses Object.values.

Fine, unhardcoding is good (and I assume makes some OM code easier)


perf.example-custom path is non-existant

Error: Cannot find module 'lighthouse/lighthouse-core/config/perf.example-custom.json'
When patched to drop example-custom all is well

thx


[Bug] Theme does not get stored on the application

Steps to reproduce:

Login to  application
The default theme is Dark
Change the theme to light
Logout of the application
login to an application
and observe

Observation:
It is observed that the application goes back to default on login back to the application
Expectation:
The Theme must be stored based as it the selection of the user and needs to be re-logged in using with the user selection

This is the expected behaviour. On logout we will clear the user perferenace

@hetunandu : Closing the issue as per above comment


Late firing of watch/$watch - call before dom updates

Clicking on the span below toggles the filtered data value. This will cause the passFilterTest() function to be called before the watcher so the filtercnt var cannot be updated until after the tr's have been rendered.
watch : {
   filtered: function(newVal, oldVal) {
      this._filtercnt = 0;
}
 methods: {
      passFilterTest : function(row){
         var ok;

         ok = ( !this.filtered || .... || .... );

         if (ok) this._filtercnt++;
         if (row.recno===this._totalrecs)
            this.numrecs=this._filtercnt;

         return (ok);
      }
   },

{{numrecs}} Reports

...
Filter
...

All internal watchers are fired after related DOM updates have been applied, this is the designed behavior. It seems a bad idea to have this shared state dependency between a watcher and a filter. You should use just use a method that toggles filtered and resets _filtercnt at the same time.


Adding basic support for margin endpoints

Hello!
Due to the nature of Binance margin heavily overlapping with existing spot types; I have created this basic PR to verify if my approach is desired/correct.
Welcoming any comments/suggestions/changes.
Happy to add the rest of the margin types and functions once confirmed.

Thanks @tiagosiebler. I'll update those types to numberInString.
I have a strategy requiring this capability, so let me build in the rest of the endpoints and submit for review.

Hi @tiagosiebler. Most of the margin endpoints have been added; I have placed a TODO note in Main-Client.ts where these will be added at a later date. I should be able to pick this up later this week.
How does the proposed additions look? Happy to merge once you've signed off.


How the conversion is helping in TCO ?

as far as I know (which is very limited I guess 😁 ) the previous stack should be deleted but , how the conversion which you mentioned in the docs is helping with the TCO ?
What I understood from the samples is that it is converting the recursion into an iterating while loop ri8 !
It is overcoming the stack error but Is it TCO ?
Please correct me if I am wrong !...
Thanks

@LOLdevelopr each function call results in a new stack frame (pushing to callstack). TCO is basically a optimization that uses the fact that old stack frame wont be needed anymore so we might as well just reuse it instead of creating new one.
In JS new function call will always result in a new stack frame so what this plugin tries to achieve is to rewrite those recursive function calls into a loop (without those calls).
This is how we achieve constant number of stack frames on a callstack. I hope that helps 🤞


At a loss

Have no idea what any of this means.  Update my client?  What is or who is that?  I have an old email that I still use and there is some kind of problem with it on Dec1.  That's what I got.

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

ID: 9ec089a7-8f7b-d4d9-a763-e8abd73fb2c9
Version Independent ID: 41ba8999-f0ea-5847-afad-8620dd83492a
Content: Disabling TLS 1.0 and 1.1 for Microsoft 365 - Microsoft Purview (compliance)
Content Source: microsoft-365/compliance/tls-1.0-and-1.1-deprecation-for-office-365.md
Service: o365-seccomp
GitHub Login: @WorkShay
Microsoft Alias: fasqiu

@curious-condor Thank you for your feedback. The effect on end-users is minimal. the change is basically to deprecate the protocol and start using the latest version. In case, if you have issues connecting to Exchange or any of the Microsoft services using applications like outlook, teams, etc, feel free to open a support case with our technical support team and the support engineerwill be able to assist you.
Hope this helps!
Thanks
Sri

@msbemba Thank you very much for the contribution and sharing this explanation. @curious-condor Hope this comment is helpful for you. Considering the nature of the issue, as advised, please open a service ticket in your tenant and follow with them for the resolution. We proceed to close it as here we are limited to documentation fixes and improvements only.
We will be very happy if you can share the outcome or resolution with us if you see documentation update is required. We will certainly update this documentation with that valuable information. Thanks again, for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Make ng-serve Also Serve 3rdpartylicenses.txt

🚀 Feature request
Command (mark with an x)

[ ] new
[ ] build
[x] serve
[ ] test
[ ] e2e
[ ] generate
[ ] add
[ ] update
[ ] lint
[ ] xi18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Description
Currently ng build can generate the 3rdpartylicenses.txt, which is great, but ng serve isn't able to serve the 3rdpartylicenses.txt. This is a bit inconvenient as a website may wish to use the file on a /licenses page to display all third-party licenses that were used. Everything is there to make this for production, but not a simple means to test it in development without hosting a mock 3rdpartylicenses.txt somewhere and loading that instead.
Describe the solution you'd like
 Could an option be provided to generate and serve the 3rd party licenses files along with the rest of the application in `ng serve`.

Hi @SethiPandi,
This is already possible. ng serve also uses the options in the build target. Hence, you need to add "extractLicenses": true under build options in angular.json.

Ahh, sorry about that.
Thanks for the heads up!


Compenf 1 fix

Description
Please provide a summary of the change and the issue fixed. Please include relevant context. List dependency changes.
Fixes # (issue)
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Checklist

[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes

Further comments

Thanks for the PR!
Any successful deployments (not always required) will be available below.
Backend available
Frontend available
Once merged, code will be promoted and handed off to following workflow run.
Main Merge Workflow

Note: Cypress tests todo and need to refactor the selects on the create page to be like the refactored selects of the edit page


HSEARCH-4831 Fix Hibernate Search tests against latest ORM 6.2/6.3

https://hibernate.atlassian.net/browse/HSEARCH-4831
Tested locally against the latest 6.2, and this fixes the problem.
Backport to 6.1: #3459

Quick question - since SecurityManager is for removal and StackWalker is unavailable in 8, I wondered if something like new RuntimeException().getStackTrace() wouldn't do the trick?

In short: yes it could have worked, but I'm overengineering stuff so that we get the best solution as soon as we move to a JDK 11 baseline...
Thread.getStackTrace() and similar are not recommended it's slow, and you don't get all info, for example you don't have actual Class objects, just the class names. But I agree that here, it wouldn't have mattered...
FWIW I didn't start from scratch, most of this code is very similar to what you'll find in org.hibernate.bytecode.internal.bytebuddy.HibernateMethodLookupDispatcher.


python311Packages.ibm-watson: 8.0.0 -> 8.1.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python311Packages.ibm-watson is: Client library to use the IBM Watson Services
meta.homepage for python311Packages.ibm-watson is: https://github.com/watson-developer-cloud/python-sdk
meta.changelog for python311Packages.ibm-watson is: https://github.com/watson-developer-cloud/python-sdk/blob/v8.1.0/CHANGELOG.md
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 8.1.0 with grep in /nix/store/qcgads2p8bdp36ncizm8iz8cbygns0cm-python3.11-ibm-watson-8.1.0
found 8.1.0 in filename of file in /nix/store/qcgads2p8bdp36ncizm8iz8cbygns0cm-python3.11-ibm-watson-8.1.0

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

4 total rebuild path(s)

4 package rebuild(s)

First fifty rebuilds by attrpath

opsdroid
python311Packages.ibm-watson
python312Packages.ibm-watson

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/qcgads2p8bdp36ncizm8iz8cbygns0cm-python3.11-ibm-watson-8.1.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/d646eed968f42c462e5e13518b2d0197f7cef173#python311Packages.ibm-watson

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/qcgads2p8bdp36ncizm8iz8cbygns0cm-python3.11-ibm-watson-8.1.0
ls -la /nix/store/qcgads2p8bdp36ncizm8iz8cbygns0cm-python3.11-ibm-watson-8.1.0/bin

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

2 packages failed to build:

python312Packages.ibm-watson
python312Packages.ibm-watson.dist

4 packages built:

opsdroid
opsdroid.dist
python311Packages.ibm-watson
python311Packages.ibm-watson.dist

Maintainer pings
cc @globin for testing.

Result of nixpkgs-review pr 313006 run on x86_64-linux 1

8 packages built:

opsdroid
opsdroid.dist
python311Packages.ibm-watson
python311Packages.ibm-watson.dist
python312Packages.ibm-cloud-sdk-core
python312Packages.ibm-cloud-sdk-core.dist
python312Packages.ibm-watson
python312Packages.ibm-watson.dist


Manual Input Shape Error

Every time i use inceptionresnetv2, inceptionv3
with input_shape = [4, 256, 256, 1]
it give error

I think it's because your first channel is too small. It must be at least 32 because of poolings.

what if i want to try this on this input shape?
is there any way i can do it?

You need to change models code inside the module. It's not that easy. For example:
https://github.com/ZFTurbo/segmentation_models_3D/blob/master/segmentation_models_3D/backbones/inception_resnet_v2.py#L237
You need to change strides from 2 to (1, 2, 2) in all (or almost all) places for conv3d_bn.

ok thanks, i am doing it because i have 8GB gpu, which cannot load high dimension 3D data.

I propose to start from ResNet18 and shrink other 2 dimensions.

ok, i just want to change pooling from (3,3,3) to (1,3,3).
because i dont want to reduce dimension in first axis, i want same output dimension as input, and i want Conv3D to extract features from all 3 dimension, but pooling should only work on 2nd and 3rd axis.


Add yard config --[no-]doc-gems to install --document hooks

Add a feature to configure ~/.gemrc for --document hooks.

[x] Add yard config --[no]doc-gem-install=yri,yard (does not accept any items)
[x] Add post-install note to run yard config --doc-gem-install
[x] Disable progress indicator (add yard doc --[no-]progress) for hook installs
[x] Tests for all cases (no config, existing config, non-writable config, existing config with --document, keep_rdoc, disabling setting)

Landed in 069c56706197bab96a298385782e641f413435f4


Publish advanced search finder

Trello: https://trello.com/c/ACZBT7Dk/120-build-a-way-to-publish-the-new-finder
Adds a Rake task and underlying class to publish a finder content item from YAML config (similar to the mechanics of publishing finders in Specialist Publisher).

Thanks @leenagupte I've simplified things to pass one finder and a few other optional params to the publisher class. Just tested it on integration.


Use environment variables for environment specific overrides.

:+1:

The replaceEnvVariables method isn't covered, see https://scrutinizer-ci.com/g/itmundi/schematic/inspections/cef45dc4-aa97-44cd-9c5d-7f7df5621e17/code-structure/class/Craft\Schematic_DataModel?expandCoverage=1

looks good to me :+1:


Nostr utilities

parse event tags, mentions, and ordered mentions

https://github.com/bennyhodl/baywallet/issues/69


B1.4

Build against Scala 2.10 finished with failure

Build against Scala 2.11 finished with failure


Add welsh census household survey json

What is the context of this PR?
Adds a Welsh version of the Census Household survey JSON
How to review

Select census_household.json from Schemas list and 'cy' from Language drop down on the dev page.
Verify translated version of Census is loaded and all screens have survey JSON text translated

Thinking we might need Sam to review this one!

Why aren't the commit messages in Welsh!

Is there an argument for keeping the 'value' English along with the routing rules, just a risk that translating these causes a break (strings don't match?) unless it's easily verified.

@chriscollis yeah, those value changes will break routing that is dependent on the value. The translation script does a simple search and replacement of strings, so we'll need to tweak it to get it to not translate the values.

In general, the same translation issues spotted for household schema above also appear in the corresponding individual question. I've not marked them all.

Are these problems with the actual translations provided or the way we've integrated them? It may be better to merge this in so we can run more testing (and so can the translations team) and then raise any content issues so we can prioritise them.


Add description for MobileNet V4

We need a description for the new MobileNet V4 model.
Here is the description for MobileNetEdgeTPU:

"benchInfoImageClassificationDesc": "Image classification picks the best label to describe an input image and is commonly used for photo search and text extraction. The MobileNetEdgeTPU reference model is evaluated on the ImageNet 2012 validation dataset and requires a minimum accuracy of 74.66% (98% of FP32 accuracy of 76.19%) Top-1 accuracy (For Performance measurements, App uses a different dataset).\n\nThe MobileNetEdgeTPU network is a descendent of the MobileNet-v2 family that is optimized for low-latency and mobile accelerators. The MobileNetEdgeTPU model architecture is based on convolutional layers with inverted residuals and linear bottlenecks, similar to MobileNet v2, but is optimized by introducing fused inverted bottleneck convolutions to improve hardware utilization, and removing hard-swish and squeeze-and-excite blocks.\n\nThe offline variant of image classification has no latency constraints and typically uses batched inference and has higher throughput.",

https://github.com/mlcommons/mobile_app_open/blob/9309f2867e39bbed2bf6947b6cd1ade37671c249/flutter/lib/l10n/app_en.arb#L122C3-L122C4

https://mlcommons.org/2024/05/mlperf-mobile-v4-0-release/


Does pr list show the number of comments correctly?

Hi, when I run the following command on a repository with PRs that have comments, I don't get anything:
hub pr list --format '%NC'
gives 0 or a multiple of 0, depending on how many pull requests the repo has.
I'm running hub version 2.12.1

Oops, good catch! We've adopted %NC from hub issue, but it seems like the API endpoint that returns pull requests doesn't include the comments number in the response.
We will likely remove %NC from hub pr list. In the meantime, you can use hub issue --include-pulls --format '%NC%n', but that will include issues as well.


Cannot reproduce the results for Roberta-large on SNLI with MeZO(LORA)

Hi,
I use transformers==4.28.1 and torch==2.1.0
I run the following command:
TASK=SNLI K=512 SEED=42 BS=64 LR=1e-4 EPS=1e-3 STEP=50000 MODEL=roberta-large EXTRA_TAG=lora bash mezo.sh --apply_lora --lora_r 8 --lora_alpha 16

My reproduced result is 72 but paper result is 84.
And I found that compared to FT, using Lora converges slower and more instable. So can you provide more details on MeZO(LORA), especially how many iterations are required to converge using Lora?

It seems that you are not using the correct hyperparameter. Please check Table 15 in our paper for the hyperparameter used for all the RoBERTa experiments. Also, all the reported results are aggregated via grid search over multiple hyperparameter combinations as demonstrated in Table 15.

Thanks for your reply!
Would you mind telling me the minimum number of iterations required for RoBERTa experiments with MeZO(LoRA)?

All the RoBERTa experiments were run with 100K steps. Using fewer than that may lead to very different results.


OutOfMemoryException when creating a TaskService with wrong password

Hello,
recently I get an OutOfMemoryException when I instantiate an object of TaskService (giving a wrong password) and my windows account got blocked (I cannot login anymore) :/
In a first call I get "Access Denied" .. in a subsequent call I get "OutOfMemoryException"
Call:
            TaskService ts = new TaskService(
                Credentials.ServerName,
                Credentials.Username,
                Credentials.AccountDomain,
                Credentials.Password);

Exception:
System.OutOfMemoryException
bei Microsoft.Win32.TaskScheduler.V2Interop.TaskSchedulerClass.Connect(Object serverName, Object user, Object domain, Object password)
bei Microsoft.Win32.TaskScheduler.TaskService.Connect()
bei Microsoft.Win32.TaskScheduler.TaskService.EndInit()
bei Microsoft.Win32.TaskScheduler.TaskService..ctor(String targetServer, String userName, String accountDomain, String password, Boolean forceV1)
Any idea?
Thanks!
MuhaNERD
Originally posted: 2014-04-11T07:47:24

I see that someone else had the same problem long time ago (https://taskscheduler.codeplex.com/workitem/8839). But I don't find a solution for it? Any help please?
p.s.
I noticed that this error happens when "Credentials.ServerName" is the local machine. When I test the case (i.e., providing wrong password) on a remote server I got always "Access Denied" (which is what I expect also on the local machine). The question is: why there is a difference between executing it on local vs. remote machine?
Originally posted: 2014-04-14T01:13:17

What values are you providing as parameters and what version of Windows is the local machine? OutOfMemoryException usually means there is an infinite loop somewhere. I don't see any in this section of my code so I'm wondering if this may be a Microsoft issue. If it is, then maybe I can prevent the scenario in my code.
Originally posted: 2014-04-14T10:22:15

It happens on Window 8.1 Pro.
I wrote a small test WPF application. Here is the code (used v4.0 of Task Scheduler Managed Wrapper):
MainWindows.xaml.cs
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        this.TxtServer.Text = Environment.MachineName;
        this.TxtUsername.Text = string.Format("{0}\\{1}", Environment.UserDomainName, Environment.UserName);
    }

    private void BtnOk_OnClick(object sender, RoutedEventArgs e)
    {
        string server = this.TxtServer.Text;

        string[] domainUsername = this.TxtUsername.Text.Split('\\');
        string domain = string.Empty, username = string.Empty;
        if (domainUsername.Any())
        {
            if (domainUsername.Length == 2)
            {
                domain = domainUsername[0];
                username = domainUsername[1];
            }
        }

        string password = this.TxtPassword.Password;
        try
        {
            TaskService ts = new TaskService(server, username, domain, password);
            TaskDefinition td = ts.NewTask();
        }
        catch (Exception ex)
        {
            MessageBox.Show(string.Format("{0}\n{1}", ex.Message, ex.StackTrace));
        }
    }

    private void BtnCancel_Click(object sender, RoutedEventArgs e)
    {
        this.Close();
    }
}

MainWindow.xaml
<Window x:Class="TaskSchedulerDemo.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:ignore="http://www.ignore.com"

    mc:Ignorable="d ignore"
    SizeToContent="WidthAndHeight"
    WindowStartupLocation="CenterScreen"
    ResizeMode="NoResize"
    Title="Task Scheduler Demo"
    >
<StackPanel Margin="10">
    <StackPanel Margin="5,0,0,5">
        <Label Content="Enter username and password"/>
    </StackPanel>
    <StackPanel Margin="10, 0, 0, 0" Orientation="Horizontal">
        <StackPanel  Width="100">
            <Label Content="Server:" Width="170" Height="30" Margin="-5, 0, 0, 0"/>
            <Label Content="Username:" Width="170" Height="30" Margin="-5, 5, 0, 0"/>
            <Label Content="Password:"  Width="170" Height="30" Margin="-5, 5, 0, 0"/>
        </StackPanel>
        <StackPanel Width="250" HorizontalAlignment="Center">
            <TextBox   x:Name="TxtServer" TextWrapping="Wrap" Width="250" Height="23" Margin="0, 5, 0, 0" />
            <TextBox   x:Name="TxtUsername" TextWrapping="Wrap" Width="250" Height="23" Margin="0, 10, 0, 0"/>
            <PasswordBox   x:Name="TxtPassword" Width="250" Height="23" Margin="0, 10, 0, 0"/>
        </StackPanel>
    </StackPanel>
    <Grid  Margin="0, 10, 0, 0">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="110"/>
            <ColumnDefinition SharedSizeGroup="Buttons"/>
            <ColumnDefinition Width="5"/>
            <ColumnDefinition SharedSizeGroup="Buttons"/>
        </Grid.ColumnDefinitions>
        <Button Grid.Column="1" x:Name="BtnOk" Content="OK" Click="BtnOk_OnClick" IsDefault="True"/>
        <Button Grid.Column="3" x:Name="BtnCancel" Content="Cancel" Click="BtnCancel_Click" IsCancel="True"/>
    </Grid>
</StackPanel>

Originally posted: 2014-04-14T23:55:47

Have you tried it? Did you find anything that explains the problem?
Originally posted: 2014-04-16T01:10:10

I believe that since you are pulling the server name from a TextBox, if blank the value will be String.Empty. This may be causing the problem. I have updated the code so that String.Empty values are changed to null. However, until that code is released, try this check:
string server = this.TxtServer.Text;
if (String.Empty == server)
   server = null;

Originally posted: 2014-04-16T08:03:24

Well giving "server = null" has solved the problem, but not because it was empty. I have always provided a server name even if I am working with my local computer. Apparently I had to give "null" if the "server == computer_name". Maybe you should fix this in your code in this way:
if (server.equals(Environment.MachineName)){
server = null;
}
I must admit that I find the Execption I got because of this issue a weird one :/
Thanks anyway for your help! :)
Originally posted: 2014-04-17T00:52:16

I have updated the code in 2.1.1 to avoid this problem. The oddly termed exception is actually coming from the Microsoft system library. It must be a bug there. Anyway, thanks to your help, users of this library should never encounter it again.
Originally posted: 2014-04-17T10:06:00


everything is ok ,but can not sync data

I use another tool go-mysql and it can works well, the output
=== QueryEvent ===
Date: 2015-12-16 07:49:52
Log position: 1476
Event size: 109
Slave proxy ID: 38
Execution time: 0
Error code: 0
Schema: esdb
Query: insert into accesslog(name) value('antoher 3')

=== XIDEvent ===
Date: 2015-12-16 07:49:52
Log position: 1503
Event size: 27
XID: 146

but  I start the go-mysql-elasticsearch,the output below:
[2015/12/16 07:30:21] status.go:52 [Info] run status http server <IP_ADDRESS>:12800
[2015/12/16 07:30:21] dump.go:95 [Info] skip dump, use last binlog replication pos (mysql-bin.000012, 564)
[2015/12/16 07:30:21] sync.go:15 [Info] start sync binlog at (mysql-bin.000012, 564)
[2015/12/16 07:30:21] sync.go:46 [Info] rotate binlog to (mysql-bin.000012, 564)

everything looks like ok,but it can not sync data;
and if I restart mysql and go-mysql-elasticsearch, it can sync once at the begining,and then can not sync data any more;
Can you help me to figure out the reason?

Can't sync even you insert new data? what's output when you browse stat web https://<IP_ADDRESS>:12800/stat ?

nothing output

here is the  http://<IP_ADDRESS>:12800/stat output
server_current_binlog:(mysql-bin.000012, 1503)
read_binlog:(mysql-bin.000012, 1503)
insert_num:0
update_num:0
delete_num:0

yes, nothing output even I insert new data to the table,and if I restart go-mysql-elasticsearch and mysql service，it will sync once at the begining,because I can see the new inserted data from elasticsearch
Could you help me to figure out the reason ?
Thanks in Advanced !

here it my etc/river.toml config,
# user must have replication privilege in MySQL.
my_addr = "<IP_ADDRESS>:3306"
my_user = "root"
my_pass = "weiyang154"

# Elasticsearch address
es_addr = "<IP_ADDRESS>:9200"

# Path to store data, like master.info, and dump MySQL data
data_dir = "./var"

# Inner Http status address
stat_addr = "<IP_ADDRESS>:12800"

# pseudo server id like a slave
server_id = 5

# mysql or mariadb
flavor = "mysql"

# mysqldump execution path
mysqldump = "/usr/bin/mysqldump"

# MySQL data source
[[source]]
schema = "esdb"

# Only below tables will be synced into Elasticsearch.
# "test_river_[0-9]{4}" is a wildcard table format, you can use it if you have many sub tables, like table_0000 - table_1023
# I don't think it is necessary to sync all tables in a database.
#tables = ["test_river", "test_river_[0-9]{4}"]
tables = ["accesslog"]
# Below is for special rule mapping
[[rule]]
schema = "esdb"
table = "accesslog"
index = "accesslog"
type = "accesslog"

Do you use the latest source?
You can use flush logs in mysql and to check whether the log outputs rotate binlog to, if not, means that the program can't sync from mysql, something may be wrong.

yes, it's the latest
and I have use the flus logs;  and the master.info file has updated,but the console ouput nothing

program can't sync from mysql,but how to know which part has been wrong?

No, I don't know now too. As you said above, the standalone go-mysql was ok, which confused me too, because go-mysql-elasticsearch just uses go-mysql for syncing.
I will check this in the weekend, sorry for not answering you immediately, I don't have any time now.
Or you can help me find the reason too. I think the source is very easy to read. :-)

where is the code that listen mysql binlog changed? can you tell me the core part so that I can debug local?

I have never use the go lang , so if you could tell me the core part ,it's appreciate

The core replication is in go-mysql/replication/binlogsyncer.go, function is onStream, you can add log here to check whether go-mysql syncs or not.

the same problem has shown in my partner's computer,all config is same ,and also can not sync data

Hi @tantou
can you run go test in river directory.


Environmental Tech Structure Frame recipe progression feels off

Structure Frames Tier 2 use a Data Orb in their recipe, which is made out of eight Data Storage Circuits and one Data Control Circuit
Structure Frames Tier 3 use a Data Control Circuit in the same place (or the Elite Control Circuit, but that is irrelevant).
It feels like those two components should be switched, so that Tier 2 uses circuitElite and Tier 3 uses the Data Orb.

The Data Orb and Data Control Circuit will be swapped in the next release. Thanks for the suggestion!


Application should have a "starting" status

After an application submission is accepted, the status of application will become "active" immediately. But actually it will still have a particular time range that all its resources are being allocated. If no enough resource available, the application will be terminated shortly. So, I'd suggest to have another enum e.g. "starting" to indicate the status. User will be noticed not to do any operation (e.g. change processor) during this period.
This is suggestion is inspired by investigating #1499

After discussion, not planned to have this.


Increase preference of U-turn during pathfinding for articulated vehicles on sufficiently wide roads

Describe your idea
It is not uncommon for articulated vehicles such as semi-trucks or trucks with trailers to do U-turns on roads with sufficiently wide medians. However, I'm observing that articulated vehicles in-game are very unlikely to perform U-turns and instead take longer routes. This would be advantageous on roads with a sufficiently wide median like this or vanilla 4-lane 32-meter road
I'd suggest that during pathfinding for an articulated vehicle, U-turn paths are also considered on roads with a sufficiently wide medians. This may be inferred from road width and lane count, but there's may be a better way
Screenshots?

Notes or questions?

Actually it's not that easy to detect such case (wide roads/medians). There are multiple issues with median detection and any kind of gap between lanes.
Once we fix/improve median detection it will be trivial to add a feature like this but for now it's impossible because of issues I mentioned.


Linux port

Seems lika a cool project.
If you continue working on it, could you add a Linux build or at least build instruction for Linux?
Good luck with project!

Since Electron supports both .deb and .rpm packaging, accommodating this will be a cinch!  When the app is ready for release I will make sure to include both types of Linux packages.
Thank you for taking the time to let me know that there are users out there who would want a Linux package!

Nice! Thank you! It also support platform independent packaging (unpackaged binary and loose files/libs), AppImage and Snaps!! Any of these are better then deb/rpm, as they are meant to work on any Linux distribution without much additional work from user, so I'd suggest going for them, instead of deb/rpm.
There are not many of us, but we exist, and are often ignored by Riot and and devs of apps like these, simply because we are so few in numbers. But it's understandable and we usually can hack something to work, but it is so much better to have native support.
Looking forward to project development!


⚠ BCR Bot has degraded performance

In 8734e7a, BCR Bot (https://bcr.alternativasinteligentes.com/BCRApi/web/chatbot) experienced degraded performance:

HTTP code: 200
Response time: 1391 ms

Resolved: BCR Bot performance has improved in 3b7a1e5.


Spurious "Undefined Behavior" Error

Running this code snippet (playground) with miri:
use std::{
    future::{self, Future},
    pin::Pin,
    task::{Context, Poll},
};

fn main() {
    let mut future = trouble();

    let mut pinned = Box::pin(future::poll_fn(move |cx| {
        unsafe { Pin::new_unchecked(&mut future) }.poll(cx)
    }));

    let waker = futures::task::noop_waker();
    let mut cx = Context::from_waker(&waker);

    let _ = pinned.as_mut().poll(&mut cx);
    let _ = pinned.as_mut().poll(&mut cx);
}

async fn trouble() {
    let lucky_number = 42;
    let problematic_variable = &lucky_number;

    yield_now().await;

    // problematic dereference
    let _ = { *problematic_variable };
}

fn yield_now() -> impl Future {
    let mut yielded = false;
    future::poll_fn(move |_| {
        if core::mem::replace(&mut yielded, true) {
            Poll::Ready(())
        } else {
            Poll::Pending
        }
    })
}

...results in this diagnostic:
error: Undefined Behavior: attempting a read access using <3121> at alloc1549[0x8], but that tag does not exist in the borrow stack for this location
  --> src/main.rs:28:15
   |
28 |     let _ = { *problematic_variable };
   |               ^^^^^^^^^^^^^^^^^^^^^
   |               |
   |               attempting a read access using <3121> at alloc1549[0x8], but that tag does not exist in the borrow stack for this location
   |               this error occurs as part of an access at alloc1549[0x8..0xc]
   |
   = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
   = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
help: <3121> was created by a SharedReadWrite retag at offsets [0x0..0x10]
  --> src/main.rs:11:9
   |
11 |         unsafe { Pin::new_unchecked(&mut future) }.poll(cx)
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: <3121> was later invalidated at offsets [0x0..0x10] by a Unique retag
  --> src/main.rs:18:13
   |
18 |     let _ = pinned.as_mut().poll(&mut cx);
   |             ^^^^^^^^^^^^^^^
   = note: BACKTRACE:
   = note: inside closure at src/main.rs:28:15
   = note: inside `<std::future::from_generator::GenFuture<[static generator@src/main.rs:21:20: 29:2]> as futures::Future>::poll` at /playground/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/mod.rs:91:19
note: inside closure at src/main.rs:11:9
  --> src/main.rs:11:9
   |
11 |         unsafe { Pin::new_unchecked(&mut future) }.poll(cx)
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   = note: inside `<std::future::PollFn<[closure@src/main.rs:10:47: 10:56]> as futures::Future>::poll` at /playground/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/poll_fn.rs:61:9
note: inside `main` at src/main.rs:18:13
  --> src/main.rs:18:13
   |
18 |     let _ = pinned.as_mut().poll(&mut cx);
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

error: aborting due to previous error

I'm using the miri packaged with rustc 1.66.0-nightly (ce7f0f1aa 2022-09-28).
Discussion on Zulip here: https://rust-lang.zulipchat.com/#narrow/stream/269128-miri/topic/Diagnosing.20retag.20in.20.60.2Eawait.60

I get that this error is unexpected, but 'spurious' sounds like a claim that this is a false positive?
Here's a version that avoids unsafe, and it also makes Miri happy.

The original code is probably just buggy -- each time you write &mut future, that claims that this is the only pointer to future that will be used henceforth. And that claim is just wrong since the future is self-referential. Once it is pinned, you must never create a mutable reference directly to a future, since that would invalidate the self-referential references.

I did some more investigation, see IRLO for details. But Miri is right, the original code is buggy -- pinned is in fact an Unpin future with a by-value self-referential generator, which is not kosher. A slight variant of this causes a use-after-free, so it's not just aliasing rules that are violated.


Update README

Updates the readme to remove the useless app key from the configuration and improve the grammar of some of the instructions.

Thanks! 👍


PR: Feature/darkstyle

Description
Add a darkstyle theme
Requires to work!
pip install qdarkstyle
Screenshots
New option

Emacs

Todo

[x] Add new background color theme option in the general section
[x] Remove background color options for consoles in the preferences
[x] Automatically set background color options or consoles based on theme

@ccordoba12 I kept this PR minimal and although we will need to make some tweaks to the style, it should be good enough for a demo, thoughts?

@Nodd comments?
Keep in mind we want to showcase this for Scipy on Friday, so unless is a crucial thing :-p, keep your nitpicking modjo low ;-)

See https://github.com/ColinDuquesnoy/QDarkStyleSheet/issues/36#issuecomment-232452937

What happened?


Dynamic page variables don't get encoded

Expected behavior and actual behavior
Variables in the config.rg should be replaced with url encoded variants or there should be something in the guide about that.
I think it was working with the (very) old middleman, but I updated that codebase earlier and seem to have missed the regression.
https://github.com/flatpak/flatpak.github.io/blob/source/config.rb#L20

Goto https://flatpak.org/setup/
Hover the cat in the bottom left
The link has a / and   that should have been escaped

Additional information

Ruby version: 3.0.2 (just tested this local, the linked repo is on 2.6.5)
Middleman version:  Whatever gem "middleman", "~> 4" grabs
OS version:  Fedora 35 (The server runs Fedora 30)

This is still valid or should it have been patched in a newer version?

@stale reopen

Has not been patched. If I understand your issue, I think it is working as designed. Can you explain the issue in more depth?

I basically think I need i.name here https://github.com/flatpak/flatpak.github.io/blob/source/config.rb#L20 to be url encoded. But as that was a drive by migration I did on that project, I don't really have much ruby knowledge and the guides at that time didn't seem to help.

Ok. So that line is creating a file on disk with that name, it must be encoded as a valid file name, but not necessarily be url encoded. If you need that additional change to the file name, I would suggest adding the encoding to that loop inside the string template.
I think the Erb one is acceptable
require "erb"
::ERB::Util.url_encode(i.name)

Doesn't seem to fix the url for me handling for me. How would you handle a website with a link that has this for e.g.? Pisi GNU/Linux I think I need both the handling in the proxy statement and a haml implementation to link it.

You can also use "page ids" to give refer to links in a more programmatic way:
In config
require "erb"
proxy "/#{::ERB::Util.url_encode(SOMETHING)}.html", '/page.html', id: "custom_id"

In Haml:
= link_to "Link title", "custom_id"

Could be a database id, array index, etc

I guess I'll just bite the bullet and go through the trouble and add a slug property to all the data :/

Thanks for trying to help :)


orientdb process keeps database files open even after DISCONNECT

OrientDB Version: 2.2.33
Java Version: Oracle JDK <IP_ADDRESS>
OS: Gentoo Linux x86-64, kernel 4.14.26
Expected behavior
After DISCONNECT from database in remote mode orientdb process should release file descriptors of given database files.
Actual behavior
After DISCONNECT from database in remote mode orientdb process has database files still open. This is inconsistent behaviour and prevents connecting to database from other process, from console in plocal mode or working with them. To fix this orientdb process has to be restarted.
Steps to reproduce

start orientdb service (Gentoo example):

rc-service orientdb start

list open files of orientdb service and see that no files are open for any database:

lsof -p `ps ax | grep -v grep | grep orientdb | cut -d " " -f 1`

run orient db console, connect to database in remote mode and immediately disconnect:

localhost /tmp # orientdb

OrientDB console v.2.2.33 (build 77584cd6827f647cf4aa231cf27bd6f10bc04e2c, branch 2.2.x) https://www.orientdb.com
Type 'help' to display all the supported commands.
Installing extensions for GREMLIN language v.2.6.0

orientdb> connect remote:localhost/GratefulDeadConcerts admin admin

Connecting to database [remote:localhost/GratefulDeadConcerts] with user 'admin'...OK
orientdb {db=GratefulDeadConcerts}> disconnect

Disconnecting from the database [GratefulDeadConcerts]...OK
orientdb> quit

list open files of orientdb service again and see that GratefulDeadConcerts files are still open:

lsof -p `ps ax | grep -v grep | grep orientdb | cut -d " " -f 1`

Hi @karel-un,
Yes OrientDB will close the databases only at shutdown, this is an architectural decision to avoid a lot of load and unload of all the cache/metadatas of the database.
Regards

Hi @tglman,
thanks for explanation. I would guess it is architectural decision. But anyway it is inconsistent behaviour and at least it would be nice to introduce some config file option to disable it. Disconnected database should not have its files still open.
Or to have some parameter for DISCONNECT command to actually release files too.

Hi @karel-un,
We may introduce in future a command to force close a database, but we do not consider this high priority, so it won't be in 3.0 it may be included in 3.1/3.2
Regards

Ok, thanks for your help @tglman. I will leave issue open, feel free to close it as needed.


Right and left hand landmarks not working

Hi, i have a written a very simple code to detect face, pose , left and right hand landmarks which u can see here :
def draw_styled_landmarks(image, results):
    # Draw face connections
    mp_drawing.draw_landmarks(image, results.face_landmarks, mp_holistic.FACEMESH_TESSELATION,
                             mp_drawing.DrawingSpec(color=(80,110,10), thickness=1, circle_radius=1), #Landmark formatting
                             mp_drawing.DrawingSpec(color=(80,256,121), thickness=1, circle_radius=1) #Connections formatting
                             )
    # Draw pose connections
    mp_drawing.draw_landmarks(image, results.pose_landmarks, mp_holistic.POSE_CONNECTIONS,
                             mp_drawing.DrawingSpec(color=(80,22,10), thickness=2, circle_radius=4),
                             mp_drawing.DrawingSpec(color=(80,44,121), thickness=2, circle_radius=2)
                             )
    # Draw left hand connections
    mp_drawing.draw_landmarks(image, results.left_hand_landmarks, mp_holistic.HAND_CONNECTIONS,
                             mp_drawing.DrawingSpec(color=(121,22,76), thickness=2, circle_radius=4),
                             mp_drawing.DrawingSpec(color=(121,44,250), thickness=2, circle_radius=2)
                             )
    # Draw right hand connections
    mp_drawing.draw_landmarks(image, results.right_hand_landmarks, mp_holistic.HAND_CONNECTIONS,
                             mp_drawing.DrawingSpec(color=(245,117,66), thickness=2, circle_radius=4),
                             mp_drawing.DrawingSpec(color=(245,66,230), thickness=2, circle_radius=2)
                             )

cap = cv2.VideoCapture(0) #Grab video capture device 0

with mp_holistic.Holistic(min_detection_confidence=0.1, min_tracking_confidence=0.1) as holistic: #mp works such that it first make the initial detection and then track the keypoints
    while cap.isOpened():

        # Read feed
        ret, frame = cap.read() #frame is the image from the webcam, ret is the return value

        # Make detections
        image, results = mediapipe_detection(frame, holistic)
        print(results)

        # Draw landmarks
        draw_styled_landmarks(image, results)

        # Show to screen
        cv2.imshow('OpenCV Feed', image)

        # Break out of loop
        if cv2.waitKey(10) & 0xFF == ord('q'): #waitkey -wait for the key to be pressed inside a frame, 0xff is the key pressed
            break

    cap.release() #release our webcam
    cv2.destroyAllWindows() #to close down all the frames

After doing this, i can see the left hand, right hand landmarks drawn on the webcam.
But When i do results.left_hand_landmarks , it displays nothing whereas i can see face and pose landmarks in the results set but cannot see the hand landmarks. Plz help me regarding this, i am really fed up with this issue

priyanshurohilla could you show the define code for method
mediapipe_detection
I'm experimenting with mediapipe holistic solution in an attempt to apply smoothlandmarks to reduce jitter.
The left and right hand display for me but there is jitter.

Hi @priyanshurohilla ,
Could you please share any reference video w.r.t this issue to investigate further on this.

Hi, i have a written a very simple code to detect face, pose , left and right hand landmarks which u can see here :
def draw_styled_landmarks(image, results):
    # Draw face connections
    mp_drawing.draw_landmarks(image, results.face_landmarks, mp_holistic.FACEMESH_TESSELATION,
                             mp_drawing.DrawingSpec(color=(80,110,10), thickness=1, circle_radius=1), #Landmark formatting
                             mp_drawing.DrawingSpec(color=(80,256,121), thickness=1, circle_radius=1) #Connections formatting
                             )
    # Draw pose connections
    mp_drawing.draw_landmarks(image, results.pose_landmarks, mp_holistic.POSE_CONNECTIONS,
                             mp_drawing.DrawingSpec(color=(80,22,10), thickness=2, circle_radius=4),
                             mp_drawing.DrawingSpec(color=(80,44,121), thickness=2, circle_radius=2)
                             )
    # Draw left hand connections
    mp_drawing.draw_landmarks(image, results.left_hand_landmarks, mp_holistic.HAND_CONNECTIONS,
                             mp_drawing.DrawingSpec(color=(121,22,76), thickness=2, circle_radius=4),
                             mp_drawing.DrawingSpec(color=(121,44,250), thickness=2, circle_radius=2)
                             )
    # Draw right hand connections
    mp_drawing.draw_landmarks(image, results.right_hand_landmarks, mp_holistic.HAND_CONNECTIONS,
                             mp_drawing.DrawingSpec(color=(245,117,66), thickness=2, circle_radius=4),
                             mp_drawing.DrawingSpec(color=(245,66,230), thickness=2, circle_radius=2)
                             )

cap = cv2.VideoCapture(0) #Grab video capture device 0

with mp_holistic.Holistic(min_detection_confidence=0.1, min_tracking_confidence=0.1) as holistic: #mp works such that it first make the initial detection and then track the keypoints
    while cap.isOpened():

        # Read feed
        ret, frame = cap.read() #frame is the image from the webcam, ret is the return value

        # Make detections
        image, results = mediapipe_detection(frame, holistic)
        print(results)

        # Draw landmarks
        draw_styled_landmarks(image, results)

        # Show to screen
        cv2.imshow('OpenCV Feed', image)

        # Break out of loop
        if cv2.waitKey(10) & 0xFF == ord('q'): #waitkey -wait for the key to be pressed inside a frame, 0xff is the key pressed
            break

    cap.release() #release our webcam
    cv2.destroyAllWindows() #to close down all the frames

After doing this, i can see the left hand, right hand landmarks drawn on the webcam. But When i do results.left_hand_landmarks , it displays nothing whereas i can see face and pose landmarks in the results set but cannot see the hand landmarks. Plz help me regarding this, i am really fed up with this issue

I have been able to detect the error.
In the process of you trying to quit the cv2.read() using 'q' you move your both hands away from the frame, and the last frame was without your hands making results.left_hand_landmarks and results.left_hand_landmarks to be null.
Using one hands to press the key q and wait for some few seconds before removing the other hand, solve the problem for me


Change ssh keys file location

Pull Request Template
Description
Added ssh keys folder for each cloud provider and ssh keys automatically will be saved in these locations.
Fixes # 1
Type of change

[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

How can it be tested?
It can be tested via creating kubernetes infrastructure automatically

Changed ssh keys file location


After upgrading to 10.52.0 our app crashes on launch when we attempt to observe a collection

How frequently does the bug occur?
Always
Description
Other than upgrading to v 10.52.0 there have been no changes to the app.  The app works fine with version 10.51.0.  In version 10.52.0 the app crashes the first time we try to observe a Realm collection (for changes)

Stacktrace & log output
See attached screen shot

Can you reproduce the bug?
Always
Reproduction Steps
No response
Version
10.52.0
What Atlas Services are you using?
Local Database only
Are you using encryption?
No
Platform OS and version(s)
iOS 17.4,  Realm 10.52.0
Build environment
Xcode version: xCode 15.3
Dependency manager and version:  Swift Package Manager

It looks like #8295 made it so that we're now exposing a frozen SectionedResults from @ObservedSectionedResults. You can work around this by explicitly calling thaw(), but we should maybe see if we can avoid this.

I am currently experiencing the same issue, but downgrading to 10.51.0 unfortunately does not help.
Using @ObservedSectionedResults works correctly; @tgoyne where and what would you thaw() exactly to work around the problem?

You need to call thaw() on the results instance before you call .observe() on it.


Considering a flutter dart wrapper that ensures I'm using Flutter's Dart

In a world where there are many Darts, I want to ensure I'm using my Flutter's Dart. One way to do this: provide a wrapper entry script, something like flutter dart.
Otherwise, I have two Darts on my PATH and things get weird.
There may be other ways to fix this, but if we can provide our users a very solid way to ensure they are using the same Dart that is embedded into Flutter Shell and is used by the Flutter tool, we've reduced a variable.  (use case: running tests on the command line that don't require Flutter Shell, or ONLY installing Flutter and wanting to run some scripts with Flutter's blessed Dart)

We have some of this for flutter packages get.  Unclear if we still need the general flutter dart?

The risk is that a user may have multiple versions of Dart, and may be running their tests in a Dart that isn't the same Dart as Flutter has. But, even if we had a flutter dart the user could still accidentally run the wrong Dart.
I'll close this for now.


Backend allowing multiple JSON word plays to be added at once

Backend sends out dataUpdates incorrectly, causing the multiple AI to send in words to be validated without a properly updated boardstate. This allows for invalid words to be added to the board, which breaks the entire system.

Fixed in latest PRs.


Increase MAX_NDIM to 64

Part of https://github.com/cupy/cupy/issues/8306.
https://numpy.org/devdocs/release/2.0.0-notes.html

Thanks Akifumi! 🙏

/test mini

(On my cell, sorry for brevity.) I noticed this PR will have sizeof(CArray)>=1040 which is a bit enormous, since the default kernel buffer size is 4096 bytes. I have been discussing this internally before I went on leave, and we think it should be possible to use variable length array to work around this. I can help draft a PR after I return from leave if this is not urgent.

/test mini

It seems we missed to update one last test, I raised a PR here: https://github.com/asi1024/cupy/pull/4

/test mini

@leofang Thank you for your help too!


Add appId field of Algolia in docusarus.config.js

The doc missed to mention that appId of Algolia is required.
Motivation
Update the search.md for those want to integrate with Algolia.
(Write your motivation here.)
Have you read the [Contributing Guidelines on pull requests]
Yes
Test Plan
N/A
Related PRs
No

Hi
Afaik the app id is actually not required, there's a default one hardcoded that belongs to all DocSearch projects, so unless you use a custom Algolia project (non DocSearch), you don't need an appId
Do you think we should clarify the doc somehow?

@slorber  Thanks for your reply. It is my first-time using Algolia. I do not know that DocSearch is another project from Aloglia, so I assumed that I have to create a new account on Algolia. Then I found a hardcoded appId, which I don't know what it is, in the template. Thanks for your information. It helps me not to do it in the wrong way.


13B Model Out of Memory with Single Node 8 A100 GPUs

Hi!
Thanks for contribution making this repo available :)
I tried to train the 13B model with micro batch size 1, model parallelism degree 8, but unable to get it to work. (always get OOM) The library advertises being able to scale up to 100B. What is required for this? I also tried deepspeed stage 3 with offload without using pipeline parallelism but that doesn't seem to work either. Please let me know what I'm missing. thanks!

Can you post the exact config file you are using?

Can you also provide details of your hardware?

I’m using an AWS p4 node with 8 of A100 GPUs :)
On Thu, Sep 16, 2021 at 6:08 PM Eric Hallahan @.***>
wrote:

Can you also provide details of your hardware?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/EleutherAI/gpt-neox/issues/409#issuecomment-921288211,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA5DMS4E4TCT6MFBXRDCQALUCJTG3ANCNFSM5EFSTT2Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

I adapted the config provided
GPT-2 pretraining setup
{
parallelism settings ( you will want to change these based on your cluster setup, ideally scheduling pipeline stages
across the node boundaries )
"pipe-parallel-size": 1,
"model-parallel-size": 8,
model settings
"num-layers": 40,
"hidden-size": 5120,
"num-attention-heads": 40,
"seq-length": 2048,
"max-position-embeddings": 2048,
"norm": "layernorm",
"pos-emb": "rotary",
"no-weight-tying": true,
these should provide some speedup but takes a while to build, set to true if desired
"scaled-upper-triang-masked-softmax-fusion": false,
"bias-gelu-fusion": false,
optimizer settings
"optimizer": {
"type": "Adam",
"params": {
"lr": 0.0001,
"betas": [0.9, 0.999],
"eps": 1.0e-8,
}
},
"zero_optimization": {
"stage": 1,
"allgather_partitions": True,
"allgather_bucket_size": 500000000,
"overlap_comm": True,
"reduce_scatter": True,
"reduce_bucket_size": 500000000,
"contiguous_gradients": True,
"cpu_offload": False
},
batch / data settings
"train_micro_batch_size_per_gpu": 1,
"data-impl": "mmap",
"split": "949,50,1",
activation checkpointing
"checkpoint-activations": true,
"checkpoint-num-layers": 1,
"partition-activations": true,
"synchronize-each-layer": true,
regularization
"gradient_clipping": 1.0,
"weight-decay": 0,
"hidden-dropout": 0,
"attention-dropout": 0,
precision settings
"fp16": {
"fp16": true,
"enabled": true,
"loss_scale": 0,
"loss_scale_window": 1000,
"hysteresis": 2,
"min_loss_scale": 1
},
misc. training settings
"train-iters": 320000,
"lr-decay-iters": 320000,
"distributed-backend": "nccl",
"lr-decay-style": "cosine",
"warmup": 0.01,
"save-interval": 10000,
"eval-interval": 1000,
"eval-iters": 10,
logging
"log-interval": 100,
"steps_per_print": 10,
"keep-last-n-checkpoints": 4,
"wall_clock_breakdown": true,
}

Also note that the above config has a train_micro_batch_size_per_gpu of 1. On 8 gpus that results in a data parallel of 1 (8 / pipe-parallel-size / model-parallel-size) and hence a batch size of 1. I suggest to find a good combination of micro batch size and gradient-accumulation steps to get a decent batch size. See here for calculation.
Having said that, a 13B will take a long time to train on 8 GPUs only.

Thank you! I’ll try that and will let you know. Does the original config 13B.yml also run on a single node with 8GPUs / what hardware setup was it tested on? Thanks again for a fast reply :)

Have not tested the 13B on a single node with 8 A100s. It is somewhat tricky to balance, too. Reason are the relatively large embedding and lm-head layers that take a lot of memory.

I tried setting scaled-upper-triang-masked-softmax-fusion and bias-gelu-fusion to True but it doesn't seem to work, with the provided script for 13B or my modified script with lowering batch size to 1.
What hardware set up is the 13B config provided tested on btw? If it's not that many nodes I can try to replicate. Is the memory reduction from mostly Zero 1 as it splits opt across nodes?
Thanks :)

I don't know the smallest hardware people have tried it on. On 8 GPUs I would estimate a training time of ~2 years though (16 GPUs ~ 1year). Seems not feasible.

Hi!
Would like to ask if you managed to get it work eventually, Thanks.

@seeEssex Why do you want to do this? It would take years to train the model even if it were to be made to fit.

@StellaAthena I was trying to fit the model for finetuning, as opposed to training the whole thing.

@seeEssex there does not currently exist a public 13B model to finetune. The only model we have released so far that is larger than GPT-J is a 20B parameter model. I do know someone who is finetuning it, and can inquire about their hardware and performance.

What is the hardware and speed for the person fine-tuning the 20B parameter model above?
I am interested in using GPT-NeoX-20B for fine-tuning. Would 2 servers of 8 A100s GPU be sufficient?


Fix uncurry attribute on function application

fixes https://github.com/facebook/reason/issues/2565
cc @bobzhang

A bit confused why this is not resolving in the parsing stage instead of post-processing

@bobzhang could you clarify your question? The change I made is in the parser

My question is that when parser see f(. a,b), it parse it as uncurried function, why a post-processing is involved here?

I'm not sure, looks like legacy code that's moving attributes from the expression to the structure item.

For this particular patch, you can use List.exists

I can certainly switch to that, though I wanted to make the diff as easy to review as possible.
The bug here is that we were checking the entire expression's attributes (could be a let .. in) instead of the application expression's attributes for an uncurry attribute.

do you have an example of what mkstrexp is trying to achieve? I am a bit lost here
Maybe you can add a test case

ping?

happy to merge if you're happy with it. I don't have bandwidth to get rid of mkstrexp, or dig through history to find why it was added in the first place.
Otherwise I'm also happy to close this PR and let you fix the issue.

it seems to be introduced by this commit when introducing uncurried support: dabe031
@IwanKaramazow would you have a look why we need change mkstrexp here? thanks

Some context: [@attr] expr is Pstr_eval (expr, @attr). The purpose of mkstrexp is building a Pstr_eval that contains the attributes, not the expression inside the Pstr_eval.
I misunderstood this back in the days when implementing the original uncurried support.
[@bs] should not be lifted to the Pstr_eval level. I'm wondering if  this branch https://github.com/facebook/reason/blob/535eb95cacef59eb6dc1ca8c34d053d16ba089df/src/reason-parser/reason_parser.mly#L432-L449 can be removed. Printer will need to be fixed.


Operational Transactions

These transactions will be

Signed.
Must be charged fees as a normal tx.
Must make sure that they have precedence in inclusion
Must make sure that the block weight limit will cause them to be rejected.

Needs:

Weighable trait to return the priority. fn priority<B>(&self, encodec_len: usize, tip: B)
Weighable to define a function which indicates block fullness. Then we simply return false if we observe an operational tx.

Not much work. Best to do it after https://github.com/paritytech/substrate/pull/2930 and https://github.com/paritytech/substrate/pull/2854 are merged.

@rphmeier can you double check that problem definition is correct and will fit what you need? (trying to recall everything we discussed in group)

Must make sure that the block weight limit will cause them to be rejected

is this not missing a negative?

Must make sure that the block weight limit will cause them to be rejected

is this not missing a negative?

yes. (This is a clear sign that I should stop doing stuff for tonight and go to bed now)

Why can't we just use regular transactions for this and change the queue-weighting mechanism a little?
Also it would be good to familiarise yourself with #3063 -- this is the runtime API to be used by the node in constructing those calls.

Weighable

nit: naming in Rust would just call the trait Weight or even better Priority, since it has one fn priority.
All traits indicate foo is bar-able...it's completely redundant.


.to_xarray(): a 9Mb dataframe requires 30Gb ram

I tried to transform a dataset with 2D latitude and longitude  into Xarray dataset, however I failed to do so, because ram error occurred during process.
I also tried to set lat and lon as coordination directly, however it is complex to plotting and conducting geographic manipulation in the following work. This dataset is a non-rectangular area, lat and lon can not be replaced by the corner values.
In all, I hope this data can be transformed into xarray and resampled into traditional rectangle data, which can be easily dealt with.
Any codes and suggestions are sincerely welcomed.

Please could you fill out the issue template, including a reproducible example? A CSV could be OK if you include the reproduction steps.

Please could you fill out the issue template, including a reproducible example? A CSV could be OK if you include the reproduction steps.

Thank you, updated.

thanks, that helps. First of all (unless I did something wrong with the read_csv call), there's a Unnamed: 0 column that has to be removed.
Other than that, your data seems to be quite sparse so that's an ideal fit for sparse:
In [38]: %%time
    ...: df = pd.read_csv("/tmp/data.csv")
    ...: a = df.drop("Unnamed: 0", axis=1).set_index(["lat", "lon"])
    ...: a = a.stack()
    ...: a.index.names = ["lat", "lon", "time"]
    ...: a = a.sort_index()
    ...: a.name = "T"
    ...: xr.DataArray.from_series(a, sparse=True)
    ...:
    ...:
CPU times: user 606 ms, sys: 63.9 ms, total: 670 ms
Wall time: 670 ms
Out[38]:
<xarray.DataArray 'T' (lat: 16100, lon: 29959, time: 31)>
<COO: shape=(16100, 29959, 31), dtype=float64, nnz=1003191, fill_value=nan>
Coordinates:
  * lat      (lat) float64 37.5 37.5 37.5 37.5 37.5 ... 43.1 43.1 43.1 43.1 43.1
  * lon      (lon) float64 96.46 96.46 96.46 96.47 ... 102.6 102.6 102.6 102.6
  * time     (time) object '2011-01-01 00:00:00' ... '2011-01-31 00:00:00'

thanks, that helps. First of all (unless I did something wrong with the read_csv call), there's a Unnamed: 0 column that has to be removed.
Other than that, your data seems to be quite sparse so that's an ideal fit for sparse:
In [38]: %%time
    ...: df = pd.read_csv("/tmp/data.csv")
    ...: a = df.drop("Unnamed: 0", axis=1).set_index(["lat", "lon"])
    ...: a = a.stack()
    ...: a.index.names = ["lat", "lon", "time"]
    ...: a = a.sort_index()
    ...: a.name = "T"
    ...: xr.DataArray.from_series(a, sparse=True)
    ...:
    ...:
CPU times: user 606 ms, sys: 63.9 ms, total: 670 ms
Wall time: 670 ms
Out[38]:
<xarray.DataArray 'T' (lat: 16100, lon: 29959, time: 31)>
<COO: shape=(16100, 29959, 31), dtype=float64, nnz=1003191, fill_value=nan>
Coordinates:
  * lat      (lat) float64 37.5 37.5 37.5 37.5 37.5 ... 43.1 43.1 43.1 43.1 43.1
  * lon      (lon) float64 96.46 96.46 96.46 96.47 ... 102.6 102.6 102.6 102.6
  * time     (time) object '2011-01-01 00:00:00' ... '2011-01-31 00:00:00'

Thanks for your codes!  I noticed that only two decimal numbers are kept for lat and lon. Does it mean a resample process happened? The data is a grid with 0.005 degree resolution, can I keep the resolution in the results?

that's only the short repr, the values are untouched:
In [5]: da.lat
Out[5]:
<xarray.DataArray 'lat' (lat: 16100)>
array([37.49944, 37.5004 , 37.50135, ..., 43.1014 , 43.10143, 43.10144])
Coordinates:
  * lat      (lat) float64 37.5 37.5 37.5 37.5 37.5 ... 43.1 43.1 43.1 43.1 43.1

that's only the short repr, the values are not modified:
In [5]: da.lat
Out[5]:
<xarray.DataArray 'lat' (lat: 16100)>
array([37.49944, 37.5004 , 37.50135, ..., 43.1014 , 43.10143, 43.10144])
Coordinates:
  * lat      (lat) float64 37.5 37.5 37.5 37.5 37.5 ... 43.1 43.1 43.1 43.1 43.1

Thanks for help！I found sparse grids are not easy to plot, so I changed my code like Colab code, which is similar with the 'rasm' example in xr. Maybe you can show how to create this example datasets (more than the toy weather), which would be helpful.


Updating Core Tools to v3 in PS Functions image

I noticed an issue when using this devcontainer in VS Codespaces. I created a new Functions project and HTTP-triggered function. The functions worker process gets into a bad state, prompting retries from the host, which eventually gives up can exits: Exceeded language worker restart retry count for runtime:powershell. Shutting down Functions Host
Making this change to update to v3 fixes the issue.

Thanks for the PR!  LGTM!


[BUG] Failsafe seems to always trigger and doesn't seem to expire

Describe the bug
On my current setup, when using a FusionCache with IsFailSafeEnabled = true, the fail-safe is always active and ignores the FailSafeMaxDuration value.
A value is being set, and even after it expires both on the regular cache and on the fail-safe (per the FailSafeMaxDuration value), every GetOrSet call is defaulting to the fail-safe.
I am currently using the FusionCache to cache some configs that are obtained remotely through an API. I am not using any distributed caches, only memory. The program tries to reload the IConfiguration every 5 seconds, and each reload call uses a GetOrSet on an Object that has an IConfiguration inside it.
The code is as follows:
return await _configCache.GetOrSetAsync($"tenant/{tenantId}",
                async _ => new Tenant { Id = tenantId, Config = await GetTenantConfigs(tenantId) });

Also, my _configCache object is configured as follows:
_configCache = new FusionCache(new FusionCacheOptions
{
    DefaultEntryOptions =
    {
        Duration = TimeSpan.FromSeconds(10),
        IsFailSafeEnabled = true,
        FailSafeMaxDuration = TimeSpan.FromSeconds(20),
        FailSafeThrottleDuration = TimeSpan.FromSeconds(1),
        FactorySoftTimeout = TimeSpan.FromMilliseconds(100), // I tried with both 100 and 1000 and both produced the same result
    }
});

What I expected from the fail-safe is that it would trigger only if something inside the Factory (async _ => new Tenant { Id = tenantId, Config = await GetTenantConfigs(tenantId) }) threw an exception, timed out or something similar. However, the GetTenantConfigs function is called once only, and each subsequent GetOrSet being called gets the expired value, even after the 20 second failsafe duration has passed.
I'm pretty sure this is an issue with the fail-safe because once it is turned off, the cache works perfectly as expected (GetTenantConfigs gets called every 10-15 seconds).
The factory isn't throwing any exceptions or timeouts.
To Reproduce

Use the above settings on the FusionCache
Call a function inside the Factory

Expected behavior
Since the cache duration is set to 10 seconds, it expires after 10 seconds, so if you call GetOrSet every 5 seconds, it should call the function inside the factory every 10-15 seconds. The failsafe is never triggered since no exceptions are thrown.
Current behavior
The function is called once. The cache is never renewed, even after the FailSafeMaxDuration has passed.
Versions
I've encountered this issue on:

FusionCache version 0.18.0
.NET version 6.0.111
OS: Ubuntu 22.04

Hi @fkuhnert and thanks for reporting this.
I'll be able to take a look at this during the weekend, not sooner, but meanwhile I'd like to suggest you to create a minimal console app or similar with just the above call, enable logging with a min level of Trace (the lowest level) and see what FusionCache tells you during the GetOrSet call.
With logging enabled, FusionCache can log a lot of internal details, like "I'm trying to acquire a lock" or "I've decided to enable fail-safe because whatever" and similar, so it gets easier to do some detective work to understand what is going on.
Regarding this code:
return await _configCache.GetOrSetAsync($"tenant/{tenantId}",
                async _ => new Tenant { Id = tenantId, Config = await GetTenantConfigs(tenantId) });

what code can I use as the implementation of the GetTenantConfig() method? Do you have a stub I can use that works similarly? I'd like to have something realistic on my side, to reproduce this locally.
Let me know so I can investigate this, and will let you know!
Thanks!

Okay, apparently this was an error on my behalf, I apologize :P
In the original program, I wrote some separate logic that only called GetOrSet on the cache if it was both expired and had a valid tenant. I wrote it as follows:

TryGetAsync on the object, if it's there just return straight away
If TryGetAsync fails, check if the identifier is on the list  → never fails because it gets the expired value
If it's on the list, call GetOrSet, if not throw an exception

Apparently, TryGetAsync gets expired cache values just fine. Is there a way to prevent this? As in, TryGet only returning true if the value is unexpired, while also using the failsafe? Please let me know if this is just plain incorrect usage of the FusionCache :P
One thing that is confusing me is the MaxDuration on the failsafe isn't exactly being respected. With the previous (wrong) code, it logs this every time after the regular cache expires, even after the failsafe duration (20 seconds) expires:
dbug: ZiggyCreatures.Caching.Fusion.FusionCache[0]
      FUSION (O=fc8f91ffbde74096b73e5cc7463d9c9f K=tenant/prix): calling TryGetAsync<T> (null)
dbug: ZiggyCreatures.Caching.Fusion.FusionCache[0]
      FUSION (O=fc8f91ffbde74096b73e5cc7463d9c9f K=tenant/prix): memory entry found (expired) FE[FFS=Y LEXP=-2s]
dbug: ZiggyCreatures.Caching.Fusion.FusionCache[0]
      FUSION (O=fc8f91ffbde74096b73e5cc7463d9c9f K=tenant/prix): saving entry in memory MEO[CEXP=20s PR=N S=1] FE[FFS=Y LEXP=3s]
dbug: ZiggyCreatures.Caching.Fusion.FusionCache[0]
      FUSION (O=fc8f91ffbde74096b73e5cc7463d9c9f K=tenant/prix): return SUCCESS

Per the line saving entry in memory MEO[CEXP=20s, maybe it is saving the expired value back on the memory and treating it as valid?

Hi @fkuhnert , have you had some time to think about this?
In the next release I'm about to push out tomorrow I think I'll do what I highlighted above, this:

The idea I'm currently playing with is to keep using fail-safe as a way to fallback on stale data, even in a TryGetAsync call, BUT with the important distinction that, since it is not a "set" call, it would only RETURN stale data (again, only if fail-safe is enabled) and not SAVE it, even just temporarily.

So basically I will keep returning the stale value when calling TryGet[Async] with fail-safe enabled, BUT I will stop saving it, since it's not a "set" call.
Can you please let me know what do you think about this approach?
Thanks!

The new v0.19.0 has been released, which includes this 🎉

Hey! Sorry for taking so long to write an answer.
I think this approach on the stale data TryGet looks great. I'll try it out and see if it works on my use case!
Thanks a lot!

Great, thanks!

I understand this is a closed issue but I just ran into it myself while transitioning from MS's default caching. (Loving the library btw, thank you for your efforts!) FailSafe seems like a cool feature so I enabled it, but the fact that TryGet[Async] returned stale data by default was a surprise.
Have you considered an overload (or optional param) such as TryGet[Async](string key, bool allowStale)? Although I can see value in allowing stale data to be served from this method, I would be inclined to default it false. IMO, it's the least surprising behavior. But of course that makes it a breaking change, so perhaps a consideration for a future major version.

Hi @tmenier , thanks for your words, I appreciate them.
To not use stale data, even in a TryGet call, simply disable fail-safe for that specific call.
Let me know if it worked.

Yes, I should have mentioned that's what I ultimately did. I was mostly just highlighting the point that serving stale data from that method by default seems unexpected, IMO. Sort of ignores the "Fail" in "FailSafe" 😃. Addressing it more explicitly via a hypothetical allowStale, as opposed to disabling a feature, feels a bit more natural here.
But to your point, I am not blocked - the workaround works perfectly. Thanks!

But to your point, I am not blocked - the workaround works perfectly. Thanks!

That is good to know, thanks to you!

I was mostly just highlighting the point that serving stale data from that method by default seems unexpected, IMO. Sort of ignores the "Fail" in "FailSafe" 😃.
Addressing it more explicitly via a hypothetical allowStale, as opposed to disabling a feature, feels a bit more natural here.

Eh, I know... to be honest I'm thinking about this from some time.
Because as you said the "fail" in "fail-safe" implies some sort of failing, which is not the case here.
Also yes, sure, as we said there's a way to control it but at the same time it would be nice to enable fail-safe in the default entry options once and just forget about it (meaning: no need to specify it in every call). Problem is, if we then need to do a TryGet/GetOrDefault and don't want a stale value we would need to specify IsFailSafeEnabled = false every time, which is a little bit less nice.
Let me try to explain my rationale about it, so you may let me know what you think ok?
I thought about adding something like a new entry option bool AllowStaleData on the FusionCacheEntryOptions object, but if on one hand it would be then clear that IsFailSafeEnabled would NOT apply to TryGet/GetOrDefault (because there's no "fail" there), on the other hand it would not be so clear if AllowStaleData would apply or not to GetOrSet.
Like, someone using FusionCache would wonder how AllowStaleData impacts a GetOrSet call, something along the lines of "if I set it to false would stale data be ignored when calling GetOrSet?".
I don't know if I've been able to explain myself clearly.
But your suggestion here is not to add a new option (which is the thing I was thinking about), but to add an extra param to the TryGet/GetOrDefault methods, so that would only be local to those methods, which can make sense. It would also require either a braking change in the existing methods (meh) or some new overloads with the added param.
At the same time though I would like to avoid adding an extra single purpose param, because:

tomorrow a new need may come up and we'll be all over again, adding a new overload with a new param, etc
the single purpose param would not allow us to benefit from the concept of default entry options

So I'm here, stuck while trying to find the best solution that would balance all of these things together 😅
If you can, let me know what you think, that would be helpful.
Thanks!


Profile: inform the user if the user doesn't have a profile

If the user goes to /mydata without a profile, we should inform the user to go to onboarding.

Just redirect to /welcome if no profile found - there wouldn't be anything to see in /mydata anyway so better this way


CSS and HTML end mark

Whenever you make a TODO statement, the closing sign is also recognized as intended text in the todo:
CSS:  /* TODO: I'm a To-Do!! */
HTML: <!-- TODO: I'm a To-Do!! (End mark)
( CSS in the menu:  TODO: I'm a To-Do!! */  )
( HTML In the menu: TODO: I'm a To-Do!! -->)

Thanks for the bug.  That makes sense, as the regex just goes to the EOL.  Maybe we could try adding a positive lookahead.  Have you tried this in the customization section?


Update Composer dependencies (2021-02-21-00-12)

Visual regression test passed!
View the visual regression test report


API permissions needed?

What API permissions are needed so I can create a service account with limited permissions?

I am curious about this too. I have an account set up with no API access, and I can see the status of our Jamf instance. I do not have any notifications showing up though. The "Notifications" label isn't even showing in my jamfStatus menubar icon.

I need to do some digging - looks like jamfStatus is not compatible with Jamf Pro 11.x due to changes with the API.

If there are no notifications in Jamf Pro the "Notifications" label is not displayed.  Most notifications are displayed when an account has no permissions set in Jamf Pro.  An example where permissions are required would be the "LDAP server configuration error" which requires read on LDAP Servers in Jamf Pro.
To my knowledge there is no list of permission required for each notification.

See if v2.4.0 resolves the lack of notifications being displayed.

So I can see my account I set up for this is connecting. In my Jamf Pro instance, I currently see 4 notifications listed, but still nothing showing in the JamfStatus app. If I switch to API, according to the logs it is failing to authenticate. I am 100% certain I had the correct ID and secret entered though.


python3 stat.decode() error

Traceback (most recent call last):
redisgraph/query_result.py", line 45, in _retrieve_data_from_statistics
self.LABELS_ADDED: self._get_value(self.LABELS_ADDED, statistics),
File "/redisgraph/query_result.py", line 57, in _get_value
stat = stat.decode()
AttributeError: 'str' object has no attribute 'decode'

Hi @fdrong, can you please share against which version of RedisGraph are you working?

https://github.com/RediSearch/RediSearch  master version.
change it:
"/redisgraph/query_result.py", line 57, in _get_value
stat = stat.decode()
replace:
if isinstance(stat, bytes):
stat = stat.decode()
it works

I'm a bit confused you've referred to RediSearch in your link above, is that by mistake?

@fdrong
I'm closing this issue. If you think that there is still an issue please re-open it.


After npm start, the tsx file reports many error！How to solve quickly？

After npm start, the tsx file reports many error！How to solve quickly？

Typescript typing errors do not have any effects to the running and debug of the  web application.
We will solve the typing errors in next few versions gradually.

It has a great impact. At the very beginning, when my computer was running, many errors were reported, which would lead to the computer directly card machine to output more than 100 errors in about 4 seconds and 1 second

@AndyFong


[x] Suggest an Awesome item.
[ ] Web site maintenance.
[ ] Other.

What's in this PR?
This pull request added a new item for the multimedia category on podcast type which is Ask Developer Podcast. #8
Checklist

[x] Ensure to check our Contribution Criteria.
[x] The contribution doesn't already exist (you can use search functionality).
[x] The contribution is provided in both Arabic and English.

@aabouzaid

@Mohammed-Bata Thank you for your effort 🙌

thank you 🙌