[PDI-17286] User Defined Java Class : java.net.InetAddress.getInterne…

…tAddress() does not work.

Fix issue with Internet Address data type (as reported in JIRA case)
Fix issue with Timestamp data type (found during testing)
Fix issue with Binary data type (found during testing)
Added test cases for FieldHelper class

@mbatchelor @bmorrise @matthewtckr

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -fn -f 'pom.xml' -pl 'ui,engine' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'ui,engine' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  engine/src/main/java/org/pentaho/di/trans/steps/userdefinedjavaclass/FieldHelper.java
  engine/src/main/resources/org/pentaho/di/trans/steps/userdefinedjavaclass/messages/messages_en_US.properties
  engine/src/test/java/org/pentaho/di/trans/steps/userdefinedjavaclass/FieldHelperTest.java
  ui/src/main/java/org/pentaho/di/ui/trans/steps/userdefinedjavaclass/UserDefinedJavaClassDialog.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes (click to expand)
org.pentaho.di.trans.steps.constant.ConstantMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.excelwriter.ExcelWriterStepMeta

Branch Change: -1.3% :small_red_triangle_down:
Complexity Change: -0.7% :small_red_triangle_down:

org.pentaho.di.trans.steps.groupby.GroupByMeta

Branch Change: -1% :small_red_triangle_down:
Complexity Change: -1% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:
Line Change: -0.3% :small_red_triangle_down:

org.pentaho.di.trans.steps.ifnull.IfNullMeta

Branch Change: -2% :small_red_triangle_down:
Complexity Change: -1.9% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change: -2.2% :small_red_triangle_down:
Complexity Change: -2.6% :small_red_triangle_down:

org.pentaho.di.trans.steps.singlethreader.SingleThreaderMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.salesforceupsert.SalesforceUpsertMeta

Instruction Change: -0.1% :small_red_triangle_down:


fix(Whatsapp): Fix #4 PR not injecting themed css

Related to #4
Sorry for not checking the commit correctly, my recipe folder got another webview.js with the fix of the message and the injected css but was not in the repo that I pushed (and you merged), so the fix wasn't there, this should fix it.

I merged this but I believe newer version uses similar fix. Add new issue if this problem still exists. Thanks !


WIP: Improve python error message if image file doesnt exist

