Speculum - seconds don’t refresh

Fill out the the guided issue template with neccessary and any extra information, thanks!
For the title, follow this example: Tweak - Short Bug Description

Tweak/Theme: Speculum
Version: 1.3.3
Device: iPhone X
iOS Version: 12.2

Issue/Bug:
In order to make appear the seconds in the lockscreen, I’ve inserted the expression "HH:mm:ss” in “Time Label Format”. The seconds appear but they don’t refresh unless I lock and unlock the device.

Additional Comments:
I’ve attached to this issue a zip file containing a video in which you can see the bug.
IMG_0407.MP4.zip

See reasoning here: https://github.com/LacertosusRepo/LacertosusRepo.github.io/issues/18#issuecomment-510741113


Enable screen saver policy is obsolete

The article indicates to enable the policy "Enable screen saver". However, this policy's description indicates this policy is obsolete.
From the policy help:
"Note: This setting is obsolete and will not be available in the future. Use 'Do not display the lock screen' or 'Prevent enabling lock screen slideshow' instead."
We do not have the "Enable screen saver" policy enabled, and instead have the following policies configured:
Force specific screen saver: C:\Windows\System32\scrnsave.scr
Screensaver timeout: 600
Password protect the screen saver: Enabled
We also disable the Lock Screen (machines always show the login screen instead)
This configuration works but it causes the machine to lock AFTER activity is re-detected during the screensaver. I was looking for a way to have the machine lock immediately after a period of inactivity rather than the screen becoming locked when the screensaver is interrupted (I hope this makes sense). The problem with our current configuration is people start typing their password before their monitors resume from standby but the machine is actually showing a screen that's locking the computer system (but they can't see this because their monitors are still "waking up"). So they end up missing a portion of their password and in some cases lock their account out.
The article is conflicting and should be updated to reflect today's Best Practices for Windows 10, which I'm still unsure of. Thanks!

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

ID: 75ab75c2-3bfd-bde6-8341-65ba79e9fe65
Version Independent ID: 7224910c-ac05-26b2-f712-9a5993432615
Content: Interactive logon Machine inactivity limit (Windows 10) - Windows security
Content Source: windows/security/threat-protection/security-policy-settings/interactive-logon-machine-inactivity-limit.md
Product: w10
Technology: windows
GitHub Login: @Dansimp
Microsoft Alias: dansimp

@PaulieShore  - Thank you for engaging with the community here for the docs.
I know the product teams are always looking for user feedback and feature requests on how to make Windows 10 better. They keep a close tab on user feedback and it would be awesome if you could add your voice via Feedback Hub.
You might find others have made a similar request that you can add to, or you can open a new one. Let us know here if you do so we can up-vote your request.
Thank you for your contribution to make the docs better! Much appreciated!


Adding support for timeouts on iree_notification_t + fixes.

Relanding #8278 reverted in #8280.
After some thorough stress testing and tracing I believe the root issue has been fixed (potential unordered task cleanup).

50k+ runs of iree_task_tests are good on both windows and linux and the CI passed - willing to revert if this has more issues and will keep watch tonight.


[Question]: is default in VectorIndexRetriever semantic search

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
Is the VectorIndexRetriever same as semantic search here
https://github.com/run-llama/llama_index/blob/main/llama-index-core/llama_index/core/vector_stores/types.py#L46 ?

Yes, by default it's top-k search based on embeddings


Styling for landing page

Awesome, thanks @ercchy

Hey @ercchy - just noticed that the video is added as a static resource to this app - probably not ideal since the app is hosted on heroku and static assets are being server through django. Could you please look into this next week?


The very difference result between x265 and the official reference software HM

I am wondering the result of benchmark of HM vs x265.
When I test (run) your code for x265 for HEVC class B BasketballDrive_1920x1080_P420.yuv sequence with QP=32, number of encoding frame = 100. I got the result with bitrate= 16550. 468, psnr-yuv= 36.589 but when I run the offical HM reference software, the bitrate = 2760.671 (kpps). it with psnr-yuv=36.413. Why your software performance is so low? Is there any bug?

16550.468/2760.671 = 5.995, so perhaps there is a missing multiplication factor in the measurement?

for x265, I use the command as in Readme file
python3 -m compressai.utils.video.bench x265 -q 32 dataset_path output_dir
In the  file compressai/utils/video/bench/__main__py I change the variable num_frames = 100 to encode (test) only 100 frame, not the whole sequence.
For the official HM (HEVC reference software), I test for both low delay (bitrate = 2760 as mentioned above) and random access (bitrate = 2550) with QP=32, GoP size=16, the active reference picture = 1, all other parameters are default as the configuration file. At first, I have the same thought as you, but all bit rate unit are kbps. that surprises me. Could you test again?


PHP extensions specified in composer.json not installing on build.

Specifically the Mbstring extension.
"require": {
  "ext-mbstring": "*"
}

Seems like an issue for the buildpack and not dokku, no?

@tyler274 can you gist your deploy logs for us?

Resolved as a buildpack issue / composer update not triggering on deploy.


use https for OpenStreetMap tiles

