text:
Using Service Credential JSON results in JS error

Following the instructions in the docs, I've created a ~/.bluemix/cos_credentials file, and saved my service credential there from what the COS generated:
{
  "apikey": "REDACTED",
  "endpoints": "https://control.cloud-object-storage.cloud.ibm.com/v2/endpoints",
  "iam_apikey_description": "Auto-generated for key REDACTED,
  "iam_apikey_name": "evidence-locker",
  "iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Writer",
  "iam_serviceid_crn": "crn:v1:bluemix:public:iam-identity::a/REDACTED::serviceid:ServiceId-REDACTED",
  "resource_instance_id": "crn:v1:bluemix:public:cloud-object-storage:global:a/REDACTED:REDACTED::"
}

If I try to run a simple query, it results in a JS error
var bucketName = "my-bucket-name";
var cos = new ibm.S3({});

cos.listObjectsV2({
    Bucket: bucketName
}, (...args) => {
    console.log(args)
})

/Users/nec/ibm/cos-test/node_modules/ibm-cos-sdk/lib/config.js:388
    if (this.credentials.accessKeyId || this.credentials.tokenManager) {
                         ^

TypeError: Cannot read property 'accessKeyId' of null
    at Config.update (/Users/nec/ibm/cos-test/node_modules/ibm-cos-sdk/lib/config.js:388:26)
    at features.constructor.loadServiceClass (/Users/nec/ibm/cos-test/node_modules/ibm-cos-sdk/lib/service.js:78:14)
    at features.constructor.Service [as constructor] (/Users/nec/ibm/cos-test/node_modules/ibm-cos-sdk/lib/service.js:27:29)
    at new features.constructor (/Users/nec/ibm/cos-test/node_modules/ibm-cos-sdk/lib/util.js:624:24)
    at Object.<anonymous> (/Users/nec/ibm/cos-test/index.js:37:11)
    at Module._compile (internal/modules/cjs/loader.js:1158:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
    at Module.load (internal/modules/cjs/loader.js:1002:32)
    at Function.Module._load (internal/modules/cjs/loader.js:901:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)

I was hitting something similar (using version 1.7.0). I'm not using ~/.bluemix/cos_credentials like the docs say, I'm instead loading credentials and configuration via a config.js file in my app and the values come from environment variables. I was getting the same error until I actually had the credentials set in the environment.
Reading the docs on https://ibm.github.io/ibm-cos-sdk-js/AWS/Credentials.html it says:

Note that this class typically does not need to be constructed manually, as the AWS.Config and AWS.Service classes both accept simple options hashes with the three keys. These structures will be converted into Credentials objects automatically.

So I guess part of the bug is it fails to find the credentials so the Credentials object doesn't get created and then eventually there is a null TypeError. Why it's not finding ~/.bluemix/cos_credentials like the docs say to use, I don't know, but if it doesn't find credentials it should also avoid a TypeError and give a better error message.

We are looking into this issue.  It is being tracked as a defect internally.

I have the same problem, but it runs on my local , but not in Openshift on cloud (same issue as above). it's not even json, it's a standard js object

ps if it might help ::  i changed accessKeyId to apiKeyId and it worked
just those 3 i needed
apiKeyId
endpoint
serviceInstanceId

Since we are tracking this issue internally, we plan to close this issue in one week.

authors: huineng mriedem necccc sandersrIBM

repo: IBM/ibm-cos-sdk-js


text:
Unable to perform 'asset deployment details' in AI.ipynb

Working through  ' Bind Machine Learning engines '
All APIs (sagemaker and COS) are working.. i was almost there...
This does not work:
asset_deployment_details = wos_client.service_providers.list_assets(data_mart_id=data_mart_id, service_provider_id=service_provider_id).result

Here is my existing data_mart_id and metadata

Also -- is there any chance you know how to do this on the web interface versus in a notebook?  I am a Brand Tech Seller with IBM and looking to put together a demo..

source: gharchive/issue

license_type: permissive

license_source: github-api


text:
Issue 422 support jpg format

user can choose jpg as an output of the connectivity graph
a dot file is created, and converted to dot file

Also need to update README.md. Maybe mention there that for a jpeg format, Graphviz must be installed and that the directory of its dot executable must be in PATH.

done

source: gharchive/pull-request

repo: IBM/network-config-analyzer


text:
Add wrapper for dbstmt.asNumber()

idb-connector has support to return numeric data as a JS Number instead of a JS String when safe to do so.
This is done by calling dbstmt.asNumber
We should have wrapper for this in statement.js
Adding this new feature should be apart of a future 1.1.0 release.

has enableNumericTypeConversion been replaced with someting else?
i can not use it on the statement.

Nope, it's right here, but you probably can't use it because we haven't released a version with that change included yet.

authors: abmusse kadler larsandersson-ifpi

repo: IBM/nodejs-idb-pconnector

license: MIT


text:
feat(Enterprise Management): add service to project

PR summary
This PR adds the Enterprise Management service to the project.
Fixes: n/a
PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] New tests
[ ] Build/CI related changes
[ ] Documentation content changes
[ ] Other (please describe)

What is the current behavior?

What is the new behavior?

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

:tada: This PR is included in version 0.5.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

authors: ibm-devx-automation padamstx

repo: IBM/platform-services-go-sdk


text:
fix(IAM Identity): update report schema and fix ITs

PR summary
The report schema is slightly improvised, incorporating the changes into SDKs
PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

Current vs new behavior

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

:tada: This PR is included in version 0.24.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

authors: ibm-devx-sdk pooraniss-ibm

repo: IBM/platform-services-python-sdk


text:
zos_gather_facts sample playbook

add sample playbook, readme and supporting files for zos_gather_facts module

On comment I forgot to make was where do you plan to link it from the main project README,  i did not notice it linked under any topic , etc Basic Operations or concepts.

It is linked in the main README, the PR says the main README.md file wasn't viewed,

Looks good @ketankelkar thank you so much, congratulations on fact gathering work you did in ZOAU and Ansible and now this playbook!!!

authors: ddimatos ketankelkar


text:
HLASM sequence numbers

I have HLASM programs and macros that are supplied to customers.  In order to support ++USERMODs on these, they are distributed with sequence numbers.
I'd like to see an option to auto-generate and/or update line numbers the way ISPF does so.
My source is currently stored in a non-z/OS git repository if that makes a difference.
This may also affect COBOL but it has been a long time since I've dealt with that.

Ich bin derzeit nicht im Büro.
Während meiner Abwesenheit bitte bei Postkorb SCM-Admin melden!
Die Rückmeldung bezieht sich auf ein Mail mit folgendem Thema:
[IBM/zopeneditor-about] HLASM sequence numbers (Issue #191)

Gesendet (c) GRZ/RSG Linz 2021 Agent 'Abwesenheit'

Raiffeisen Software GmbH
Firmenbuchnummer: 86804d, Landesgericht Linz
UID: ATU 36961105
Der Austausch von Nachrichten mit dem oben angeführten Absender via E-Mail
dient ausschließlich Informationszwecken. Rechtsgeschäftliche Erklärungen
dürfen über dieses Medium nicht ausgetauscht werden.
Correspondence with above mentioned sender via e-mail is only for
information purposes. This medium is not to be used for the exchange of
legally-binding communications.

authors: kkrein mhammack

repo: IBM/zopeneditor-about


text:
cobol unreachable code

Hi,
Ho do I proceed to see it in VS Code ?
thank you,
L.

Hello @Ldspout. Thanks for your interest in our extension. Unreachable Code right now will be shown as an error in the Problems view. We have an open enhancement request open to turn it into a warning as well as make it configurable (i.e. allow users to switch it off).
Open it via the menu View > Problems. There is also an icon in the status bar showing you the counts. You can click on that as well. Then click on any entry in the list to jump to the offending line.

Hi,
thank you for your quick feeback,
I've tested on a -very old- cobol source. Does it work with cobol free format ?
Does it work with big source bases ?
for an example,
GO TO TT-CLAUSES.
ESSAI-CODE-MORT.
MOVE CONT-TX-APPEL TO CONT-TYPE-CONTRAT.
TT-CLAUSES.
MOVE 0 TO I.
MOVE ZEROES TO AIG-CLAUSES.
doesn't print any unreachable error on the "ESSAI-CODE-MORT"
Are there extensions who might cause this ?
thank you,
all the best,
Loïc
----- Mail original -----

De: "Peter Haumer" notifications@github.com
À: "IBM/zopeneditor-about" zopeneditor-about@noreply.github.com
Cc: "Ldspout" sputnikbar@free.fr, "Mention"
mention@noreply.github.com
Envoyé: Lundi 16 Septembre 2019 16:10:27
Objet: Re: [IBM/zopeneditor-about] cobol unreachable code (#7)

Hello @Ldspout . Thanks for your interest in our extension.
Unreachable Code right now will be shown as an error in the Problems
view. We have an open enhancement request open to turn it into a
warning as well as make it configurable (i.e. allow users to switch
it off).
Open it via the menu View > Problems. There is also an icon in the
status bar showing you the counts. You can click on that as well.
Then click on any entry in the list to jump to the offending line.
image
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub , or mute the thread
.

Hello. Not sure what you mean be free format. We support IBM Enterprise COBOL only. But, when I paste in your code I do see Unreachable Code errors. If you so not see any errors at all, such as syntax, perhaps the extension is not correctly installed. Did you check the section on configuring Java?

We found a case where there could be a problem with showing this error. We are investigating..

Would this also be the case with showing any errors?
I have the syntax highlighting; outlines; references look-ups; hovers; external copybook includes.
But no systax etc errors. (ie nothing in problems, or Output view).
User environment variables
JAVA_HOME in  is pointing to JDK  1.8.0_144 (64-bit)
PATH includes %JAVA_HOME%\bin
System Environment variables are being picked up first and pointing to 1.8.0_73 ...assumed JRE.
C:\Users\n089338\jdk\bin>java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

C:\Users\n089338\jdk\bin>cd ..

C:\Users\n089338\jdk>java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) Client VM (build 25.73-b02, mixed mode)

C:\Users\n089338\jdk>where java
C:\ProgramData\Oracle\Java\javapath\java.exe
C:\Users\n089338\jdk\bin\java.exe

@Morridt do you have a small sample program you can share here where this can be reproduced?

yep..Stripped this one back to bare bones checking along the way.  And as soon as I got rid of the EJECT statements things started working.
regards.... Darren

This issue was fixed in version 0.4.1 now available on the VS Code Marketplace.

authors: Ldspout Morridt phaumer


text:
Set the HOME env variable for DPDK.  When Streams is run as a system …

…service, this value is not properly set. Changed by David Engebretsen.

Can we get this pull request merged?  It is required to work around a bug in the Streams platform when it is run as a system service.

OK. To be clear, the DPDK operators themselves don't need to run as system services, right? At least in my experience on the 'splanet02' machine, when I configured a Linux group with the proper permissions following Dave's instructions, they run with e1000 device drivers as ordinary user programs.

authors: Tom-Tran ejpring engebret

license_source: bigquery


text:
fix: mark before reset to initialize mark position ICIJ/datashare#1135

Goal
This PR aims to fix the first error stated in this issue.
Explanation
In the previous PR I assumed that the error was due to the InputStreams which didn't support marks. In fact this error can even be raised on streams that support marks. In this PR, I propose to mark the position before resetting it.

I approve the change as I don't see how it would create more harm than the status quo.
But I don't get why the unit test that we added is not showing the issue.

authors: bamthomas mvanzalu

repo: ICIJ/extract

license: mit


text:
Erlangshen-Roberta-110M-NLI 请问是用了哪些公开的数据集fine-tune?

huggingface上的描述：
模型信息 Model Information
基于chinese-roberta-wwm-ext-base，我们在收集的4个中文领域的NLI（自然语言推理）数据集，总计1014787个样本上微调了一个NLI版本。
请问一下能分享用的是哪几个数据集吗？

哈喽，你好，我们收集的数据集有：snli，cmnli，ocnli，xnli

authors: chinaids suolyer

repo: IDEA-CCNL/Fengshenbang-LM


text:
Weights Available

Hi! Great work! Do you plan to release the models on HF? anytime soon? Thanks.

Hello, thanks for your attention to our work.
As we are exploring commercialization opportunities, we don't yet have a plan to release the model. But we are open to other ways for collaboration. Please let us know if you have any ideas or suggestions.

@rentainhe
Hi, thanks for the great work. Would you be open to sharing weights for paper collaborations, or are you only pursuing commercial projects at the moment?

authors: PardisTaghavi rentainhe sarapieri


text:
🛑 Org Software is down

In 9bcb64b, Org Software (https://snapmaker.com/snapmaker-luban) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Org Software is back up in fd76238.

repo: IDKHTS/upptime-demo


text:
🛑 Org Snapmaker 2 is down

In ce03aa7, Org Snapmaker 2 (https://snapmaker.com/snapmaker-2) was down:

HTTP code: 502
Response time: 2 ms

Resolved: Org Snapmaker 2 is back up in 43d53fb.


text:
SoftReLU

作者您好，你们的工作非常令人激动，但是你们文章中写道，提出了一种新的激活函数SoftReLU,但是我没有在你们的代码中发现有使用SoftReLU,希望能得到您的解答

因为并没有用SoftReLU，提出来只是为了做消融学习的，用来解释GELU效果不好的两个可能原因。

因为并没有用SoftReLU，提出来只是为了做消融学习的，用来解释GELU效果不好的两个可能原因。

感谢大佬的及时回复！

这里我还是给出消融用的代码
class SoftReLU(nn.Module):
	def __init__(self, alpha=0.1):
		super().__init__()
		self.alpha = alpha * 2
		self.a2 = self.alpha ** 2

	def forward(self, x):
		x = (x + torch.sqrt(x * x + self.a2) - self.alpha) / 2
		return x

其实在RESIDE-6K实验设置下，SoftReLU要比ReLU效果稍好，可能是因为零点处梯度连续带来的收益。
如果真要使用，尝试alpha设置地小一点，比如0.01什么的。

authors: IDKiro chenjiachengzzz

repo: IDKiro/DehazeFormer


text:
🛑 IDR 2858266 is down

In f85f7cd, IDR 2858266 (https://idr.openmicroscopy.org/webclient/?show=image-2858266) was down:

HTTP code: 0
Response time: 0 ms

Resolved: IDR 2858266 is back up in ad610da.

repo: IDR/upptime


text:
Add tags script

Reviewer: @suzinyou
Estimate: 30mins

Ticket
Fixes:
Description
Goal
The goal of this PR is to add tags to the add content scripts.
Changes

Update script with add tags logic

How has this been tested?
By testing the script on dummy tags.
Checklist
Fill with x for completed.

[x] My code follows the style guidelines of this project
[x] I have reviewed my own code to ensure good quality
[x] I have tested the functionality of my code to ensure it works as intended
[x] I have resolved merge conflicts
[x] I have updated the scripts in scripts/

I pushed 1 commit to remove the language argument from the script, since we will be removing it!

repo: IDinsight/aaq-core


text:
Updated phone field to check for valid phone numbers. Requestee phone can be empty.

Issue Reference
This PR addresses the Issue : Fixes #495  #491
Stores international number
Max length 15
Uses established library
Updates all phone fields, except for requestee as they may be stressed and may not worry about numbers.
Please, describe what the PR does, the changes you have made.
Updated the phone field to an established library based on https://github.com/stefanfoulis/django-phonenumber-field.
Accepts now phone numbers in format +911234567890. Does internal checking on its validity.
Removed number check
Added the installed application in requirements.txt
Added the installed application to INSTALLED_APPS
You will be required to do
pip install django-phonenumber-field
python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py runserver

@ssat335 Changes are Ok (y). Please fix the Conflicts

Will do in 4 hrs time.
On Sat, 18 Aug 2018, 4:05 PM Rigin Oommen, notifications@github.com wrote:

@ssat335 https://github.com/ssat335 Changes are Ok (y). Please fix the
Conflicts
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IEEEKeralaSection/rescuekerala/pull/507#issuecomment-414030574,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANnxBkhz0ETKMBG63SL-X7SVsj5o63NNks5uR5KbgaJpZM4WCabU
.

I think in your form clean methods, you can allow both standard format and in case it is a 10 digit number, it can prepend '+91' to it before passing it to the model.

std codes for including in regex.. source (https://kerala.gov.in/std-codes)
4864|4734|4894|4922|477|4891|4893|470|496|4890|495|497|4899|484|480|4897|4895|4936|4997|4828|476|4994|4896|4898|4923|481|4885|4935|483|4924|479|4892|4865|485|4728|4868|4931|4822|491|468|4985|4869|4933|475|474|4735|478|4926|4982|490|471|4862|494|469|487|4998|4884|4829|

@ferricfury See #657 with added support for STD landline numbers.

stale pull request, hence closing

repo: IEEEKeralaSection/rescuekerala


text:
Arduino Needs to be set up so the IEEE Etch-a-Sketch can be tested for both motors

Mark fixed the rig so it can run both motors to the etch-a-sketch set up; however, he can't validate both motors at the same time for testing purposes, so if anyone can rig the arduino to run both motors at the same time, we can get to testing / start the software coding for this component of the competition!
@psychomugs @whiteskulleton

This sketch draws IEEE as a diagonal:
https://gist.github.com/psychomugs/4b448301c15ab0e39627
This sketch draws IEEE inline. I personally do not prefer this method because the letters have a greater likelihood of interfering with each other, whereas that is almost impossible when drawing diagonally:
https://gist.github.com/psychomugs/9c41163290fde3af6b0c


text:
Integrated CP-ITI-1174

Integrated CP-ITI-1174 in the AS4 supplement

I added one missed edit in ITI-55.  I also integrated CP-ITI-1154

authors: lynnfel mascanc

repo: IHE/IT-Infrastructure


text:
Show tabbed structure panel with toc, text, (layers)

"… select which transcriptions and/or translations and/or commentaries to view with the image."

Can this be closed?

authors: aeschylus sdellis

repo: IIIF/mirador


text:
不想使用VUE，如何实现跟ASPX.NET 一样的模板文件？

比如我有一个头文件header.html,  footer.html， 已经网页正文的内容Body1.html,Body2.html....
header.html 文件的内容有些内容是动态生成的。
当客户访问 /index.html 的时候， 我需要根据实际情况生成header.html， 然后拼装 Body1.html 及 footer.html
当客户访问 /order.html 的时候， 我需要根据实际情况生成header.html， 然后拼装 Body2.html 及 footer.html
.....
请问能告诉我一下大概的使用方法吗？如果有简单的函数代码就更好了。
谢谢。

可以在action返回自定义html的IResult然后自己用ajax处理，如果想要服务器模板，那就要自己扩展支持Razor的IResult

有相关的文档或者例子吗？感谢

谢谢。我学习一下

repo: IKende/FastHttpApi


text:
Confused how to run on MacOS

Hi, fantastic project! I followed installation steps for MacOS, all went smoothly, but now stuck with two things:

Hotkeys

There is no 'default' hotkeys for MacOS in config.py comments section.
Defining hotkeys is often confusing topic in other apps (is it cmd or CMD, 'super'-key etc), but then here is a line in config.py that says:
# On Mac/Linux, a hotkey cannot overlap another (e.g. cmd+e and cmd+shift+e)

What does it mean? Should I check system hotkeys and make sure that chosen hotkey is not overlapping?
I added 'cmd-shift-m', but nothing happens. I don't know if something is wrong with hotkey or it's another issue. (That's why it would be cool to have default hotkeys)

I see a line in the output, which probably explains why hotkeys is not working.

This process is not trusted! Input event monitoring will not be possible until it is added to accessibility clients.

The concept of adding apps to the trusted list is not unusual on MacOS, but quick search on Readme reveals nothing about it. How do I do it? Should go to settings and add that bash script run_AlwaysReddy.sh to the list? Or it's something else completely?
Bottom line, it's a bit frustrating how smoothly the installation went, and how it's impossible to use the app out of the box because of the main UI promise (just hotkeys) needs some non-documented configuration first.

Anyone using this project on MacOS could share their configuration and setup perhaps?

Figured out second issue - need to add terminal to the Accessibility list in Settings->Privacy (in my case it's 'Warp' terminal)

Next, we need to add terminal to the Input Monitoring too in Settings:

@divan can you run AlwaysReddy with this setup? I wanted to try this out, but keep getting stuck after i told anything.

My Configuration is local lm studio and it worked only one time but without my told-text

It seems like its getting stuck during the fasterWhisper run, when i try to install via setup.py the 2nd option TransformerWhisper it installs nothing. I think the project is a bit broken. Would love to hear back from you.

I tried AlwaysReddy several months ago and ran into problems (I have a M1 Mac) but then found https://github.com/DissonanceTK/MacReddy which is a fork.  It works great, but has not been updated in a while.  So at this point I may be missing new features or functionality.  Regarding hotkeys, changed one line in config.py to RECORD_HOTKEY = 'alt+cmd' since that is easier to type.  Hope this helps a bit.

authors: divan ghNico scalar27

repo: ILikeAI/AlwaysReddy


text:
What was the new reference?

Maybe make this a multiple-choice question instead with the options:

reference electrode standardization technique (REST)
average reference (AR)
linked-mastoids/ears reference (LM)
bipolar reference
the Laplacian reference

Options taken from https://link.springer.com/article/10.1007/s10548-019-00707-x

from https://github.com/Remi-Gau/artemis_checklist/issues/30

repo: INCF/artem-is


text:
conda

Install using conda

Done.
$ conda install -c ingeotec microtc

repo: INGEOTEC/microTC


text:
🛑 brievenalsbuit2.ivdnt.org is down

In 2d0ed38, brievenalsbuit2.ivdnt.org (https://brievenalsbuit2.ivdnt.org) was down:

HTTP code: 0
Response time: 0 ms

Resolved: brievenalsbuit2.ivdnt.org is back up in 5c2408c.

repo: INL/ivdnt-statusoverzicht


text:
🛑 neologismen.ivdnt.org is down

In 78ebe4e, neologismen.ivdnt.org (https://neologismen.ivdnt.org) was down:

HTTP code: 500
Response time: 753 ms

Resolved: neologismen.ivdnt.org is back up in 3696cf4.


text:
done!

Fixes #
Checklist

[ ] I have read the [Contribution Guide] and my PR follows them.
[ ] My branch is up-to-date with the master branch.
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)

[ ] All the functions created/modified in this PR contain relevant docstrings.

Short description of what this resolves:
Changes proposed in this pull request:

Hi @Nina029, Thanks for joining in.
Please follow the Pull Request template for your request to be considered.

repo: IOSD/SUIG-JS


text:
Add Travis Support

Travis support would be useful for continuous validation of new objects.

Added Travis.

repo: IPSO-Alliance/pub


text:
Add files via upload

Hey, a few points to keep in mind:

Always write CSS in a different file and link it to the HTML file (external CSS).
In some places (textarea tag in particular), you have written some inline styling, and at the same time written some styling in the <style> tag as well. It is always better to write the styles all together, and give some class to different elements as well.
It is generally a good idea to include a form element to wrap the form controls and provide a logical structure for the form. This can make it easier for users to understand the purpose of the form and for developers to style and manipulate the form elements.
You can try using table tag next time as well, to keep the form more structured.

Other than these, well done!

Thanks for your feedback


text:
Request for Enhancement of Installation Instructions

Dear @Zhenyi-Liu ,
I hope this message finds you well.
I am writing to express my appreciation for the software you have developed, which has been a valuable addition to my toolkit. However, I have encountered some challenges while attempting to install the program on my system. I believe that with a few enhancements to the installation guide, the process could be made significantly more user-friendly and efficient for all users.
I understand that creating and maintaining documentation can be time-consuming, but I believe that these improvements would greatly enhance the user experience and could potentially increase the adoption of your software.
Thank you for considering my suggestions. I am looking forward to seeing the updated installation guide and continuing to use your software.
Best regards,
Dapeng Feng

Thank you for the suggestion.
I agree with you that the system is not yet in good shape for easily sharing.  In fact, we are only at the stage where we have started to upload the shared data to the Stanford Digital Repository (they are having issues with the large data transfer).  And we have not yet made clear how to run the Docker containers locally (we normally run using a distributed model).
If you had any success at all, congratulations!  Do let us know specifically what you think we should do. I will try to make it easier to share for others in the future.  I will appreciate any suggestions.  It may take us some time, but I will put in the effort.

In the mean time, Dave Cardinal and I made a number of improvements that we hope will improve the experience.

I appreciate your valuable contributions and support in this matter.

authors: DapengFeng wandell

repo: ISET/isethdrsensor


text:
Documents name

The names in the documents model are incorrect.

Story Points: 2
See the discussion in Backend S2 W8
Powered by Parabol


text:
Scrollbar not present

Hi,
Thanks for this library!
On my Nexus 6 running Android 5.1.1 and my Nexus 7 (2103) running 6.01, I'm not seeing a scrollbar in my tableview.
Do I need to do something different or is this a bug?

Just checked the sample app on my Nexus 7: same thing.

Hi @ciskeboekelo,
thanks for this hint. Fact is, that the TableView is currently not showing a scrollbar at all. But you are right, maybe it is helpfull to have such an indicator, especially in TableViews with a large data set. I think this will be an upcomming feature. :)
Best regards,
Ingo

Ok, so it's not me then :-)
But then how come there is a scroll bar in the animated GIF in the readme?

I have no idea. There has been no change corresponding to that. It's still a standard ListView. But nevertheless there should be some possibility for the TableView to adapt this.

I found the cause of this issue and have created a PR with a fix.
If you agree with the fix, could you merge it and release a new version? Thanks!

Thanks you very much for your effort. I will do exactly that ;)

Have fun with the new release compile 'de.codecrafters.tableview:tableview:2.0.1' and thank you!

Works like a charm! Thanks for the quick update!


text:
🛑 red-circule.com is down

In 8f1507a, red-circule.com (https://red-circule.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: red-circule.com is back up in 33cfdbb.

repo: ITGlobal/upptime


text:
🛑 Website is down

In e1faec4, Website (https://pt.ivao.aero/portal) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Website is back up in d5ea12d after 838 days, 8 hours, 26 minutes.

repo: IVAO-Portugal/status-page


text:
🛑 API is down

In 17e10e4, API ($API_ENDPOINT) was down:

HTTP code: 500
Response time: 3380 ms

Resolved: API is back up in 25445c7 after 5 hours, 24 minutes.


text:
🛑 Website is down

In 98b67fd, Website (https://pt.ivao.aero/portal) was down:

HTTP code: 500
Response time: 1069 ms

Resolved: Website is back up in 65b54d9 after 2 minutes.


text:
🛑 API is down

In 1c17a44, API ($API_ENDPOINT) was down:

HTTP code: 0
Response time: 0 ms

Resolved: API is back up in 6a63163.


text:
Create 0000-01-02-IVes2021.md

Add IVes2021's file

Add IVes2021's file

Add IVes2021's file


text:
Add Contribute.md and CodeOfConduct.md

I checked various code of conduct files, and they had almost the same syntax. So I added the things you asked in the contributing.md file itself under the Important Rules section.
Please review the changes and give your feedback if anything is required to be altered.

Hey @IamMU , I did the requested changes. Please review the updated documents.

hi @IamMU, did the changes and added  in the clone command for the users to understand

repo: IamMU/Fancy-Print


text:
Remove cast

Check list

[ ] I wrote CHANGELOG.md if the pull request adds/modifies features.

Summary

I close this PR because the cost of memory copy is higher than expected.

repo: Idein/actfw-core


text:
oidc-client.js Signout (Yes another signout issue) -- Edge browser only.

I'm using:
IDS4 2.2.0
QuickStart UI with custom user store.
dotnet core 2.1
oidc-client.js 1.5.2-beta.1in a SPA
Implicit Flow
No external login.
No consent required.
In Chrome everything seems to work as expected. For the most part. More on that later.
In Edge (and maybe IE), when the user clicks the signout button, the SPA calls and awaits UserManager.signoutPopup(  ).
I watch the logout popup window open and navigate to OP.
On OP, AccountOptions::ShowLogoutPrompt is set to false
I can step through AccountController::Logout and watch HttpContext.SignOutAsync( ); get called.
The popup window pretty much immediately navigates to my post_logout_redirect_uri which is a separate static html page from my SPA.
The post_logout_redirect_uri page calls and awaits UserManager.signoutPopupCallback( false ).
By this point the awaited call to UserManager.signoutPopup will have returned to the SPA. Here, I call UserManager.removeUser() in the SPA. After that I will have either done a window.location.reload() or redirected the SPA router to the /login route -- depending on which iteration of trying things to get this to work I'm on. In both cases the SPA router middleware will detect that lack of a valid oidc-client user and starts the login popup.
Note that the first problem is that by this point the logout popup window should have, but doesn't close.
But here is where things go really wrong. And I should mention that up to now, I think I've implemented everything correctly. Further, we are still in the context of Edge here. After all the above, and starting the login popup again, I see login popup navigate to OP and immediately redirect to the popup_redirect_uri. And the user is now successfully logged in without having entered credentials. The SPA sees them as logged in. They can call the API without issue.
In chrome if I don't do a window.location.reload in the SPA after UserManager.signoutPopup(  ) returns, then the user stays logged in. Just like edge.
I'm desperate to get this working. Have I missed something simple? Or am I completely off-base with my implementation?
I know there have been many issues logged that seem to have the same problem, but I just don't see where I have done things wrong.

FYI, I just downloaded the samples from here: https://github.com/IdentityServer/IdentityServer4.Samples
and am trying run them against my IDS4 implementation. Works fine with the out of the box samples. But if I switch the sample over to use popup for both signin and signout, then Edge can login fine. But when I attempt to logout Edge throws this error:
SCRIPT5045: SCRIPT5045: Assignment to read-only properties is not allowed in strict mode
oidc-client.js (14358,10) which is this line in oidc-client.js:
    signoutPopup(args = {}) {
        Log.debug("UserManager.signinPopup");

        let url = args.post_logout_redirect_uri || this.settings.popup_post_logout_redirect_uri || this.settings.post_logout_redirect_uri;
        args.post_logout_redirect_uri = url; // <--- this line throws

This is the Logout in my IDS4 -- direct from the quickstart:
		[HttpPost]
		[ValidateAntiForgeryToken]
		public async Task<IActionResult> Logout( LogoutInputModel model )
		{
			// build a model so the logged out page knows what to display
			var vm = await BuildLoggedOutViewModelAsync( model.LogoutId );

			if ( User?.Identity.IsAuthenticated == true )
			{
				// delete local authentication cookie
				await HttpContext.SignOutAsync( );

				// raise the logout event
				await _events.RaiseAsync( new UserLogoutSuccessEvent( User.GetSubjectId( ), User.GetDisplayName( ) ) );
			}

			// check if we need to trigger sign-out at an upstream identity provider
			if ( vm.TriggerExternalSignout )
			{
				// build a return URL so the upstream provider will redirect back
				// to us after the user has logged out. this allows us to then
				// complete our single sign-out processing.
				string url = Url.Action( "Logout", new { logoutId = vm.LogoutId } );

				// this triggers a redirect to the external provider for sign-out
				return SignOut( new AuthenticationProperties { RedirectUri = url }, vm.ExternalAuthenticationScheme );
			}

			return View( "LoggedOut", vm );
		}

Reading this: http://docs.identityserver.io/en/release/topics/signout.html
Implies that if you call this:
await HttpContext.SignOutAsync( IdentityServerConstants.DefaultCookieAuthenticationScheme );
Then your client should be signed-out. But that is clearly not happening.

I've just tested with chrome, firefox IE11 and Edge. Edge is the only one that will not logout. Or, I should say that after logging out, going to login again immediately logs you in without prompting for creds. For all intents it may well be logging out, but might be trying to use old cookies again when hitting the login page after logout.

Is there any chance that someone could look into this? I currently have two login/logout UX for my application. One for Chrome/Firefox and one for Edge and IE which is forced to use popups. With Edge having a clear problem with logout.
I really don't think this is a problem with my implementation since everything works on the other three browsers. There is something in the oidc-client that Edge doesn't like.

What have you done to debug into the oidc-client library? Have you found anything that looks odd under Edge?
I will try to repo when I can.

I have debugged it some. But as you know the Edge debugger is wonky at best. For instance most of the time when I open the debugger I cannot even see my sources, so I cannot set breakpoints.

I tested on edge and I see the popup failing for both login and logout. The logic in the popup window wrapper in oidc-client is detecting that the window has been closed (when it has not), and thus stops its processing. Seems like a known issue: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/15030423/

Also, when the popup navigates back to the app's callback page, this happens:
PopupWindow.notifyOpener: no window.opener. Can't complete notification.
So something in edge severs the tie between the opener and the popup window when it navigates away.
What a difficult browser.

Marking this issue as a bug for now, but it's currently due to some change in how edge works.
So there's not much I can do at this point without a rewrite of how the popup window communicates back to the parent. Feel free to dig in and help with a design.

This is just a tangent remark and something to possibly think about for the future...
I'd love for the oidc-client.js library to not handle the UI/UX at all. Or at least provide a slightly lower level login api.
In any given app I have either bootstrap or jquery ui type dialogs that present with the theme of my app much better than a pop-up window does. And in the case of my highly styled SPA apps I really don't want to use pop-ups at all. And I especially don't want to use redirects due to the load times of SPA apps.
In the case where I show a bootstrap or jquery ui dialog one major plus would be that I could get a truly cross-browser modal box.  And in the case of a SPA component it would allow me to keep the SPA theme and keep the SPA loaded only once.
I think in both cases I could use an IFrame (inside the dialog or SPA component) to show the login page. And I might be able to get away with MutationObserver watching the iframe src to figure out when the post login/logout redirect happens. And at that point close the dialog/component and notify oidc-client.js of the close. The question then becomes how to get the user object and hand it back off to oidc-client.js.

I'd love for the oidc-client.js library to not handle the UI/UX at all. Or at least provide a slightly lower level login api.

In a sense, there already is. The OidcClient class provides you that. You would miss out on some of the session management features that the UserManager provides.
But as for using a bootstrap (or other style) modal -- that most likely won't work due to XFO issues. No sound minded login page would ever allow that, and so that's why I designed this library to use a popup.
It's a difficult (and seeming ever changing) challenge.

Is there really any difference between presenting an IFrame in a bootstrap modal vs. a pop-up window?

yes: click jacking

@brockallen sorry for the noob question, but considering:

my OP implementation is only for logging in to my company's client applications (and protecting our APIs).
no external providers
the OP and client applications are developed by us
Is click jacking an issue?

Is click jacking an issue?

I can't answer that in (nor should you accept any answer in) a github issue. You need to threat model it.

I found another confirmation of this being a bug in edge: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11324352/

@brockallen
Might as well close this. Though I still think the dispatchEvent API could could be used to solve the problem. If I knew how to do a pull request, I would try it out. But I'm still noob at the whole GitHub thing.

The other thing to look into -- Edge has odd behavior when it comes to websites running on localhost. Can you try it on a non-localhost host?

You can send a custom event with dispatchEvent. So something along the along the lines of "the pop-up is done please close me" being sent by the page in the the pop-up to the window.parent of the pop-up. dispatchEvent is supported by pretty much all browsers.
As for testing edge in non-localost environment. I believe I did deploy to my QA server and that's were the problem was discovered.

Hmm, ok, I'll see if I can experiment with that.

Have you tested Edge recently? I just did (the sames in this repo w/ IdentityServer) and the popup for signin and signout is working.

@brockallen thanks for the reply. I gave up on the pop-ups and am just using the standard redirects. Works well, cleared QA, no problems thus far. Though, for the redirects, I did have to move my individual redirect destination pages into folders and name them all index.html in order to fix the issue when not using trailing slashes in redirect URLs. I.e. safari/firefox dropping the hash when a url like: /logged-in.html instead of /logged-in/ for the sign-in redirect. When you use a url without trialing slash you get the "No state in response" error due to the hash being dropped.
...sorry, I wasn't clear it's late here and I should have been in bed an hour ago. ;-)

I ran into a similar issue: After calling signoutRedirect, on the subsequent signinRedirect Edge would go through like it's already authenticated.  I could not reproduce this in Chrome or IE11.
I resolved it by changing my signin call to:
this.userManager.signinRedirect({ ...this.getSigninSettings(), prompt: "select_account" });

This got to the desired behavior: the user is prompted with the login screen.  I'm not sure if this is merely avoiding a deeper issue of Edge retaining the authentication session in some way, though.

@zamzowd hmm.. that doesn't give me a lot of confidence in edge working properly.

On some attempts today, it looks like this issue is no longer occurring on my Edge browser.  After signing out, subsequent signins correctly wait for user credentials rather than re-using the previous session, even if I don't specify prompt=select-account.
My browser version is Microsoft Edge 42.17134.1.0

Tested once again today and it seems to be working.

Tested once again today and it seems to be working.

authors: brockallen cosmoKenney zamzowd

repo: IdentityModel/oidc-client-js


text:
AccessTokenValidation - HTTPClient Socket connection timeouts

I am currently using IdentityServer3.AccessTokenValidation for authenticating my WebApi with IdentityServer3 2.6.0.  In the regular Load, I dont see any issues however when the load is heavy and I keep getting socket connection errors (when Access Token Validation is trying to connect to Identity Server 3 using HttpClient)
Upon further investigating Access Token Validation code, I found that a new instance of HttpClient is initiated for every call and this is causing to open a new TCP connection in the server and even this client is never disposed.  As per windows, even if the HttpClient is disposed it takes 240 sec to remove the TCP Connection and in between we are getting http client connection pool threshold issues which is causing socket timeouts.  This issues also exists in IdentityModel.client where a new client is created.
Does any body faced similar kind of problem.  If so please share your thoughts.
Here is the link which explains about the HttpClient issue:
https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/

This issue is only applicable for OAuth2Client and once I have used my own client to connect to Idp, the socket issue is resolved.  Hence closing this issue.


text:
Error : Even after successful user validation "Showing login: User is not authenticated"

Question / Steps to reproduce the problem
I have tried to follow the Identity Server tutorial here, but even after successful user validation, i am continuously getting "Showing login: User is not authenticated".
Because of that user is actually not redirecting back to my MVC application.
Minimal working example
Identity Startup
// Copyright (c) Brock Allen & Dominick Baier. All rights reserved.
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.

using IdentityServerAspNetIdentity.Data;
using IdentityServerAspNetIdentity.Models;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;

namespace IdentityServerAspNetIdentity
{
    public class Startup
    {
        public IConfiguration Configuration { get; }
        public IHostingEnvironment Environment { get; }

        public Startup(IConfiguration configuration, IHostingEnvironment environment)
        {
            Configuration = configuration;
            Environment = environment;
        }

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));

            services.AddIdentity<ApplicationUser, IdentityRole>()
                .AddEntityFrameworkStores<ApplicationDbContext>()
                .AddDefaultTokenProviders();

            services.AddMvc().SetCompatibilityVersion(Microsoft.AspNetCore.Mvc.CompatibilityVersion.Version_2_1);

            services.Configure<IISOptions>(iis =>
            {
                iis.AuthenticationDisplayName = "Windows";
                iis.AutomaticAuthentication = false;
            });

            var builder = services.AddIdentityServer(options =>
            {
                options.Events.RaiseErrorEvents = true;
                options.Events.RaiseInformationEvents = true;
                options.Events.RaiseFailureEvents = true;
                options.Events.RaiseSuccessEvents = true;
            })
                .AddInMemoryIdentityResources(Config.GetIdentityResources())
                .AddInMemoryApiResources(Config.GetApis())
                .AddInMemoryClients(Config.GetClients())
                .AddAspNetIdentity<ApplicationUser>();

            if (Environment.IsDevelopment())
            {
                builder.AddDeveloperSigningCredential();
            }
            else
            {
                throw new Exception("need to configure key material");
            }

            services.AddAuthentication()
                .AddGoogle(options =>
                {
                    // register your IdentityServer with Google at https://console.developers.google.com
                    // enable the Google+ API
                    // set the redirect URI to http://localhost:5000/signin-google
                    options.ClientId = "copy client ID from Google here";
                    options.ClientSecret = "copy client secret from Google here";
                });
        }

        public void Configure(IApplicationBuilder app)
        {
            if (Environment.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseDatabaseErrorPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();
            app.UseIdentityServer();
            app.UseMvcWithDefaultRoute();
        }
    }
}```

Identity Config

using IdentityServer4.Models;
using System.Collections.Generic;

namespace IdentityServerAspNetIdentity
{
    public static class Config
    {
        public static IEnumerable<IdentityResource> GetIdentityResources()
        {
            return new IdentityResource[]
            {
                new IdentityResources.OpenId(),
                new IdentityResources.Profile(),
            };
        }

        public static IEnumerable<ApiResource> GetApis()
        {
            return new ApiResource[]
            {
                new ApiResource("api1", "My API #1")
            };
        }

        public static IEnumerable<Client> GetClients()
        {
            return new[]
            {
                // client credentials flow client
                new Client
                {
                    ClientId = "client",
                    ClientName = "Client Credentials Client",

                    AllowedGrantTypes = GrantTypes.ClientCredentials,
                    ClientSecrets = { new Secret("secret".Sha256()) },

                    AllowedScopes = { "api1" }
                },

                // MVC client using hybrid flow
                new Client
                {
                    ClientId = "mvc",
                    ClientName = "MVC Client",
                    AllowedGrantTypes = GrantTypes.Hybrid,

                    ClientSecrets =
                    {
                        new Secret("secret".Sha256())
                    },

                    RedirectUris           = { "http://localhost:5002/signin-oidc" },
                    PostLogoutRedirectUris = { "http://localhost:5002/signout-callback-oidc" },

                    AllowedScopes =
                    {
                        "openid", "profile", "api1"
                    },
                    AllowOfflineAccess = true,
                },

                // SPA client using implicit flow
                new Client
                {
                    ClientId = "spa",
                    ClientName = "SPA Client",
                    ClientUri = "http://identityserver.io",

                    AllowedGrantTypes = GrantTypes.Implicit,
                    AllowAccessTokensViaBrowser = true,

                    RedirectUris =
                    {
                        "http://localhost:5002/index.html",
                        "http://localhost:5002/callback.html",
                        "http://localhost:5002/silent.html",
                        "http://localhost:5002/popup.html",
                    },

                    PostLogoutRedirectUris = { "http://localhost:5002/index.html" },
                    AllowedCorsOrigins = { "http://localhost:5002" },

                    AllowedScopes = { "openid", "profile", "api1" }
                }
            };
        }
    }
}

MVC Startup

using System;
using System.Collections.Generic;
using System.IdentityModel.Tokens.Jwt;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.IdentityModel.Protocols.OpenIdConnect;

namespace MvcClient
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();

            services.AddAuthentication(options =>
            {
                options.DefaultScheme = "Cookies";
                options.DefaultChallengeScheme = "oidc";
            })
                .AddCookie("Cookies")
                .AddOpenIdConnect("oidc", options =>
                {
                    options.SignInScheme = "Cookies";

                    options.Authority = "http://localhost:5000";
                    options.RequireHttpsMetadata = false;

                    options.ClientId = "mvc";
                    options.ClientSecret = "secret";
                    options.ResponseType = "code id_token";

                    options.SaveTokens = true;
                    options.GetClaimsFromUserInfoEndpoint = true;
                    options.Scope.Add("api1");
                });
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseAuthentication();

            app.UseStaticFiles();
            app.UseMvcWithDefaultRoute();
        }
    }
}

Relevant parts of the log file
[14:29:29 Information] IdentityServer4.Startup
You are using the in-memory version of the persisted grant store. This will store consent decisions, authorization codes, refresh and reference tokens in memory only. If you are using any of those features in production, you want to switch to a different store implementation.

[14:29:29 Information] IdentityServer4.Startup
Using the default authentication scheme Identity.Application for IdentityServer

[14:29:29 Debug] IdentityServer4.Startup
Using Identity.Application as default ASP.NET Core scheme for authentication

[14:29:29 Debug] IdentityServer4.Startup
Using Identity.External as default ASP.NET Core scheme for sign-in

[14:29:29 Debug] IdentityServer4.Startup
Using Identity.External as default ASP.NET Core scheme for sign-out

[14:29:29 Debug] IdentityServer4.Startup
Using Identity.Application as default ASP.NET Core scheme for challenge

[14:29:29 Debug] IdentityServer4.Startup
Using Identity.Application as default ASP.NET Core scheme for forbid

Hosting environment: Development
Content root path: D:\Projects\Others\Samples\Identity Server\5. Identity- EF and App Identity\IdentityServerAspNetIdentity
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
[14:29:31 Debug] IdentityServer4.Startup
Login Url: /Account/Login

[14:29:31 Debug] IdentityServer4.Startup
Login Return Url Parameter: ReturnUrl

[14:29:31 Debug] IdentityServer4.Startup
Logout Url: /Account/Logout

[14:29:31 Debug] IdentityServer4.Startup
ConsentUrl Url: /consent

[14:29:31 Debug] IdentityServer4.Startup
Consent Return Url Parameter: returnUrl

[14:29:31 Debug] IdentityServer4.Startup
Error Url: /home/error

[14:29:31 Debug] IdentityServer4.Startup
Error Id Parameter: errorId

[14:29:42 Debug] IdentityServer4.Hosting.EndpointRouter
Request path /.well-known/openid-configuration matched to endpoint type Discovery

[14:29:42 Debug] IdentityServer4.Hosting.EndpointRouter
Endpoint enabled: Discovery, successfully created handler: IdentityServer4.Endpoints.DiscoveryEndpoint

[14:29:42 Information] IdentityServer4.Hosting.IdentityServerMiddleware
Invoking IdentityServer endpoint: IdentityServer4.Endpoints.DiscoveryEndpoint for /.well-known/openid-configuration

[14:29:42 Debug] IdentityServer4.Endpoints.DiscoveryEndpoint
Start discovery request

[14:29:42 Debug] IdentityServer4.Hosting.EndpointRouter
Request path /.well-known/openid-configuration/jwks matched to endpoint type Discovery

[14:29:42 Debug] IdentityServer4.Hosting.EndpointRouter
Endpoint enabled: Discovery, successfully created handler: IdentityServer4.Endpoints.DiscoveryKeyEndpoint

[14:29:42 Information] IdentityServer4.Hosting.IdentityServerMiddleware
Invoking IdentityServer endpoint: IdentityServer4.Endpoints.DiscoveryKeyEndpoint for /.well-known/openid-configuration/jwks

[14:29:42 Debug] IdentityServer4.Endpoints.DiscoveryKeyEndpoint
Start key discovery request

[14:29:42 Debug] IdentityServer4.Hosting.EndpointRouter
Request path /connect/authorize matched to endpoint type Authorize

[14:29:42 Debug] IdentityServer4.Hosting.EndpointRouter
Endpoint enabled: Authorize, successfully created handler: IdentityServer4.Endpoints.AuthorizeEndpoint

[14:29:42 Information] IdentityServer4.Hosting.IdentityServerMiddleware
Invoking IdentityServer endpoint: IdentityServer4.Endpoints.AuthorizeEndpoint for /connect/authorize

[14:29:42 Debug] IdentityServer4.Endpoints.AuthorizeEndpoint
Start authorize request

[14:29:42 Debug] IdentityServer4.Endpoints.AuthorizeEndpoint
No user present in authorize request

[14:29:42 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Start authorize request protocol validation

[14:29:42 Debug] IdentityServer4.Stores.ValidatingClientStore
client configuration validation for client mvc succeeded.

[14:29:42 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Checking for PKCE parameters

[14:29:42 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
No PKCE used.

[14:29:42 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Calling into custom validator: IdentityServer4.Validation.DefaultCustomAuthorizeRequestValidator

[14:29:42 Information] IdentityServer4.Endpoints.AuthorizeEndpoint
ValidatedAuthorizeRequest
{"ClientId": "mvc", "ClientName": "MVC Client", "RedirectUri": "http://localhost:5002/signin-oidc", "AllowedRedirectUris": ["http://localhost:5002/signin-oidc"], "SubjectId": "anonymous", "ResponseType": "code id_token", "ResponseMode": "form_post", "GrantType": "hybrid", "RequestedScopes": "openid profile api1", "State": "CfDJ8II-qsirBDZBoO3je8L7rBTETMepa_2sml4RVz5SvSy6IaDJ8zCUFiHZDbbub7cu-wG_jqT8HNc8v94_ITLA23f3DXjjTPydP-Z8W-BquRCyEITJP-EfMAoBY-QvzTSPAb1pqVBrigisCFS5nPP2mrpmGhkziBgwyhLmenp2AQt3eVB_rpaVLEnQCccQ7Hqkd5nO6urcX2ETDOYSX6GmywSqw4qYiF_MHwn-JYcc8PnJ53EAfZ05UNLK-ILEfUCEtKsvDRh-E9toJRyvuZ9b48RFliEFZlZVsWwMeyHX7J11Pw4k1aGtqH663Sp5AgrF4w", "UiLocales": null, "Nonce": "636942851828024718.MWE0YTE1NDEtODc5NC00YmU2LWI4NTctMWU0ZmU4NGE1MTlhOGQ5MmMyYjgtM2M0YS00NzUxLTk2MjYtZjY4ZmJlNDAyZmMy", "AuthenticationContextReferenceClasses": null, "DisplayMode": null, "PromptMode": null, "MaxAge": null, "LoginHint": null, "SessionId": null, "Raw": {"client_id": "mvc", "redirect_uri": "http://localhost:5002/signin-oidc", "response_type": "code id_token", "scope": "openid profile api1", "response_mode": "form_post", "nonce": "636942851828024718.MWE0YTE1NDEtODc5NC00YmU2LWI4NTctMWU0ZmU4NGE1MTlhOGQ5MmMyYjgtM2M0YS00NzUxLTk2MjYtZjY4ZmJlNDAyZmMy", "state": "CfDJ8II-qsirBDZBoO3je8L7rBTETMepa_2sml4RVz5SvSy6IaDJ8zCUFiHZDbbub7cu-wG_jqT8HNc8v94_ITLA23f3DXjjTPydP-Z8W-BquRCyEITJP-EfMAoBY-QvzTSPAb1pqVBrigisCFS5nPP2mrpmGhkziBgwyhLmenp2AQt3eVB_rpaVLEnQCccQ7Hqkd5nO6urcX2ETDOYSX6GmywSqw4qYiF_MHwn-JYcc8PnJ53EAfZ05UNLK-ILEfUCEtKsvDRh-E9toJRyvuZ9b48RFliEFZlZVsWwMeyHX7J11Pw4k1aGtqH663Sp5AgrF4w", "x-client-SKU": "ID_NETSTANDARD2_0", "x-client-ver": "5.3.0.0"}, "$type": "AuthorizeRequestValidationLog"}

[14:29:43 Information] IdentityServer4.ResponseHandling.AuthorizeInteractionResponseGenerator
Showing login: User is not authenticated

[14:29:43 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Start authorize request protocol validation

[14:29:43 Debug] IdentityServer4.Stores.ValidatingClientStore
client configuration validation for client mvc succeeded.

[14:29:43 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Checking for PKCE parameters

[14:29:43 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
No PKCE used.

[14:29:43 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Calling into custom validator: IdentityServer4.Validation.DefaultCustomAuthorizeRequestValidator

[14:29:43 Debug] IdentityServer4.Stores.ValidatingClientStore
client configuration validation for client mvc succeeded.

[14:29:58 Debug] IdentityServer4.Hosting.CorsPolicyProvider
CORS request made for path: /Account/Login from origin: null but was ignored because path was not for an allowed IdentityServer CORS endpoint

[14:29:58 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Start authorize request protocol validation

[14:29:59 Debug] IdentityServer4.Stores.ValidatingClientStore
client configuration validation for client mvc succeeded.

[14:29:59 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Checking for PKCE parameters

[14:29:59 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
No PKCE used.

[14:29:59 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Calling into custom validator: IdentityServer4.Validation.DefaultCustomAuthorizeRequestValidator

[14:29:59 Debug] IdentityServer4.Hosting.IdentityServerAuthenticationService
Augmenting SignInContext

[14:29:59 Debug] IdentityServer4.Hosting.IdentityServerAuthenticationService
Adding idp claim with value: local

[14:29:59 Debug] IdentityServer4.Hosting.IdentityServerAuthenticationService
Adding amr claim with value: pwd

[14:29:59 Debug] IdentityServer4.Hosting.IdentityServerAuthenticationService
Adding auth_time claim with value: 1558688399

[14:29:59 Information] Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler
AuthenticationScheme: Identity.Application signed in.

[14:29:59 Information] IdentityServer4.Events.DefaultEventService
{"Username": "alice", "Provider": null, "ProviderUserId": null, "SubjectId": "93037125-45cf-4e7e-a178-10dd33188ca3", "DisplayName": "alice", "Endpoint": "UI", "Category": "Authentication", "Name": "User Login Success", "EventType": "Success", "Id": 1000, "Message": null, "ActivityId": "0HLN04OGUSL5S:00000004", "TimeStamp": "2019-05-24T08:59:59.0000000Z", "ProcessId": 23624, "LocalIpAddress": "::1:5000", "RemoteIpAddress": "::1", "$type": "UserLoginSuccessEvent"}

[14:29:59 Debug] IdentityServer4.Stores.ValidatingClientStore
client configuration validation for client mvc succeeded.

[14:29:59 Debug] IdentityServer4.Hosting.EndpointRouter
Request path /connect/authorize/callback matched to endpoint type Authorize

[14:29:59 Debug] IdentityServer4.Hosting.EndpointRouter
Endpoint enabled: Authorize, successfully created handler: IdentityServer4.Endpoints.AuthorizeCallbackEndpoint

[14:29:59 Information] IdentityServer4.Hosting.IdentityServerMiddleware
Invoking IdentityServer endpoint: IdentityServer4.Endpoints.AuthorizeCallbackEndpoint for /connect/authorize/callback

[14:29:59 Debug] IdentityServer4.Endpoints.AuthorizeCallbackEndpoint
Start authorize callback request

[14:29:59 Debug] IdentityServer4.Endpoints.AuthorizeCallbackEndpoint
No user present in authorize request

[14:29:59 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Start authorize request protocol validation

[14:29:59 Debug] IdentityServer4.Stores.ValidatingClientStore
client configuration validation for client mvc succeeded.

[14:29:59 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Checking for PKCE parameters

[14:29:59 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
No PKCE used.

[14:29:59 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Calling into custom validator: IdentityServer4.Validation.DefaultCustomAuthorizeRequestValidator

[14:29:59 Information] IdentityServer4.Endpoints.AuthorizeCallbackEndpoint
ValidatedAuthorizeRequest
{"ClientId": "mvc", "ClientName": "MVC Client", "RedirectUri": "http://localhost:5002/signin-oidc", "AllowedRedirectUris": ["http://localhost:5002/signin-oidc"], "SubjectId": "anonymous", "ResponseType": "code id_token", "ResponseMode": "form_post", "GrantType": "hybrid", "RequestedScopes": "openid profile api1", "State": "CfDJ8II-qsirBDZBoO3je8L7rBTETMepa_2sml4RVz5SvSy6IaDJ8zCUFiHZDbbub7cu-wG_jqT8HNc8v94_ITLA23f3DXjjTPydP-Z8W-BquRCyEITJP-EfMAoBY-QvzTSPAb1pqVBrigisCFS5nPP2mrpmGhkziBgwyhLmenp2AQt3eVB_rpaVLEnQCccQ7Hqkd5nO6urcX2ETDOYSX6GmywSqw4qYiF_MHwn-JYcc8PnJ53EAfZ05UNLK-ILEfUCEtKsvDRh-E9toJRyvuZ9b48RFliEFZlZVsWwMeyHX7J11Pw4k1aGtqH663Sp5AgrF4w", "UiLocales": null, "Nonce": "636942851828024718.MWE0YTE1NDEtODc5NC00YmU2LWI4NTctMWU0ZmU4NGE1MTlhOGQ5MmMyYjgtM2M0YS00NzUxLTk2MjYtZjY4ZmJlNDAyZmMy", "AuthenticationContextReferenceClasses": null, "DisplayMode": null, "PromptMode": null, "MaxAge": null, "LoginHint": null, "SessionId": null, "Raw": {"client_id": "mvc", "redirect_uri": "http://localhost:5002/signin-oidc", "response_type": "code id_token", "scope": "openid profile api1", "response_mode": "form_post", "nonce": "636942851828024718.MWE0YTE1NDEtODc5NC00YmU2LWI4NTctMWU0ZmU4NGE1MTlhOGQ5MmMyYjgtM2M0YS00NzUxLTk2MjYtZjY4ZmJlNDAyZmMy", "state": "CfDJ8II-qsirBDZBoO3je8L7rBTETMepa_2sml4RVz5SvSy6IaDJ8zCUFiHZDbbub7cu-wG_jqT8HNc8v94_ITLA23f3DXjjTPydP-Z8W-BquRCyEITJP-EfMAoBY-QvzTSPAb1pqVBrigisCFS5nPP2mrpmGhkziBgwyhLmenp2AQt3eVB_rpaVLEnQCccQ7Hqkd5nO6urcX2ETDOYSX6GmywSqw4qYiF_MHwn-JYcc8PnJ53EAfZ05UNLK-ILEfUCEtKsvDRh-E9toJRyvuZ9b48RFliEFZlZVsWwMeyHX7J11Pw4k1aGtqH663Sp5AgrF4w", "x-client-SKU": "ID_NETSTANDARD2_0", "x-client-ver": "5.3.0.0"}, "$type": "AuthorizeRequestValidationLog"}

[14:29:59 Information] IdentityServer4.ResponseHandling.AuthorizeInteractionResponseGenerator
**Showing login: User is not authenticated**

[14:29:59 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Start authorize request protocol validation

[14:29:59 Debug] IdentityServer4.Stores.ValidatingClientStore
client configuration validation for client mvc succeeded.

[14:29:59 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Checking for PKCE parameters

[14:29:59 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
No PKCE used.

[14:29:59 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Calling into custom validator: IdentityServer4.Validation.DefaultCustomAuthorizeRequestValidator

[14:29:59 Debug] IdentityServer4.Stores.ValidatingClientStore
client configuration validation for client mvc succeeded.

You can find the full demo here.

I have a feeling the cookie scheme you use on your login page is not the application's default cookie scheme.

I am not able to get ~/diagnostics page in IS. Also as far as the cookie scheme is concerned, can you provide some more details please. i have a full demo here.

StackOverflow is a more appropriate place for your question.
If you or your company need commercial support, please see here for more information.
Thanks!

I am also facing similar issue, does anybody resolve this?. Here is my log for more details:-
IdentityServer_log-20191231.txt

authors: Prince269090 brockallen mayankgaur


text:
Get token from Azure AD using an httpClient

Looking for a simple example on how to configure IdentityServer to allow a console client (httpClient) or even postman to get an access token using their Azure Active Directory username/password

StackOverflow is a more appropriate place for your question.
If you or your company need commercial support, please see here for more information.
Thanks!

authors: brockallen chuckgmthompson


text:
Added AddUserSession extension method

What issue does this PR address?
Adds a missing IIdentityServerBuilder extension method to add a custom IUserSession implementation.
Does this PR introduce a breaking change?
No.
Please check if the PR fulfills these requirements

[x] The commit follows our guidelines
[ ] Unit Tests for the changes have been added (for bug fixes / features)

Other information:
No Unit Tests were added since none of the other existing extension methods include test coverage.

I'm curious what your custom implementation needs to do?

I am attempting to implement multitenancy support with IdentityServer. The custom IUserSession implementation comes into play around cookie naming; specifically the IssueSessionIdCookie method and the idsrv.session cookie.
When 2 independent sessions against 2 different tenants are active on the same machine & browser there seems to be a conflict regarding the session id cookie. So, I had to add some logic to the IssueSessionIdCookie method to add a tenant id suffix to the cookie name.
    public class MultitenantUserSession : DefaultUserSession
    {
        public MultitenantUserSession(
            IHttpContextAccessor httpContextAccessor,
            IAuthenticationSchemeProvider schemes,
            IAuthenticationHandlerProvider handlers,
            IdentityServerOptions options,
            ISystemClock clock,
            ILogger<IUserSession> logger)
            : base(httpContextAccessor, schemes, handlers, options, clock, logger)
        {
            var tenantContext = httpContextAccessor.HttpContext.GetMultiTenantContext();
            var tenantId = tenantContext?.TenantInfo?.Id;
            if (tenantId.IsNullOrEmpty() == false)
            {
                this.Options.Authentication.CheckSessionCookieName = $"idsrv.session.{tenantId}";
            }
        }

        public override void IssueSessionIdCookie(string sid)
        {
            if (this.Options.Endpoints.EnableCheckSessionEndpoint == false)
            {
                return;
            }

            if (this.HttpContext.Request.Cookies[this.CheckSessionCookieName] != sid)
            {
                this.HttpContext.Response.Cookies.Append(
                    this.CheckSessionCookieName,
                    sid,
                    this.CreateSessionIdCookieOptions());
            }
        }
    }

Is there a better way to manage this?

Hmm, ok.

Is there a better way to manage this?

No idea, to be honest. I've not tried to tackle that.

Anyway, thx for the PR.

authors: brockallen eric-davis


text:
interpret not returning AudioProcessorEditor pointer

I have the following code:
juce::AudioProcessorEditor* MyAudioProcessor::createEditor()
{
    auto view = jive::parseXML (layoutXml);
    DBG ("Parsed layout XML: " << view.toXmlString());

    // interpret() needs a juce::AudioProcessor* when interpreting "Editor"
    // types in order to construct the juce::AudioProcessorEditor
    if (auto editor = viewInterpreter.interpret (view, this))
    {
        jassert (editor != nullptr);
        // When interpreting an "Editor" type, the top-level item will be a
        // jive::GuiItem AND a juce::AudioProcessorEditor. So we can do a
        // dynamic-cast here to check that the editor was created successfully.
        if (dynamic_cast<juce::AudioProcessorEditor*> (editor.get()))
        {
            viewInterpreter.listenTo (*editor);

            // Release ownership to the caller.
            return dynamic_cast<juce::AudioProcessorEditor*> (editor.release());
        }
    }

    // Fallback in case the editor wasn't constructed for some reason
    return new juce::GenericAudioProcessorEditor { *this };

}

The dynamic cast fails; the type seems to be GuiItem only.

Looks like I need to define JIVE_IS_PLUGIN_PROJECT=1 - this should be in the docs!

Is there not a way to automatically detect if we're in a plugin project with JUCE?

Looks like I need to define JIVE_IS_PLUGIN_PROJECT=1 - this should be in the docs!

Ahh appologies - I thought I'd written that somewhere! Glad you found the solution though

Is there not a way to automatically detect if we're in a plugin project with JUCE?

We could maybe default JIVE_IS_PLUGIN_PROJECT to check for JucePlugin_Name, or one of the other standard definitions. I'm not 100% sure they're guarenteed to be defined though

Looks like JUCE does define a whole bunch of macros (in CMake at least - I assume Projucer sets the same ones):
https://github.com/juce-framework/JUCE/blob/51d11a2be6d5c97ccf12b4e5e827006e19f0555a/extras/Build/CMake/JUCEUtils.cmake#L1544
So we could do something like
#ifndef JIVE_IS_PLUGIN_PROJECT
  #ifdef JucePlugin_PluginCode
    #define JIVE_IS_PLUGIN_PROJECT 1
  #endif
#endif

Looks like JUCE does define a whole bunch of macros (in CMake at least - I assume Projucer sets the same ones):
https://github.com/juce-framework/JUCE/blob/51d11a2be6d5c97ccf12b4e5e827006e19f0555a/extras/Build/CMake/JUCEUtils.cmake#L1544
So we could do something like
#ifndef JIVE_IS_PLUGIN_PROJECT
  #ifdef JucePlugin_PluginCode
    #define JIVE_IS_PLUGIN_PROJECT 1
  #endif
#endif

I think that makes sense, although I would probably just check the JucePlugin without needing another definition. However there might be situations where an explicit definition is useful.

authors: ImJimmi adamski

repo: ImJimmi/JIVE


text:
Multithreaded, selective attribute updates

Initial scene output also goes directly to the renderer, rather than via procedurals, so we can block the main thread

Have you run the GafferRenderManTest.InteractiveRenderManTest unit tests? I get the following crash when I do :
testAddLight (GafferRenderManTest.InteractiveRenderManRenderTest.InteractiveRenderManRenderTest) ... 3DL ERROR S2074: cannot assign variable of type 'uniform vector' to parameter 'uniform point from' (shader: 'pointlight')
terminate called after throwing an instance of 'tbb::captured_exception'
  what():  Unable to find mapping for output path

I also notice that you've started using type& name and type* name here and there rather than following our established type &name and type *name convention. Not a biggy, but I would like to keep the codebase consistent so if you could stick with the convention that would be great.
I'll dive into a proper review once we know what's going on with the test failure...

Gah - yeah, I was just running GafferSceneTest wasn't I - what was I thinking. I'll take a look

Right - so it looks like that was an uncaught exception problem. I've added basic exception handling to the tbb::pipeline functions too stop the crash - the problem now being that it'll spam you with errors if there's something wrong with the graph, rather than just terminating. I'll see if I can find a better way of doing that... Also, I'm getting a test failure in testMoveCoordinateSystem, which miiiiiight just be numerical precision in the shader or something, although I haven't fully investigated it yet.
Anyway, there you go

eh? I wrote out all the "myLovelyPlane" images that were getting tested, and they all seemed fine. The 'eck?

So it looks like the back plane wasn't covering the entire render in the test, leaving a margin of pixels with unexpected values. If I scale the plane by a factor of 10, that fixes the failures, although it's a bit of a mystery to me why that margin was being read in the first place, as it's reading at uv coordinates 0.1,0.1, 0.5,0.5 and 0.9,0.9, which don't sound like they'd be anywhere near the edge.

Just got some new performance stats for the robot from this morning, for doing a big shader edit hitting 2600 objects. This is from 3delight 11.0.133, where they've sped up the RiEdit stuff quite a bit:
setup:                                          startup      edit
--------------------------------------------------------------------
3delight 11.0.133:                              23.6 sec     13 sec
no RiShader/Attribute calls:                    13 sec       12 sec
no RiEditBegin/End/Shader/Attribute calls:      13 sec       8 sec
all Ri calls commented out:                     13 sec       8 sec
gaffer traversal only:                          5 sec        4 sec

3delight 11.0.126:                              23.6 sec     30 sec

So 3delight 11.0.133 is considerably better than 3delight 11.0.126. It's interesting how commenting out the RiShader calls cuts the startup time in half.... it looks like most of the 3delight startup time is going into instantiating shaders? Anyway, it kind of looks like the IECoreRi code's costing us 8 seconds doesn't it? Traversal takes 4 seconds, but that happens in the background, so I reckon blasting through an equivalent precompiled list of IECoreRi calls in a single thread would probably take 8 seconds. On top of that, it looks like the RiEdit blocks cost us an extra 4 seconds

So, after playing around with IECoreRI a bit, I managed to get that 8 seconds down to 5.5. Here's what I've done so far:

replaced boost::format and string concatenation in ParameterList::appendParameter with something more manual
reordered string comparisons in RendererImplementation::shader(), as "surface" and "shader" are the most common
replaced type == "shader" with !strcmp( type.c_str(), "shader" ) in RendererImplementation::shader() to avoid constructing strings over and over again
Avoided making that parametersCopy variable in RendererImplementation::shader(), and rejecting "__handle" inside ParameterList::ParameterList() instead

It also looks like you can knock another half second off by commenting out the bit in RendererImplementation::shader() that builds the type hints - apparently it doesn't like making all those map insertions.

Nice!
Did you actually measure the type == "shader" change to strcmp() on its own? It sounds a bit fishy, because direct string <-> const char * comparisons are defined (and shouldn't make temporaries). If we really want to speed up the comparisons though, we should think about taking InternedString arguments in Renderer methods rather than std::string.
Now we have GeometricTypedData, we should be able to ditch the typeHints hack entirely. It would take a little bit of work in both IECoreRI and Gaffer to check that we were tracking the geometric type appropriately, but I think it'd be well worth doing - cleaner and faster.

I've made a bunch of inline comments - a few style things that should be easy to fix, a couple of suggestions which should help with performance, and a couple of questions to aid my understanding. Thanks for the clear comments on the filter tasks - they made the code very easy to dive into.
There's one broader issue here as well though. It's not allowed to use "scene:path" values that aren't predetermined as being valid - where validity means "every name in the path is present in the childNames at that level" (SceneAlgo provides a check for this with exists()). Really, when we're doing the update traversal, we also need to be computing child names, and culling the traversal when we hit locations which are no longer valid. Do you think that's easy to fit in with the logic as it stands?

I guess we'd deal with the child names issue in plugDirtied()? Maybe store child names hashes in the SceneGraph, do a quick traversal if inPlug()->childNamesPlug() gets dirtied and zero out m_renderer/m_sceneGraph if we get any differences?

I guess we'd need to check if a location's scene:visible attribute changed too wouldn't we...

I'm not 100% sure how we should deal with child names differences. I can imagine it being useful to switch between different graphs with subtly different child names, and keep the same IPR session going - for instance someone might switch between nodes where the only difference is that a light has been pruned. I think it might be best to continue with the IPR, but check child names just to avoid traversing into SceneGraph locations we know aren't valid for this traversal. Does that sound reasonable?

Hmm... I started putting something in the SceneGraphIteratorFilter that checked the child names whenever it was about to recurse into a new child. It was reading the childNames plug, then trying to std::find() the name of the child it was trying to go to in the result. It didn't seem to impact performance for the robot, but then I thought "quadratic scaling is fun!" and tried it on the snowy hillside. It looks like checking the child names/doing an std::find takes the startup time up from about 23 seconds to 60 seconds, and takes the shader edit time up from 16 seconds to 63 seconds. So that particular method is clearly a nono...
As a side note, it looks like my shader edit was taking 16 seconds largely because the 3delight render was still running while I was traversing the scene in parallel. If I split the pipeline into two phases, one where it pauses the render while traversing the scene, one where it emits the actual edits, the shader edit time goes down to 5 seconds (although this slows down the render startup quite a bit, and it means we have to compute the entire scene upfront before sending it to the renderer. This can be worked around, but it makes things a bit of a mess). It'd be really good if we could just pause the render while traversing the hierarchy/sending the edits wouldn't it - I've made a comment to that effect on that 3delight ticket about shader edits.

Can we just sort m_children by m_name in SceneGraphBuildTask then? Then we can do quick lookups with lower_bound().
As for the pausing, I really think the lack of a beginLotsOfEdits/endLotsOfEdits API is a fundamental problem - I'm really hoping we can get that sorted with 3delight.

Where are we at with this @davidsminor? Do you think implementing the sorting of m_children as I suggested might do the trick? I'd like to get this merged, but we do need to address the "incompatible child names" issue first.

Yeah... I never got round to sorting the child names thing out did I. There was a similar issue with scene:visible too - I'm currently using it to prune the hierarchy when I build the scene graph, and I probably need to stop doing that. I think I'll fiddle with it a bit today (although it's actually my last day before I go on holiday)

I think we can ignore scene:visible right now, because at the moment we can't introduce new objects after starting the IPR anyway…does that sound about right?

just added the interactive render suspending thing 3delight enabled in 11.0.138

Ok - so I'm having a go with something that checks child names when the plug gets dirtied, and flags scene graph locations as not present if they've been deleted. Non present scene graph locations then get skipped by the SceneGraphIteratorFilter. I'd rather the child name checking overhead be a one off thing than something that happens on every update, regardless of weather the child names have actually changed or not.

Do you know what'll happen with the "suspend rendering during edits" change with 3delight prior to 11.0.138? I suspect it might be a problem, and I really want to keep Gaffer compatible with the free download of 3delight as far as possible.

Just rebased from master and removed "fixed hang when switching from 'paused' to 'stopped'" commit, as that was in the master already

Hmm - I tried it on 11.0.134 actually, and surprisingly the code in commit 87b819a wasn't a problem. Also, I just checked on the 3delight website, and the free download is version 11.0.142

Just made a little addition so inactive InteractiveRenders don't do the childNames check when the childNames plug gets dirtied

Hey, are we ready to get this rolling? People are complaining about the IPR crashing when they fiddle with the graph while it's starting up and stuff like that. You reckon I should add a simple stderr startup progress indicator first actually?

Yeah, I think we're pretty much there aren't we? I'd just like to take it for a bit of a spin before merging (I've only looked at the code so far). Do you know when we're planning to make the next release? And do you think it'd be good to do some user testing before merging or are you happy to get it straight into the wild?

I think the old one's a bit temperamental anyway, probably because of the asynchronous startup, so I'd be fairly happy just slapping it down and seeing what happens. What do you reckon about the progress indicator? It'd make people less annoyed at the new UI freezes

Hi David,
Testing with 3delight 11.0.143 in the IE environment and gaffer test -repeat 10 GafferRenderManTest.InteractiveRenderManRenderTest.testDeleteWhilePaused I periodically get this error :
terminate called after throwing an instance of 'tbb::captured_exception'
  what():  Unable to find mapping for output path
Abort (core dumped)

I've been unable to get the same to happen on master. Since testDeleteWhilePaused() simulates a common process in Caribou, I reckon we need to get this fixed - can you see if you can reproduce it at your end?

Actually it's possible that's because it hasn't been rebased onto master yet? I'll give that a go

I was testing with a merge of your branch onto master, if that helps at all - using the command line that GitHub gives at the bottom of this pull request.

ah there we go - it's because I wasn't catching exceptions in plugDirtied(). Updated

Hello. Is this ready to go?

Yep, thanks. I do have a couple of notes on it still, but I think it's more important that we get this into people's hands first...

authors: davidsminor johnhaddon

repo: ImageEngine/gaffer


text:
Should we ignore the ERROR warning about pandas version in getting_started/part3_exploring_cohorts.ipynb?

While setting up a GitHub actions workflow to automatically test if getting_started notebooks are running properly in colab docker container runtime, I came across this error warning in itkwidgets section while running this command.
!pip install -q pydicom-seg "itk-io>=5.3.0" "itkwidgets[all]>=1.0a32"
The command itself returns exit code 0 which I guess does not indicate any problem and the rest of the notebook still runs but I'm unsure if there are issues with the widget. @bnmajor whenever possible --not in any rush at all, could you run the notebook and let us know if we can ignore this error?

I found a similar issue in some other repo and they advise to ignore this error, but would be great to just confirm it. https://github.com/huggingface/autotrain-advanced/issues/265

@vkt1414 You are correct, this message is safe to ignore for now! Just to note what is going on here: itkwidgets depends on ngff-zarr[dask-image] and dask-image requires pandas >=2.0.0 - hence the conflict with Colab's 1.5.3 requirement.
At this point it looks like there is no reason we can't downgrade Pandas to 1.5.3 if needed but if there is a need for Pandas in this notebook in the future and there are any issues around that I am happy to help!

Excellent. Thank you very much for the prompt response!
@fedorov I'll close this issue.

Thank you @bnmajor - it is good to have this documented here!

authors: bnmajor fedorov vkt1414

repo: ImagingDataCommons/IDC-Tutorials


text:
flake8 failures using specified version of pytest-flake8==1.1.1

Apple M1, MacOS 14.6, python 3.12.4
The requirements files don't (appear to) restrict the version of flake8, and for whatever reason:
flake8==5.0.4
pytest-flake8 1.1.1 resulted in:

E       AttributeError: module 'flake8.options.config' has no attribute 'ConfigFileFinder'

see: https://github.com/tholo/pytest-flake8/issues/100
so I updated to:
pytest-flake8                 1.2.2
Which addresses the AttributeError.
Trying to update flake8 resulted in many errors, so I reverted to 5.0.4
But even with flake8 5.0.4 and pytest-flake8 1.2.2, I get Flake8 errors.
pytest --flake8 -p no:warnings
This is the summary at the end of it:
===================================================== short test summary info ======================================================
FAILED src/dicomweb_client/file.py::flake-8::FLAKE8
FAILED src/dicomweb_client/uri.py::flake-8::FLAKE8
FAILED src/dicomweb_client/web.py::flake-8::FLAKE8
FAILED tests/conftest.py::flake-8::FLAKE8
FAILED tests/test_uri.py::flake-8::FLAKE8
FAILED tests/test_web.py::flake-8::FLAKE8
============================================ 6 failed, 269 passed, 16 skipped in 35.66s ============================================
The following identifies the types of errors that are found (probably didn't need to do sort and uniq before the cut)
grep dicomweb-client flake8.out | sort | uniq | cut -d: -f4- | sort | uniq
E203 whitespace before ':'
E231 missing whitespace after ','
E231 missing whitespace after ':'
E702 multiple statements on one line (semicolon)
W604 backticks are deprecated, use 'repr()'
My fundamental concern is that if I try to submit a PR for a feature (e.g. #37 ), first I have to pass the flake8 test.
Which might fail with a PR of no content at this point.
If there's a specific choice for flake8 that will pass the tests, and you want to stick with that, that's fine, I'll make sure my environment matches up (or, better, have it in the requirements_test.txt file).
Alternatively, black+flake8+isort, or ruff seem to be the current approach (I prefer black+flake8+isort, brains-off and it goes in my pre-commit configuration files).

Hi @sjswerdloff I'm having a hard time recreating this issue. Regardless of the version of flake8 and pytest-flake8, I do not get any flake8 errors. Can you send the locations of these supposed errors to see whether they are even valid?

authors: CPBridge sjswerdloff

repo: ImagingDataCommons/dicomweb-client


text:
Skip custom markdown syntax like [!NOTE] during translation

Currently, the translation process translates custom Markdown syntax like [!NOTE], which is intended for highlighting important information or notes in technical documents. These blocks should not be translated. For example:
> [!NOTA]
> Los modelos Phi-3 no tienen un rendimiento tan bueno...
In cases like the above, custom Markdown blocks such as [!NOTE], [!WARNING], etc., should be excluded from translation.

Solution:
Implement logic to detect and skip [!NOTE], [!WARNING], and similar custom blocks during the translation process.

Thanks, @timothycdc ! I agree that using regex to detect and preserve custom markdown blocks like [!NOTE] or [!WARNING] might be a more reliable approach.
I’ll try both approaches: handling it at the prompting stage with the LLM, and using regex to skip the custom markdown blocks. If both are feasible, I'll likely go with the regex method for reliability


text:
Release branch 0.1.1a5

Description
This branch makes sure that the changes in #549 which are going to main also go into develop

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 94.98%. Comparing base (f3c6f53) to head (a6ea336).

Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #550   +/-   ##
========================================
  Coverage    94.98%   94.98%
========================================
  Files           74       74
  Lines         4145     4145
========================================
  Hits          3937     3937
  Misses         208      208

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.