… exist
When opening an image file in Python through the itkTemplate class (i.e.
itk.ImageFileReader.New(FileName="my_file.png"), the error message
warns the user that the file does not exist. The error message matches
the error message printed in C++ or when using directly the ImageFileReader
class (i.e. itk.ImageFileReader[ImageType].New(FileName="my_file.png")).

Merged to master in https://github.com/InsightSoftwareConsortium/ITK/pull/910


crash at drainable fountain in re3

Version
3.1.7
Seed
R730-YQ6N-XNHH50C6Z9YA203N9KM9K4Z7FM0U8KC9AKMZZUKYZZZZZ
Scenario
RE 3 (Jill)
Player Character
Barry
What happened?
In the room where you have to do the cog puzzle to drain the water in the fountain, there were 3 zombies, one of the zombies was walking around in the water. when i tried to go to the cog puzzle the game crashed. i reloaded and went back and killed all 3 zombies then exited the room to clear it out then came back and tried to do the cog puzzle and it didn't crash.

I don't suppose it was because the zombies tried to spit on you? If so, I might have fixed that.


Cannot run build after upgrade

Hello, I don't yet know my way around VSCode but I was using it to try some things out and ran into a problem. I was working with a project and it would build fine. At some point, VSCode and it told me that an update was available. I decided to install the update. After that, I can no longer run build because of the following error: Cannot read property 'config' of undefined
I took my project down to its simplest form and even created a new empty project with one simple file. When I hit ctrl-shift-b I get the cannot read property config error. Everything else seems to work and I can open the console and compile/build from there. I have looked for some sort of logging and I see nothing.
I have tried removing all keyboard and workspace customization but I still get the error. Any idea what I need to do to fix this?

VSCode Version: Code 1.11.1 (d9484d12b38879b7f4cdd1150efeb2fd2c1fbf39, 2017-04-06T13:58:12.954Z)
OS Version: Windows_NT ia32 10.0.14393
Extensions:

Extension
Author
Version

aurelia
AureliaEffect
0.2.4

python
donjayamanne
0.5.8

tslint
eg2
0.8.1

vscode-npm
fknop
3.3.0

beautify
HookyQR
1.0.2

mssql
ms-mssql
0.3.0

csharp
ms-vscode
1.6.2

PowerShell
ms-vscode
0.9.0

vscode-sql-beautify
sensourceinc
0.0.4

python
tht13
0.2.3

python-extended-snippets
tushortz
0.0.1

Steps to Reproduce:

Create a new empty folder.
Add a simple .ts file.
Open the folder with vscode.
Press ctrl-shift-b

Adding "tasks": {} to your settings should work around this issue.

That seems to work. Thank you!

Was able to reproduce. This is a regression and easy to fix.

Also seeing this error:
Cannot read property 'tasks' of undefined
With the following tasks.json:
{
	// See https://go.microsoft.com/fwlink/?LinkId=733558
	// for the documentation about the tasks.json format
	"version": "0.1.0",
	"command": "grunt",
	"isShellCommand": true,
	"args": [],
	"showOutput": "always",
	"tasks": [
		{
			"taskName": "develop",
			"args": [],
			"isBuildCommand": true,
			"isBackground": false,
			"problemMatcher": [
				"$lessCompile",
				"$tsc",
				"$jshint"
			]
		}
	]
}

@Slowlearneruk thanks. Was able to reproduce as well. I fixed both in master and will prepare a fix for a recovery build.

Marking as important since this is a regression.

I have a the same issue using the go extension. Cannot read property 'config' of undefined

Same here

Fixed for master and recovery build.

@isidorn can you please verify.

Adding verified since I can not reproduce both issues with the latest stable candidate


Pressure Converter now has steam pushing mode

Comes with matching graphic and entry!

Please please please vet these code changes, because I am not a veteran minecraft modder.
fixes #136
also... I think my grammar might be shit.... and I made a f&$%#ng typo. :sob:

how about:
research.FSC.1=As an alternative to manually extracting liquid steam, I can disengage the pump ring of the Pressure Converter by using a wrench while sneaking. This will use the system's high pressure to force fluid steam into nearby tanks. However, doing so will prevent the Pressure Converter from converting liquid steam back into high pressure.
research.FSC.2=The rate at which the Pressure Converter ejects fluid steam depends on the pressure in the system. Operating at high pressure, I have witnessed no less than 4 buckets of steam per second.

:| ?

I'm willing to merge it if you are :P your research text seems fine to me.

@xbony2 I found a bug regarding buildcraft pipes and the converter that crops up when IC2 isn't installed. It's preventing me from doing proper tests with these changes. Do you want the fix as a separate pull request or just submit it as part of this one?

Feel free to submit it as part of this one, be easier that way. That bug is #172, I believe.

OK. Pretty sure dis works @xbony2
Learned a bit about buildcraft today.

Alright, here goes nothing :P


Support positioning and sizing with viewport constraints

Fixes #22
Idea in brief:

Use  hosting element as a positioning / sizing /
alignment constrained container only.
Use flexbox to align and / or stretch the content part inside
the constrained  host element.
Use the content part as the actual overlay. Themes should define
borders / shadows / backgrounds on the content part.

This requires several changes beyond this repo, PRs will follow shortly.

This change is

vaadin-overlay.html, line 231 at r1 (raw file):

       */
      _outsideClickListener(event) {
        if (event.composedPath().indexOf(this.$.content) !== -1) {

Why was this reverted?
It was there to avoid the overlay from closing if a user selected text so that the cursor ends outside the content area when mouse button is released. Or the other way around: when the user starts selecting text by pressing mouse button outside the content area and releases it inside.

Comments from Reviewable

Review status: 0 of 4 files reviewed at latest revision, 1 unresolved discussion.

vaadin-overlay.html, line 231 at r1 (raw file):
Previously, tomivirkki (Tomi Virkki) wrote…
Why was this reverted?
It was there to avoid the overlay from closing if a user selected text so that the cursor ends outside the content area when mouse button is released. Or the other way around: when the user starts selecting text by pressing mouse button outside the content area and releases it inside.

Wow, nice feature, sorry I haven’t noticed.
Originally removed because it was misbehaving for clicks in the overlay host element, but this is also fixed another way by setting pointer-events: none; on the host, so bringing back.
Note that we still need to check the click composed path, as there could be clicks from the overlay content, triggered by something else than a mouse (like keyboard space and programmatic .click()).
We should add tests for this workflow then. No tests were broken after removal.

Comments from Reviewable

Reviewed 3 of 4 files at r1, 1 of 1 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Review status: all files reviewed at latest revision, 5 unresolved discussions, some commit checks failed.

vaadin-overlay.html, line 20 at r1 (raw file):

        right: 8px;
        left: 8px;
        bottom: 8px;

I think we could add margin: auto so as the user could set sizes directly in the component     <vaadin-overlay id="overlay1" style="max-height: 300px; max-width: 600px">

vaadin-overlay.html, line 25 at r1 (raw file):

      [part="content"] {
        background: #fff;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);

I think a default padding would be nice like you do with the gap above.

demo/index.html, line 84 at r1 (raw file):

    </demo-snippet>

Positioning and Sizing With Inline Styles

I miss a demo with a large lorem ipsum content to demonstrate the scrolling.

demo/index.html, line 113 at r1 (raw file):

        <vaadin-button id="button-overlay-pointer">Show the overlay next to click</vaadin-button>


ISPN-5251 Near cache size must be provided

https://issues.jboss.org/browse/ISPN-5251

Pulling...

Integrated into master, Thanks @galderz !


Building with newer compilers to not miss interesting optimizations

We build our releases on an old distribution (Debian Buster) because that's an easy way to produce binaries compatibles with older distros. Especially, we do that to link against an old libc and then don't distribute binaries that would require a too-new libc.
The drawback is that we then use the old compiler of such distribution, we may then miss some optimizations.
Here is an example with gcc on Debian Buster, compiling libjpeg-turbo for arm64: NEON SIMD optimizations are not supported and then unused:
$ ./build.sh linux-arm64-default jpeg
-- The C compiler identification is GNU 8.3.0
…
-- Compiler flags =  -fPIC -march=armv8-a -O3 -DNDEBUG
…
-- Performing Test HAVE_VLD1_S16_X3
-- Performing Test HAVE_VLD1_S16_X3 - Failed
-- Performing Test HAVE_VLD1_U16_X2
-- Performing Test HAVE_VLD1_U16_X2 - Success
-- Performing Test HAVE_VLD1Q_U8_X4
-- Performing Test HAVE_VLD1Q_U8_X4 - Failed
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/aarch64-linux-gnu-gcc
-- Use partial Neon SIMD intrinsics implementation (NEON_INTRINSICS = OFF)
-- CMAKE_ASM_FLAGS =  -fPIC -march=armv8-a  -O3 -DNDEBUG
-- SIMD extensions: arm64 (WITH_SIMD = 1)

Here is an example with gcc on more recent Ubuntu Kinetic 22.10, compiling libjpeg-turbo for arm64: NEON SIMD optimizations are supported and then used:
$ ./build.sh linux-arm64-default jpeg
-- The C compiler identification is GNU 12.2.0
…
-- Compiler flags =  -fPIC -march=armv8-a -O3 -DNDEBUG
…
-- Performing Test HAVE_VLD1_S16_X3
-- Performing Test HAVE_VLD1_S16_X3 - Success
-- Performing Test HAVE_VLD1_U16_X2
-- Performing Test HAVE_VLD1_U16_X2 - Success
-- Performing Test HAVE_VLD1Q_U8_X4
-- Performing Test HAVE_VLD1Q_U8_X4 - Success
-- Use full Neon SIMD intrinsics implementation (NEON_INTRINSICS = ON)
-- SIMD extensions: arm64 (WITH_SIMD = 1)
-- FLOATTEST = fp-contract

One solution would be to use a newer compiler on an old distribution using an old libc. Unfortunately GCC doesn't provide updated builds for Debian (unlike what LLVM/Clang does) and we use GCC for everything that isn't macOS. One may use crosstool-NG to build a newer GCC.
Another solution would be to use (and then build) an older libc on a newer distribution providing a newer compiler.

I think it's probably safe to build our engine with a new compiler. In most cases a dependency on newer libc only appears if you actually use a new function that's not supported in old ones. If I'm wrong, validate-release will inform us thanks to its check on libc and libcxx versions.
Building external_deps could be dangerous though. The config scripts there might enable stuff that depends on a new libc if they detect a newer one.

I found this that is said to help to build a software by targetting a specific libc version, but there is only support for x86/x86_64, has not be updated in years, and is only about libc (not libc++):

https://github.com/wheybags/glibc_version_header

@slipher, what would be the possible drawbacks of building against an old libc?
The crosstool-NG tool can select which glibc build when building a compiler, and it lists a long list (and some very old ones) of possible glibc to build, so I wonder what would be the inconvenient of picking old ones.


Replace link from QuickStart to Tutorial in the top page

What this PR does / why we need it:
I replaced the link to Tutorial as we published the tutorial.
The tutorial would be the best entrance for those who got interested in PipeCD.
Does this PR introduce a user-facing change?: N/A
Image
current:

after this commit:

@t-kikuc How about adding Tutorial as a button next to the header Documentation and before Blog (below image red-cycled area)? I think it's a better place for its purpose. Also, we can update the current Quickstart page and add Note/Link to the Tutorial repo as another way for a detailed start for users

@khanhtc1202
Thanks, I'll create the button.

What do you think about this change? Not necessary?
5921276

we can update the current Quickstart page and add Note/Link to the Tutorial repo as another way for a detailed start for users

-> I'll do it in another PR.

What do you think about this change? Not necessary?

@t-kikuc I don't think we should remove the Quickstart button at the moment. There are some reasons for that from my point of view

I think we should not redirect users to another site (not pipecd.dev) for the purpose of quickstart
The Tutorial button in the header will be shown on all pages of the site, which I think is a better place and suits its purpose. We will have a header showing ( Documentation - Tutorial - Blogs - ... )

Sorry, I missed click the close PR button 🙏

@khanhtc1202
I fixed as below!
Tutorial button will also be shown other than the top page.

we can update the current Quickstart page and add Note/Link to the Tutorial repo as another way for a detailed start for users

-> I'll do it in another PR.
I opened a PR https://github.com/pipe-cd/pipecd/pull/4964 for that.


KMP Pattern Matching algorithm

I have added here the famous kmp (knuth morris pratt) pattern matching algorithm for strings.

Hope this my kmp commit will help you in prop=blems elated to pattern matching


upgrade prompt-toolkit to make scaffold.py work

Upgraded prompt-toolkit to make scaffold.py work
$ python scripts/scaffold.py

Coverage decreased (-0.2%) to 94.252% when pulling d9ed1caddaa391b9efa7d2fe04e2af51e8cfb0f4 on toshitanian:upgrade_prompt_toolkit into 0a89f9d1dfc3dacea3791533fbc27b7d08a276e9 on spulec:master.


Pin markdown in the requirements.txt file

Markdown has been upgraded to version 3 however that version breaks some of the ussd api stuff that malaria_24 does. The error is on this sentry log: https://sentry.io/organizations/malaria-connect/issues/918495188/?project=1041049&query=is%3Aunresolved&statsPeriod=14d&utc=true
Pinning Markdown to version two helps resolve the issue

I see the latest version below 3 is v2.6.11. What was your reasoning for choosing v2.6.5 rather?
And I presume the error was occurring with 3.0.1, was 3.0.0 also a problem?

@KaitCrawford 3 was a problem when I tested it with Milton for this specific thing.  2.6.5 was the one that was used in production before I started making changes. Because this isn't something I could pick up in the tests I didn't want to take the risk of using 2.6. I don't feel comfortable with the codebase enough to say for sure that 2.6 won't break anything.


[EFM32] SPI transfers larger than what the DMA can handle are split up in mul…

…tiple transfers.

I manually merged this, added one more commit to follow the same style in the lines which were edited for this PR.


pkg/operator: Improve controller structure

Kubernetes controllers and custom operators have a common pattern. It encourages clean shutdowns by passing in a stop channel that is respected by the entire controller. It isolates the reconcilition loop so it can use the wait utilities, respects a stop channel, and calls a separate process loop function or method which can be tested by itself.
New(config Config) (*Kontroller)

func (k *Kontroller) Run(stop <-chan struct{}) {
  // starting
  wait.Until(processLoop, period, stop)
  // stopping
}

func (k.Kontroller) process() {
  // reconciliation logic
}

Usage
stop := make(chan struct{})
defer close(stop)
operator.Run(stop)

Let's adjust the update operator to get the same benefits.

Add a Run(stop <- chan struct{}) to start operator reconciliation process and run until the stop channel is closed
Move the for loop to a process() method which contains the reconciliation logic to coordinate reboots
Use a simple wait.Until(process-loop, 30 second period, stop channel) to repeat the reconciliation loop. Open to different times. Flow control dynamic backoff is more complex to reason about and not needed
A top-level stop channel is a stop toward solving #93 and other shutdown / cleanup / deadlock issues caused by the lack of a top-down way to stop goroutines

Actually, changing the loop period wasn't my intent, I'm happy to use whatever value. I must have miscalculated how the flow control code was adjusting that period. All the more reason to declare one.

Discussed in real life. Sounds like 30 seconds is quite reasonable and fine.


fix(bolt): Display error message if current database is for Portainer BE

closes #4551

@pull-dog down

@pull-dog down

@pull-dog down


Support the neural query type and text_embedding ingest processor type

Description
Adds support for the neural query type and the text_embedding ingest processor type
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@Xtansia Code looks ok to me, find someone who understands neural search to do a detailed CR?


How to create and control a floting joint?

Hi, I am using ManiSkill for dexterous hand manipulation tasks. I want to create a "flying-hand" environment where the base link of the dexterous hand can be controlled in 6-DOF, rather than fixed in a position. My problem is that I find that in the SAPIEN document, it only supports three types of joints: fixed, revolute, and prismatic.
How to add a floating joint, and how to implement the corresponding controller for such a joint? Do I need to add 6 joints (3 for revolute and 3 for prismatic) for this function? Do you have any sample code? Thanks!

Yep you exactly do that. Create 6 fake joints to control all 3. Any order should work. I can publish an official floating panda gripper example next week.

Thanks. Looking forward to the example code.

Yep you exactly do that. Create 6 fake joints to control XYZ RPY in the URDF as parents of the base link.. Any order should work. I can publish an official floating panda gripper example next week.

Hi, any progress on this? Thanks.

Will try and upload an example tomorrow / saturday

uploaded, pull from the latest git commit to get access

@HeegerGao Could you share your flying-hand URDF file? Thank you very much.

@HeegerGao Could you share your flying-hand URDF file? Thank you very much.

You can refer to the URDF in the official example: https://github.com/haosulab/ManiSkill/blob/main/mani_skill/assets/robots/panda/panda_v2_gripper.urdf

@HeegerGao Could you share your flying-hand URDF file? Thank you very much.

You can refer to the URDF in the official example: https://github.com/haosulab/ManiSkill/blob/main/mani_skill/assets/robots/panda/panda_v2_gripper.urdf

It seems that directly editing the URDF file to create 6 fake joints is not feasible. How did you modify the URDF file for the dexterous hand like allegro? Thank you for your response

@HeegerGao Could you share your flying-hand URDF file? Thank you very much.

You can refer to the URDF in the official example: https://github.com/haosulab/ManiSkill/blob/main/mani_skill/assets/robots/panda/panda_v2_gripper.urdf

It seems that directly editing the URDF file to create 6 fake joints is not feasible. How did you modify the URDF file for the dexterous hand like allegro? Thank you for your response

Or it's feasible I directly edit the URDF file to add the six-joint chain?I hope to receive your guidance, thank you.


[Feature Request] Ability to configure which ingressClass Contour watch

Hi,
Today the check for IngressClass annotation is against a hardcoded value (https://github.com/heptio/contour/blob/master/internal/contour/translator.go#L143-L144).
Are you open to make it configurable?
I use k8s on GKE and I expose ingresses both public and privately with external and internal LBs, I plan to use this annotation to "map" my services on the right side of my cluster.
Btw, great work, Contour is dope 👍 .

I think this is a reasonable request and would help with tools like kube-lego which are kind of hard coded to only understand "gce" or "nginx".
I'm going to mark this has help wanted as I'm not planning on working on this for 0.4.
If you want to contribute to this feature, please discuss the change you plan to make, and how you will test it here on this issue before coding. If you send a PR without discussing the change I will close it and redirect you here to discuss your change first. Sorry, them's the rules.

I'm not very familiar with the code base yet, my initial naive plan is:

Add a "ingress class name" field on Translator struct.
Add a flag in main() to choose a name.
Update addIngress() to compare annotation against this field or "contour" in case of nil value.

For testing, I think I have to add a new test which is like TestTranslatorAddIngress with a Translator created with a value for Ingress name.

After trying these ideas a bit, I think interpreting the nil value as "contour" is painful, it forces ugly checks to do the job.
My new proposal is to add constant for the default value ("contour") and set this new field with this default value everywhere a Translator is created (seems smelly but it's already did for the log field) except the new test specially crafted for this feature.

@Nikkau sounds good to me
For creating the default, have a look at the pattern in cmd/contour
https://github.com/heptio/contour/blob/master/cmd/contour/contour.go#L72
To get a t.IngressClass field, add it too
https://github.com/heptio/contour/blob/master/internal/contour/translator.go#L48
following the pattern here
https://github.com/heptio/contour/blob/master/internal/contour/listener.go#L43
and then add a small private getter to fill in the default "contour" if the field isn't set
https://github.com/heptio/contour/blob/master/internal/contour/listener.go#L127
For testing, i'd start by copying this test case into a new test
https://github.com/heptio/contour/blob/master/internal/contour/translator_test.go#L509
You'll want to always provide a translator, rather than letting the test harness provide one; something like
tests := map[string]struct {
        tr *Translator
        ing *v1beta1.Ingress
	ingress_http  []route.VirtualHost
	ingress_https []route.VirtualHost
} {
    // test cases
}

for name, tc := range tests {
    t.Run(name, func(t *testing.T) {
          t.OnAdd(tc.ing)
          // check ingress_http and ingress_https match tc.ingress_http, ingress_https
   })
}

I just submitted #256.
For reference, my first try was https://github.com/Nikkau/contour/commit/6503421e8176c07099ea75dbe572513cff3b5d04 which save the call to ingressClass() at each {add,remove}Ingress() invocation but it clearly doesn't happen often enough to be a useful optimization.


HTTP Server register with consul

Http server, as well as all service endpoint servers should register with consul because they listen on a port and should be discoverable.

Should be easy to add. I will take a look.
On Mon, Jul 13, 2015 at 8:37 PM, Geoffrey Chandler<EMAIL_ADDRESS>
wrote:

Http server, as well as all service endpoint servers should register with
consul because they listen on a port and should be discoverable.
—
Reply to this email directly or view it on GitHub
https://github.com/advantageous/qbit/issues/308.

--
Rick Hightower
(415) 968-9037
Profile http://www.google.com/profiles/RichardHightower


Reproducing joint_alignment_translation - FloatingPointError: Minimum loss scale reached

What is your question?
I am trying to reproduce the results of the paper Jointly Learning to Align and Translate with Transformer Models (Garg et al., 2019) according to this instruction.
I successfully went throug steps 1-3, but when I try to run step 4 (training the model), I get this error:

FloatingPointError: Minimum loss scale reached (0.0001). Your loss is probably exploding. Try lowering the learning rate, using gradient clipping or increasing the batch size.

Full cell output is attached.
train_error.txt
Code
The code is exactly as in the manual, except for the binarized folder location

!fairseq-train
/content/drive/MyDrive/WordAlign/EN-DE/binarized
--arch transformer_wmt_en_de_big_align --share-all-embeddings
--optimizer adam --adam-betas '(0.9, 0.98)' --clip-norm 0.0 --activation-fn relu
--lr 0.0002 --lr-scheduler inverse_sqrt --warmup-updates 4000 --warmup-init-lr 1e-07
--dropout 0.3 --attention-dropout 0.1 --weight-decay 0.0
--max-tokens 3500 --label-smoothing 0.1
--save-dir ./checkpoints --log-interval 1000 --max-update 60000
--keep-interval-updates -1 --save-interval-updates 0
--load-alignments --criterion label_smoothed_cross_entropy_with_alignment
--fp16

What have you tried?

I understand I can try reducing the learning rate or doing anything suggested here, and I will try that. However, the idea of reproducing the paper is to run everything with the same settings and hyperparameters, so I want to understand why it does not work that way.
May it be the case that something went wrong on one of the previous steps? They all worked and produced some output that I have saved, but is there a way to check if that output was correct?
In the output it says: max tokens per GPU = 3500 and batch size per GPU = None, is it normal to have batch size = None? does it default to some reasonable value, or does None imply training by one example or using the entire training set somehow?

Python version: 3.6.9
CUDA/cuDNN version: V10.1.243
GPU models and configuration: different every time with colab, but on last run it said capabilities =  7.5  ; total memory = 14.726 GB ; name = Tesla T4
Any other relevant information: I installed NVIDIA apex with this command !pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" --global-option="--deprecated_fused_adam" --global-option="--xentropy" apex/ The main FairSeq readme also has the  --global-option="--fast_multihead_attn" option but that was always giving me an error

Most likely you're using too small of a batch size. Looking at the README, the original model was trained on 64 GPUs, and the batch size per GPU was 3500 tokens (since --max-tokens=3500), for a total batch size of 64*3500 ~= 224000 (it would typically be a bit less than this, due to padding).
If you train on fewer GPUs, then you need to accumulate gradients from multiple batches to achieve the same total batch size. This is done via --update-freq option. So if you're training on 1 GPU, you would do --max-tokens 3500 --update-freq 64. If you're training on 2 GPUs, you could do --max-tokens 3500 --update-freq 32, etc.

Most likely you're using too small of a batch size. Looking at the README, the original model was trained on 64 GPUs, and the batch size per GPU was 3500 tokens (since --max-tokens=3500), for a total batch size of 64*3500 ~= 224000 (it would typically be a bit less than this, due to padding).
If you train on fewer GPUs, then you need to accumulate gradients from multiple batches to achieve the same total batch size. This is done via --update-freq option. So if you're training on 1 GPU, you would do --max-tokens 3500 --update-freq 64. If you're training on 2 GPUs, you could do --max-tokens 3500 --update-freq 32, etc.

Thank you!
I saw the --update-freq in the readme but I didn't realize that the fewer GPUs I have, the bigger it should be.
Should I also increase learning rate to 0.0007 as suggested there? I am training on one GPU right now (yes I know it will take forever, but I just want to make sure everything is working before I start using paid resouces).

Thank you!
I saw the --update-freq in the readme but I didn't realize that the fewer GPUs I have, the bigger it should be.
Should I also increase learning rate to 0.0007 as suggested there? I am training on one GPU right now (yes I know it will take forever, but I just want to make sure everything is working before I start using paid resouces).


Meta translate function

Looks like there are some python3 issues. Fix to come.

Coverage decreased (-1.0%) to 82.42% when pulling 5c518a4237fc389e1a0a6c054a76bc2211d42dee on meta_translate_function into ddd62dbd6dc9ad696d24c8fbf6087abee3a194d1 on develop.

Thanks Matthew,
Looks like lines 1582-1594 aren't ever being run in _instrument.py. There are strings generated by the test instrument pysat_testing2D that should trigger this code. Can you check this out?

Those lines are not exercised by the pysat_testing2d instrument because the string columns are higher-order columns that are members of a dataframe.
Those lines are for exporting a column of strings that are a part of the top level dataframe. There are strings the pysat_testing instrument that would meet this criterion, but it doesn't look like that instrument is currently used in testing. I can add a test that would exercise those lines if you want.

I see a few tests in in my version of test_utils.py with pysat_testing. One example function name, test_basic_writing_and_reading_netcdf4_default_format, line 95.
On Apr 23, 2018, at 10:51 AM, Matthew Depew <notifications<EMAIL_ADDRESS>wrote:
Those lines are not exercised by the pysat_testing2d instrument because the string columns are higher-order columns that are members of a dataframe.
Those lines are for exporting a column of strings that are a part of the top level dataframe. There are strings the pysat_testing instrument that would meet this criterion, but it doesn't look like that instrument is currently used in testing. I can add a test that would exercise those lines if you want.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHubhttps://github.com/rstoneback/pysat/pull/29#issuecomment-383625181, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADbdeVxHnLokSDNsWTorOZ0MEJ-BucwLks5trfiRgaJpZM4TeEBl.

Ah, I see that now, grep missed it because it was called by module rather than by string. The issue is that there is no metadata for those variables, so it's throwing a key error exception and not reaching those lines. I can modify the pysat testing instrument to provide metadata for those variables and the export will no longer exit before those lines. What should the behavior be when trying to export a variable that does not exist in the meta object?

Ah, ok. I think I was under the mistaken impression those lines used to be covered and weren’t now.
I’d appreciate it if you could add metadata for one the string columns. Might also be good to keep a lack of meta information on at least one column so we can test how we react.
Previously I had the code set up to print a statement to console there is no metadata and move on.
Ideally there should always be an entry in the metadata for all the variables. There is none in this case because of how I put together the simulated data.
Since users can currently replace the .data attached to an instrument object without our knowledge we can’t currently ensure all variables in the data are represented in the Meta object.
A potential cheap fix in the file writing routine would be to compare variables in .data and those in the metaobject. If they aren’t in the meta, do an empty assignment on that metadata variable name and it will produce a set of default metadata values.
The longer term fix is to make .data an attribute on the Instrument object so we know when and if things change and enforce consistency between .data variables and the meta object.
On Apr 23, 2018, at 11:11 AM, Matthew Depew <notifications<EMAIL_ADDRESS>wrote:
Ah, I see that now, grep missed it because it was called by module rather than by string. The issue is that there is no metadata for those variables, so it's throwing a key error exception and not reaching those lines. I can modify the pysat testing instrument to provide metadata for those variables and the export will no longer exit before those lines. What should the behavior be when trying to export a variable that does not exist in the meta object?
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHubhttps://github.com/rstoneback/pysat/pull/29#issuecomment-383632067, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADbdeT_JKfYi4ZI73oZm0GmHaZkqw6uTks5trf0dgaJpZM4TeEBl.


Discover custom providers based on presence of now-* binaries in $PATH

From @rauchg on July 7, 2017 21:35
Copied from original issue: zeit/now#6

@rauchg still want to pursue this?

Thank you so much for the effort you have put into this issue! 😊
However, since we completely re-worked the entire codebase of Now CLI and this issue does not apply to the new code anymore, I'm closing it now.
You can read more about our biggest release yet here: https://zeit.co/blog/now-2


An optimization for membership in a record set

This is an MWE extracted from a larger specification:
------------------------- MODULE RecMem ------------------------------
EXTENDS Integers

VARIABLES
  \* @type: [ pos: Int, q: Int, color: Str ];
  token       \* token structure

N == 3
Node == 0 ..
Input error (see the manual): Found a set map over an infinite set of Int. Not supported.

The reason for that is the following invariant negation:
VCNotInv_si_0 ==
  ~(token
    \in {
      [pos |-> t_7$1, q |-> t_8$1, color |-> t_9$1]:
        t_7$1 \in 1 .. 3,
        t_8$1 \in Int,
        t_9$1 \in { "white", "black" }
    })

We could rewrite an expression rec \in [ f_1: S_1, ..., f_k: S_k ] as follows:
DOMAIN rec = { "f_1", ..., "f_k" } /\ rec.f_1 \in S_1 /\ ... /\ rec.f_k \in S_k

While it would not solve all the problems with infinite sets, it would help us in checking this membership pattern, which occurs often in TypeOK.

This is probably a generalization of #1453

Here is a (simplified) variant (notice the moved SUBSET) that does not work:
------------------------- MODULE RecMem ------------------------------
EXTENDS Integers

\* @typeAlias: qRec = { q: Int };
Q ==
    [ q: Int ]

Token == [q : SUBSET Q] \* Note the SUBSET up here

VARIABLES
  \* @type: { q: Set($qRec) };
  token

TypeOK ==
  token \in Token

Init ==
  token = [q |-> {[q |-> 0]}]

Next ==
  UNCHANGED token

=====================================================================

-> % ./apalache-0.44.11/bin/apalache-mc check --inv=TypeOK --no-deadlock RecMem.tla
16:49:41.323 [main] INFO at.forsyte.apalache.tla.tooling.opt.CheckCmd -- Loading configuration
# Usage statistics is ON. Thank you!
# If you have changed your mind, disable the statistics with config --enable-stats=false.

Output directory: /Users/markus/src/TLA/_specs/MSFT/pbft-tlaplus/_apalache-out/RecMem.tla/2024-07-29T16-49-41_18162720746540512970
# APALACHE version: 0.44.11 | build: 5dee24e                      I@16:49:41.527
Tuning: search.outputTraces=false                                 I@16:49:41.543
PASS #0: SanyParser                                               I@16:49:41.682
Parsing file /Users/markus/src/TLA/_specs/MSFT/pbft-tlaplus/RecMem.tla
Parsing file /private/var/folders/7d/4x6z2cc91jl588ysynlc1tfc0000gn/T/Integers.tla
Parsing file /private/var/folders/7d/4x6z2cc91jl588ysynlc1tfc0000gn/T/Naturals.tla
PASS #1: TypeCheckerSnowcat                                       I@16:49:41.862
 > Running Snowcat .::.                                           I@16:49:41.862
 > Your types are purrfect!                                       I@16:49:41.979
 > All expressions are typed                                      I@16:49:41.981
PASS #2: ConfigurationPass                                        I@16:49:41.981
  > Set the initialization predicate to Init                      I@16:49:41.983
  > Set the transition predicate to Next                          I@16:49:41.988
  > Set an invariant to TypeOK                                    I@16:49:41.989
PASS #3: DesugarerPass                                            I@16:49:41.991
  > Desugaring...                                                 I@16:49:41.991
PASS #4: InlinePass                                               I@16:49:41.999
Leaving only relevant operators: CInitPrimed, Init, InitPrimed, Next, TypeOK I@16:49:41.999
PASS #5: TemporalPass                                             I@16:49:42.008
  > Rewriting temporal operators...                               I@16:49:42.008
  > No temporal property specified, nothing to encode             I@16:49:42.008
PASS #6: InlinePass                                               I@16:49:42.008
Leaving only relevant operators: CInitPrimed, Init, InitPrimed, Next, TypeOK I@16:49:42.008
PASS #7: PrimingPass                                              I@16:49:42.009
  > Introducing InitPrimed for Init'                              I@16:49:42.011
PASS #8: VCGen                                                    I@16:49:42.141
  > Producing verification conditions from the invariant TypeOK   I@16:49:42.141
  > VCGen produced 1 verification condition(s)                    I@16:49:42.144
PASS #9: PreprocessingPass                                        I@16:49:42.144
  > Before preprocessing: unique renaming                         I@16:49:42.144
 > Applying standard transformations:                             I@16:49:42.148
  > PrimePropagation                                              I@16:49:42.149
  > Desugarer                                                     I@16:49:42.149
  > UniqueRenamer                                                 I@16:49:42.150
  > Normalizer                                                    I@16:49:42.151
  > Keramelizer                                                   I@16:49:42.153
  > After preprocessing: UniqueRenamer                            I@16:49:42.156
PASS #10: TransitionFinderPass                                    I@16:49:42.159
  > Found 1 initializing transitions                              I@16:49:42.165
  > Found 1 transitions                                           I@16:49:42.166
  > No constant initializer                                       I@16:49:42.166
  > Applying unique renaming                                      I@16:49:42.166
PASS #11: OptimizationPass                                        I@16:49:42.167
 > Applying optimizations:                                        I@16:49:42.170
  > ConstSimplifier                                               I@16:49:42.171
  > ExprOptimizer                                                 I@16:49:42.172
  > SetMembershipSimplifier                                       I@16:49:42.173
  > ConstSimplifier                                               I@16:49:42.174
PASS #12: AnalysisPass                                            I@16:49:42.175
 > Marking skolemizable existentials and sets to be expanded...   I@16:49:42.177
  > Skolemization                                                 I@16:49:42.177
  > Expansion                                                     I@16:49:42.177
  > Remove unused let-in defs                                     I@16:49:42.178
 > Running analyzers...                                           I@16:49:42.179
  > Introduced expression grades                                  I@16:49:42.180
PASS #13: BoundedChecker                                          I@16:49:42.180
State 0: Checking 1 state invariants                              I@16:49:42.966
Input error (see the manual): Found a set map over an infinite set of CellTFrom(Int). Not supported. E@16:49:42.980
It took me 0 days  0 hours  0 min  1 sec                          I@16:49:42.980
Total time: 1.448 sec                                             I@16:49:42.980
EXITCODE: ERROR (255)

Variant with SUBSET nested in Q:
------------------------- MODULE RecMem ------------------------------
EXTENDS Integers

\* @typeAlias: qRec = { q: Set(Int) };
Q ==
    [ q: SUBSET Int ]

Token == [q :  Q]

VARIABLES
  \* @type: { q: ($qRec) };
  token

TypeOK ==
  token \in Token

Init ==
  token = [q |-> [q |-> {0}]]

Next ==
  UNCHANGED token

=====================================================================

-> % ./apalache-0.44.11/bin/apalache-mc check --inv=TypeOK --no-deadlock RecMem.tla
16:50:45.151 [main] INFO at.forsyte.apalache.tla.tooling.opt.CheckCmd -- Loading configuration
# Usage statistics is ON. Thank you!
# If you have changed your mind, disable the statistics with config --enable-stats=false.

Output directory: /Users/markus/src/TLA/_specs/MSFT/pbft-tlaplus/_apalache-out/RecMem.tla/2024-07-29T16-50-45_4833563426193905404
# APALACHE version: 0.44.11 | build: 5dee24e                      I@16:50:45.357
Tuning: search.outputTraces=false                                 I@16:50:45.375
PASS #0: SanyParser                                               I@16:50:45.512
Parsing file /Users/markus/src/TLA/_specs/MSFT/pbft-tlaplus/RecMem.tla
Parsing file /private/var/folders/7d/4x6z2cc91jl588ysynlc1tfc0000gn/T/Integers.tla
Parsing file /private/var/folders/7d/4x6z2cc91jl588ysynlc1tfc0000gn/T/Naturals.tla
PASS #1: TypeCheckerSnowcat                                       I@16:50:45.672
 > Running Snowcat .::.                                           I@16:50:45.672
 > Your types are purrfect!                                       I@16:50:45.795
 > All expressions are typed                                      I@16:50:45.795
PASS #2: ConfigurationPass                                        I@16:50:45.795
  > Set the initialization predicate to Init                      I@16:50:45.798
  > Set the transition predicate to Next                          I@16:50:45.798
  > Set an invariant to TypeOK                                    I@16:50:45.799
PASS #3: DesugarerPass                                            I@16:50:45.801
  > Desugaring...                                                 I@16:50:45.801
PASS #4: InlinePass                                               I@16:50:45.808
Leaving only relevant operators: CInitPrimed, Init, InitPrimed, Next, TypeOK I@16:50:45.808
PASS #5: TemporalPass                                             I@16:50:45.818
  > Rewriting temporal operators...                               I@16:50:45.818
  > No temporal property specified, nothing to encode             I@16:50:45.818
PASS #6: InlinePass                                               I@16:50:45.818
Leaving only relevant operators: CInitPrimed, Init, InitPrimed, Next, TypeOK I@16:50:45.818
PASS #7: PrimingPass                                              I@16:50:45.819
  > Introducing InitPrimed for Init'                              I@16:50:45.821
PASS #8: VCGen                                                    I@16:50:45.950
  > Producing verification conditions from the invariant TypeOK   I@16:50:45.950
  > VCGen produced 1 verification condition(s)                    I@16:50:45.953
PASS #9: PreprocessingPass                                        I@16:50:45.954
  > Before preprocessing: unique renaming                         I@16:50:45.954
 > Applying standard transformations:                             I@16:50:45.958
  > PrimePropagation                                              I@16:50:45.958
  > Desugarer                                                     I@16:50:45.959
  > UniqueRenamer                                                 I@16:50:45.959
  > Normalizer                                                    I@16:50:45.960
  > Keramelizer                                                   I@16:50:45.961
  > After preprocessing: UniqueRenamer                            I@16:50:45.965
PASS #10: TransitionFinderPass                                    I@16:50:45.968
  > Found 1 initializing transitions                              I@16:50:45.974
  > Found 1 transitions                                           I@16:50:45.974
  > No constant initializer                                       I@16:50:45.974
  > Applying unique renaming                                      I@16:50:45.974
PASS #11: OptimizationPass                                        I@16:50:45.975
 > Applying optimizations:                                        I@16:50:45.979
  > ConstSimplifier                                               I@16:50:45.979
  > ExprOptimizer                                                 I@16:50:45.980
  > SetMembershipSimplifier                                       I@16:50:45.982
  > ConstSimplifier                                               I@16:50:45.982
PASS #12: AnalysisPass                                            I@16:50:45.983
 > Marking skolemizable existentials and sets to be expanded...   I@16:50:45.985
  > Skolemization                                                 I@16:50:45.985
  > Expansion                                                     I@16:50:45.985
  > Remove unused let-in defs                                     I@16:50:45.986
 > Running analyzers...                                           I@16:50:45.987
  > Introduced expression grades                                  I@16:50:45.988
PASS #13: BoundedChecker                                          I@16:50:45.988
State 0: Checking 1 state invariants                              I@16:50:46.813
State 0: state invariant 0 holds.                                 I@16:50:46.825
Step 0: picking a transition out of 1 transition(s)               I@16:50:46.826
Step 1: picking a transition out of 1 transition(s)               I@16:50:46.832
Step 2: picking a transition out of 1 transition(s)               I@16:50:46.834
Step 3: picking a transition out of 1 transition(s)               I@16:50:46.835
Step 4: picking a transition out of 1 transition(s)               I@16:50:46.835
Step 5: picking a transition out of 1 transition(s)               I@16:50:46.836
Step 6: picking a transition out of 1 transition(s)               I@16:50:46.837
Step 7: picking a transition out of 1 transition(s)               I@16:50:46.838
Step 8: picking a transition out of 1 transition(s)               I@16:50:46.839
Step 9: picking a transition out of 1 transition(s)               I@16:50:46.840
Step 10: picking a transition out of 1 transition(s)              I@16:50:46.840
The outcome is: NoError                                           I@16:50:46.843
Checker reports no error up to computation length 10              I@16:50:46.844
It took me 0 days  0 hours  0 min  1 sec                          I@16:50:46.844
Total time: 1.483 sec                                             I@16:50:46.844
EXITCODE: OK

Yeah, many rewriting rules in Apalache should be done purely at the IR level, without going into the rewriting to SMT

Is there already infrastructure to rewrite the IR where I could add a rewriting?

Is there already infrastructure to rewrite the IR where I could add a rewriting rule?

You could add a case to https://github.com/apalache-mc/apalache/blob/main/tla-pp/src/main/scala/at/forsyte/apalache/tla/pp/ExprOptimizer.scala and add a test to https://github.com/apalache-mc/apalache/blob/main/tla-pp/src/test/scala/at/forsyte/apalache/tla/pp/TestExprOptimizer.scala
I am currently thinking about having a more universal rewriting infrastructure.


EinsteinVision_PredictionService.createExample gives error

Hi, I'm trying to take a PNG blob from a ContentVersion and pass it into createExample().
I keep getting the response message:

Response finished with Error: The 'name', 'labelId', and 'data' parameters are required to create an example.

Anonymous Apex code:
VisionController vc = new VisionController();
EinsteinVision_PredictionService ps = new EinsteinVision_PredictionService(vc.accessToken);

long datasetId = 1001419;
long labelId = 8588;
Id exampleId = '069o0000002CXDS'; // Rover.PNG

Blob fileBlob = [Select VersionData from ContentVersion where ContentDocumentId = :exampleId order by VersionNumber desc limit 1].VersionData;
EinsteinVision_Example ex = ps.createExample(datasetId, 'firstExample.png', labelId, fileBlob);
System.assertNotEquals(null, ex);

I've checked that the dataSetId and labelId are correct.
I was able to manually create the example using Postman in Chrome.
https://www.dropbox.com/s/5lcwfw4wjeomf51/Postman.PNG?dl=0
Any ideas?
Maybe the body part for the image data needs a Content-Type header and the filename on the Content-Disposition?
The postman preview showed it as:
----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="data"; filename="rover.png"
Content-Type: image/png

----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="labelId"

8588
----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="name"

rover.png
----WebKitFormBoundaryE19zNvXGzXaLvS5C

Thanks,
Daniel

Well, that was some interesting learning about base64 encoding and appending a file when using  multipart/form-data.
The problem is largely covered in POST Mutipart/form-data with HttpRequest. The short version is if you aren't really careful the last few bytes of the file can get corrupted as part of the base64 encoded.
I needed to swap out the EinsteinVision_HttpBodyPart.WriteBodyParameter method with a new one when used by EinsteinVision_HttpBodyPartExample to encode the example blob data.
I'll see if I can put this together in a pull request.

LMK if I should jump on that.
I've taken that part of the wrappers directly from the MetaMind repo, so we should let them know too.

I've had a go at addressing it in the patch request. It isn't complete as the mimetype is hard coded to PNG.
Would also benefit from some apex test cases.
It did work in the one test I completed.


Maybe Class.HasRefBase and Class.HasBase should behave the same way.

Class.HasRefBase checks if the base IsGenerated
Class.HasBase does not check if the base IsGenerated

They also only check if the first base is ignored, what happens if a class is inherited multiple times and more than 1 is ignored?

This is the line that is incomplete for context: var shouldInheritFromIDisposable = !@class.HasBase;.


Windows 10 Volume OSD does not open GPMDP

OS: Windows 10 (Version 1803, Build 17134)
GPMDP Version: 4.6.0
Issue Descriptions:
Clicking on the Song Info in the Windows 10 Volume OSD does not open GPMDP. It instead makes every application window inactive. Ideal behavior would be making GPMDP show, come to the front, and be active. (The ideal behavior was determined using Groove Music and Movies & TV.)
Steps to Reproduce:

Launch GPMDP. (It does not matter if the application is currently windowed, minimized to the taskbar, or minimized to the tray. It does not matter if a track is playing, a track is paused, or no track is playing.)

Change the volume on the device to bring up the Volume OSD.

Click on the Album Cover image, the track title, or the track artist.

Debug Info: debug_info.zip

@TheTripleV I can't see an event for this in the docs for this feature on Windows Dev Center
https://docs.microsoft.com/en-us/uwp/api/windows.media.systemmediatransportcontrols
If someone finds the event I need to listen to I'll gladly address this, just @ mention me in a follow up

@MarshallOfSound I couldn't find any documentation on this but I think that Windows just tries to activate the process that is tied with system media controls.
In Task Manager, GPMDP has 4 processes. I manually activated each one by PID using AutoHotkey. 1 PID activated GPMDP and brought it to focus. 2 PID's did nothing. The last PID reproduced the issue and made all windows inactive. So, I think that Windows is trying to activate the wrong process.
Note: Activating the gui process also fails and reproduces the issue if GPMDP is minimized to the tray. It only seems to work when the player is open but in the background or minimized to the taskbar.
Thanks!


[Bug] Crash in network::discovery module due to unexpected discovery note.

🐛 Bug

Stack trace/error message
C0207 13:53:51.540858<PHONE_NUMBER>00928 common/crash-handler/src/lib.rs:38] details = '''
panicked at 'assertion failed: `(left != right)`
  left: `876f6d031beba522f7a42b425f25598a672156b89aa4b75c9ae397f4e59a538d`,
 right: `876f6d031beba522f7a42b425f25598a672156b89aa4b75c9ae397f4e59a538d`', network/src/protocols/discovery/mod.rs:333:21'''
backtrace = '''
stack backtrace:
   0:     0x55edd24aa5d7 - backtrace::backtrace::libunwind::trace::h98a0578fa2d95698
                               at /root/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/libunwind.rs:88
                           backtrace::backtrace::trace_unsynchronized::ha0ca25af83675209
                               at /root/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/mod.rs:66
                           backtrace::backtrace::trace::h567fc8e6753f4e36
                               at /root/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/mod.rs:53
   1:     0x55edd24a9803 - backtrace::capture::Backtrace::create::h6d19f686ae27ede7
                               at /root/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/capture.rs:164
                           backtrace::capture::Backtrace::new::hfdf48bb8a3314f07
                               at /root/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/capture.rs:128
   2:     0x55edd219d6f3 - crash_handler::handle_panic::h6f2af6e7e02686ed
                               at common/crash-handler/src/lib.rs:35
   3:     0x55edd219d679 - crash_handler::setup_panic_handler::{{closure}}::hd2e342ed2821e9b8
                               at common/crash-handler/src/lib.rs:27
   4:     0x55edd24e4eb0 - std::panicking::rust_panic_with_hook::hbe174577402a475d
                               at src/libstd/panicking.rs:468
   5:     0x55edd24e497e - std::panicking::continue_panic_fmt::h4d855dad868accf3
                               at src/libstd/panicking.rs:373
   6:     0x55edd24e48bf - std::panicking::begin_panic_fmt::ha0f013e3301a9528
                               at src/libstd/panicking.rs:328
   7:     0x55edd1d65778 - network::protocols::discovery::Discovery<TTicker>::reconcile::{{closure}}::h1d66e8fac1dbc800
                               at network/src/protocols/discovery/mod.rs:333
                           <std::future::GenFuture<T> as core::future::future::Future>::poll::{{closure}}::hff2dca83ea9e687d
                               at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/future.rs:43
                           std::future::set_task_context::h40ba017f0d96ea01
                               at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/future.rs:79
                           <std::future::GenFuture<T> as core::future::future::Future>::poll::hbcfaec5d2880b9e6
                               at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/future.rs:43
                           std::future::poll_with_tls_context::{{closure}}::h3d6576b83de3550e
                               at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/future.rs:121
                           std::future::get_task_context::h02f2551c04bc4723

Expected Behavior
The panic suggests that the node's discovery module received a note with higher epoch number for itself than it had advertised. This is an unexpected condition and suggests a bug in the code.

The situation above is possible when a validator is restarted on a node whose clock is behind than the node it was previously started on. Instead of issuing a panic! when we encounter this situation, it's better and safe to issue a new note with an epoch number higher than the one observed in the received discovery note.


Don't retry 401/404/500

Small change in the get_data retry loop to break if the error code indicates not found, unauthorized, or server error. This prevents retrying in obvious cases where the token is invalid or the URL is wrong but also should prevent retrying in the case reported in the issue where rank_series_by_source was returning a 404.
lib.get_data('http://api.gro-intelligence.com/v2/available/sources', '')
->
{"statusCode":401,"error":"Unauthorized","message":"Missing authentication"}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "api/client/lib.py", line 170, in get_data
    url, retry_count, data.text))
Exception: Giving up on http://api.gro-intelligence.com/v2/available/sources after 1 tries. Error is: {"statusCode":401,"error":"Unauthorized","message":"Missing authentication"}.

lib.get_data('http://api.gro-intelligence.com/asdfjhlkj', '')
->
{"statusCode":404,"error":"Not Found"}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "api/client/lib.py", line 170, in get_data
    url, retry_count, data.text))
Exception: Giving up on http://api.gro-intelligence.com/asdfjhlkj after 1 tries. Error is: {"statusCode":404,"error":"Not Found"}.

Done


pseudolog10 doesn't give nice ticks

julia> using CairoMakie

julia> save("log10.png", scatter(exp.(1:10), 1:10; axis=(; xscale=log10)))
CairoScreen{Cairo.CairoSurfaceBase{UInt32}} with surface:
Cairo.CairoSurfaceBase{UInt32}(Ptr{Nothing} @0x00007f9d6bc142f0, 800.0, 600.0)

while
julia> save("pseudolog10.png", scatter(exp.(1:10), 1:10; axis=(; xscale=Makie.pseudolog10)))
CairoScreen{Cairo.CairoSurfaceBase{UInt32}} with surface:
Cairo.CairoSurfaceBase{UInt32}(Ptr{Nothing} @0x00007f9d6bc51d70, 800.0, 600.0)

gives

True, I didn't have ideas yet for a good algorithm. If zero is in the plot, you'd get infinite ticks with the log algorithm. So there must be some heuristic when to show what.

No worries, just wanted to track the issue somewhere. Having the pseudolog10 is already super useful :).


Standalone flag

Introduce a flag that makes the bee node operate standalone. Very useful for local development work, expecially when software still unstable, because:

currently the workaround is to change the networkid to something (hopefully) unused.
that workaround creates a lot of chatter in the logs, making it harder to use for debugging.

:thumbsup:

Using --bootnode "" prevents the node from connecting to bootnodes. If the address book is clean then the node won't connect to any other node.

@acud doesnt work if the node was already connected at some point?

@nolash , you will need to specify a new (empty) data directory. Otherwise, it will indeed still try to connect to previous connections you made.

... and thus it seems to me that the most user-friendly way of implementing this is for the command line switch to decide whether there should be connectivity or not.

A standalone flag makes sense, I think, as all current options are not clear or reliable enough in all situations. I do not think that it would be much of a problem to add it.
This flag should prevent connecting on start to any peers and also not to connect to any other peers that may be in the addressbook, and also should prevent p2p to listen for new connections by other peers. This is what I would assume that a standalone flag would set. Is this something what would be in line with your proposal @nolash?

Is this something what would be in line with your proposal @nolash?

you read my mind @janos

Great, I've just created a task https://github.com/ethersphere/bee/issues/536.

Done by @metacertain in #597


Zib Patient

Includes Nationality, MaritalStatus, LanguageProficiency
To do: add zib ContactPerson mapping to Patient.contact
To do: zib Payer (probably) partially overlaps with zib Patient
To do: check if the cardinality comments for .name and .telecom correspond with the comments used in ContactPerson
Cardinality of Patient.extension:nationality left at 0..* due to the nature of the nationality core extension (which allows for a period to be placed next to the nationality and thus allows for different nationalities over time)
Added a comment to deceased[x]: When exporting the data, if deceasedDateTime (DateOfDeath) is present and has a value, DeathIndicator may be set to 'true', since DeathIndicator and DateOfDeath cannot both be represented at the same time.

Alle openstaande issues zijn opgelost, ik sluit deze PR


Feat: Adding the github repo link to the footer github icon

Describe the feature
The current github icon does not have any on click function. It should be linked to this github repo of krishiconnect.
Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Description:
Currently, the GitHub icon in the footer does not link to the project's GitHub repository. I would like to add the repository link to the icon so that users can easily navigate to the GitHub repo by clicking the icon. This will improve accessibility and encourage more user engagement with the project's codebase.
Screenshot:

I am a GSSoC contributor and would like to work on adding the GitHub repo link to the footer GitHub icon as described in issue #605. Could you please assign this issue to me? Thank you!

Hello @Amruta7203!
please fix the asssigned issues first and let me know when u are done with them first.

hey @Amruta7203 !
We have updated the footer and rn we dont have any github links in it.


Make switch statements work

It seems that you cannot have a Coffeescript switch statement in an eco template:
http://stackoverflow.com/questions/8920981/can-i-use-a-coffeescript-switch-block-in-eco
Or if you can, it is not obvious how.

I'm able to get a switch statement out of Eco when I remove when from the dedent regular expression, then create a template that expresses a switch statement on a single line, with no text between the switch and when statements.
There would have to be logic added to the scanner or preprocessors that turns off text gathering while in a switch. The first when would have to not dedent.


"Only integers" doesn't strip commas like it should

Closed in https://github.com/dobtco/formrenderer-base/commit/5c5d9f9ff29fd5fa65d4999bdcfd6395deaa97d6


Strong typed var that was causing error.

When used on Python3, this utility broke with the error:
"TypeError: Can't parse 'center'. Sequence item with index 0 has a wrong type"
I debugged it and found that the error was the absence of typing on the variable eyesCenter, so I strong typed the var that was causing the error.

Hey @allanhermann
Could you add a minimal reproducible code snippet for the bug?


Incomplete sample

The sample code is typical of XAML/WPF samples. It is extremely, extremely frustrating. It does not show what EmployeeInfoDataSource is. It is so frustrating because there are so many ways of doing data binding and nearly always the actual definition and declaration of the data is not shown so it is very difficult to know what applies to what.

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

ID: 54a37aff-a0f4-98cf-7a5f-9d2193ee0462
Version Independent ID: 7edf630c-d6a2-4ebd-7721-68e0fd350651
Content: ListView Class (System.Windows.Controls)
Content Source: xml/System.Windows.Controls/ListView.xml
Product: dotnet-api
GitHub Login: @dotnet-bot
Microsoft Alias: dotnetcontent

Thanks for pointing this out, @SimpleSamples. Unfortunately, it's true that many of our WPF samples lack context and provide only incomplete code. We've addressed this issue for a different topic in #6806 by including the entire windows1.xaml file and highlighting its relevant portions, but here we'll have to include the definition of the EmployeeInfo and myEmployees classes from windows1.xaml.cs as well as the windows1.xaml file.
I've added this to our backlog, made it up-for-grabs, and added it to the community contributors project.

I do not know where the new version of the following is but it is the most important place for the where the explanation to be. It however shows a ListBox and then it leaves the simply binding behind and goes off to animation and shock and awe stuff. The more practical topic (for many businesses) of grids like ListView and DataGrid is not so easy to find.
https://msdn.microsoft.com/en-us/library/ms752347(v=vs.100).aspx?f=255&MSPPError=-2147217396
After trial and error I managed to get ItemsSource in code to work combined with DisplayMemberBinding in XAML for a ListView but it is difficult to find complete simple samples of things like that. The introduction should at least make that type of thing easier.


feat(sandpack): split bundle - suspense

@gaearon, in order to make the Suspense work, Sandpack now has split its component into different chunks of files. But unfortunately, I wasn't able to make it work properly due to some issue related to Nextjs (next.config.js has a comment about it), so maybe you have some idea how to proceed and address it.
Let me know if everything is fine on our end, then I'll publish it.

Mind rebasing?

@gaearon done, very curious to see how it will look like, so please let me know if you have any updates

I guess I can close this, as there is another PR exploring this possibility


Revert "Make the floppy lizard ears have two colors."

About the PR
Reverts space-wizards/space-station-14#27679.
Why / Balance
This is difficult to articulate, but I feel like lizards shouldn't really have multiple colors for their head area. It's a huge departure from every other head marking they have, and is generally quite unfitting for the species because of that IMO. I feel like this would also probably look way too distracting, but it's quite hard to say that with confidence without actually seeing it ingame.
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame

Changelog
no cl no fun

I understand thinking the two colors might be a bit confusing, but the lizard hood marking does the exact same thing, and I don't think anyone has a problem with that.


Shadowrun 5 advanced: Import from Chummer doesn't work anymore

Hello !
In the sheet "Shadowrun5th (advanced)", the "Chummer Import" functionality doesn't seem to work anymore.
How to reproduce:
Create a new Character
Edit the new character
Go in tab "Character Sheet" to show the Shadowrun Sheet
Go in tab "Character"
Past the JSON of your character in the field "Chummer Import"
Click on button "Import", it will display the message "This will override everything"
Click on the button "I Accept", it will display "Please Wait!"
Here you can wait 2 hours, it doesn't do anything.
I have tried with several characters. I attached the simplest one.
charactJsonExample.txt

still continues with the bug. im verify the warning i see in console and if fix then solve the import but im not sure that.

I created a new game with a custom sheet and it worked. have some minor bugs but whatever. great job.

This is resolved.
@Nailsonnb can you please create another issue with the bugs? Thanks

@linkendel

fixed by #8679

@linkendel  please close this

@nmbradley apparently @linkendel does not have the time to close this. Can you do it? Thanks


Numpy Version 2 Update

Now that numpy 2 has been released in June 2024, in the default requirements.txt, without specifying a numpy version 1.x.x (e.g. 1.26.4) some api calls to version 2.x.x of numpy may cause problems.
With some problems encountered already, I'm going to test this (whether numpy 2.x.x will work) in a docker set up similar to the Dockerfile in this repo, but before that I'm leaving an issue here in case no one had brought up attention to the numpy version issue.

tl;dr: need to update requirements.txt and specify numpy version 1.26.4 (tested)
I'm also working on an updated Dockerfile and its paired requirements.txt, with domestic mirrors applied where possible. If people are interested maybe I can open a PR to update the Dockerfile.


OPRUN-3567: UPSTREAM: : Add global-pull-secret flag

Blocked by upstream sync & needs more work.
Pass global-pull-secret to the manager container.

/hold

At this point we have a flag and all the required RBAC, but I think both catalogd and operator-controller need to be built with containers_image_openpgp build tag.

This now (temporary) includes #170. Once #170 merges we will need to rebase on top of main.

/unhold
On a cluster created from https://github.com/openshift/operator-framework-operator-controller/pull/166 and https://github.com/openshift/operator-framework-catalogd/pull/75 was able to create a ClusterCatalog with a private registry and install argocd-operator successfully.

ClusterCatalog
apiVersion: olm.operatorframework.io/v1alpha1
kind: ClusterCatalog
metadata:
  name: redhat-community-operators
spec:
  priority: 0
  source:
    type: Image
    image:
      pollInterval: 24h
      ref: registry.redhat.io/redhat/community-operator-index:v4.18

ClusterExtension & friends
apiVersion: v1
kind: Namespace
metadata:
  name: argocd
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: argocd-installer
  namespace: argocd
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: argocd-installer-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: argocd-installer-clusterrole
subjects:
- kind: ServiceAccount
  name: argocd-installer
  namespace: argocd
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: argocd-installer-clusterrole
rules:
# Allow ClusterExtension to set blockOwnerDeletion ownerReferences
- apiGroups: [olm.operatorframework.io]
  resources: [clusterextensions/finalizers]
  verbs: [update]
  resourceNames: [argocd]
# Manage ArgoCD CRDs
- apiGroups: [apiextensions.k8s.io]
  resources: [customresourcedefinitions]
  verbs: [create, list, watch]
- apiGroups: [apiextensions.k8s.io]
  resources: [customresourcedefinitions]
  verbs: [get, update, patch, delete]
  resourceNames:
  - appprojects.argoproj.io
  - argocds.argoproj.io
  - applications.argoproj.io
  - argocdexports.argoproj.io
  - applicationsets.argoproj.io
# Manage ArgoCD ClusterRoles and ClusterRoleBindings
- apiGroups: [rbac.authorization.k8s.io]
  resources: [clusterroles]
  verbs: [create, list, watch]
- apiGroups: [rbac.authorization.k8s.io]
  resources: [clusterroles]
  verbs: [get, update, patch, delete]
  resourceNames:
  - argocd-operator.v0-1dhiybrldl1gyksid1dk2dqjsc72psdybc7iyvse5gpx
  - argocd-operator-metrics-reader
  - argocd-operator.v0-22gmilmgp91wu25is5i2ec598hni8owq3l71bbkl7iz3
- apiGroups: [rbac.authorization.k8s.io]
  resources: [clusterrolebindings]
  verbs: [create, list, watch]
- apiGroups: [rbac.authorization.k8s.io]
  resources: [clusterrolebindings]
  verbs: [get, update, patch, delete]
  resourceNames:
  - argocd-operator.v0-1dhiybrldl1gyksid1dk2dqjsc72psdybc7iyvse5gpx
  - argocd-operator.v0-22gmilmgp91wu25is5i2ec598hni8owq3l71bbkl7iz3
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: argocd-installer-rbac-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: argocd-installer-rbac-clusterrole
subjects:
- kind: ServiceAccount
  name: argocd-installer
  namespace: argocd
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: argocd-installer-rbac-clusterrole
rules:
# ArgoCD's operator requires the following permissions, which means the
# installer also needs them in order to create ArgoCD's RBAC objects.
- apiGroups: [""]
  resources: [configmaps]
  verbs: ['*']
- apiGroups: [""]
  resources: [endpoints]
  verbs: ['*']
- apiGroups: [""]
  resources: [events]
  verbs: ['*']
- apiGroups: [""]
  resources: [namespaces]
  verbs: ['*']
- apiGroups: [""]
  resources: [persistentvolumeclaims]
  verbs: ['*']
- apiGroups: [""]
  resources: [pods]
  verbs: ['*', get]
- apiGroups: [""]
  resources: [pods/log]
  verbs: [get]
- apiGroups: [""]
  resources: [secrets]
  verbs: ['*']
- apiGroups: [""]
  resources: [serviceaccounts]
  verbs: ['*']
- apiGroups: [""]
  resources: [services]
  verbs: ['*']
- apiGroups: [""]
  resources: [services/finalizers]
  verbs: ['*']
- apiGroups: [apps]
  resources: [daemonsets]
  verbs: ['*']
- apiGroups: [apps]
  resources: [deployments]
  verbs: ['*']
- apiGroups: [apps]
  resources: [deployments/finalizers]
  resourceNames: [argocd-operator]
  verbs: [update]
- apiGroups: [apps]
  resources: [replicasets]
  verbs: ['*']
- apiGroups: [apps]
  resources: [statefulsets]
  verbs: ['*']
- apiGroups: [apps.openshift.io]
  resources: [deploymentconfigs]
  verbs: ['*']
- apiGroups: [argoproj.io]
  resources: [applications]
  verbs: ['*']
- apiGroups: [argoproj.io]
  resources: [appprojects]
  verbs: ['*']
- apiGroups: [argoproj.io]
  resources: [argocdexports]
  verbs: ['*']
- apiGroups: [argoproj.io]
  resources: [argocdexports/finalizers]
  verbs: ['*']
- apiGroups: [argoproj.io]
  resources: [argocdexports/status]
  verbs: ['*']
- apiGroups: [argoproj.io]
  resources: [argocds]
  verbs: ['*']
- apiGroups: [argoproj.io]
  resources: [argocds/finalizers]
  verbs: ['*']
- apiGroups: [argoproj.io]
  resources: [argocds/status]
  verbs: ['*']
- apiGroups: [authentication.k8s.io]
  resources: [tokenreviews]
  verbs: [create]
- apiGroups: [authorization.k8s.io]
  resources: [subjectaccessreviews]
  verbs: [create]
- apiGroups: [autoscaling]
  resources: [horizontalpodautoscalers]
  verbs: ['*']
- apiGroups: [batch]
  resources: [cronjobs]
  verbs: ['*']
- apiGroups: [batch]
  resources: [jobs]
  verbs: ['*']
- apiGroups: [config.openshift.io]
  resources: [clusterversions]
  verbs: [get, list, watch]
- apiGroups: [monitoring.coreos.com]
  resources: [prometheuses]
  verbs: ['*']
- apiGroups: [monitoring.coreos.com]
  resources: [servicemonitors]
  verbs: ['*']
- apiGroups: [networking.k8s.io]
  resources: [ingresses]
  verbs: ['*']
- apiGroups: [oauth.openshift.io]
  resources: [oauthclients]
  verbs: [create, delete, get, list, patch, update, watch]
- apiGroups: [rbac.authorization.k8s.io]
  resources: ['*']
  verbs: ['*']
- apiGroups: [rbac.authorization.k8s.io]
  resources: [clusterrolebindings]
  verbs: ['*']
- apiGroups: [rbac.authorization.k8s.io]
  resources: [clusterroles]
  verbs: ['*']
- apiGroups: [route.openshift.io]
  resources: [routes]
  verbs: ['*']
- apiGroups: [route.openshift.io]
  resources: [routes/custom-host]
  verbs: ['*']
- apiGroups: [template.openshift.io]
  resources: [templateconfigs]
  verbs: ['*']
- apiGroups: [template.openshift.io]
  resources: [templateinstances]
  verbs: ['*']
- apiGroups: [template.openshift.io]
  resources: [templates]
  verbs: ['*']
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: argocd-installer-role
  namespace: argocd
rules:
- apiGroups: [""]
  resources: [serviceaccounts]
  verbs: [create, list, watch]
- apiGroups: [""]
  resources: [serviceaccounts]
  verbs: [get, update, patch, delete]
  resourceNames: [argocd-operator-controller-manager]
- apiGroups: [""]
  resources: [configmaps]
  verbs: [create, list, watch]
- apiGroups: [""]
  resources: [configmaps]
  verbs: [get, update, patch, delete]
  resourceNames: [argocd-operator-manager-config]
- apiGroups: [""]
  resources: [services]
  verbs: [create, list, watch]
- apiGroups: [""]
  resources: [services]
  verbs: [get, update, patch, delete]
  resourceNames: [argocd-operator-controller-manager-metrics-service]
- apiGroups: [apps]
  resources: [deployments]
  verbs: [create, list, watch]
- apiGroups: [apps]
  resources: [deployments]
  verbs: [get, update, patch, delete]
  resourceNames: [argocd-operator-controller-manager]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: argocd-installer-binding
  namespace: argocd
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: argocd-installer-role
subjects:
- kind: ServiceAccount
  name: argocd-installer
  namespace: argocd
---
apiVersion: olm.operatorframework.io/v1alpha1
kind: ClusterExtension
metadata:
  name: argocd
spec:
  source:
    sourceType: Catalog
    catalog:
      packageName: argocd-operator
      version: 0.7.0
  install:
    namespace: argocd
    serviceAccount:
      name: argocd-installer


Split HMCTS import into two steps: doc creation and draft creation

When doing the initial HMCTS import, just create the documents and attachments in whitehall. Split out a separate step for running the draft updater, which sends the document to the draft content store.
When the tasks were combined, it slowed down whitehall publishing because these drafts were being added to the same queue as other publications. This delayed publications on staging by up to two hours.
Having a separate draft update step lets us tune the speed at which we create the drafts, and lets us kill the job without losing or duplicating data in whitehall.
https://trello.com/c/jDx2Cvqf/113-2-hmcts-step-3-import-data

I tested it on integration and it doesn't solve the issue. It's the attachment uploading that blocks publishing, so we'll probably have to throttle it.


Long sequence of mapped functions result in non-persistable state

Given the following Dask Bag
import dask
import dask.bag as db

def func_a(x):
    return x

def func_b(x):
    return x

def function_with_a_really_long_name(x):
    return x

def another_function_with_a_really_long_name(x):
    return x

def yet_another_function_with_a_really_long_name(x):
    return x

def i_can_keep_on_going_creating_more_functions_with_really_long_names(x):
    return x

def by_now_we_should_have_reached_the_255_character_limit_which_will_raise_file_name_too_long_if_state_is_saved_to_file(x):
    return x

bag = (
    db.from_sequence(range(5))
    .map(func_a)
    .map(func_b)
    .map(function_with_a_really_long_name)
    .map(another_function_with_a_really_long_name)
    .map(yet_another_function_with_a_really_long_name)
    .map(i_can_keep_on_going_creating_more_functions_with_really_long_names)
    .map(by_now_we_should_have_reached_the_255_character_limit_which_will_raise_file_name_too_long_if_state_is_saved_to_file)
)

Will in the end generate task names or keys looking something like this another_function_with_a_really_long_name-func_a-func_b-function_with_a_really_long_name-i_can_keep_on_going_creating_more_functions_with_r-yet_another_function_with_a_really_long_name-by_now_we_should_have_reached_the_255_charachter_l-1c9fd5895927017c1be22d12e1165aa7.
This particular key is 267 characters long and if a worker in a distributed dask cluster decides to persist its data to disk this will raise an OSError [Errno 36] File name too long and put the cluster in an undefined and paused state.

This should serve as a work-around:
from dask.bag.core import ensure_dict, cull, fuse, inline_singleton_lists, lazify
# Set rename_fused_keys to False by default
def optimize(dsk, keys, fuse_keys=None, rename_fused_keys=False, **kwargs):
    """ Optimize a dask from a dask Bag. """
    dsk = ensure_dict(dsk)
    dsk2, dependencies = cull(dsk, keys)
    dsk3, dependencies = fuse(
        dsk2, keys + (fuse_keys or []), dependencies, rename_keys=rename_fused_keys
    )
    dsk4 = inline_singleton_lists(dsk3, keys, dependencies)
    dsk5 = lazify(dsk4)
    return dsk5

dask.config.set(bag_optimize=optimize)  # Override the default function for bag optimization

Unfortunately one can not just use dask.config.set({"fuse_rename_keys":False}) because for dask.bag rename_keys defaults to True, see: https://github.com/dask/dask/blob/master/dask/bag/core.py#L158
@mrocklin could the rename_fused_keys kwarg  of dask.bag.optimize be removed safely so one can set this using the configuration parameter?

Thanks for raising an issue @johanols!
@lr4d I think we want to avoid removing the rename_fused_keys keyword as that could break existing user code. Instead I'd recommend changing the default value of rename_fused_keys to None. That way, fuse will pull in any user configured value here:
https://github.com/dask/dask/blob/1f87ae6329c3ae1c6f3f31945f891c33642c64ba/dask/optimization.py#L493-L494
and if not defined then use True, which is the current default behavior.

Truncating the concatenated keys is probably more user friendly. I would suspect the ordinary user not to dive this deep into optimisation when encountering something like this.

actually @jrbourbeau , removing the kwarg would be the same as setting it to None by default, as the function admits additional **kwargs

The difference ofc would be that behavior would change when renamed_fused_keys=False is passed to that function, but a warning for that could be added

Truncating the concatenated keys is probably more user friendly. I would suspect the ordinary user not to dive this deep into optimisation when encountering something like this.

Agreed that most users should be expected to dig this deep into things. We already truncate long function names (xref https://github.com/dask/dask/pull/5383)

as the function admits additional **kwargs

Ah I missed that, thanks for pointing it out. Although it looks like kwargs isn't being passed to any other functions in the bag optimization code. I see you've opened up #6000, we can move the conversation over there

This issue is now resolved as of version 2.13.0 by setting fuse_rename_keys to false in the Dask configuration.

Thanks for following up here @johanols

Wouldn't a more general solution be to update the spill-to-disk code to handle long key names to avoid the OSError?


[WIP] Use DateTimeInterface instead DateTime for hints, docblocks and type checks

Q
A

Branch
master

Bug fix?
no

New feature?
no

BC breaks?
no

Deprecations?
no

Tests pass?
yes

Fixed tickets
n/a

License
MIT

Doc PR
n/a

TODO:

[ ] Add tests with \DateTimeImmutable instances.

This PR depends on doctrine/dbal#2450.

Is this still relevant? DBAL 2.6 introduced separate immutable type, I believe using specific mutable/immutable type should be preferred.

@Majkl578 I agree, maybe we should even change ParameterTypeInferer to use the immutable type in another PR

I'll close this as Won't Fix for now and we can reopen if needed.


Lack of WSS Support in "Ontime Server Address" Field

Issue: The "Ontime Server Address" textbox does not allow specifying a wss:// address for secure WebSocket connections when using a reverse proxy with SSL.
Expected Behavior: The field should accept wss:// addresses to enable secure connections through an SSL-configured reverse proxy.
Current Limitation: Only non-secure (ws://) addresses are allowed, preventing secure WebSocket usage behind SSL.
Suggestion: Update the input field to accept wss:// URLs for proper SSL support.

Hey
The Ontime Server Address textbox expects a http address to connect throng, so you should not write out  ws:// manually
As for working with SSL through a reverse proxy, this has been merged in #80 and should be available in the next release

Hi @finn-rm, could you please confirm that this has been resolved in v4.4.0?

Hi @cpvalente, working as expected. Thanks so much!


css.completion.completePropertyWithSemicolon doesn't work after last update

**<!--** ⚠⚠ Do Not Delete This! bug_report_template ⚠⚠ -->

VSCode Version: 1.46.1
OS Version: Darwin x64 19.4.0

Steps to Reproduce:

Add "css.completion.completePropertyWithSemicolon": false, into settings.json
open .css file and start typing any property, e.g. bg for background, then press Tab

Expected result:
css property is completed with colon and without semicolon
Actual result:
css property is completed also with semicolon

Does this issue occur when all extensions are disabled?: Yes/No

On disabling all extensions, semicolon is still added

It was caused by a bug in the language server. Fixed by an server update: https://github.com/microsoft/vscode/commit/ebbb51635e6545940eb9f3e47ab338035cd8a117


Sensors records table page template

Create a page template to show a table which will list all sensors records for each row.
The design of the table should follow Figma prototype.
The table should show buttons for pagination.
A checkbox input should be before each row of the table .
Try mocking data to test the table.

Create a page template to show a table which will list all sensors records for each row.
The design of the table should follow Figma prototype.
The table should show buttons for pagination.
A checkbox input should be before each row of the table .
Try mocking data to test the table.

Ain Gozei


How to use methods in vue-moveable

I would like to get information about width and height od my moveable element after scaling. I tried to use method getRect(), like showed here: https://github.com/daybrush/moveable/issues/94, but in console I got TypeError: e.currentTarget.getRect() is not a function
My code:
<template>
  <Moveable
    @scale="handleScale"
    @scaleEnd="(e) => {handleScaleEnd(e)}"
    ref="moveable"
  >
</template>

<script>
export default {
  methods: {
    handleScale({ target, transform, scale }) {
      target.style.transform = transform;
    },
    handleScaleEnd(e) {
      console.log(e.currentTarget.getRect());
    },
  }
}

How can I use methods, defined in Moveable documentation, like getRect, destroy, setState etc.

Based on your code, I guess I can access it using ref:
this.$refs.moveable.moveable.getRect();

When I try to access it like this, I get TypeError: this.$refs.moveable.moveable.getRect is not a function

@katOstrynska Check an example here
https://codesandbox.io/s/vue-moveable-demo-udvc8?fontsize=14&hidenavigation=1&theme=dark

Nope, I still get the same error in console : "TypeError: this.$refs.moveable.moveable.getRect is not a function", on mounted() or on scale(), it doesn't matter.
Also, when in onScaleEnd :
`handleScaleEnd({ target, currentTarget }) {
let width = target.getBoundingClientRect().width
let height = target.getBoundingClientRect().height
            this.$store.dispatch('UPDATE_ELEMENT', {
                width,
                height
            })
        }`

I don't get the right values. My Element jumpsafter scaleEnd and is bigger than in the moment I ended scale.

I can confirm that this.$refs.moveable.moveable.destory() worked for me just fine

Thanks @andreasvirkus

I'm having the same issue. I can console.log this.$refs.moveable.moveable inside of mounted(), but there are no methods there. Trying to call any method such as this.$refs.moveable.moveable.getRect() results in an error.
My code:
<Moveable
        class="moveable"
        v-bind="moveable"
        @drag="handleDrag"
        @resizeStart="handleResizeStart"
        @resize="handleResize"
        @scale="handleScale"
        @rotateStart="handleRotateStart"
        @rotate="handleRotate"
        @warp="handleWarp"
        ref="moveable">
    <svg width="100%" height="100%">
        <rect width="100%" height="100%" style="fill:purple;stroke-width:3;stroke:rgb(0,0,0)" />
    </svg>
</Moveable>

mounted() {
    console.log("mounted: ", this.$refs.moveable.moveable)
}

The result:

@dartanian300 I can confirm that this is happening in the latest version (v1.5.0). Try to downgrade to v1.4.0. It seems to be working fine.
I'll check what was changed in moveable because nothing changed in vue-moveable since then.
Thanks for your message 👍

@probil I've opened similar issue yesterday, and I've downgraded to 1.4.0. as You said here, but I still got different problem - I can not get width and height od my element after rotate and scale. I got widh and height of its container. I saw that after rotate or scale offsetWidth and offsetHeight do not change in getRect() method. Look at issue I linked in moveable github. Thank You.
#112
https://github.com/daybrush/moveable/issues/185#issue-570653808

Starting from v1.6.0, all methods are available without extra moveable instance:
- this.$refs.moveable.moveable.getRect();
+ this.$refs.moveable.getRect();

For example:
mounted() {
   console.log("getRect: ", this.$refs.moveable.getRect());
   console.log("isMoveableElement: ", this.$refs.moveable.isMoveableElement(document.body));
}

Here is a codesandbox with a demo:
https://codesandbox.io/s/vue-moveable-issue-84-xzblq
(Added to README)
Please open a new issue if you still experience problems with calling moveable methods


Not possible to remove header based on name and value from Request.Builder.

I have a case where I would like to remove header(s) based on name and value in a network interceptor. It would then be really useful to be able to do something like:
public Response intercept(Chain chain) throws IOException {
  Request originalRequest = chain.request();
  ...
  Request.Builder requestBuilder = new Request.Builder(originalRequest);
  requestBuilder.removeHeader("X-Header, "Tag-To-Be-Removed");
  ...
}

Now I manually have to add each header that I do not want to copy. Works just fine, but  since header can be multiply-valued this sounds like a reasonable requirement to me?

I think we should implement remove-by-index.

Ok by me.
Sorry about the delay answering this...

won't fix.


cannot install the MLeap JAR in EMR cluster

Hello, I am referring to https://github.com/awslabs/amazon-sagemaker-examples/blob/master/sagemaker-python-sdk/sparkml_serving_emr_mleap_abalone/sparkml_serving_emr_mleap_abalone.ipynb.
I am not able to add the jar file from S3 to EMR cluster as a custom jar step.
How should I add the custom jar and put it in /usr/lib/spark/jars in all the nodes ?
Thanks,
Raluca

Hello, I solved this, my ssh key was not right and the bootstrap action to copy mleap fat jar to all nodes was not doing anything. I managed to solve this by accessing the master dns.


Android Support

Unfortunately, the suggested examples don't work for android, since the used HTTP Client wants to access an Instance field not found on the Android OS. Will using a different or custom client resolve this issue?
java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; in class Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; or its superclasses (declaration of 'org.apache.http.conn.ssl.AllowAllHostnameVerifier' appears in /system/framework/framework.jar!classes4.dex)
                                                                                at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144)
                                                                                at org.apache.http.conn.ssl.SSLConnectionSocketFactory.getSocketFactory(SSLConnectionSocketFactory.java:172)
                                                                                at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.getDefaultRegistry(PoolingHttpClientConnectionManager.java:109)
                                                                                at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:116)
                                                                                at com.mashape.unirest.http.options.Options.refresh(Options.java:72)
                                                                                at com.mashape.unirest.http.options.Options.<clinit>(Options.java:46)
                                                                                at com.mashape.unirest.http.options.Options.getOption(Options.java:42)
                                                                                at com.mashape.unirest.http.HttpClientHelper.prepareRequest(HttpClientHelper.java:151)
                                                                                at com.mashape.unirest.http.HttpClientHelper.request(HttpClientHelper.java:131)
                                                                                at com.mashape.unirest.request.BaseRequest.asJson(BaseRequest.java:68)

The suggested examples are specified for this particular java library.
As I see from your log, you use unirest?
And it's unclear from your example what endpoint/method you're using.

Hey, thanks for your reply! I replaced unirest with volley, which resolved the issue.


caffe2 compiled error on MAC!

I followed the order as below:
brew install openblas glog gtest automake protobuf leveled lmdb
mkdir build && cd build
cmake ..  Would you mind check you eigen version. Would you mind try
brew install eigen
or
build eigen from source?

@harouwu it works!

but it appear other errors as below:
[ 56%] Linking CXX shared library libCaffe2_CPU.dylib
[ 56%] Built target Caffe2_CPU
[ 56%] Building NVCC (Device) object caffe2/CMakeFiles/Caffe2_GPU.dir/utils/Caffe2_GPU_generated_math_gpu.cu.o
In file included from <built-in>:339:
In file included from <command line>:19:
In file included from /usr/local/cuda/include/cuda_runtime.h:112:
/usr/local/cuda/include/common_functions.h:65:10: fatal error: 'string.h' file not found
#include <string.h>
         ^
1 error generated.
CMake Error at Caffe2_GPU_generated_math_gpu.cu.o.cmake:203 (message):
  Error generating
  /Project/caffe2/build/caffe2/CMakeFiles/Caffe2_GPU.dir/utils/./Caffe2_GPU_generated_math_gpu.cu.o

make[2]: *** [caffe2/CMakeFiles/Caffe2_GPU.dir/utils/Caffe2_GPU_generated_math_gpu.cu.o] Error 1
make[1]: *** [caffe2/CMakeFiles/Caffe2_GPU.dir/all] Error 2
make: *** [all] Error 2

@changkaizhao Please try xcode-select --install . Seems like this problem is related to Mac's clang

You may want to try installing without CUDA on your Mac.
Try this (add the opencv and blas stuff if you need it):
cmake -DUSE_CUDA=OFF ..
sudo make install

There are some issues with CUDA 8 and the latest version of Clang forcing some folks to downgrade their xcode CLTs, so you can  try that as well.

@aaronmarkham  yes,  I found the latest cuda8.0.61 support xcode8.2 on MacOS 10.12. I install Xcode8.2 alongside Xcode 8.3(i need to compile ios10.3 app) to fix this problem.  thanks your reply!

Same problem under Ubuntu 14.04,
I have installed libeigen2-dev and libeigen3-dev but I got same error message concerning Eigen...