Avoid Mixed Content warning. Load map tiles through https instead of http.
additional remarks:
since intel map is delivered through https only no case distinction (http/https) or protocol-relative URL (starting with // only) is necessary, so https could be hardcoded

duplicate of #1150

Duplicate of #1150, as @McBen said.


 Delete the others, including these Instructions.
{{cask_file}} represents the cask file you’re submitting/editing (if applicable).
If there’s a checkbox you can’t complete for any reason, that’s OK. Just explain in detail why you weren’t able to do so.

Changes to a cask
Editing an existing cask

[x] Commit message includes cask’s name (and new version, if applicable).
[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.

Adding a new cask

[x] Checked there aren’t open pull requests for the same cask.
[x] Checked there aren’t closed issues where that cask was already refused.
[x] Checked the cask follows the requirements of acceptable casks.
[x] When naming the cask, followed the token reference.
[x] Commit message includes cask’s name.
[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] brew cask install {{cask_file}} worked successfully.
[x] brew cask uninstall {{cask_file}} worked successfully.

Please read the instructions.
Also, did you really run the commands? Because audit surely did not pass.

I check brew cask audit --download {{cask_file}} and fix it.

Thank you.


Volumes view

Definitely work in progress
We can save and delete but not attach right now.

Current coverage is 58.55% (diff: 44.92%)

Merging #549 into master will decrease coverage by 2.72%

@@             master       #549   diff @@
==========================================
  Files            59         61     +2
  Lines          2950       3248   +298
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           1808       1902    +94
- Misses         1142       1346   +204
  Partials          0          0

Powered by Codecov. Last update 1dee5e9...a38a657

@cjh1 this is ready fro you to try out.

I am trying to test this PR out and am getting the following error?
HPCCloud.js:58762 Uncaught (in promise) TypeError: Cannot read property '_id' of undefined
    at Object.updateItem (HPCCloud.js:58762)
    at projectsReducer (HPCCloud.js:58605)
    at combination (HPCCloud.js:30074)
    at dispatch (HPCCloud.js:29621)
    at Object.dispatch (HPCCloud.js:54836)
    at dispatch (HPCCloud.js:54882)
    at HPCCloud.js:57182
updateItem @ HPCCloud.js:58762
projectsReducer @ HPCCloud.js:58605
combination @ HPCCloud.js:30074
dispatch @ HPCCloud.js:29621
(anonymous) @ HPCCloud.js:54836
dispatch @ HPCCloud.js:54882
(anonymous) @ HPCCloud.js:57182

What page is this error happening on?

When I try to create a project

So this is from a mistake I made when doing #583.
#585 fixes it

I can run through a pyfr and a visualization job. Having a ws with the final step of actually visualizing though, something with the visualizer itself I think. 👍

@TristanWright Awesome! Thanks for continuing to push on this :medal_sports:

I just tried to test this and am running into a problem with the PyFR workflow, I am seeing the following celery error:
[2017-02-24 21:40:11,052: ERROR/MainProcess] Received unregistered task of type u'hpccloud.taskflow.pyfr.setup_input'.
The message has been ignored and discarded.

It looks like the PyFR taskflow is not being picked up. I know @jourdain did some restructure of the taskflow directory we may been to rebase on master to see if it fixed there.

Looks like its up to date, in which case this is probably broken in master. Which workflow where you using to test this branch ParaViewWeb?

@jourdain Wasn't there a fix for this?

I I tested this on a PyFR workflow, I've never seen that error though.

I've tested all workflow on traditional cluster and everything was fine.
I think there was a fix I pushed in cumulus to pick modules as well as files. But that's just what I remember.

Ok, I figured it out, need to rebase cumulus branch on master, the fix was in cumulus.

Now I am seeing;

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/celery/app/trace.py", line 240, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/celery/app/trace.py", line 438, in __protected_call__
    return self.run(*args, **kwargs)
  File "cumulus/taskflow/__init__.py", line 117, in wrapped
    return func(celery_task, *args, **kwargs)
  File "/opt/hpccloud/hpccloud/server/taskflows/hpccloud/taskflow/pyfr/__init__.py", line 185, in setup_input
    mesh_file_id = kwargs['input']['meshFile']['id']
KeyError: 'id'

Looks like the mesh file id is not being passed to the taskflow.
These are the SHA's I am using:
cumulus: 49cda2f2
hpccloud: a82e4781
I will do some more digging next week.

I was able to run a PyFR workflow to completion. However, no volume was create or mounted?

@TristanWright There seem to be two volume size fields?

I'm not seeing any log messages show up for the attach_volume(...) task.

OK, so I am now seeing the volume being attached and mounted on the head node at /data :smile: The final step is to get the simulation result written to this volume, for this we need to do two things:

[ ]  Export /data to other node in the cluster using NFS
[ ] Update the job directory base to point to /data

@TristanWright If you would like I can take a look at adding these last two parts?

@TristanWright There seem to be two volume size fields?

The first one is definitely redundant, I'll remove that.

we need to do two things:
Export /data to other node in the cluster using NFS
Update the job directory base to point to /data
@TristanWright If you would like I can take a look at adding these last two parts?

I thought it was being uploaded to /data (or wait are we just mounting it at /data)? Yeah that would wrap up this branch while I'm working on sharing.


Spike replacement/provides constraints

Once we have settled on an initial design: #4122

So here's the result of the spike.
We have 3 categories of use cases:

capabilities, where the requirement is to express that a library provides the same capability as another, and therefore only one of them should be used
blacklisting, where dependency resolution should be influenced by new information. Typically, a vulnerability has been discovered, and a company would like to enforce the use of a fixed dependency to all consumers.
variants, where the library to be selected should be different depending on the usage

Capabilities
Capabilities is the most important use case to cover, and corresponds to a lot of rules that can be found in the widely used Netflix dependency rules plugin.
The spike shows that most use cases can be solved by declaring capabilities. Again, we need to separate 2 different process:

the library author uses Gradle to publish the library, and therefore can publish metadata that Gradle can consume.
the library is not in control, and metadata needs to be fixed to realize that, typically, 2 libraries are mutually exclusive. This is (for now) the most common use case.

Let's start with the "fixing" use cases. We introduce the concept of capability in the DSL. For example, we want to express that both cglib and cglib-nodep provide the same capability, so we only want one of them on classpath:
    dependencies {
        constraints {
            capabilities {
                capability('cglib') {
                    providedBy 'cglib:cglib'
                    providedBy 'cglib:cglib-nodep'
                }
            }
        }
    }

This is a consumer side declaration which declares a capability, named cglib, and explains that this capability is providedBy both the cglib:cglib and cglib-nodep modules.
If, and only if, the 2 modules are found on the dependency graph, a resolution error would occur:

Cannot choose between cglib:cglib-nodep or cglib:cglib because they provide the same capability: cglib

Part of this work is to provide automatic solutions for this. As a consequence, it should be possible to express that in that case, we prefer one version over the other:
    dependencies {
        constraints {
            capabilities {
                capability('cglib') {
                    prefer 'cglib:cglib'
                }
            }
        }
    }

This solution should also work when the capabilities are actually defined in a published metadata file (it doesn't for the spike yet).
It's worth noting that we make a difference between explaining that a library "provides a capability", and the solution to that capability. While some modules may want to express a preference, it should in most cases not be the case. In other words, final applications and platforms may want to publish a preference, while library authors wouldn't. This would allow, for example, a company wide preference for slf4j-simple over all other possible bindings, by declaring that all bindings provide the same capability.
Similarly, it is possible to solve use cases like groovy and groovy-all on classpath. See those tests for examples.
In all cases, replacement is only performed when the 2 "conflicting" capabilities are found on the graph. If there's no conflict, the original version is used. This can be useful to realize that older libraries depend on older capabilities and that bridging libraries need to be used (like, log4j1 over log4j2).
Blacklisting
The blacklisting use case is actually already covered by what we implemented. The idea, for example, is to force consumers to upgrade to a newer version. This can be done in 2 steps:

first, the consumer declares a dynamic dependency on the company wide rules platform
second, the platform declares constraints on dependencies

Say, for example, that we want to forcefully upgrade a dependency from 1.0.0 to 1.0.1. A typical consumer project would only have:
dependencies {
    implementation 'org:dep:1.0.0'
}

Obviously here, there's nothing that would make resolution forcefully upgrade if a newer version is published. This behavior must be enabled (1) by declaring a dependency on the platform rules:
dependencies {
    implementation 'org:platform-rules:latest.release'
    implementation 'org:dep:1.0.0'
}

Then, platform rules would declare the substitution:
dependencies {
   constraints {
       implementation('org:dep') {
           version {
              prefer '1.0.1'
              reject '1.0.0'
           }
           because '1.0.0 has a vulnerabililty'
       }
   }
}

Which would be published in Gradle metadata, hence made available to consumers. The dynamic dependency on the rules is here to make it clear that rules are live, vs static dependencies.
Variants
It is already possible to solve those problems, as illustrated here
Implementation details
The spike makes use of the existing "module replacement" API. It's not a requirement, but it makes the implementation rather straightforward. Should we consider that we can do this, or should we implement an adhoc mechanism? There are some gotchas for the implementor (likely me):

up to now, all rules were known beforehand. That is to say, replacement rules, component metadata rules, ... were all declared and known before resolution starts. This is NOT the case anymore: as we resolve new modules, new "replacements"/constraints/capabilities are discovered. This imposes some changes in the dependency graph builder, which are not necessarily obvious nor performant.
should the capabilities be declared at the variant or the component level? The spike declares them at the variant level, but it's likely that capabilities are actually a component thing, or it involves a lot of redundant information.
as we discover new capabilities, new constraints are added, and replacements can be triggered. However, there are some edge cases when, say, a branch of the graph is removed, and that branch contained a replacement/capability declaration. It seems at this point pretty hard to "forget" about those. This kind of enforces the recognition that capabilities are "global", and while they can be discovered as we go, they are not subject to doubt. If we say, for example, that asm:asm has been relocated to org.ow2.asm:asm, this is true whatever the version of ASM we choose, and whatever the variant we select.

What if a library accidently publishes wrong capabilities?
It could be a capability that has accidental preference, or, wrong capabilities declared. In both cases, this will be solved by rules.

cc @adammurdoch for veto if required

At high level I really like what you showed here and it makes sense to me.
Two remarks though:

If we want the normal use case to be:

capability declaration by library authors,

capability preference by application / platform authors
Shouldn't we make the two APIs distinct?

What if a library accidently publishes wrong capabilities?

I really believe this should be "When a library publishes wrong capability?" and have a very clear story as how you fix incorrect metadata, whether they happen by accident or for more nefarious reasons.

Declaration and preference are distinct providedBy vs prefer, but may be conflated into the same platform declaration, so I feel it makes sense to have them at the same place. Doing otherwise would probably involve a larger API surface, which I'm not convinced we need/want.

Sounds good! Just to be clear, although there are three categories listed above, we now talk about implementing the first category (as the others are basically already covered). That category is Capabilities
My thoughts:
We will add the ability to adjust metadata in component metadata rules. That should be enough to cover the "wrong" metadata scenario. We can add that as a second step once the "capabilities" implementation is done.
I think the capability belongs on the component (NOT the variant). It feels like it is making things too complex and I can't see a use case at the moment for why it should be on the variant.
It's now pretty clear (in my mind) that we should distinguish 4 things

Published metadata - What can/should a library author state without knowing all the possible contexts the library will be used in?
Component metadata rules - What should the library author have stated, but "messed up"?
The consuming build's dependency declaration - what do I require? (that is dependency declarations without versions or any other constraints, maybe only declarations on capabilities in the end)
A "platform"  which is published or defined "adhoc" as part of the build - it makes statements about other modules, i.e. introduces constraints. A dependency declaration as we know it is then a shortcut for a combination of 3. and 4.:
implementation cglib:cglib-nodep:2.0: I require the cglib capability. And I define, as part of my "adhoc platform", that I want the cglib-nodep implementation of the capability and I have the constraint that I need a version 2.0 or higher, where I prefer 2.0 if possible.

Based on this, I think providedBy can be part of a library's metadata (1. or 2.) if the capability is globally known. E.g. cglib and cglib-nodep are always exchangeable in every context. But I think it could also be defined in the platform 4. If the capability is valid in the context of my build/platform. And  we should be able to publish that as part of a platform definition.
I think I would do a syntax more like this:
dependencies {
  implementation capability('cglib') {
    //this is where I define capabilities "adhoc" as the libraries did not publish them
    providedBy 'cglib:cglib'
    providedBy 'cglib:cglib-nodep'
  }

  //alternatively, the above is published and then I depend on my platfrom
  //and i depend (require) the cglib capability
  implementation 'org:platform-rules:latest.release'
  implementation capability('cglib')

  //and then here comes my platform
  constraints {
    capability('cglib') {
      prefer 'cglib:cglib'
    }
  }

  //or the above is published, then I only need this:
  implementation 'org:platform-rules:latest.release'
}

The important difference to the syntax in the spike is, in my opinion, that not everything is a constraint and that you can depend directly on (require) a capability.
Looking at it this way, we then probably want the shortcut for simple builds, where you define everything directly on the dependency
dependencies {
  implementation capability('cglib') {
    providedBy 'cglib:cglib'
    providedBy 'cglib:cglib-nodep'
    prefer 'cglib:cglib'
  }
}

I'm not fan of implementation capability('cglib') {...}. What does this mean? I can imagine that you want to say "give me a cglib, I don't care what", but it's pretty vague.
I think having:
dependencies {
    capabilities {
         capability('...') { ... }
    }
}

makes more sense. From what I understand, you worry about what we should publish, vs what we should not. So if you declare a capability to be able to choose between 2 components, do you want to publish it as part of your metadata or not? If you are declaring your own capabilities, it clearly makes sense to publish. If you don't, then there are 2 options:

you are solving a local problem, and don't want to enforce this for your own consumers, so, you don't want to publish the capabilities
you are publishing a platform, in which case the constraints are resolution rules

We may want to think a bit more about this...


refactor project structure and maven

All right, I'm gonna "refuse" your pull request.
What I'm implementing with your proposal:

A gitignore file
Removed unncessary eclipse fiiles and compiled codes
I will of course clarify, the dependencies I use for my project.

What I could implement with your proposal:

The little cleanup you did, I will maybe put a part of it. Because some cleanup you did break some part of my code, so I will check what I can remove manually

What I will not implement with your proposal:

optimized imports. For me the imports are already organized. Each imports have their own "categories", and it doesn't change a lot by reversing them.
maven support. sounds like a good idea... but it's horrible to set up... I tried to set up a maven but I don't understand it. I watched a lot of tutorials for nothing. I could create a new project in my eclipse, but I don't have all day to configure again all I did to have a fluent development for me. Too comlicated for me, I just want to stay simple, and if someone really wants a maven project for Hawn, he could do it himself.
project structure optimized, it's a thing I will implement with time, when I want it, not now, I'm not even in the beta of the plugin.

Thank you for your pull request

For the maven setup, I already did it for you, you can check it.


Conditional checks in the Customizer

Right now, we're letting the user access the customizer without verifying if they've completed the module, or how many bots they've minted.
Need to implement checks for this, and accordingly update modal's copy.
Seems like a priority to me @bhaskarSingh, what do you think?

Agreed. Good call @bhaskarSingh.
@manangouhari this is not a high priority in the sea of issues we need to fix and in the outcomes, we are looking to reach.
I usually remember this quote by Johny Ive here:
"What focus means is saying no to something that with every bone in your body thinks is a phenomenal idea, and you wake up thinking about it, but you end up saying no to it because you're focusing on something else."

"What focus means is saying no to something that with every bone in your body thinks is a phenomenal idea, and you wake up thinking about it, but you end up saying no to it because you're focusing on something else."

Beautiful.


Torch issue716

Summary
Merges fixes for issue 716 into main Dev. Closes https://github.com/OkuyanBoga/hc-qiskit-machine-learning/issues/16. Closes https://github.com/qiskit-community/qiskit-machine-learning/issues/716.
✅ I have added the tests to cover my changes.
✅ I have updated the documentation accordingly.
✅ I have read the CONTRIBUTING document.

You can submit PR to the main repository now.


Online Indicator Oddities

The status indicators don't quite match up correctly. See screenshot.

@InfamousVague can you confirm if this is still a issue?

Shouldve been corrected by now since the issue was related partly to the UI at the time


test: alarm fails

--- FAIL: TestCtlV3Alarm (1.45s)
	ctl_v3_alarm_test.go:74: read /dev/ptmx: input/output error (expected "OK", got ["Error:  etcdserver: mvcc: database space exceeded\r\n"]

Happens in 32-bit https://semaphoreci.com/coreos/etcd/branches/master/builds/1109

Got it reproduced
go test -v -run TestCtlV3Alarm
=== RUN   TestCtlV3Alarm
2016-10-19 14:54:58.854655 W | pkg/flags: unrecognized environment variable ETCD_UNSUPPORTED_ARCH=amd64
2016-10-19 14:54:58.854692 W | pkg/flags: unrecognized environment variable ETCDCTL_API=3
2016-10-19 14:54:58.854708 I | etcdmain: etcd Version: 3.1.0-rc.0+git
2016-10-19 14:54:58.854713 I | etcdmain: Git SHA: 6b1b13e
2016-10-19 14:54:58.854716 I | etcdmain: Go Version: go1.7.1
2016-10-19 14:54:58.854720 I | etcdmain: Go OS/Arch: linux/amd64
2016-10-19 14:54:58.854726 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8
2016-10-19 14:54:58.884435 I | embed: peerTLS: cert = /tmp/testname0.etcd578157556/fixtures/peer/cert.pem, key = /tmp/testname0.etcd578157556/fixtures/peer/key.pem, ca = , trusted-ca = , client-cert-auth = false
2016-10-19 14:54:58.895258 I | embed: listening for peers on https://localhost:20001
2016-10-19 14:54:58.895328 I | embed: listening for client requests on localhost:20000
2016-10-19 14:54:58.914150 I | etcdserver: name = testname0
2016-10-19 14:54:58.914165 I | etcdserver: data dir = /tmp/testname0.etcd578157556
2016-10-19 14:54:58.914169 I | etcdserver: member dir = /tmp/testname0.etcd578157556/member
2016-10-19 14:54:58.914172 I | etcdserver: heartbeat = 100ms
2016-10-19 14:54:58.914174 I | etcdserver: election = 1000ms
2016-10-19 14:54:58.914177 I | etcdserver: snapshot count = 10000
2016-10-19 14:54:58.914186 I | etcdserver: advertise client URLs = http://localhost:20000
2016-10-19 14:54:58.914190 I | etcdserver: initial advertise peer URLs = https://localhost:20001
2016-10-19 14:54:58.914196 I | etcdserver: initial cluster = testname0=https://localhost:20001
2016-10-19 14:54:58.923613 I | etcdserver: starting member a8f3458387986d in cluster 34c21a2d427db393
2016-10-19 14:54:58.923634 I | raft: a8f3458387986d became follower at term 0
2016-10-19 14:54:58.923641 I | raft: newRaft a8f3458387986d [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]
2016-10-19 14:54:58.923644 I | raft: a8f3458387986d became follower at term 1
2016-10-19 14:54:58.994919 I | etcdserver: starting server... [version: 3.1.0-rc.0+git, cluster version: to_be_decided]
2016-10-19 14:54:58.995232 I | etcdserver/membership: added member a8f3458387986d [https://localhost:20001] to cluster 34c21a2d427db393
2016-10-19 14:54:59.323978 I | raft: a8f3458387986d is starting a new election at term 1
2016-10-19 14:54:59.324109 I | raft: a8f3458387986d became candidate at term 2
2016-10-19 14:54:59.324123 I | raft: a8f3458387986d received vote from a8f3458387986d at term 2
2016-10-19 14:54:59.324165 I | raft: a8f3458387986d became leader at term 2
2016-10-19 14:54:59.324189 I | raft: raft.node: a8f3458387986d elected leader a8f3458387986d at term 2
2016-10-19 14:54:59.324979 I | etcdserver: published {Name:testname0 ClientURLs:[http://localhost:20000]} to cluster 34c21a2d427db393
2016-10-19 14:54:59.325246 I | etcdserver: setting up the initial cluster version to 3.1
2016-10-19 14:54:59.325301 E | etcdmain: forgot to set Type=notify in systemd service file?
2016-10-19 14:54:59.325348 I | embed: ready to serve client requests
2016-10-19 14:54:59.327287 N | embed: serving insecure client requests on <IP_ADDRESS>:20000, this is strongly discouraged!
2016-10-19 14:54:59.327321 N | etcdserver/membership: set the initial cluster version to 3.1
2016-10-19 14:54:59.327441 I | etcdserver/api: enabled capabilities for version 3.1
available: 24576 328 53248
available: 24576 328 53248
OK
available: 24576 4360 53248
available: 24576 4360 53248
OK
available: 24576 4360 53248
available: 24576 4360 53248
OK
available: 24576 4360 53248
available: 24576 4360 53248
OK
available: 24576 4360 53248
available: 24576 4360 53248
OK
available: 24576 4360 53248
available: 24576 4360 53248
OK
available: 24576 4360 53248
available: 57344 4360 53248
2016-10-19 14:54:59.414840 E | etcdserver: applying raft message exceeded backend quota
2016-10-19 14:54:59.419287 W | etcdserver: alarm raised memberID:47555275972384877 alarm:NOSPACE
Error:  etcdserver: mvcc: database space exceeded
memberID:47555275972384877 alarm:NOSPACE
available: 57344 328 53248
Error:  etcdserver: mvcc: database space exceeded
compact with 5 53248
2016-10-19 14:54:59.463273 I | mvcc: store.index: compact 5
2016-10-19 14:54:59.463335 I | mvcc: finished scheduled compaction at 5 (took 26.408µs)
compacted revision 5
2016-10-19 14:54:59.478472 N | etcdserver/api/v3rpc: starting to defragment the storage backend...
2016-10-19 14:54:59.508952 N | etcdserver/api/v3rpc: finished defragmenting the storage backend
Finished defragmenting etcd member[localhost:20000]
2016-10-19 14:54:59.528273 I | etcdserver: alarm disarmed action:DEACTIVATE memberID:47555275972384877 alarm:NOSPACE
memberID:47555275972384877 alarm:NOSPACE
available: 53248 328 53248
2016-10-19 14:54:59.544614 W | etcdserver: alarm raised memberID:47555275972384877 alarm:NOSPACE
Error:  etcdserver: mvcc: database space exceeded
--- FAIL: TestCtlV3Alarm (0.71s)
	ctl_v3_alarm_test.go:78: read /dev/ptmx: input/output error (expected "OK", got ["Error:  etcdserver: mvcc: database space exceeded\r\n"])
FAIL
exit status 1

Current defrag calls ForceCommit but it's possible that quota layer gets the old db size before the size gets updated by the commit code path. Will investigate more.


VC Presentation Request Configuration could rather be an OAuth2 Pushed Authorization Request

In the current protocol the OP is required to provide an unspecified endpoint for managing request configurations
(see https://github.com/bcgov/vc-authn-oidc/blob/master/docs/README.md#vc-presentation-request-configuration).
This could be refined based on Pushed Authorization Requests so that management of this request configuration is well-defined.

Pinning issue for re-assessment.


String lengths as 'int'

Here's the first change.
I switched to use 'int' as the reference type for string lengths, in place of 'size_t'.
I scanned throughout the code to find and change every string length usage (also on function signatures).

I can't see major differences.

Yup, that's well within the noise, so it's fine. Do you still want me to pull this in given my comments on the other PR, or should I sit on this for a bit?

Wait I bit, I'll fix this today (see other comments).

Wow, that ended up requiring so many casts. :( Are we sure this is really making the code overall better? I like storing the string length as uint32_t in ObjString, but I wonder if we should keep most of the rest of the code the same?

I was asking myself, as well.
I don't like explicit coercion. We always miss something, when we do it. Somewhere in my brain, every time I see a cast, a tiny little bell start ringing telling my the something could be designed better.
( well, of course there a notable exceptions to this )
Storing the string length as uint32_t but leaving int everywhere else is nonsense (assuming that having a 2^32 long string makes sense). Using unsigned types for lengths plays nice with our karma, but is it worth?
Here's my proposal:

We model the string length as uint32_t and we adapt to the context for the precise type to be used. String-related functions should have a uint32_t length in the signature (if not negative value special meaning is required);

AS_NUM should always be casted to int, since coming from a double internal representation;

Code that manipulates the string itself should use uint32_t for indexing and such.

How does this sound?

We model the string length as uint32_t and we adapt to the context for the precise type to be used.

So, by this you mean ObjString and String use uint32_t for the length, but if a function is calling, say strlen(), we allow the function to use size_t for local variables if it leads to less casting?
If so, that sounds good.

String-related functions should have a uint32_t length in the signature (if not negative value special meaning is required);

:+1:

AS_NUM should always be casted to int, since coming from a double internal representation;

:+1:

Code that manipulates the string itself should use uint32_t for indexing and such.

:+1:

So, by this you mean ObjString and String use uint32_t for the length, but if a function is calling, say strlen(), we allow the function to use size_t for local variables if it leads to less casting?

Yes, that's exactly what I was thinking of! :+1:

OK, I'm going to close these out for now since we have more important stuff to worry about. We'll still be able to use them for reference later if we decide to start worrying about numbers again. :)

Those "basic guidelines" will be useful in the future. I hope we'll be using it in the next iterations.
Sometime in the next days I'll fix this again. ;)

Yeah, I agree the discussions were really useful.


How do I disable the changelog spam from the command line?

We're not pacing Fastlane's latest release cycle because it's difficult, and Fastlane takes over stdout with its changelog.
Is there anyway to turn off this super-obnoxious behavior?  This is the sort of thing that makes users want to find alternatives that are less pushy and obnoxious and understand the enterprise release cycle isn't always the bleeding edge.

I think this is what you are looking for 😊 https://docs.fastlane.tools/advanced/#hide-changelog-information-at-the-end-of-running-fastlane


Arrays & Strings - Warm Up Challenge and Assignment Solutions

Reverse Function with swaps

Thanks for the submission. Could you put all these in a /assignments/student_solutions/ <your_username>/ directory instead? Will be nice to accept in some of the student solutions.


[logging] Update Safety Rules logs with leveled logs

Overview
Let's migrate send_struct_log! to use leveled macros, and remove crit! logs
Tasks

[ ] Remove any reference to .warning() or .critical()
[ ] Change send_struct_log! to sl_info!, sl_error!, etc... accordingly similar to the text log macros
[ ] replace any crit! with error!

@davidiw  :) if you could take some time to appropriately fix these logs, that would be great!
I'm tracking all of these in the logging project, to ensure I know how things are working out.

I can probably look into it these next few days.

Resolved and tracked in a different way.


Fail to deploy 450 MB Node Express app on Service Fabric On-Premise

I have node express app which is close to 450 MB. I am trying to run it as a Guest Executable on Service Fabric version Single VM 3 Node Dev cluster version 6.2. I am able to run Copy-ServiceFabricApplicationPackage with a timout of 4500 sec. The next step of Register-ServiceFabricApplicationType also runs successfully. When I try to create an instance of the app by running New-ServiceFabricApplication it fails with the following error message "'System.Hosting' reported Error for property 'Download:1.0:1.0:6fc3d942-cda1-43bb-b565-24823879f279'.
There was an error during download. Failed extracting 'C:..\Code.1.0.0.zip' to 'C:...Code.1.0.0' with Error: 'E_FAIL' while trying to extracting archive.".
I tried to copy the file with as well as without compression. It fails on both the cases. I also tried to install it from Visual Studio IDE 2017, but no success. It seems to me that since the node modules have large number of files, it is failing while extracting but I am not sure as this is the only error message I can see.
I also tried to run it locally on my system using Visual Studio but that also fails.
If I try to deploy a simple node express app of 45 MB, it deploys but this 450 MB app doesn't.  How can I deploy such a big app as Guest Executable ? Is there a size limitation ?

I had the same issue. For me it was not related with the app size, because other larger apps were being deployed successfully.
I connected to the node and I tried to extract the failing zip to the same destination folder. This failed also, but I got a proper error message. One of the files had a name which was too long (considering also the destination folder path).
To fix the issue I shortened the project names (ServiceManifest name).
(I still need to deploy again to make sure it is working)


How to using firebaseArray ?

I am trying to using firebaseArray
FirebaseArray<test1> firebaseArray = new FirebaseArray<test1>(query,test1.class);
But  firebaseArray.size()  is always 0.

@ghost sorry that nobody every got back to you here!  Hopefully you figured this out in the last few years ... I am going to close this issue since it's very old but please feel free to open a new one if you have new questions.


Funny behavior on iOS in combination with MediaDevices.getUserMedia

Steps to Reproduce

A video is started with ReactPlayer, then the native back button is pressed
The back event is catched by react-router (so the webpage is not refreshed) and I go to another route that renders: a component enabling the mobile device video stream with MediaDevices.getUserMedia
Safari asks for permission
If I say yes: the sound of the previously started video is played!

Environment

Browser: safari on iOS 12.3.1 (not happening on Android devices)

I guess this is more an iOS bug, but here is the workaround I've found and I am willing to share if it helps someone else: force this.setState({ playing: false}) before the ReactPlayer is unmounted. The problem is the playing state used to control the player is in the render method, and while unmounting the render may not be called afterwards... That is why I find it would be nice to have play pause instance methods (on the reachable player ref) like seekTo.
Thanks!

You can use getInternalPlayer() if you want to manipulate the internal player instance, including calling play and pause, if they are available.
This does sound like an iOS-specific bug. If the ReactPlayer is unmounted the video or audio should never be playable later on, as everything should be destroyed.
@silently What URL are you playing initially? Are there any player methods that will help to destroy the instance of whatever is play, that we can call when unmounting?

Hello, I'll close the issue since indeed, it does not look like a ReactPlayer bug.
The URL points to a media file (m4a video).
I've tried this.playerRef.current.getInternalPlayer().pause(); when the component unmounts with not success (the iOS bug remains).
Here is the workaround that worked:

MyComponent renders (simplified) <ReactPlayer playing={ this.state.playing } ...>
I have access to a history props thanks to withRouter
I can thus catch a native back event and stop playing:

props.history.block((location, action) => {
  if (action === 'POP') {
    this.setState({ playing: false });
  }
});

Changing this.setState({ playing: false }); in componentWillUnmount dit not work (since the component does not re-render after unmounting, changing the state had not effect).


[edn] FIFO error does not cause local escalation

Description
Currently FIFO errors do not cause local escalation as can be seen in this snippet from the edn_core.sv:
https://github.com/lowRISC/opentitan/blob/e13ff43f1b951c00ea2e24cafa60f7ac11d04e01/hw/ip/edn/rtl/edn_core.sv?plain=1#L295-L307
Other errors like counter or state machine errors cause the SM to enter an error state, while after a FIFO error the SM continues its operation.
According to secure hardware design guideline 5.2 we should "prefer to take a local action (clearing/randomizing state, cease processing) in addition to generating the alert".
There could very well be a reason for not escalating locally but I couldn't find any reason in the documentation or in the lines of code above.
Should this be changed in the design (local escalation on FIFO error) or documented why no local escalation is preferable in this case?

Good catch @h-filali ! I think this is probably a bug. Unless if these errors can happen when disabling EDN which might trigger some FIFO operations? I think this should probably be fixed but I don't know if it's wise to fix this for PROD. We should probably investigate first what can trigger these FIFO errors.

We've just discussed this in person and concluded that it doesn't make sense to not factor in those FIFO errors into the fatal alert signal and local escalation. @h-filali also confirmed to not have seen those FIFO errors occur during normal operation. I thus suggest to change the RTL accordingly once we can again accept RTL changes.

@h-filali , I think we forgot about this one. I had a look at the RTL and I think we still don't lock up the FSM upon FIFO errors.
Maybe we should also check how we handle this in ENTROPY_SRC and CSRNG, and then align all three blocks. I've now put into M4.

As for the other two blocks of the entropy complex:

CSRNG: FIFO errors (no hardened primitives as all FIFOs have a depth of 1, i.e. read and write pointers are fixed - hardening would not have an effect) don't lead to local escalation. The only local escalation source are various hardened counters.
ENTROPY_SRC: FIFO errors (also internal errors for hardened FIFOs) don't feed into a local escalation signal. The only local escalation source is a hardened counter.

I think EDN's behavior is inline with the other two blocks. We could change ENTROPY_SRC such that the internal error of hardened FIFOs also leads to local escalation. We could also change all three blocks to locally escalate on any FIFO error. But I think it's not critical. Important thing is that these errors result in a fatal alert in any case and this is happening already with the current implementation.

I've now filed #23560 to align ENTROPY_SRC with EDN (also locally escalate FIFO errors and FSM errors) and #23561 to align CSRNG with EDN (also locally escalate FSM errors). This should close this issue.


Create cypress test row resizing

I added the height adjustment test along with the others in the library;
however, the other have some errors.

Thanks a lot! Looking good.
The resize test fails on standard on my side


[Mono] The marshalling in of Transform was also incorrect.

Here's a sample project to show all seems to be fixed now based on this issue: https://github.com/godotengine/godot/issues/16937
BrokenTransformFix.zip
GDScript on the left, C# on the right.

Obsoleted by #17360 not put in 3.0.x


Create ADR for project versioning

Purpose
Creates an ADR for deciding on option for versioning of project and different approaches considered.
Does this introduce a breaking change?

[ ] Yes
[x] No

Pull Request Type

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[x] Documentation content changes
[ ] Other... Please describe:

How to Test
n/a

This LGTM! Is it worth a spike + demo to see the tools in action before we go ahead?

This LGTM! Is it worth a spike + demo to see the tools in action before we go ahead?

Thanks @adamdougal your comment was what encouraged me to demo in the meeting in fact!


kdtree building does not stop

When I use the code to building  kdtree, it enters an endless loop, and there are always new nodes that can be split.

Do your point clouds have many exact same points, for example, many (0, 0, 0)?

I guess it's because those points always go one side, so splitting won't stop. You can refer to this commit to test. Now it has same chance to go both side.

I guess it's because those points always go one side, so splitting won't stop. You can refer to this commit to test. Now it has same chance to go both side.

thank you for your reply. this new commit fixed this bug. Now it works.


{AKS-preview} Bump the AKS-preview extension version

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[x] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
The precondition is to put your code inside this repository and upgrade the version in the pull request but do not modify src/index.json.

AKS-preview


Comments: React Native, 3 years later

Our experience has been really positive building a single platform data-driven app. We've been able to drastically increase the number of contributors to the codebase and with minimal guidance, web-developers are able to be productive and ship features to our iOS apps.

That said, for this 3 year anniversary, I want to dive deeper into some of the less positive aspects of our transition. We think these trade-offs are worth it, and that this may be what a successful cultural transition eventually looks like for some companies.

http://artsy.github.io/blog/2019/03/17/three-years-of-react-native/

Excellent post, thanks for sharing!  I can identify with having to keep on top of all of those communities.  It doesn't help that each seems to have established its own gathering spots and messaging channels!  Also happy that there's another net positive post about RN from a reputable source.  It'd be just as well if I never saw another reference to the AirBnB episode as being the downfall of RN anyplace other than Facebook :-)

You said "For example, it took almost a year to get around to upgrading our version of React Native. This is a pretty risky place to be for a platform which we care about." Could you elaborate on this?

So there's two statements in this sentence:

For example, it took almost a year to get around to upgrading our version of React Native

and

This is a pretty risky place to be for a platform which we care about

The former is easy, we're always going to be supporting this app - so the further we deviate from master the more work it is to keep up to date. React Native changes reasonably fast, but the whole tooling eco-system around it changes faster, so if we want to be up to date with Enzyme, we have to be up to date with React Native.  When trying to have a cohesive stack across web and iOS, if your React Native gets out of date then people are wary about updating transitive dips. E.g. We ~can't~ shouldn't use hooks in web because we're not on a React build that supports it in RN.

For example, it took almost a year to get around to upgrading our version of React Native

Is a bit more nuanced, our React Native setup is the same as other big companies because we want a very clean separation of RN code vs native code. Or simply, no node_modules inside native app repos. ( You can read about the architecture here and see how it works here )
in the last year we tried multiple times to update our React Native version:

https://github.com/artsy/emission/pull/991
https://github.com/artsy/emission/pull/1117
https://github.com/artsy/emission/pull/1210
Which was eventually rebased and merged in https://github.com/artsy/emission/pull/1551

But TBH, our setup is hard because we built a lot of our tooling infra in-house and the jump required updating everything to babel 7, from both react native, typescript and jest. Turned out that was a lot of work, that tended to be pretty frustrating work to do. It was a large diff though, and it's unlikely there'll be another change as fundamental as babel 7 for a long time now.
That said, new versions of RN will have less exported features, so if you look at our latest migration to the latest build, we have to polyfill in features that we want, which have been removed from core https://github.com/artsy/emission/pull/1553 - so it won't be without its challenges, but it's less work and could be handled by product teams at the start of a project.

Hi @orta, great blog post, reading about Artsy's experiences with React Native is always super helpful!
I'm curious if you ever tried libraries such as react-native-web or react-native-dom to unify web and mobile components of Artsy. Creating a component library that's shared across web, android and ios sounds like the ultimate goal, but that comes with it's own set of cons. What was the experience that lead Artsy to have separate components for web and iOS?

Hey @tuncaulubilge! I'm pitching in for @orta on this one.
We generally agree across our team that React Native doesn't mean write once, run anywhere. It's more like learn once, write anywhere. So while we like to share where it make sense, we generally try to avoid making things more complex just for that purpose.
That said, we have specifically explored universal components. Palette, our design system, has a set of universal components. When we were first thinking about how to solve this problem, we experimented with react-native-web (among some other options). Given the general complexity of the solutions, some bugs we ran into, and added difficulty debugging we decided not to go this route.
We use styled-components and have some general platform primitives that let us abstract away the difference between a div and a View. For 80% of what we need that's usually sufficient. For more complex components, we may not even try to share implementations. Instead, we do our best to provide the same API across platforms so that at least they're used the same.
There are still a lot of issues (like cross platform testing) that we have to figure out, but so far our approach of selective reuse is working fairly well.
@alloy feel free to pitch in if you have anything to add.

Thanks a lot for the detailed explanation @zephraph , that's quite useful, and exactly what I was hoping to hear. We are using react-native-web in production but we sure had our share of troubles using a write-once approach. I'll take a look at Palette for sure, it's always inspiring to see Artsy's work!


Suggestions for listing files

It's possible to list the zip file entries dynamically while it is being downloaded, as a zip file has entries.
(base) stain@xenamint:~$ curl --retry 10 -sL https://zenodo.org/records/12987289/files/Local_outputs-Comparative_Analysis-Zenodo-v.1.0.2.zip | jar t
Local_outputs-Comparative_Analysis-Zenodo-v.1.0.2/.Rprofile
Local_outputs-Comparative_Analysis-Zenodo-v.1.0.2/BY-COVID_WP5_Baseline-Use-Case_Comparative-analysis_v.1.0.0.html
Local_outputs-Comparative_Analysis-Zenodo-v.1.0.2/BY-COVID_WP5_Baseline-Use-Case_Comparative-analysis_v.1.0.0.QMD

would load progressively as a file is downloaded.
I have an old workflow in https://github.com/stain/ro-index-paper/tree/master/code/data-gathering/workflows that indexes all ZIP files in Zenodo in this way (it takes a couple of days and a fair amount of bandwidth the first time).

File format spec https://www.iana.org/assignments/media-types/application/zip -- note that the table of content at end in theory can delete files and later entries can replace them.. but in practice no-one does that anymore as ZIP files are typically made in one go.

What I'm currently doing for remote Zip files is fetching using HTTP range requests to get the central directory at the end of the file first, and then we have all we need to list and download individual files from the zip without having to download the whole archive.
The only hiccup I found so far with Zenodo in particular (it works with GitHub for example), is that they seem to support byte ranges, but not in the HEADER:
curl -I https://zenodo.org/records/12987289/files/Local_outputs-Comparative_Analysis-Zenodo-v.1.0.2.zip

HTTP/1.1 200 OK
server: nginx
content-type: application/octet-stream
content-length: 32155142
content-security-policy: default-src 'self' fonts.googleapis.com *.gstatic.com data: 'unsafe-inline' 'unsafe-eval' blob: zenodo-broker.web.cern.ch zenodo-broker-qa.web.cern.ch maxcdn.bootstrapcdn.com cdnjs.cloudflare.com ajax.googleapis.com webanalytics.web.cern.ch
x-content-type-options: nosniff
x-download-options: noopen
x-permitted-cross-domain-policies: none
x-frame-options: sameorigin
x-xss-protection: 1; mode=block
content-disposition: attachment; filename=Local_outputs-Comparative_Analysis-Zenodo-v.1.0.2.zip
last-modified: Thu, 08 Aug 2024 07:33:34 GMT
date: Fri, 27 Sep 2024 11:46:07 GMT
link: <https://zenodo.org/api/records/12987289> ; rel="linkset" ; type="application/linkset+json"
x-ratelimit-limit: 133
x-ratelimit-remaining: 132
x-ratelimit-reset:<PHONE_NUMBER>
retry-after: 60
permissions-policy: interest-cohort=()
strict-transport-security: max-age=31556926; includeSubDomains
referrer-policy: strict-origin-when-cross-origin
set-cookie: session=a8877abc94633b6a_66f69aff.0epdMherHmMDWD8AGyUoPyYgLNg; Expires=Mon, 07 Oct 2024 11:46:07 GMT; Secure; HttpOnly; Path=/; SameSite=Lax
strict-transport-security: max-age=15768000
x-request-id: a94761bf53161dfe62f0aeb2b6b6fe02
set-cookie: 5569e5a730cade8ff2b54f1e815f3670=caeb71dd291533318e4637a7167d78aa; path=/; HttpOnly; Secure; SameSite=None
cache-control: private

We need the acept-ranges and the content-length headers to make it work. I don't know for sure, but it seems to be some kind of misconfiguration or oversight in Zenodo as range requests are indeed supported:
curl -r -65000 https://zenodo.org/records/12987289/files/Local_outputs-Comparative_Analysis-Zenodo-v.1.0.2.zip -o partial_file_content

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 65000  100 65000    0     0   131k      0 --:--:-- --:--:-- --:--:--  131k


RFCs should be written formally (most specifically, let’s ban first person pronouns)

Take for example this snippet from https://github.com/rust-lang/rfcs/blob/7443c30a25b7ddc10a36ee3c3344596cb60ed549/active/0003-opt-in-builtin-traits.md#implementation-plan:

Here is a loose implementation plan that @flaper87 and I worked out.

Who is the first person here? Sure, I can look it up, but for these RFCs an informal writing style is undesirable.
Can we please mandate a formal writing style, or at the very least ban first person writing?

If we credited authors on RFCs it would at least make it obvious who "I" is.

As long as the spec is clear, I think it doesn't matter a lot. If we are gonna do this, I think we should eliminate all pronouns and only mention the contributors at the start of the document. Where to put this guideline and make it visible?

Template, which is pretty much what everybody bases their submissions
anyway. What about the old RFCs though?
On Jun 28, 2016 1:50 PM, "Yufan Lou"<EMAIL_ADDRESS>wrote:

As long as the spec is clear, I think it doesn't matter a lot. If we are
gonna do this, I think we should eliminate all pronouns and only mention
the contributors at the start of the document. Where to put this guideline
and make it visible?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/rust-lang/rfcs/issues/61#issuecomment-229015996, or mute
the thread
https://github.com/notifications/unsubscribe/AApc0jT-W09OIYEpxD9Jnwn4tAg4vg55ks5qQPyNgaJpZM4B3FBS
.

What about the old RFCs though?
What about IETF style deprecation? Publish formalised ones to replace old ones. Deprecated ones are updated to point to the updated ones, and vice versa.

@louy2 "if the spec is clear"
Sure, but people (mostly me right now) have to write the spec, and it's made far more difficult when RFCs are merged with incomplete and informal language.

In addition, do we have something like RFC2119 yet?

@louy2 no. It's kinda... do whatever feels right, right now.

Three examples of (first-draft) RFCs:
https://github.com/rust-lang/rfcs/blob/27c33a354e42172918e9b19e78dd30a8e109433c/text/0000-pi-types.md
https://github.com/rust-lang/rfcs/blob/174e37c1e210acb8954f7357ce46529bc7f581c8/text/0000-uisize.md
https://github.com/ashleygwilliams/rfcs/blob/76c59969265223815b14fb83bccdfd5adc285f6c/text/0000-assert_ne.md
(note: I'm not saying any of these are bad, just pointing out the difference in how they're layed out)
It's unclear what an RFC should be. Should it be something everyone can understand? Should it be implementation details? Should it be written in a mathematical proving language?

@ubsan One thing in common: Drawbacks sections are short. But that's a digression and is probably not really related to form.

For reference, PEP 1 is a pretty nice guideline, but I already feel that it's a bit of a burden to read before submitting my new idea.
Ultimately, what do we want the RFCs be? Right now our RFCs seem to be at an earlier point in the discussion than others, say PEP or IETF RFC. Quote PEP 1:

Vetting an idea publicly before going as far as writing a PEP is meant to save the potential author time.

Our RFC seems to be the start of "vetting an idea publicly" instead of the result of it. Or as well as.
The enforcement better not interrupt discussion on topic. Discussion is on as soon as the RFC pull request is submitted, so that leaves enforcement to after discussion. I think a formalization before the FCP is a good timing. The RFC needs to incorporate the result of previous discussion anyway, and a formalized language can hopefully make the idea clearer for a better FCP.
As a start maybe it can be required that an RFC only enters FCP after its formalization, naturally placing the work on the creator. Help from the community is welcome always.

That was such a flow... but I forgot we can also use the pull request template to enforce structure beforehand.
As a real start, add an "Authors" field to the template.

I don't think that Rust is at a place where it would benefit from 2119 style __MUST__s and such. They clarify when multiple parties are all interpreting the text carefully and need to reach the same conclusion, but for the kinds of readings we are doing, they mostly just make the text less accessible.
It seems like mildly bad form to use the first person in the text of an RFC, but not terrible (does it matter who "I" refers to?).
I haven't found RFCs to be too informal so far; incomplete or inaccessible in other ways, perhaps, but informality hasn't been an issue to me.

Triage: @chris-morgan do you intend to make this an RFC? If not, please close this.

I have found that such “bans” or “requirements” hardly work anyway unless there is infrastructure to support them. I think that implementing tooling for this is not a good use of our resources.

@nagisa I agree; I'll just close it (mainly since I want to reduce our ridiculous amount of issues on this repo) and someone can write up a proper proposal if they disagree.


Unable to Deploy Stack. rpc error: code = Unknown desc = unable to validate AWS credentials

What happened?
I have verified the credentials to be correct by using the command below:
 aws sts get-caller-identity
Here's the pulumi config file:
config:
aws:profile: default
aws:region: us-east-1
The local aws credential file uses [default]
Example
Executing 'Pulumi Run' Returns:
Diagnostics:
pulumi:providers:aws (default_5_42_0):
error: rpc error: code = Unknown desc = unable to validate AWS credentials.
Details: validating provider credentials: retrieving caller identity from STS: operation error STS: GetCallerIdentity, https response error StatusCode: 400, RequestID: 0b0a3693-2bcd-4110-ac5c-d82205dbc300, api error IncompleteSignature: '/20231114/us-east-1/sts/aws4_request' not a valid key=value pair (missing equal-sign) in Authorization header: 'AWS4-HMAC-SHA256
Output of pulumi about
Zachary_Royals@Juan-MacBook-Pro infra_two % pulumi about
CLI
Version      3.93.0
Go Version   go1.21.3
Go Compiler  gc
Plugins
NAME            VERSION
aws             5.42.0
aws-apigateway  1.0.1
awsx            1.0.6
docker          3.6.1
python          unknown
Host
OS       darwin
Version  14.0
Arch     arm64
This project is written in python: executable='/Users/Zachary_Royals/.pyenv/shims/python3' version='3.11.0'
Current Stack: Luca-Blight/demo_infra/dev
Found no resources associated with dev
Found no pending operations associated with dev
Backend
Name           pulumi.com
URL            https://app.pulumi.com/Luca-Blight
User           Luca-Blight
Organizations  Luca-Blight
Token type     personal
Dependencies:
NAME                   VERSION
pip                    23.3.1
pulumi-aws-apigateway  1.0.1
pulumi-awsx            1.0.6
setuptools             68.2.2
wheel                  0.41.3
Pulumi locates its logs in /var/folders/0g/9x7mn9056cq7b63r4cs0pzlm0000gn/T/ by st file 'pygraphviz.
Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

I uninstalled graphviz and get a slightly different error when attempting execute pulumi run:
View in Browser (Ctrl+O): https://app.pulumi.com/Luca-Blight/demo_infra/dev/previews/8008677a-3c07-472e-af62-8abf1d0b1edb
Type                 Name            Plan       Info

pulumi:pulumi:Stack  demo_infra-dev  create
└─ aws:iam:Role      role                       1 error
Diagnostics:
aws:iam:Role (role):
error: 1 error occurred:

configuring Terraform AWS Provider: validating provider credentials: retrieving caller identity from STS: operation error STS: GetCallerIdentity, https response error StatusCode: 400, RequestID: c3ff20e6-4733-489b-a58c-02818112a933, api error IncompleteSignature: '/20231114/us-east-1/sts/aws4_request' not a valid key=value pair (missing equal-sign) in Authorization header: 'AWS4-HMAC-SHA256

Can you obfuscate and share result of aws sts get-caller-identity and aws credential file? Please be careful not to post any sensitive information, but it's hard to diagnoze an auth error without looking at your setup.

A few last digits of each property have been altered for security.
{
"UserId": "AIDA5PSXE366ME543",
"Account": "92682196",
"Arn": "arn:aws:iam::926821965756:user/zack"
}

All settled, it was simply a trailing space in the aws credentials file


Duration missing toJSON feature

Hi, i detected that the moment object don't implement the standar to JSON function
http://en.wikipedia.org/wiki/ISO_8601#Durations
in this link stated that it should return a iso8601 format PnYnMnDTnHnMnS
https://google-styleguide.googlecode.com/svn/trunk/jsoncstyleguide.xml#Time_Duration_Property_Values
so for example:
var aaa = [1,"some string", moment.duration(123,'m')];
JSON.stringify(aaa);
//"[1,"some string",{"_milliseconds":7380000,"_days":0,"_months":0,"_data":{"milliseconds":0,"seconds":0,"minutes":3,"hours":2,"days":0,"months":0,"years":0}}]"

it could be corrected like this
moment.duration.fn.toJSON = function(){ return this.toIsoString();}
JSON.stringify(aaa);
//"[1,"some string","PT2H3M"]"

Looks like this Issue is closed since #1825 was merged.


A user thinks the default '0' is a little bit confusing.

An user thinks the default '0' is a little bit confusing, especially when he is trying to put 0.xx amount, he always thought that is a really '0' so he put '.' right after that.

Thanks you, It have been fixed and we'll deploy soon


Make the error useful when Sensu hasn't been included.

This transforms the error message from something like:
Unknown variable: '::sensu::check_notify'. at /etc/puppet/environments/masterbranch/vendor/modules/sensu/manifests/check.pp:147:28
into the much more helpful:
Error while evaluating a Function Call, monitoring_check local_smtp defined before the sensu class was included at /etc/puppet/environments/masterbranch/vendor/modules/monitoring_check/manifests/init.pp:266:7

:shipit:

Thank you for doing this


start_streaming(...) failed. UVC device is already streaming!

I have fresh Ubuntu 16.04. When I follow instructions, I encountered a problem. After type "roslaunch realsense2_camera rs_camera.launch" I got:
16/11 00:04:35,328 WARNING [140028622067584] (types.cpp:57) start_streaming(...) failed. UVC device is already streaming!  16/11 00:04:35,329 WARNING [140028622067584] (types.cpp:57) start_streaming(...) failed. UVC device is already streaming!  16/11 00:04:35,329 WARNING [140028622067584] (types.cpp:57) start_streaming(...) failed. UVC device is already streaming!
From roslaunch realsense2_camera, only "demo_pointcloud.launch" works properly. Here create visualization works fine.

exat the same issue for me. Have you solve it already?

exact the same issue for me. Have you solve it already?

exact the same issue for me. Have you solve it already?

Not yet. I still waiting for answer.

Besides the warning, are the topics being published?

Besides the warning, are the topics being published?
Yes, I checked it.

What version do you use? Is that the latest release?
As far as I know, this is a warning only. Annoying, I thought I already fixed it, but has no effect of anything else.

@doronhi I have been recieving the same warnings since the last update to the package. This function is throwing this warning:
void BaseRealSenseNode::toggleSensors(bool enabled)
{
    for (auto it=_sensors.begin(); it != _sensors.end(); it++)
    {
        auto& sens = _sensors[it->first];
        try
        {
            if (enabled)
                sens.start(_syncer);
            else
                sens.stop();
        }
        catch(const rs2::wrong_api_call_sequence_error& ex)
        {
            ROS_DEBUG_STREAM("toggleSensors: " << ex.what());
        }
    }
}

It seems to me that it was added to solve the hardware reset issue, however the iterator somehow exceeds the count of the sensor.. Again I am no expert but I thought this might help. I commented the part that uses this function and instead, I used the HW reset approach explained here.

exact the same issue. Topics are started though

I have that warning, and no data is being published over the topics. I also get the warning: WARNING [140490720667392] (backend-v4l2.cpp:1013) Frames didn't arrived within 5 seconds
I know that I was receiving data at some point, but I cannot get data streams from my RealSense D435 anymore. I don't know why.

Thank you Haya-Alsharif, I will try that added line of code. But I have already tried reconnecting the USB. I am using the USB 3.0 port. If I boot my computer with the camera plugged in, the camera is simply never found. When I unplug it, and plug it back in, that is when I get the warning that frames did not arrive within 5 sec.

Yeah, I added your line of code to reset the device, but I still get the same message: "(backend-v4l2.cpp:1013) Frames didn't arrived within 5 seconds". I am running the command "roslaunch realsense2_camera rs_camera.launch" and when I use "rostopic list", I get:
/camera/color/camera_info
/camera/color/image_raw
/camera/color/image_raw/compressed
/camera/color/image_raw/compressed/parameter_descriptions
/camera/color/image_raw/compressed/parameter_updates
/camera/depth/camera_info
/camera/depth/image_rect_raw
/camera/depth/image_rect_raw/compressed
/camera/depth/image_rect_raw/compressed/parameter_descriptions
/camera/depth/image_rect_raw/compressed/parameter_updates
/camera/extrinsics/depth_to_color
/camera/extrinsics/depth_to_infra1
/camera/extrinsics/depth_to_infra2
/camera/infra1/camera_info
/camera/infra1/image_rect_raw
/camera/infra1/image_rect_raw/compressed
/camera/infra1/image_rect_raw/compressed/parameter_descriptions
/camera/infra1/image_rect_raw/compressed/parameter_updates
/camera/infra2/camera_info
/camera/infra2/image_rect_raw
/camera/infra2/image_rect_raw/compressed
/camera/infra2/image_rect_raw/compressed/parameter_descriptions
/camera/infra2/image_rect_raw/compressed/parameter_updates
/camera/realsense2_camera_manager/bond
/camera/realsense2_camera_manager/parameter_descriptions
/camera/realsense2_camera_manager/parameter_updates
/diagnostics
/rosout
/rosout_agg
/tf_static
but none of these topics are actually publishing anything that I have been able to see.

I hope I am not posting too many things here. But I thought it would be helpful for everyone if I post the roslaunch output that I have been getting:
~$ roslaunch realsense2_camera demo_pointcloud.launch
... logging to /home/derek/.ros/log/95384538-fd81-11e8-9de4-4025c2a5b140/roslaunch-derek-G74Sx-6965.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://derek-G74Sx:34382/
SUMMARY
PARAMETERS

/camera/realsense2_camera/accel_fps: 1000
/camera/realsense2_camera/accel_optical_frame_id: camera_accel_opti...
/camera/realsense2_camera/align_depth: False
/camera/realsense2_camera/aligned_depth_to_color_frame_id: camera_aligned_de...
/camera/realsense2_camera/aligned_depth_to_fisheye_frame_id: camera_aligned_de...
/camera/realsense2_camera/aligned_depth_to_infra1_frame_id: camera_aligned_de...
/camera/realsense2_camera/aligned_depth_to_infra2_frame_id: camera_aligned_de...
/camera/realsense2_camera/base_frame_id: camera_link
/camera/realsense2_camera/color_fps: 30
/camera/realsense2_camera/color_frame_id: camera_color_frame
/camera/realsense2_camera/color_height: 480
/camera/realsense2_camera/color_optical_frame_id: camera_color_opti...
/camera/realsense2_camera/color_width: 640
/camera/realsense2_camera/depth_fps: 30
/camera/realsense2_camera/depth_frame_id: camera_depth_frame
/camera/realsense2_camera/depth_height: 480
/camera/realsense2_camera/depth_optical_frame_id: camera_depth_opti...
/camera/realsense2_camera/depth_width: 640
/camera/realsense2_camera/enable_color: True
/camera/realsense2_camera/enable_depth: True
/camera/realsense2_camera/enable_fisheye: False
/camera/realsense2_camera/enable_imu: False
/camera/realsense2_camera/enable_infra1: False
/camera/realsense2_camera/enable_infra2: False
/camera/realsense2_camera/enable_pointcloud: True
/camera/realsense2_camera/enable_sync: True
/camera/realsense2_camera/filters:
/camera/realsense2_camera/fisheye_fps: 30
/camera/realsense2_camera/fisheye_height: 480
/camera/realsense2_camera/fisheye_optical_frame_id: camera_fisheye_op...
/camera/realsense2_camera/fisheye_width: 640
/camera/realsense2_camera/gyro_fps: 1000
/camera/realsense2_camera/gyro_optical_frame_id: camera_gyro_optic...
/camera/realsense2_camera/infra1_fps: 30
/camera/realsense2_camera/infra1_frame_id: camera_infra1_frame
/camera/realsense2_camera/infra1_height: 480
/camera/realsense2_camera/infra1_optical_frame_id: camera_infra1_opt...
/camera/realsense2_camera/infra1_width: 640
/camera/realsense2_camera/infra2_fps: 30
/camera/realsense2_camera/infra2_frame_id: camera_infra2_frame
/camera/realsense2_camera/infra2_height: 480
/camera/realsense2_camera/infra2_optical_frame_id: camera_infra2_opt...
/camera/realsense2_camera/infra2_width: 640
/camera/realsense2_camera/json_file_path:
/camera/realsense2_camera/pointcloud_texture_index: 0
/camera/realsense2_camera/pointcloud_texture_stream: RS2_STREAM_COLOR
/camera/realsense2_camera/rosbag_filename:
/camera/realsense2_camera/serial_no:
/rosdistro: kinetic
/rosversion: 1.12.14

NODES
/camera/
realsense2_camera (nodelet/nodelet)
realsense2_camera_manager (nodelet/nodelet)
rviz (rviz/rviz)
auto-starting new master
process[master]: started with pid [6977]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 95384538-fd81-11e8-9de4-4025c2a5b140
process[rosout-1]: started with pid [6990]
started core service [/rosout]
process[camera/realsense2_camera_manager-2]: started with pid [7007]
process[camera/realsense2_camera-3]: started with pid [7008]
[ INFO] [1544559364.414683527]: Initializing nodelet with 8 worker threads.
[ INFO] [1544559364.456771732]: RealSense ROS v2.1.2
[ INFO] [1544559364.456820710]: Running with LibRealSense v2.17.0
process[camera/rviz-4]: started with pid [7047]
[ INFO] [1544559364.747874064]: getParameters...
[ INFO] [1544559364.815548167]: setupDevice...
[ INFO] [1544559364.815591949]: JSON file is not provided
[ INFO] [1544559364.815629598]: ROS Node Namespace: camera
[ INFO] [1544559364.815654113]: Device Name: Intel RealSense D435
[ INFO] [1544559364.815687508]: Device Serial No:<PHONE_NUMBER>43
[ INFO] [1544559364.815724943]: Device FW version: <IP_ADDRESS>
[ INFO] [1544559364.815778048]: Device Product ID: 0x0B07
[ INFO] [1544559364.815821718]: Enable PointCloud: On
[ INFO] [1544559364.815854201]: Align Depth: Off
[ INFO] [1544559364.815887105]: Sync Mode: On
[ INFO] [1544559364.815960929]: Device Sensors:
[ INFO] [1544559364.816000454]: Stereo Module was found.
[ INFO] [1544559364.816033078]: RGB Camera was found.
[ INFO] [1544559364.816077564]: setupPublishers...
[ INFO] [1544559364.819098471]: Expected frequency for depth = 30.00000
[ INFO] [1544559364.831900938]: Expected frequency for color = 30.00000
[ INFO] [1544559364.841937142]: setupStreams...
11/12 13:16:04,842 WARNING [139786900645760] (sensor.cpp:338) Unregistered Media formats : [ UYVY ]; Supported: [ ]
[ INFO] [1544559364.845099926]: depth stream is enabled - width: 640, height: 480, fps: 30
[ INFO] [1544559364.847190988]: color stream is enabled - width: 640, height: 480, fps: 30
[ INFO] [1544559364.858781577]: Add Filter: pointcloud
[ INFO] [1544559364.859461322]: num_filters: 1
[ INFO] [1544559364.859502561]: publishStaticTransforms...
[ INFO] [1544559364.859643605]: RealSense Node Is Up!
[ INFO] [1544559364.859688628]: Start updating dynamic parameters...
11/12 13:16:04,911 WARNING [139786900645760] (types.cpp:57) start_streaming(...) failed. UVC device is already streaming!
11/12 13:16:04,911 WARNING [139786900645760] (types.cpp:57) start_streaming(...) failed. UVC device is already streaming!
11/12 13:16:04,911 WARNING [139786900645760] (types.cpp:57) start_streaming(...) failed. UVC device is already streaming!
11/12 13:16:04,911 WARNING [139786900645760] (types.cpp:57) start_streaming(...) failed. UVC device is already streaming!
[ INFO] [1544559365.148471364]: Done updating dynamic parameters...
11/12 13:16:09,861 WARNING [139785951770368] (backend-v4l2.cpp:1013) Frames didn't arrived within 5 seconds
11/12 13:16:09,862 WARNING [139786033157888] (backend-v4l2.cpp:1013) Frames didn't arrived within 5 seconds
11/12 13:16:14,863 WARNING [139785951770368] (backend-v4l2.cpp:1013) Frames didn't arrived within 5 seconds
11/12 13:16:14,867 WARNING [139786033157888] (backend-v4l2.cpp:1013) Frames didn't arrived within 5 seconds

I sorta solved my problem. I had to upgrade my RealSense D435 frimware from <IP_ADDRESS> to 5.10.x.x. This has my camera working on USB 2.0 now, but it still does not work on USB 3.0. The camera isn't even found on USB3.0 now. I haven't reset my computer yet since the update though, it's possible that my USB 3.0 port is still locked from attempting the firmware update on that port.

@Raisintoe I just upgraded my SDK to 2.17.0 and started facing similar issues to the one your mentioned. Now I am upgrading my camera FW to <IP_ADDRESS> to see if this will solve the issue.
My previous SDK was 16.5 and camera FW was <IP_ADDRESS>

Update: a simple reboot after the upgrades of both SDK and camera FW solved all the issues for me  :sweat_smile:


link to quickstart documentation doesn't work (404)

Environment
No response
Reproduction
No response
Describe the bug
https://sidebase.io/nuxt-pdf/getting-started/quick-start -> 404
Additional context
No response
Logs
No response

this isn't the best answer, but it works...
Archive.org


Terminate batch job issue

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

VS Code Version: 1.82.0
OS Version:

Steps to Reproduce:

press ctrl+c for terminate project
press N for no. But still project terminate if we select No.

We closed this issue because it is a question about using VS Code rather than an issue or feature request. Please search for help on StackOverflow, where the community has already answered thousands of similar questions. You may find their guide on asking a new question helpful if your question has not already been asked. See also our issue reporting guidelines.
Happy Coding!


0.9.6: monitor folder fills whole disk

I have a cluster of 3 nodes, seems like the /var/lib/influxdb/data/_internal/monitor fills up on all 3 nodes. I don't think the problem was present in 0.9.4. Is is a configuration problem?
[ansible@cdn1cdidb0003 ~]$ df
df: `/dev/shm': No such file or directory
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/root       20511312 19336988    109364 100% /

[root@cdn1cdidb0002 monitor]# ls -l
total 17719728
-rw-r--r-- 1 influxdb influxdb<PHONE_NUMBER> Jan 16 00:00 1014
-rw-r--r-- 1 influxdb influxdb<PHONE_NUMBER> Jan 17 00:00 2542
-rw-r--r-- 1 influxdb influxdb  268435456 Jan 12 00:00 309
-rw-r--r-- 1 influxdb influxdb  268435456 Jan 13 00:00 362
-rw-r--r-- 1 influxdb influxdb  536870912 Jan 14 00:00 413
-rw-r--r-- 1 influxdb influxdb<PHONE_NUMBER> Jan 15 00:00 462
-rw-r--r-- 1 influxdb influxdb<PHONE_NUMBER> Jan 18 00:00 5057
-rw-r--r-- 1 influxdb influxdb<PHONE_NUMBER> Jan 19 00:00 8575
-rw-r--r-- 1 influxdb influxdb   16777216 Jan 19 13:23 9010

@smalenfant, please, search the closed issues. I believe this already has been reported and fixed in newer version. Or at least the issue sounds really similar.

@zstyblik Looks like this is still open #5307. Seems like turning off monitor is the only way to fix it for now?

@smalenfant no, https://github.com/influxdata/influxdb/issues/5290 and https://github.com/influxdata/influxdb/issues/5207 and may be other related issues. I'm not looking for more issues than this, sorry.

Looks like it is fixed in 0.10-nightly. I'll have to wait for a new stable build before we can fix this in production. For now I'll try disabling the monitor. Thanks.


oadp-1.0 Github Actions: make test fix, bump go to 1.18

fix kustomize go install by bumping to v4 which does not contain breaking changes affecting our use.
Github Actions: go-test go version bump to 1.18
kustomize v3->v4 breaking changes related to supported url types don't affect our repo

Codecov Report

:exclamation: No coverage uploaded for pull request base (oadp-1.0@c5f772f). Click here to learn what that means.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             oadp-1.0     #721   +/-   ##
===========================================
  Coverage            ?   37.52%
===========================================
  Files               ?       14
  Lines               ?     3065
  Branches            ?        0
===========================================
  Hits                ?     1150
  Misses              ?     1815
  Partials            ?      100

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c5f772f...9d17b6e. Read the comment docs.


analytics: compute the md5 hash correctly :grimace:

Hello @jazzdan,
Please review the following commits I made in branch nicks/hash:
05f7369f438b8afcd85990853b5af91851e8c763 (2018-10-03 12:52:35 -0400)
analytics: compute the md5 hash correctly :grimace:

i thought those hashes looked suspicious....


Hibernate validation complains about missing tables after upgrade to Spring Boot 2.6.x

General Setup
I'm using the following setup for an integration test:

Testcontainers 1.16.3
Spring Boot 2.5.9 with Fylway enabled
MariaDB 10.4

Basically, an integration test does the following things:

Start MariaDB container.
Import SQL dump.
Apply Flyway migrations from the application under test.
Start the application context with spring.jpa.hibernate.ddl-auto=validate.
Run the test.

This is the AbstractIntegrationTest which all integration test classes extend. This class is responsible for startup up the database container.
An SQL dump is imported using withInitScript("db/init.sql").
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ContextConfiguration(initializers = WireMockInitializer.class)
@ActiveProfiles("integration-test")
@Testcontainers
public abstract class AbstractIntegrationTest {

    private static final String MARIADB_IMAGE_NAME = "mariadb:10.4.16";
    private static final String MARIADB_DATABASE_NAME = "my-database";
    private static final String MARIADB_USERNAME = "username";
    private static final String MARIADB_PASSWORD = "password";

    static final MariaDBContainer<?> mariaDBContainer = new MariaDBContainer<>(MARIADB_IMAGE_NAME)
            .withDatabaseName(MARIADB_DATABASE_NAME)
            .withUsername(MARIADB_USERNAME)
            .withPassword(MARIADB_PASSWORD)
            .withInitScript("db/init.sql")  // here we import a MySQL dump
            .withCommand("--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci")
            .withReuse(true);

    static {
        mariaDBContainer.start();
    }

    // dynamically set properties from started Testcontainers
    @DynamicPropertySource
    static void registerProperties(DynamicPropertyRegistry registry) {
        registry.add("spring.datasource.url", mariaDBContainer::getJdbcUrl);
        registry.add("spring.datasource.username", mariaDBContainer::getUsername);
        registry.add("spring.datasource.password", mariaDBContainer::getPassword);
    }
}

Observed Behavior
All of the integration tests failed after having upgraded the application to Spring Boot 2.6.3. The application did not start properly with a Hibernate validation error message that table 'xyz' is missing. The dump, however, contains and recreates this table.
Analysis
After debugging and reading release notes I found that Spring Boot 2.6.3 uses a newer Hibernate dependency. Further attemps showed that the described behavior does not occur with hibernate-core 5.5.2.Final but does occur with hibernate-core 5.5.3.Final.
This pointed me to Hibernate issue 13788 which deals with the hibernate.temp.use_jdbc_metadata_defaults property.
Changes between 5.5.2 and 5.5.3:
https://github.com/hibernate/hibernate-orm/compare/5.5.2...5.5.3
Workaround
Running the intergation tests with spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false (default is true) works but it somehow feels like a workaround.
Actually, I'm not sure if the root cause is located within the Testcontainers project but I could observe this behavior only in the test context. Running the application in production hasn't shown this behavior yet.

I discovered that my application was running with a legacy JPA/Hibernate dialect of org.hibernate.dialect.MySQL57InnoDBDialect. After having changed this to the MariaDB103Dialect, the issue could not be observed anymore.


Cannot read property 'type' of null Error in TableHeaderColumns when having dynamic columns

I get the following error in latest version of react bootstrap table. We use remote mode.
TypeError: Cannot read property 'type' of null
    at TableHeaderColumn.getFilters
    at TableHeaderColumn.componentWillReceiveProps

The error is in line number:
https://github.com/AllenFang/react-bootstrap-table/blob/master/src/TableHeaderColumn.js#L55
The filter property in this.props comes up as null.
This error occurs when we dynamically change the columns based on a column chooser we have in our UI. We have a dynamic column chooser like in image below.

This issue probably arose after https://github.com/AllenFang/react-bootstrap-table/commit/84cc76c7d92b4aa2eb3f1a3c8fddabd5b20f9647#diff-8f8b33ee4d9574a41f23bcf7dcd7440c
Everything works fine if all columns have filters, but i get above error when some fields do not have filters.
We were using version 3.3.7 and this functionality was working fine there.  The issue starts to happen after 4.0.5 release and worked fine until 4.0.3.
Adding && this.props.filter
in line https://github.com/AllenFang/react-bootstrap-table/blob/master/src/TableHeaderColumn.js#L27 fixes the issue for me.

@rrameshkumar76 sorry for lately, I'll try to fix it on next version. thanks

Thanks for the response @AllenFang

HI @rrameshkumar76 check v4.3.1 and let me know if the problem still remain, thanks

Looks like it works fine. Thanks @AllenFang


Feature request zoom on images on mouse over

it's possible adding a zoom effect image  on mouse over ?

Nope, thats not the responsibility of jCarousel. There are already tons of scripts  available.


Optimization does not spot variable changed inside loop

This is a big piece of code, I should probably reduce it in size until it's just the bug, but too lazy right now...
I posted the finished schematic with a workaround here https://www.reddit.com/r/Mindustry/comments/1f8b38w/large_oil_steam_with_autothrottle/
In this code surplus_itr is modified a lot inside the loop but the construct surplus_itr - GEN_OUTPUT > GOAL_SURPLUS is not recomputed correctly.
As a workaround, I added an explicit IF statement which detects that this generator has tipped us over the edge of the power we required.
This code
//  if decrease
      reactor.enabled = false
      surplus_itr -= GEN_OUTPUT
      decrease = !full_on and surplus_itr - GEN_OUTPUT > GOAL_SURPLUS // This statement gets optimized to not get re-computed
//  end

becomes
control enabled reactor false 0 0 0
op sub surplus_itr surplus_itr GEN_OUTPUT
op land decrease __tmp18 __tmp20     <---- Using very stale values here to update decrease

// Far above (outside the loop):
op equal __tmp18 full_on false
op sub __tmp19 surplus GEN_OUTPUT
op greaterThan __tmp20 __tmp19 GOAL_SURPLUS  <--- Note this is the only assignment to __tmp20

Here is the full code:
CAPACITY_WARNING = 8000
GOAL_SURPLUS = 2000 // Try to create this much surplus and no more
GEN_OUTPUT = 330 // How much power each generator makes
GEN_TYPE = @steam-generator
ROUTER_SETPOINT = 0.70 // Turn on all routers below this
ROUTER_SEP = 0.5 // Each router turns off at this seperation (70%, 75%, 80%, 85%)
// GEN_ROUTER_NUM = 28 // How many extra generators are past routers we control
// GEN_ROUTER = GEN_OUTPUT * GEN_ROUTER_NUM // How much gross generation that is
OIL_SENSOR = container1
WATER_SENSOR = router5 // router6 & 7
ROUTER_TYPE = @router

charge = battery1.powerNetStored
tot = battery1.powerNetCapacity
portion = charge / tot
surplus = battery1.powerNetIn - battery1.powerNetOut // Watts of excess generation

if tot < CAPACITY_WARNING
    tot_k = floor(tot / 1000)
    printf("Warning! Network capacity too low (${tot_k}K). Disconnected?\n")
end

if portion > 0.99
    print("Fully Charged\n")
end

routers = max(0, (ROUTER_SETPOINT - portion) / ROUTER_SEP)

// If we are switching on any routers, turn on all the controlled generators also.
full_on = routers > 0

// Increase generation if full on or below surplus
increase = full_on or surplus < GOAL_SURPLUS

// Decrease generation if not full on and above surplus (but ensure that switching off a gen won't put us below.)
decrease = !full_on and surplus - GEN_OUTPUT > GOAL_SURPLUS

router_on_itr = 0
gen_on_itr = 0
surplus_itr = surplus
gen_tot = 0
router_tot = 0

portion_nice = floor(portion * 100)
surplus_k = floor(surplus / 1000)
printf("${portion_nice}% charged. ${surplus_k}K surplus (goal is ${GOAL_SURPLUS}W).\n")

n = @links
while n > 0
    n -= 1
    reactor = getlink(n)
    // Only process reactors. If a different block got linked
    // by mistake, it would become disabled
    if reactor.type == GEN_TYPE
        gen_tot += 1
        if reactor.enabled
            if decrease
                reactor.enabled = false
                surplus_itr -= GEN_OUTPUT
                decrease = !full_on and surplus_itr - GEN_OUTPUT > GOAL_SURPLUS // This statement gets optimized to not get re-computed
            end
        else
            if increase
                reactor.enabled = true
                surplus_itr += GEN_OUTPUT
                increase = full_on or surplus_itr < GOAL_SURPLUS
            end
        end
        gen_on_itr += reactor.enabled ? 1:0
    elsif reactor.type == ROUTER_TYPE
        reactor.enabled = router_on_itr < routers
        router_on_itr += reactor.enabled ? 1:0
        router_tot += 1
    end
end

gen_on = gen_on_itr
router_on = router_on_itr
expected_surplus = surplus_itr
printf("$gen_on / $gen_tot generators on, $router_on / $router_tot routers on.")
printflush(message1)
wait(0.5)

I was able to strip it down to this:
a = rand(10)
b = a > 5
d = a
c = b or d < 5

while true
    if c
        d += 1
        c = b or d < 5
    end
end

which produces
op rand __tmp0 10 0
op greaterThan a __tmp0 5
op greaterThan b a 5
op lessThan __tmp3 a 5
op or c b __tmp3
set d a
jump 6 equal c false
op add d d 1
op or c b __tmp3
jump 6 always 0 0

It's going to be a headache :D
There might be a workaround. Replace
surplus_itr -= GEN_OUTPUT
decrease = !full_on and surplus_itr - GEN_OUTPUT > GOAL_SURPLUS

with
X = surplus_itr - GEN_OUTPUT
decrease = !full_on and X > GOAL_SURPLUS // This statement gets optimized to not get re-computed
surplus_itr = X

and similarly this
surplus_itr += GEN_OUTPUT
increase = full_on or surplus_itr < GOAL_SURPLUS

with this:
X = surplus_itr + GEN_OUTPUT
increase = full_on or X < GOAL_SURPLUS
surplus_itr = X

(The goal is to reformulate the expression in such a way to prevent the optimizer from recognizing it is the same expression as the one in front of the loop. The bug seems to be the optimizer not properly invalidating the cached expression.)
This seems to fix these two occurrences, but I haven't checked there aren't other problems with surplus_itr.

Yeah, what I went with for a workaround (as mentioned I figured one out before submitting this issue) was an explicit check
  if decrease
      reactor.enabled = false
      surplus_itr -= GEN_OUTPUT
      if surplus_itr - GEN_OUTPUT <= GOAL_SURPLUS
          decrease = false
      end
  end

Thanks for your support, and taking the time to provide workarounds.

For future reference: the bug is caused by the Data Flow Optimizer using wrong instances of variable states. Instances of variable values were created with an implicit reference to variable states, which was not updated when cloning the variable states that contained them. As a fix, the variable values were decoupled from variable states and use an instance of variable states provided by the Data Flow Optimizer when evaluating common subexpressions.