layer.output raises AttributeError because inbound nodes lost after call to activation function

System information

custom code
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
ubuntu 18.04
TensorFlow installed from (source or binary):
pip install tensorflow-gpu
TensorFlow version (use command below):

v2.0.0-rc2-26-g64c3d38 2.0.0
and
v2.0.0-beta0-16-g1d91213fe7 2.0.0-beta1

Python version:
3.6.9

Describe the current behavior
calling layer.output on a keras layer that is called on the output of an activation function does not setup the inbound nodes properly and so one cannot call the layer.output method.
Describe the expected behavior
layer.output should return the output tensor
Code to reproduce the issue

import tensorflow as tf

class MyModel(tf.keras.Model):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        self.dense0 = tf.keras.layers.Dense(10, name='dense0', input_shape=(5, 5, 1))
        self.dense1 = tf.keras.layers.Dense(10, name='dense1')
        self.dense2 = tf.keras.layers.Dense(10, name='dense2')

    def call(self, x):
        x = self.dense0(x)
        # if you use this line it works
        x = tf.keras.layers.ReLU()(x)
        x = self.dense1(x)

        print('correct:', self.dense1.inbound_nodes)

        # if you use this line it doesn't work
        relu = tf.keras.activations.get('relu')
        x = relu(x)
        x = self.dense2(x)

        print('incorrect:', self.dense2.inbound_nodes)
        return x

def main():
    my_model = MyModel()

    inp = tf.keras.Input(shape=(5, 5, 1))
    out = my_model(inp)

    my_model.compile(optimizer='adam',
                     loss='sparse_categorical_crossentropy')

    for l in my_model.layers:
        try:
            print(l.output)
        except AttributeError:
            print('EXCEPTION: {}.output raises attribute error'.format(l.name))

if __name__=='__main__':
    main()

Other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.
UPDATED: to include input_shape which does not solve the problem.

@chahld ,
When defining a network in Keras, the first layer added needs to have input_shape added, please check the link for more information.
Also refer this example.Thanks!

I am not using the Sequential Model. I discovered the problem while subclassing a layer where I needed to call tf.stop_gradient. [Note: Subclassing a layer does not require the input_shape parameter. In my example I'm calling the model on a tf.keras.Input which provides the appropriate input shape. Just to prove this to myself I've ammended the code in my original post, it still fails.]
TL;DNR: The inbound nodes problem happens whenever you are subclassing (either Model or Layer) and you use functions instead of classes for some of the steps in the call function. You can work around this problem by wrapping any tensorflow function inside a tf.keras.layers.Lambda.
Detailed comments:

maybe tf.keras.activations.get should return the ReLU layer, not the relu function.

so long as you use only Keras Layers in the model, the inbound nodes are updated correctly.

If you use the functional interface outside of a keras.Layer, the error does not happen. So there is something about the context inside of Layer.call method that is not working properly. (see code below)
the fact that the node structure is updated correctly in the functional interface makes me think that the layer.call problem is actually a bug.

Workaround: My original problem happened because I needed to call tf.stop_gradient. There is no corresponding keras layer for this, but you can get around this by wrapping it inside a Lambda layer:

   StopGradient = tf.keras.layers.Lambda(tf.stop_gradient)

or by defining a subclassed layer:

class StopGradient(KL.Layer):
    def call(self, x):
        x = tf.stop_gradient(x)
        return x

I have no idea why this fixes the problem, because inside this layer's call function the nodes are probably not being correctly assigned, but somehow in the layer that calls this function, it recovers. Maybe if the function call is the last or only step in a layer then the node construction works properly? I don't know.
The Sequential object is helpful because it throws an error if you try to add function to the sequence instead of a class:

    my_model.add(tf.keras.activations.get('relu'))

    TypeError: The added layer must be an instance of class Layer. Found: <function relu at 0x7fee0be176a8>

it would nice if the Layer subclassing system raised such a useful exception instead of silently building a  bad node structure.

Addendum:
See my original post for code to reproduce the problem.
Here is an example using the functional interface that works:
  import tensorflow as tf

def main():
    inputs = tf.keras.Input(shape=(5, 5, 1))
    x = inputs
    x = tf.keras.layers.Dense(10, name='dense0')(x)
    x = tf.keras.layers.ReLU()(x)
    x = tf.stop_gradient(x)
    x = tf.keras.layers.Dense(10, name='dense1')(x)
    x = tf.keras.activations.relu(x)
    x = tf.keras.layers.Dense(10, name='dense2')(x)
    outputs = x
    my_model = tf.keras.Model(inputs, outputs)

    # inp = tf.keras.Input(shape=(5, 5, 1))

    my_model.compile(optimizer='adam',
                     loss='sparse_categorical_crossentropy')

    for l in my_model.layers:

        print(l.output)  # does not fail

if __name__=='__main__':
    main()

Issue replicating for given code,kindly find the gist of colab.Thanks!

@chahld I am not sure why you are trying to use relu = tf.keras.activations.get('relu'). I tried to define relu in def method and used it. Please check the gist here. Thanks!
Please close the issue if it was resolved for you. Thanks!

@jvishnuvardhan
Yes I know that the ReLU layer works (I showed that in my code to reproduce the problem).
There are two reasons why I don't think this should be closed.
First: tf.keras.activations.get('relu') returns the function, not the layer class. If only the layer class is supported then it should be the one returned by the get. I was using the get method so that I could change the activation function from a configuration file. The get method does not accept "ReLU", which is another way to fix this part of the problem.
And 2nd, As I said in my second post, the problem seems to occur whenever you use any tensorflow function in a layer subclass or model subclass. It is not limited to relu. For some tensorflow functions there is no Keras layer available: e.g. tf.stop_gradient()
I know there is a workaround (I explained how to do that in my second post). But this problem  ought to be fixed, and not just worked around.  The error message is very obscure, and this was difficult to debug and reproduce. At the least, the documentation and tutorials discussing the subclass approach should indicate that there are issues if you use tensorflow functions in the pipeline, or the function should throw an exception if it is an invalid use of the function.

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.layers import Dense, Flatten, Conv2D
from tensorflow.keras import Model, backend as K

mnist = keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

x_train = x_train[..., tf.newaxis]
x_test = x_test[..., tf.newaxis]

train_ds = tf.data.Dataset.from_tensor_slices(
    (x_train, y_train)).shuffle(10000).batch(32)
test_ds = tf.data.Dataset.from_tensor_slices((x_test, y_test)).batch(32)

class MyModel(Model):
    def __init__(self):
        super(MyModel, self).__init__()
        self.conv1 = Conv2D(32, 3, activation='relu', input_shape=(28, 28, 1))
        self.flatten = Flatten()
        self.d1 = Dense(128, activation='relu')
        self.d2 = Dense(10, activation='softmax')

    def call(self, x):
        x = self.conv1(x)
        x = self.flatten(x)
        x = self.d1(x)
        return self.d2(x)

# def get_layer_output(self):
#     output = graph.get_tensor_by_name('output:0')

model = MyModel()

loss_object = tf.keras.losses.SparseCategoricalCrossentropy()

optimizer = tf.keras.optimizers.Adam()

train_loss = tf.keras.metrics.Mean(name='train_loss')
train_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(
    name='train_accuracy')

test_loss = tf.keras.metrics.Mean(name='test_loss')
test_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(
    name='test_accuracy')

@tf.function
def train_step(images, labels):
    with tf.GradientTape() as tape:
        predictions = model(images)
        loss = loss_object(labels, predictions)
    gradients = tape.gradient(loss, model.trainable_variables)
    optimizer.apply_gradients(zip(gradients, model.trainable_variables))

    train_loss(loss)
    train_accuracy(labels, predictions)

@tf.function
def test_step(images, labels):
    predictions = model(images)
    t_loss = loss_object(labels, predictions)

    test_loss(t_loss)
    test_accuracy(labels, predictions)

EPOCHS = 1

for epoch in range(EPOCHS):
    train_loss.reset_states()
    train_accuracy.reset_states()
    test_loss.reset_states()
    test_accuracy.reset_states()

    for images, labels in train_ds:
        train_step(images, labels)

    for test_images, test_labels in test_ds:
        test_step(test_images, test_labels)

    template = 'Epoch {}, Loss: {}, Accuracy: {}, Test Loss: {}, Test Accuracy: {}'
    print(template.format(epoch+1,
                          train_loss.result(),
                          train_accuracy.result()*100,
                          test_loss.result(),
                          test_accuracy.result()*100))

def get_all_outputs(model, input_data, learning_phase=1):
    outputs = [layer.output for layer in model.layers[1:]]  # exclude Input
    layers_fn = K.function([model.input, K.learning_phase()], outputs)
    return layers_fn([input_data, learning_phase])

outputs = get_all_outputs(model, "input_data", 1)
print(outputs)

The above sample code reproduces the error:
Traceback (most recent call last):
  File "/Volumes/SAMSUNG_T5/ai/get-layer-output.py", line 102, in <module>
    outputs = get_all_outputs(model, "input_data", 1)
  File "/Volumes/SAMSUNG_T5/ai/get-layer-output.py", line 97, in get_all_outputs
    outputs = [layer.output for layer in model.layers[1:]]  # exclude Input
  File "/Volumes/SAMSUNG_T5/ai/get-layer-output.py", line 97, in <listcomp>
    outputs = [layer.output for layer in model.layers[1:]]  # exclude Input
  File "/Users/zijingzhang/Library/Python/3.6/lib/python/site-packages/tensorflow_core/python/keras/engine/base_layer.py", line 1553, in output
    raise AttributeError('Layer ' + self.name + ' has no inbound nodes.')
AttributeError: Layer flatten has no inbound nodes.

I am using Python 3.6.6 on Mac with TF 2.1

Was able to reproduce the issue with TF v2.2 and TF-nightly. Please find the attached gist. Thanks!

Hi @zzj0402 ... were you able to solve this issue with regard to the inbound nodes?  I am trying to do the exact same thing and am running into similar problems.  How did you get around this when using custom models in TF2?

Was able to reproduce the issue in TF v2.5,please find the gist here..Thanks !

@chahld @zzj0402 I solved this issue with a simple trick
import tensorflow as tf

class MyModel(tf.keras.Model):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        self.dense0 = tf.keras.layers.Dense(10, name='dense0')
        self.dense1 = tf.keras.layers.Dense(10, name='dense1')
        self.dense2 = tf.keras.layers.Dense(10, name='dense2')

    def build(self, input_shape):
        self.dense2(self.dense1(self.dense0(tf.keras.layers.Input(shape=input_shape[1:], name="input_x"))))

    def call(self, x):
        x = self.dense0(x)
        # if you use this line it works
        x = tf.keras.layers.ReLU()(x)
        x = self.dense1(x)

        print('correct:', self.dense1.inbound_nodes)

        # if you use this line it doesn't work
        relu = tf.keras.activations.get('relu')
        x = relu(x)
        x = self.dense2(x)

        print('incorrect:', self.dense2.inbound_nodes)
        return x

def main():
    my_model = MyModel()

    inp = tf.keras.Input(shape=(5, 5, 1))
    out = my_model(inp)
    my_model.summary()

    my_model.compile(optimizer='adam',
                     loss='sparse_categorical_crossentropy')

    for l in my_model.layers:
        try:
            print(l.output)
        except AttributeError:
            print('EXCEPTION: {}.output raises attribute error'.format(l.name))

if __name__=='__main__':
    main()

and this is the output:
correct: [<tensorflow.python.keras.engine.node.Node object at 0x7fc4e55bfb90>]
incorrect: [<tensorflow.python.keras.engine.node.Node object at 0x7fc4e4ea27d0>]
Model: "my_model_11"
_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
dense0 (Dense)               (None, 5, 5, 10)          20
_________________________________________________________________
dense1 (Dense)               (None, 5, 5, 10)          110
_________________________________________________________________
dense2 (Dense)               (None, 5, 5, 10)          110
=================================================================
Total params: 240
Trainable params: 240
Non-trainable params: 0
_________________________________________________________________
KerasTensor(type_spec=TensorSpec(shape=(None, 5, 5, 10), dtype=tf.float32, name=None), name='dense0/BiasAdd:0', description="created by layer 'dense0'")
KerasTensor(type_spec=TensorSpec(shape=(None, 5, 5, 10), dtype=tf.float32, name=None), name='dense1/BiasAdd:0', description="created by layer 'dense1'")
KerasTensor(type_spec=TensorSpec(shape=(None, 5, 5, 10), dtype=tf.float32, name=None), name='dense2/BiasAdd:0', description="created by layer 'dense2'")

Basically, I did add a build method to your model and explicitly computed the output of each layer.
You can now see the shapes of each layer in the summary.
note that if you don't pass tf.keras.Input(shape=(5, 5, 1)) to the model and pass tensor directly for example tf.random.uniform([5, 5, 1]) you need to get raide of the range selection in input_shape as follow:
    def build(self, input_shape):
        self.dense2(self.dense1(self.dense0(tf.keras.layers.Input(shape=input_shape, name="input_x"))))

    my_model(tf.random.uniform([5, 5, 1])

I hope that helps good luck

This issue still persists in TF 2.10 when building custom models that inherit from tf.keras.Model.


Incorrect error when pasting text

I am trying to limit the number or characters that a user can enter into a description field, but if I try to paste a text I am getting an error that says that the "content can not be pasted" because is too long, no matter the actual length of the mentioned text.
After checking the code I figured the actual problem is that the word validation is enforced even if it is disabled:
// plugin.js file, from line 367 to 370
                if (wordCount > config.maxWordCount) {
                    notification.show();
                    event.cancel();
                }

I am using the jquery adapter and my textarea field is configured as follows:
$('textarea.rich-text-editor').ckeditor({
    extraPlugins: 'wordcount',
    wordcount: {
        showParagraphs: false,
        showWordCount: false,
        showCharCount: true,
        maxWordCount: -1, //unlimited
        maxCharCount: 500
    }
});

This issue should be already fixed


blank portal on safari

I can't open the shapeworks cloud portal in safari 15.6.1.  When I go to shapeworks-cloud.org, I get a blank screen.  It works fine on chrome.  Maybe this version of safari isn't supported anymore?

The console says "Invalid regular expression: Invalid group specifier name"

I think this is the problem: https://github.com/girder/shapeworks-cloud/blob/master/web/shapeworks/src/charts.ts#L130
At least, regex look-behind doesn't work in Safari, and regex look-behind is the likely sort of the error.


Change starSize

It woud be great to have method for changing star size, or even better add breakpoints to options, so user can set size for different resolutions.

Those are really good ideas, I'm gonna look into it.
thx

Hey, added a new method to resize the stars:
$('your-selector').starRating('resize', 50)
Let me know if it works for you.
As for including an option to detect breakpoints in the plugin itself, I think I'm gonna leave it simple for now. Maybe in the future, if more people ask for it.

Hi, I just tried this new method and it works perfectly. Exactly what I needed.
Thank you


[FORK] Package name: sktime or scikit_time

Do we keep sktime as our package name or change it to avoid conflicts with the previous version?
Currently, it would be like scikit-learn, which calls their main package sklearn.

not very relevant anymore


Update municipality_of_helsingborg.json

Helsingborgs open-data including addresses can be found at

http://kartor.helsingborg.se/oppnageodata/baskarta.php (Updated every week)

Thanks for this!  We already pull data from an ESRI source for Helsingborgs, so I think the zip file is a dump from this source.


chore: update changelog to v4.5.0

Related to https://github.com/camunda/camunda-modeler/issues/2013

I've applied the suggestions so I guess we're good to go.

I've applied the suggestions so I guess we're good to go.


filter mapped ports when port numbers are not specified

This fixes the issue which happens on some verisons of docker on some platforms (particulalrly, on macOS X) when port mapping comes in form of <IP_ADDRESS>:0:80.

I'd like to expedite this as it causes clear problems and breaks the Testcontainers build with the latest Docker Desktop (on Mac at least). As people upgrade it'll start to cause more issues, and we should cut a release with this fix in place.
@wrover thanks so much for the contribution - if you don't mind I might pick this PR up today and finish it off so that we can release soon. WDYT?

I don't have permission to push to this PR's branch, so I've created a new PR: #3979
Just finishing off applying @bsideup's suggestions.
I'll close this PR - thanks for creating it originally, @wrover.


[SPARK-9511][SQL] Fixed Table Name Parsing

The issue was that the tokenizer was parsing "1one" into the numeric 1 using the code on line 110. I added another case to accept strings that start with a number and then have a letter somewhere else in it as well.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Jenkins, this is ok to test.

Merged build triggered.

Merged build started.

Test build #39301 has started for   PR 7844 at commit b8ca12f.

Test build #39301 has finished for   PR 7844 at commit b8ca12f.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class MultilayerPerceptronClassifier(override val uid: String)
class KinesisUtils(object):
class InitialPositionInStream(object):

Merged build finished. Test PASSed.

Thanks!  Merging to master and 1.5


Document subresource integraity tokens usage and in ASP.NET MVC

General
The ASP.NET MVC comes with new tag helpers that controls handling of Subresource integratiy tokens:
https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity
https://github.com/aspnet/Mvc/blob/a67d9363e22be8ef63a1a62539991e1da3a6e30e/test/WebSites/HtmlGenerationWebSite/Views/HtmlGeneration_Home/Link.cshtml#L58
https://github.com/aspnet/Mvc/blob/a67d9363e22be8ef63a1a62539991e1da3a6e30e/test/WebSites/HtmlGenerationWebSite/Views/HtmlGeneration_Home/Link.cshtml#L68
Issues with Existing Topics
The existing docs seem to not explain how to use the fallback helper tags for SRI token correctly or at all.
Contributed content:
https://rehansaeed.com/tag/subresource-integrity-sri/
Requests for new Topics

Write a short paragraph describing what the topic will cover.

Add a paragraph that describes shortly usage and purpose of SRI tokens
Add a paragraph that describes purpose of asp-suppress-fallback-integrity

Write an outline of the proposed topic contents.

Why we need to add fallback when we use SRI? The browser behavior is to block content if the tokens does not match the resource, which would be the case when the fallback kicks in.

Where would you put the topic in the Table of Contents.
TBD

If you know who should review the issue, notify them by including @githubID in the issue description.

@scottaddie
You could ping me if you need a contribution in that topic,
Thanks!

@peterblazejewicz Thank you for volunteering to contribute! We would be honored to get a contribution from you and are willing to help along the way.
What we really need is a doc for the Link Tag Helper: https://github.com/aspnet/Mvc/blob/release/2.2/src/Microsoft.AspNetCore.Mvc.TagHelpers/LinkTagHelper.cs. What you're proposing above would be a section within that larger doc. Within the Table of Contents, the doc should be located under MVC > Views > Tag Helpers > Built-in Tag Helpers. The doc should follow the same structure as https://docs.microsoft.com/aspnet/core/mvc/views/tag-helpers/built-in/anchor-tag-helper.

@peterblazejewicz 	checking to see if you'd be able to contribute to this topic.

@peterblazejewicz 	can you provide a link to an ASP.NET Core Subresource Integrity TagHelper
https://github.com/aspnet/Mvc/issues/3173 indicates we don't have one.

asp-suppress-fallback-integrity is not changing colour. its not available using intellisense
what may be the reason?


Error type 3 Error: Activity class does not exist

I have cloned the project and when I run fails, someone could help me

Target device: woxter-zielo_q23-0123456789ABCDEF
Installing APK: C:\Users\Jero\Desktop\traccar-client-android\app\build\outputs\apk\app-hidden-debug.apk
Uploading file to: /data/local/tmp/org.traccar.client.hidden
Installing org.traccar.client.hidden
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/org.traccar.client.hidden"
WARNING: linker: libvc1dec_sa.ca7.so has text relocations. This is wasting memory and is a security risk. Please fix.
WARNING: linker: libvc1dec_sa.ca7.so has text relocations. This is wasting memory and is a security risk. Please fix.
pkg: /data/local/tmp/org.traccar.client.hidden
Success

Launching application: org.traccar.client.hidden/org.traccar.client.Launcher.
DEVICE SHELL COMMAND: am start  -n "org.traccar.client.hidden/org.traccar.client.Launcher" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
WARNING: linker: libvc1dec_sa.ca7.so has text relocations. This is wasting memory and is a security risk. Please fix.
WARNING: linker: libvc1dec_sa.ca7.so has text relocations. This is wasting memory and is a security risk. Please fix.
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=org.traccar.client.hidden/org.traccar.client.Launcher }
Error type 3
Error: Activity class {org.traccar.client.hidden/org.traccar.client.Launcher} does not exist.

Try to build with gradle wrapper from command line and see if it works.


[Bug] 'Update a Campaign' (update-campaign) - Date/time format management if on o'clock time

Hello,
I found a surprising behavior on this endpoint:

If I replace the end date with "2024-06-13T00:00:00.000Z" (json = {'op': 'replace', 'path': '/deadline', 'value': '2024-06-13T00:00:00.000Z'}), the api saves the data like this: "2024-06-13T00:00Z"

However, if I replace it with "2024-06-13T00:00:00.001Z", the data is stored in this format.

This causes me problems when I read the data from v3/campaigns/:id, as the format is not always the same (requiring additional controls).
I don't know whether it's the data format that's wrong when saving (update) or when reading (get-campaign).
Have a good day,
Thomas

It's also possible to update deadline with this format :

Which one is the good one ?


Add react-transition-group definitions

Add flow definitions for react-transition-group
Works fine, though according to the API some props could be a little more strict

Great work! Congrats on your first contribution, and thanks for following all the guidelines! 💪


Request for Guidance on Reducing Response Time in Frontend

I am experiencing extended response times from my chatbot in the frontend. While the backend is functioning correctly and retrieving data from the backend takes approximately 3 seconds, I am interested in finding ways to reduce the response time specifically within the frontend. I would appreciate your guidance on possible solutions to address this matter.
Thank you.

You can set the time in milliseconds
https://github.com/JiteshGaikwad/Chatbot-Widget/blob/8afb80bfdf4da4bc3f1d3a320d2943c258ec3eb6/static/js/components/chat.js#LL42C2-L42C2

Thanks @JiteshGaikwad, It helps me hence closing this issue.


Provide Embedded Pulsar Runner

We should be able to start pulsar in a embedded jvm context.
Design can be similar to this.
https://github.com/prestodb/presto/blob/a31c0c95f65a80b355b2611b03b44b0bd5f47263/presto-kafka/src/test/java/com/facebook/presto/kafka/util/EmbeddedKafka.java

This has been implemented by #2080

Here is an examples
https://github.com/streamlio/pulsar-embedded-tutorial/blob/master/src/test/java/org/apache/pulsar/PulsarEmbeddedTest.java

@ganeshs try again I have me the repo public.

@aahmed-se Thanks for quick revert. The example code is under the package org.apache.pulsar and hence the start() method is accessible. It cannot be used outside of the package. This will require making the method public or protected

PR #3516


langchain-chat-search.streamlit.app not working

https://langchain-chat-search.streamlit.app/ is still broken:

Fixed now :)


Set writable perms on /var/lib/php in ddev-webserver start.sh

The Problem/Issue/Bug:
Problems cleaning up php gc() were reported in https://gitter.im/drud/ddev?at=619b5d2fcd3f06175dcbff24
Uncaught PHP Exception ErrorException: "Notice: SessionHandler::gc(): ps_files_cleanup_dir: opendir(/var/lib/php/sessions) failed: Permission denied (13) when PHP tries to clear / delete old sessions
TODO

[x] This doesn't solve the problem for hardened images (casual webhosting), because there we don't have sudo inside the container. But also, a 777 on /var/lib/php/sessions would be inappropriate and a security problem. So probably we have to run an elevated container during app.Start() to set this properly, as in https://github.com/drud/ddev/blob/d80a4d5c7f74d3aa43fbab366bcce7ff6b9d71aa/pkg/ddevapp/ddevapp.go#L851
[x] This fix will allow rogue PHP code to explore php sessions, which doesn't matter much in a development environment, but definitely does in real webhosting.

How this PR Solves The Problem:
Make sure that /var/lib/php is owned by the php-fpm user.
Manual Testing Instructions:
Not sure how to recreate this.
Automated Testing Overview:

Related Issue Link(s):
Release/Deployment notes:

I have the error very often. Is it possible to fix it in the next version or is there a workaround (move path for session via php.ini?)

@blankse I would love to get it in, but haven't found anybody that could offer a recreation scenario. Can you please explain how to recreate this issue?

@rfay I have this error in my Pimcore X projects with PHP 8. I analyzed it and should be reproducible with these steps:
Create a Pimcore X demo instance
git clone https://github.com/pimcore/demo.git pimcore-demo
cd pimcore-demo
ddev config --project-type=php --docroot=public --webserver-type=apache-fpm --create-docroot --php-version=8.0
ddev start
ddev composer install
ddev exec php vendor/pimcore/pimcore/bin/pimcore-install --ignore-existing-config --admin-username admin --admin-password demo --mysql-host-socket db --mysql-username db --mysql-password db --mysql-database db --no-interaction

Login in Backend

Open Backend https://pimcore-demo.ddev.site/admin/
Login with username: admin and password: demo
Stay at this window

Call the Symfony Console
ddev exec php bin/console

Watch the session files
ddev exec sudo ls -la /var/lib/php/sessions

Should return two sess_* file (one from the backend and one from the console)
The session file from the backend should be updated every 30sec (/admin/notification/find-last-unread ajax call)

Wait for error

Wait > 24min (default session.gc_maxlifetime)
Afterwards max ~100 calls (default session.gc_divisor) from /admin/notification/find-last-unread ajax call or own calls with interacting with the backend should appear the error.

The backend complete freeze. No ajax call will be completed. A reload doesn't help to fix it. I must restart ddev "ddev restart" to clear all sessions. Than I can login to the backend again.

@rfay You can set the session.gc_* configs in the php.ini to get the error faster.
.ddev/php/my-php.ini
[Session]
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 120

I'd love it if you could test this @blankse - Artifacts for testing are at https://github.com/drud/ddev/actions/runs/1797622114

@rfay I'm glad I could help you here :)
I will test it.
I notice that the /var/lib/php/modules folder is set to 777. If you now assign /var/lib/php to the ddev user, that's obsolete, isn't it?
Here:
https://github.com/drud/ddev/blob/22803bc0519073e1493c777e6b6d661622aea55e/containers/ddev-webserver/Dockerfile#L127
And here:
https://github.com/drud/ddev/blob/22803bc0519073e1493c777e6b6d661622aea55e/containers/ddev-webserver/Dockerfile#L242

@rfay I test it and it works 🎉
The garbage collection deletes now the obsolete session files without error :)

The issue is /var/lib/php/sessions, which gets created later (not during the docker image build I don't think). So that's why it has to be chowned on startup.
Thanks so much for your work on this!


LND rest port configuration

Background
Remote access to port is denied. When lnd.conf
restlisten=<IP_ADDRESS>:8082
local connection works ok i.e. from Joule extension
remote connection fails, i.e, externally port 8082 is reported closed
if
restlisten=localhost:8082
local connection fails i.e. from Joule extension
remote connection works ok, i.e, externally port 8082 is reported open
Describe your issue here.
Remote port access is closed when lnd.conf,
restlisten=<IP_ADDRESS>:8082
version of lnd  0.5.2-beta
operating system = windows 10
version  bitcoind
Steps to reproduce
as above
Expected behaviour
should be accessable remotely.
Actual behaviour
remote access is denied

You need to listen on all interfaces, and also add your IPs to the TLS cert.


Convert network swagger into composite swagger documents separated by resource

Hi @DeepakRajendranMsft, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
We will now validate the agreement and then real humans will evaluate your PR.
TTYL, AZPRBOT;

https://github.com/Azure/azure-rest-api-specs/pull/820 @cormacpayne please take a look

LGTM


Function Overloading DEPRECATED - consequences?

Hi! Thanks for this great lib! I just started to use it and i really like it. But i have a problem with file attachments which have cyrillic names. (cyrillic setBody() works fine).
This http://swiftmailer.org/docs/installing.html#troubleshooting isn't help.
But the main question in this:
http://php.net/manual/en/mbstring.overload.php
"Warning This feature has been DEPRECATED as of PHP 7.2.0. Relying on this feature is highly discouraged."
You writing "Swift Mailer does not work when used with function overloading as implemented by mbstring (mbstring.func_overload set to 2). A workaround is to temporarily change the internal encoding to ASCII when sending an email"
What are the consequences for the Swiftmailer when this feature will be removed in next PHP versions?
Especially for non-latin languages ()

Swiftmailer does not use the overloading function. It has problems with the function. It is positive that this feature is deprecated and removed.

@Rotzbua Tnx for answer. Great!

If someone interested how i solve the problem with cyrillic symbols - i transliterate file names on loading, before attaching.
As i find out this a problem of PHP, espeshially on windows. For examlpe file_exists() wont to see existed file. After some magic with iconv(), file_exists() works fine, but the name of the file, after move_uploaded_file() was tomething like ???.txt
So i prefer transliteration, then magic))


Site initial setup SyntaxError: Unexpected token

Site startup
Site will not come online
Setup site following steps here https://steamapis.com/projects/node-csgo-web-tradebot/
Other

[Operating System]: Ubuntu 16.04.6 (LTS) x64
[Node.js version]: node --version v6.17.1
[How did you start the script]: pm2 start index.js -n "Tradebot"

Error Stack
First, when doing console-setup for sudo systemctl stop apache2 and sudo systemctl stop nginx I am getting the error Failed to stop apache2.service: Unit apache2.service not loaded. and Failed to stop nginx.service: Unit nginx.service not loaded. respectively.
I also needed to use an older version of pm2 since when doing npm i -g pm2 and then pm2 start index.js -n "Tradebot"  console just says [PM2] Spawning PM2 daemon with pm2_home=/root/.pm2 and it will not start. Currently using npm install<EMAIL_ADDRESS>-g.
Ignoring the 'stop' errors, and using the older version on pm2. When I try to do pm2 start index.js status shows as 'online', then when checking the logs pm2 logs 0
0|index    | /root/tradebot/node_modules/ws/lib/websocket.js:347
0|index    |       ...options
0|index    |       ^^^
0|index    |
0|index    | SyntaxError: Unexpected token ...
0|index    |     at createScript (vm.js:56:10)
0|index    |     at Object.runInThisContext (vm.js:97:10)
0|index    |     at Module._compile (module.js:549:28)
0|index    |     at Object.Module._extensions..js (module.js:586:10)
0|index    |     at Module.load (module.js:494:32)
0|index    |     at tryModuleLoad (module.js:453:12)
0|index    |     at Function.Module._load (module.js:445:3)
0|index    |     at Module.require (module.js:504:17)
0|index    |     at require (internal/module.js:20:19)
0|index    |     at Object. (/root/tradebot/node_modules/ws/index.js:3:19)
Thanks for any help or suggestions!

Your  Node Version is the issue here. You need to update to at least 8.6.0. I would recommend updating to the latest version though

That solution worked thank you!
Repeat: curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
then sudo apt-get install -y nodejs


feat(multiSchema): Definition of relation table in multi schema cases + fixes

looks good to me 👍

Want to merge this @janpio ?


Switch issue for RN-29.2, RNRF-3.31.1

I can't figure out how to get the Switch example in the docs to work.
Here are my specs:
  "dependencies": {
    "react": "15.2.1",
    "react-native": "0.29.2",
    "react-native-meteor": "^1.0.0-rc14",
    "react-native-router-flux": "^3.31.1",
  }

The error I'm getting:
console.error: A scene for key "loading" does not exist."

which is originating from here:
https://github.com/aksonov/react-native-router-flux/blob/master/src/Switch.js#L33
Here's my index.js code:
import React, { Component } from 'react';
import {
  AppRegistry,
  View
} from 'react-native';
import Meteor, { createContainer, connectMeteor } from 'react-native-meteor';
import { Router, Scene, Actions, Modal, Switch } from 'react-native-router-flux';
import Loading from './app/Loading';
import Login from './app/Login';
import Dashboard from './app/Dashboard';

class SimpleMeteor extends Component {
  componentWillMount() {

    Meteor.connect('http://localhost:3000/websocket');//do this only once

    this.scenes = Actions.create(
      <Scene key="root" component={createContainer(this.getMeteorData, Switch)} selector={this.selector}>
        <Scene key="login" component={Login} title="Login" />
        <Scene key="loading" component={Loading} title="Loading" />
        <Scene key="loggedIn">
          <Scene key="dashboard" component={Dashboard} title="Dashboard" />
        </Scene>
      </Scene>
    );
  }

  getMeteorData() {
    return {
      connected: Meteor.status().connected,
      user: Meteor.user(),
      loggingIn: Meteor.loggingIn(),
    };
  }

  selector(data, props) {
    if (!data.connected || data.loggingIn) { return 'loading'; }
    else if (!data.user) { return 'login'; }
    return 'loggedIn';
  }

  render() {
    return (
      <Router scenes={this.scenes} />
    );
  }
}

AppRegistry.registerComponent('SimpleMeteor', () => SimpleMeteor);

My hunch is something is wrong with Actions.create block and I want to confirm my createContainer is setup properly to receive meteor's reactive updates.
    this.scenes = Actions.create(
      <Scene key="root" component={createContainer(this.getMeteorData, Switch)} selector={this.selector}>
        <Scene key="login" component={Login} title="Login" />
        <Scene key="loading" component={Loading} title="Loading" />
        <Scene key="loggedIn">
          <Scene key="dashboard" component={Dashboard} title="Dashboard" />
        </Scene>
      </Scene>
    );

I created a very minimal project to show this:
https://github.com/swhamilton/simple-react-native-router-flux-meteor
Any help would be appreciated. I apologize if this issue isn't related to react-native-meteor. Thanks for this awesome package!

I was able to get this working by doing 2 things:

adding the @connectMeteor decorator to the component.
installing the decorator dependencies.

My dependencies now look like this:
"dependencies": {
    "react": "15.2.1",
    "react-native": "0.29.2",
    "react-native-meteor": "^1.0.0-rc14",
    "react-native-router-flux": "3.31.1",
    "react-native-tabs": "1.0.5"
  },
  "devDependencies": {
    "babel-plugin-transform-decorators-legacy": "^1.3.4",
    "babel-preset-react-native": "^1.5.3",
    "rnpm-plugin-upgrade": "^0.26.0"
  }

Here's the final index.js:
import React, { Component } from 'react';
import { StyleSheet } from 'react-native';
import Meteor, { connectMeteor, createContainer } from 'react-native-meteor';
import {Actions, Scene, Router, Switch} from 'react-native-router-flux';

//import Router from './router';
import connect from './connect';
import Accounts from './routes/accounts';
import Test from './routes/test';
import Login from './routes/Login';
import Loading from './routes/Loading';
import Dashboard from './routes/Dashboard';

@connectMeteor
export default class App extends Component {
  componentWillMount() {
    connect();
    const DURATION = 0;
    this.scenes = Actions.create(
      <Scene key="root" component={createContainer(this.getMeteorData, Switch)} selector={this.selector} tabs={true}>
        <Scene key="login" component={Login} title="Login" />
        <Scene key="loading" component={Loading} title="Loading..." />
        <Scene key="loggedIn">
          <Scene
            key="dashboard"
            component={Dashboard}
            title="Dashboard"
            duration={DURATION}
            />
        </Scene>
      </Scene>
    );
  }

  getMeteorData() {
    return {
      connected: Meteor.status().connected,
      user: Meteor.user(),
      loggingIn: Meteor.loggingIn(),
    };
  }

  selector(data, props) {
    if (!data.connected || data.loggingIn) { return 'loading'; }
    else if (!data.user) { return 'login'; }
    return 'loggedIn';
  }

  render() {
    return (
      <Router getSceneStyle={()=>styles.sceneStyle} scenes={this.scenes} />
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1
  },
  sceneStyle: {
    paddingTop: 64
  }
});

Thanks for your feedback ;)


choking on big dataset

I have tried to run the validator on a large dataset (>100 subjects) and it seems to go forever without spitting out any output.  I'm happy to provide access to the TACC system if you want to try it out there directly.

That would be great if you could provide me with TACC access so I can see the issue first hand. Please send any sign in instructions directly to my email as issue communications on here are publicly viewable. Thanks.

please go to portal.tacc.utexas.edu and sign up for an account.
if you would rather download some of the data and try on your machine,
you can get them here:
https://s3.amazonaws.com/openfmri/tarballs/ds031_set01.tgz
https://s3.amazonaws.com/openfmri/tarballs/ds031_set02.tgz
https://s3.amazonaws.com/openfmri/tarballs/ds031_set03.tgz
https://s3.amazonaws.com/openfmri/tarballs/ds031_set04.tgz
https://s3.amazonaws.com/openfmri/tarballs/ds031_set05.tgz
https://s3.amazonaws.com/openfmri/tarballs/ds031_set06.tgz
https://s3.amazonaws.com/openfmri/tarballs/ds031_set07.tgz
https://s3.amazonaws.com/openfmri/tarballs/ds031_set08.tgz
each file is about 8 GB
constellates wrote:

That would be great if you could provide me with TACC access so I can
see the issue first hand. Please send any sign in instructions
directly to my email as issue communications on here are publicly
viewable. Thanks.
—
Reply to this email directly or view it on GitHub
https://github.com/Squishymedia/bids-validator/issues/10#issuecomment-116744872.

Thanks. I'm current downloading a couple sets but I'd also like to try it out on TACC to gain some familiarity with that platform. I've created a user account. What are the steps to run the validator on TACC? I'm emailing you my TACC username in case you need to share data or access with me.

After some debugging, it looks like the issue is that JSON validation is taking quite a bit of time with those larger files. Here's a few example timings from validating JSON files in that first data set.
experiment_description.json:   19ms
sub00001_ses013_PDT2_001.json: 3931ms
sub00001_ses014_PDT2_001.json: 3512ms
sub00001_ses013_scan.json:     3280ms
sub00001_ses014_scan.json:     3171ms
sub00001_ses013_dwi_002.json:  64312ms
sub00001_ses013_dwi_001.json:  69650ms
sub00001_ses015_T1w_001.json:  4684ms
sub00001_ses015_PDT2_001.json: 3284ms
sub00001_ses015_scan.json:     3000ms

We're currently using JSHINT for JSON validation. I'll look into some other solutions and let you guys know the tradeoffs in speed, level of detail, feedback, etc.

that's a bit odd that it is taking so much more time on the dwi files,
fiven that those are relatively small compared to the functional files
(which seem to make much less time). I wonder if something specific to
those files is tripping it up?
cheers
rp
constellates wrote:

After some debugging, it looks like the issue is that JSON validation
is taking quite a bit of time with those larger files. Here's a few
example timings from validating JSON files in that first data set.
|experiment_description.json: 19ms
sub00001_ses013_PDT2_001.json: 3931ms
sub00001_ses014_PDT2_001.json: 3512ms
sub00001_ses013_scan.json: 3280ms
sub00001_ses014_scan.json: 3171ms
sub00001_ses013_dwi_002.json: 64312ms
sub00001_ses013_dwi_001.json: 69650ms
sub00001_ses015_T1w_001.json: 4684ms
sub00001_ses015_PDT2_001.json: 3284ms
sub00001_ses015_scan.json: 3000ms
|
We're currently using JSHINT https://github.com/jshint/jshint for
JSON validation. I'll look into some other solutions and let you guys
know the tradeoffs in speed, level of detail, feedback, etc.
—
Reply to this email directly or view it on GitHub
https://github.com/Squishymedia/bids-validator/issues/10#issuecomment-117369925.

Hmm.. It looks like my timing test didn't make it to any files in a functional folder but it does look like there's a correlation between size and time to validate. Here's the same list of timings again, but I've added a size in bytes column. I would guess level of depth in JSON could affect the speed as well.
experiment_description.json:      19ms      829B
sub00001_ses013_PDT2_001.json:  3931ms   251000B
sub00001_ses014_PDT2_001.json:  3512ms   247000B
sub00001_ses013_scan.json:      3280ms   238000B
sub00001_ses014_scan.json:      3171ms   238000B
sub00001_ses013_dwi_002.json:  64312ms  1500000B
sub00001_ses013_dwi_001.json:  69650ms  1500000B
sub00001_ses015_T1w_001.json:   4684ms   242000B
sub00001_ses015_PDT2_001.json:  3284ms   239000B
sub00001_ses015_scan.json:      3000ms   231000B

I spent a little bit of time trying two other popular methods of JSON format validation. Below you can see the method used, the time each took on the same files and the error message given for the same error.
The native JSON.parse is by far the most performant option and will definitely work well in the browser in addition to the server/CLI tool. It leaves a lot to be desired in terms of meaningful error messaging. In practice we would be able to tell a user if a file is a valid JSON file. We would not be able to direct them to a line or character number or give an accurate message about why it is not valid. If this "good" "bad" level of validation is enough, I would highly recommend going this route. Also note, this is only for testing whether a JSON file matches the JSON spec. JSON requirements specific to BIDS will be dealt with separately.
jsonhint in somewhat of a middle ground between the other to, but appears to be relatively unmaintained.
The other option would be to continue using JSHINT but attempt to use it in a parallelized way. It could improve speed by a factor of the number a processes we would be able to start which is probably 2-8. The big complication here would be writing properly parallelized code that is agnostic to being run in the browser or in node.
Or lastly we could use some combined approach of only running JSHINT after we discover an issue with JSON.parse. So we would only incur the cost of verbose error reporting on ones that are actually invalid.
This all boils down to how verbose of error messaging we have to have. From there we can work on the best performance possible.
JSHINT
Timings
experiment_description.json:   19ms
sub00001_ses013_PDT2_001.json: 3931ms
sub00001_ses014_PDT2_001.json: 3512ms
sub00001_ses013_scan.json:     3280ms
sub00001_ses014_scan.json:     3171ms
sub00001_ses013_dwi_002.json:  64312ms
sub00001_ses013_dwi_001.json:  69650ms
sub00001_ses015_T1w_001.json:  4684ms
sub00001_ses015_PDT2_001.json: 3284ms
sub00001_ses015_scan.json:     3000ms

Error Messaging
[ { id: '(error)',
    raw: 'Expected \'{a}\' and instead saw \'{b}\'.',
    code: 'W116',
    evidence: '    "License": "PDDL", ',
    line: 15,
    character: 5,
    scope: '(main)',
    a: '}',
    b: 'License',
    c: undefined,
    d: undefined,
    reason: 'Expected \'}\' and instead saw \'License\'.',
    severity: 'error' },
  { scope: '(main)',
    raw: 'Unrecoverable syntax error.',
    code: 'E041',
    reason: 'Unrecoverable syntax error. (75% scanned).',
    line: 15,
    character: 14,
    severity: 'error' },
  null ]

JSON.parse
Timings
experiment_description.json:   0ms
sub00001_ses013_PDT2_001.json: 2ms
sub00001_ses014_PDT2_001.json: 1ms
sub00001_ses013_scan.json:     1ms
sub00001_ses014_scan.json:     2ms
sub00001_ses013_dwi_002.json:  6ms
sub00001_ses013_dwi_001.json:  7ms
sub00001_ses015_T1w_001.json:  1ms
sub00001_ses015_PDT2_001.json: 1ms
sub00001_ses015_scan.json:     1ms

Error Messaging
[SyntaxError: Unexpected string]

jsonlint
Timings
experiment_description.json: 4ms
sub00001_ses013_PDT2_001.json: 70ms
sub00001_ses014_PDT2_001.json: 61ms
sub00001_ses013_scan.json: 53ms
sub00001_ses014_scan.json: 47ms
sub00001_ses013_dwi_002.json: 305ms
sub00001_ses013_dwi_001.json: 292ms
sub00001_ses015_T1w_001.json: 55ms
sub00001_ses015_PDT2_001.json: 47ms
sub00001_ses015_scan.json: 45ms

Error Messaging
[Error: Parse error on line 14:
...echnology Fund"    "License": "PDDL",
----------------------^
Expecting 'EOF', '}', ':', ',', ']', got 'STRING']

I think the idea of doing a first pass using the fast validator, and
only using the expensive validator on the files that fail on the first
pass, is the right way to go. I would try that before going down the
road of parallelization.
cheers
rp

constellates<EMAIL_ADDRESS>July 1, 2015 at 2:28 PMvia Postbox
https://www.postbox-inc.com/?utm_source=email&utm_medium=sumlink&utm_campaign=reach
I spent a little bit of time trying two other popular methods of JSON
format validation. Below you can see the method used, the time each
took on the same files and the error message given for the same error.
The native JSON.parse is by far the most performant option and will
definitely work well in the browser in addition to the server/CLI
tool. It leaves a lot to be desired in terms of meaningful error
messaging. In practice we would be able to tell a user if a file is a
valid JSON file. We would not be able to direct them to a line or
character number or give an accurate message about why it is not
valid. If this "good" "bad" level of validation is enough, I would
highly recommend going this route. Also note, this is only for testing
whether a JSON file matches the JSON spec. JSON requirements specific
to BIDS will be dealt with separately.
jsonhint in somewhat of a middle ground between the other to, but
appears to be relatively unmaintained.
The other option would be to continue using JSHINT but attempt to use
it in a parallelized way. It could improve speed by a factor of the
number a processes we would be able to start which is probably 2-8.
The big complication here would be writing properly parallelized code
that is agnostic to being run in the browser or in node.
Or lastly we could use some combined approach of only running JSHINT
after we discover an issue with JSON.parse. So we would only incur the
cost of verbose error reporting on ones that are actually invalid.
This all boils down to how verbose of error messaging we have to have.
From there we can work on the best performance possible.
JSHINT
  Timings

|experiment_description.json: 19ms
sub00001_ses013_PDT2_001.json: 3931ms
sub00001_ses014_PDT2_001.json: 3512ms
sub00001_ses013_scan.json: 3280ms
sub00001_ses014_scan.json: 3171ms
sub00001_ses013_dwi_002.json: 64312ms
sub00001_ses013_dwi_001.json: 69650ms
sub00001_ses015_T1w_001.json: 4684ms
sub00001_ses015_PDT2_001.json: 3284ms
sub00001_ses015_scan.json: 3000ms
|
  Error Messaging

|[ { id: '(error)',
raw: 'Expected '{a}' and instead saw '{b}'.',
code: 'W116',
evidence: ' "License": "PDDL", ',
line: 15,
character: 5,
scope: '(main)',
a: '}',
b: 'License',
c: undefined,
d: undefined,
reason: 'Expected '}' and instead saw 'License'.',
severity: 'error' },
{ scope: '(main)',
raw: 'Unrecoverable syntax error.',
code: 'E041',
reason: 'Unrecoverable syntax error. (75% scanned).',
line: 15,
character: 14,
severity: 'error' },
null ]
|
JSON.parse
  Timings

|experiment_description.json: 0ms
sub00001_ses013_PDT2_001.json: 2ms
sub00001_ses014_PDT2_001.json: 1ms
sub00001_ses013_scan.json: 1ms
sub00001_ses014_scan.json: 2ms
sub00001_ses013_dwi_002.json: 6ms
sub00001_ses013_dwi_001.json: 7ms
sub00001_ses015_T1w_001.json: 1ms
sub00001_ses015_PDT2_001.json: 1ms
sub00001_ses015_scan.json: 1ms
|
  Error Messaging

|[SyntaxError: Unexpected string]
|
jsonlint
  Timings

|experiment_description.json: 4ms
sub00001_ses013_PDT2_001.json: 70ms
sub00001_ses014_PDT2_001.json: 61ms
sub00001_ses013_scan.json: 53ms
sub00001_ses014_scan.json: 47ms
sub00001_ses013_dwi_002.json: 305ms
sub00001_ses013_dwi_001.json: 292ms
sub00001_ses015_T1w_001.json: 55ms
sub00001_ses015_PDT2_001.json: 47ms
sub00001_ses015_scan.json: 45ms
|
  Error Messaging

|[Error: Parse error on line 14:
...echnology Fund" "License": "PDDL",
----------------------^
Expecting 'EOF', '}', ':', ',', ']', got 'STRING']
|
—
Reply to this email directly or view it on GitHub
https://github.com/Squishymedia/bids-validator/issues/10#issuecomment-117830338.

--
Russell A. Poldrack
Professor of Psychology
Bldg. 420, Jordan Hall
Stanford University
Stanford, CA 94305
<EMAIL_ADDRESS><EMAIL_ADDRESS>http://www.poldracklab.org/
Twitter: @russpoldrack

Try this again when you get a chance. I should be drastically faster (assuming you don't have a ton of invalid JSON). There will likely be some false positives on the sidecar checks as we haven't implemented anything new there. In addition to this performance fix, I'm starting work of a progress bar. So if it's slow you'll at least know that something is happening.


ABE causing app to crash on launch on Android 6 device

On launch, our app crashes with the following in the logs. I am building with Ti SDK 5.1.2.GA and attempting to run on a Nexus 5x with Android 6.0.1.
E linker  : /data/app/com.myapp.demo-1/lib/arm/libcom.alcoapps.actionbarextras.so: has text relocations
E AndroidRuntime: FATAL EXCEPTION: KrollRuntimeThread
E AndroidRuntime: Process: com.myapp.demo, PID: 8429
E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/com.myapp.demo-1/lib/arm/libcom.alcoapps.actionbarextras.so: has text relocations
E AndroidRuntime: 	at java.lang.Runtime.loadLibrary(Runtime.java:372)
E AndroidRuntime: 	at java.lang.System.loadLibrary(System.java:1076)
E AndroidRuntime: 	at org.appcelerator.kroll.runtime.v8.V8Runtime.loadExternalModules(V8Runtime.java:132)
E AndroidRuntime: 	at org.appcelerator.kroll.runtime.v8.V8Runtime.initRuntime(V8Runtime.java:99)
E AndroidRuntime: 	at org.appcelerator.kroll.KrollRuntime.doInit(KrollRuntime.java:185)
E AndroidRuntime: 	at org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:109)
W ActivityManager:   Force finishing activity com.myapp.demo/.DemoActivity

Hi Tim,
this is strange, I don't get such an error on my Nexus 5 with Android 6.0.1 tested with the example and actionbarextras 1.6.8
I just have tried building from source with Appc SDK 5.1.2.GA (just by running grunt) which works fine here (BUILD SUCCESSFUL).
You might also need to update the .classpath to include the correct libs to the build path.

Using the new version I provided in my PR, my app still crashes but on a different module which I've yet to update. Maybe it's just coincidence that this recompile looks like it resolved the issue.


Fix comment count suffix when there are review comments.

We had an issue where the board would display "6 comment" without the
correct pluralisation. This was for a PR that has a single comment, and
5 "review comments", which are separate in the Github API. The suffix
was being calculated based on ordinary comments only.

Superseded by changes in #50


Rhessi srm editable (post rename)

Addresses issue #116 by

auto-picking the correct RHESSI SRM based on the selected time range of the data.
making it easy to add systematic error e.g.: sunkit_fitter.systematic_error = 0.1

Also deletes the STIX loader. I think I did that in the past when I was frustrated with how it (didn't really) work.
We should probably add that back before this gets merged... if it ever does :p
This change makes it actually possible to do good analysis on RHESSI data.
I am going to use this branch in a paper so it would be great if we could get the changes merged in.
- WS

Codecov Report
Attention: Patch coverage is 12.71930% with 199 lines in your changes are missing coverage. Please review.

Please upload report for BASE (main@0a47673). Learn more about missing BASE report.

Files
Patch %
Lines

sunkit_spex/fitting_legacy/instruments.py
10.75%
141 Missing :warning:

sunkit_spex/fitting_legacy/rhes_spec_code.py
12.28%
50 Missing :warning:

sunkit_spex/fitting_legacy/io.py
11.11%
8 Missing :warning:

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #143   +/-   ##
=======================================
  Coverage        ?   56.27%
=======================================
  Files           ?       20
  Lines           ?     3094
  Branches        ?        0
=======================================
  Hits            ?     1741
  Misses          ?     1353
  Partials        ?        0

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

This PR is looking good. Would it be worth while creating the extern module in fitting_legacy and moving the RHESSI code there in this PR as well?

This PR is looking good. Would it be worth while creating the extern module in fitting_legacy and moving the RHESSI code there in this PR as well?

The extern module is already there just need to move the the code and maybe convert the ipynb to py for easier diffs.

@DanRyanIrish @samaloney @KriSun95
pre-comit.ci is failing because autopep8, etc. are failing on poorly-formatted code in lots of files. i don't really want to touch them in this commit.

I think you'll either need to rebase or merge in main as theses have all been fixed and pre-commit passes on main.

ok. i'll work on it

It looks like pre-commit was able to fix all the issues so if you run pre-commit run -a double check the diff and then add the changes should be good to go.

oh wow, i didn't know you could do that :p

ruh roh readthedox failed one second.

I’m pretty sure they aren’t valid because i condensed the code. but we could add some version back if need be.

I think it would be good but as this is't in the main package I'm not going to hold it up over that but I would strongly encourage you too add some tests at some point 😉


Add Code Coverage Badge

https://app.codecov.io/gh

Created Code Coverage. But we need test cases to see if it is working.

Done the code coverage. But it is not working. Another issue was created regarding fixing the code coverage badge. So closing this now.


feature/fnt-33-option-pattern

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

@@            Coverage Diff            @@
##           develop       #34   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         4    +2
  Lines            8        14    +6
=========================================
+ Hits             8        14    +6

Flag
Coverage Δ

unittests
100.00% <100.00%> (ø)

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

Files with missing lines
Coverage Δ

src/option/core/none.ts
100.00% <100.00%> (ø)

src/option/core/some.ts
100.00% <100.00%> (ø)

src/result/core/err.ts
100.00% <ø> (ø)

src/result/core/ok.ts
100.00% <100.00%> (ø)


validate_and_convert_types to convert JSON to WriteAuthorizationModelRequest referenced in documentation does not exist?

In the how-to documentation for configuring a model, the following code extract is referenced:
async def write_authorization_model():
    body_string = "{\"type_definitions\":[{\"type\":\"document\",\"relations\":{\"reader\":{\"this\":{}},\"writer\":{\"this\":{}},\"owner\":{\"this\":{}}}}]}"
    body = openfga_sdk.model_utils.validate_and_convert_types(
        json.loads(body_string),
        (WriteAuthorizationModelRequest,),
        ['WriteAuthorizationModelRequest'],
        True,
        True,
        configuration=configuration
    )
    response = await fga_client_instance.write_authorization_model(body)
    # response.authorization_model_id = "1uHxCSuTP0VKPYSnkq1pbb1jeZw"

The function referenced by openfga_sdk.model_utils.validate_and_convert_types does not appear in this package.
Can the documentation be updated as appropriate?
Is there still a way to convert raw JSON (or DSL) representations of the model into a WriteAuthorizationModelRequest object?
I am Unsure whether this should be in this repository or https://github.com/openfga/openfga.dev/issues ?
Edit: this looks like a default function generated by openapi-generator that may have been ripped out on release?

@rorychatterton thank you for bringing this to our attention.  The validate_and_convert_types was available in our previous python generator.  However, when we switch to python legacy to support async python, that function was not available and we did not update our docs :(
I will move this ticket to openfga.dev so that we can update our documentation to reflect this.  Thank you once again for letting us know!


Bug 1128988 (part 2)

The first couple of changes are to things that I'd like to get right before the remote protocol gets set in stone (or at least harder to change)
But then it's mostly about strengthening tests to make sure that the node and resource types work remotely.

The commits after 40c8105 "Add system.destroy()" have been cherry-picked into gecko-dev, so you can review them there.
I don't think you should need to review here any more.


Make cache_helper report agnostic.

This allows to have databases that need more than one report file per entry or rely on some other data source.

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 4

Complexity increasing per file
==============================
- varats/data/databases/blame_diff_metrics_database.py  5

Clones added
============
- varats/data/databases/commit_interaction_database.py  1
- varats/data/databases/blame_interaction_degree_database.py  2
- varats/data/databases/blame_interaction_database.py  1

Clones removed
==============
+ varats/data/databases/blame_diff_metrics_database.py  -1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 11

Complexity increasing per file
==============================
- tests/data/test_cache_helper.py  11
- varats/data/databases/blame_diff_metrics_database.py  5

Clones added
============
- varats/data/databases/commit_interaction_database.py  1
- varats/data/databases/blame_interaction_database.py  1
- varats/data/databases/blame_interaction_degree_database.py  2

Clones removed
==============
+ varats/data/databases/blame_diff_metrics_database.py  -1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 9

Complexity increasing per file
==============================
- varats/data/databases/blame_diff_metrics_database.py  5
- tests/data/test_cache_helper.py  11

Clones added
============
- varats/data/databases/blame_interaction_database.py  1
- varats/data/databases/commit_interaction_database.py  1
- varats/data/databases/blame_interaction_degree_database.py  2

Clones removed
==============
+ varats/data/databases/blame_diff_metrics_database.py  -1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 1

Complexity increasing per file
==============================
- varats/data/databases/blame_diff_metrics_database.py  5
- tests/data/test_cache_helper.py  2

Clones added
============
- varats/data/databases/blame_interaction_degree_database.py  2
- varats/data/databases/blame_interaction_database.py  1
- varats/data/databases/commit_interaction_database.py  1

Clones removed
==============
+ varats/data/databases/blame_diff_metrics_database.py  -1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 2

Complexity increasing per file
==============================
- tests/data/test_cache_helper.py  2
- varats/data/databases/blame_diff_metrics_database.py  5

Clones added
============
- varats/data/databases/blame_interaction_degree_database.py  2
- varats/data/databases/commit_interaction_database.py  1
- varats/data/databases/blame_interaction_database.py  1

Clones removed
==============
+ varats/data/databases/blame_diff_metrics_database.py  -1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 2

Complexity increasing per file
==============================
- tests/data/test_cache_helper.py  2
- varats/data/databases/blame_diff_metrics_database.py  5

Clones added
============
- varats/data/databases/blame_interaction_database.py  1
- varats/data/databases/commit_interaction_database.py  1
- varats/data/databases/blame_interaction_degree_database.py  2

Clones removed
==============
+ varats/data/databases/blame_diff_metrics_database.py  -1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 2

Complexity increasing per file
==============================
- varats/data/databases/blame_diff_metrics_database.py  5
- tests/data/test_cache_helper.py  2

Clones added
============
- varats/data/databases/blame_interaction_database.py  1
- varats/data/databases/commit_interaction_database.py  1
- varats/data/databases/blame_interaction_degree_database.py  2

Clones removed
==============
+ varats/data/databases/blame_diff_metrics_database.py  -1

See the complete overview on Codacy


Pretty print error location

In https://github.com/Drup/zarith-ppx/pull/1#discussion_r945571940 came up the point that mdx doesn't pretty print error locations like the OCaml toplevel does.
As a very random example, here it uses carets to point to the location span:
# let x = 1.2z;;
Line 1, characters 8-12:
1 | let x = 1.2z;;
            ^^^^
Error: Unknown modifier 'z' for literal 1.2z

(this is with TERM=dumb though; by default underlining is used, but that won't work in Markdown code blocks).
Currently mdx doesn't quote nor pretty print the location, producing output like:
# let x = 1.2z;;
Line 1, characters 8-12:
Error: Unknown modifier 'z' for literal 1.2z

Quoting duplicates the (single-line) input, which might be too verbose, so such behavior might have to be optional.

It's definitely a nice feature. The only thing that might be problematic (I haven't tested it yet) is that different OCaml compilers display this differently, which MDX would need to unify, since nobody likes their tests to fail because the ^^^^ are now in a slightly different spot.
I feel like this should be reasonably easy to add if we get the location information from the compiler.


Equal square marked as left gamer win

If the final game field contains two colors with the same number of cells in both:
Expected:
The game result is "DRAW"
Actual:
The left player is marked as a "WINNER"

Fixed in v. 0.0.4

@Elana13 , Check it please


[Bug]: Upgrading to Jest 0.29.x fails with error in @react-native/polyfills/error-guard.js

Version
29.2.1
Steps to reproduce
Our current project is using  jest 27.5.1 and babel-jest 26.6.3 with React Native 0.70.5 without any issues.
We upgraded jest to 29.2.1 and babel-jest to 29.2.1 using yarn install.
Then running tests using yarn test started getting below error:
    Jest encountered an unexpected token

    Jest failed to parse a file.
    ...
    ...
    SyntaxError<EMAIL_ADDRESS>Missing semicolon. (14:4)

      12 | let _inGuard = 0;
      13 |
    > 14 | type ErrorHandler = (error: mixed, isFatal: boolean) => void;

Expected behavior
Test should run without blocking issue
Actual behavior
Tests couldn't run due to jest is not able to parse the file. It's blocker issue.
Additional context
We are using babel-jest for transpiling. Following is snippet of our jest configuration.
module.exports = {
  rootDir: ..
  moduleDirectories: ['<rootDir>/../node_modules'],
  moduleFileExtensions: ['tsx', 'js', 'ts', 'json', 'node'],
  transform: {
    '^.+\\.tsx?$': 'babel-jest'
  },
  transformIgnorePatterns: [
    'node_modules/(?!((jest-)?react-native(-.*)?|@react-native(-community)?)/)'
  ],
  preset: '<rootDir>/../node_modules/react-native',
  globals: {
    'ts-jest': {
      tsConfig: {
        extends: '<rootDir>/tsconfig',
        compilerOptions: {
          jsx: 'react',
          module: 'commonjs'
        }
      }
    }
  },
};

Environment
System:
    OS: macOS 13.6.1
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
  Binaries:
    Node: 18.18.2 - ~/.nvm/versions/node/v18.18.2/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 9.8.1 - ~/.nvm/versions/node/v18.18.2/bin/npm
  npmPackages:
    jest: ^29.2.1 => 29.7.0

That's an issue with your transformer (and/or its config) - flow types are not supported and must be stripped out

@SimenB We have not changed any other dependency apart from jest/babel-jest. There are no changes in jest config also.  That's why we are wondering why it's happening only when upgrading jest from 0.27.x to 0.29.x.
Following are the transform and transformIgnorePatterns in the jest config.
  transform: {
    '^.+\\.tsx?$': 'babel-jest'
  },
  transformIgnorePatterns: [
    'node_modules/(?!((jest-)?react-native(-.*)?|@react-native(-community)?)/)'
  ],

Do you think we need to use any other transformer to strip out flow types ?

Depends on your Babel config

@SimenB one question, how i can configure/override the path to babel jest config. I tried overriding the root path where babel.config.js is located as below but it doesn't work.
  transform: {
    '^.+\\.(js|jsx|ts|tsx)$': ['babel-jest', { root: 'path_to_root_dir' }]
  }

That looks correct - I'd recommend setting a breakpoint here: https://github.com/jestjs/jest/blob/01a923b22e92a5c250e8e32478b5dba392eda534/packages/babel-jest/src/index.ts#L173-L176

Please note this issue tracker is not a help forum. We recommend using StackOverflow or our discord channel for questions.

On debugging i can see that correct root option is being passed. But also saw other default options. Not sure if those will override what ever i am passing. Following is the snapshot of transformOptions.config.transform (root which i am passing is highlighted with red box)


no italics in main text

There should be no italics for tagged spans in the main text.
Examples:

BBlam52, verse 4, #booktitle

mentioned in commit SCDH/hees-alea/oxygen-framework@a4dd7b661747404710888381896076db15943f7e

Fixed in SCDH/hees-alea/oxygen-framework@a4dd7b66, but we should have a regression test.


Don't fail LoopProgressCondition when consuming zero-length string segment

The loop has made progress if either

The parser is now pointing at a different location in the source file
The parser is still pointing at the same position in the source file but now has a different token kind (and thus consumed a zero-length token like an empty string interpolation

The second condition is new.
Fixes #1247
rdar://104413423

@swift-ci Please test

@swift-ci Please test


Validate /Install-VisualCRedistributables/VisualCRedistributables.xml

Need to validate the redistributables included in appinstall-scripts/Install-VisualCRedistributables/VisualCRedistributables.xml, as not all need to be downloaded and installed.

Updated XML with version 2017, correct ordering and install paramaters.


chordx:0.4.0

I am submitting

[ ] a new package
[x] an update for a package

New:

Background color in chord names.
Chart position below or above of the chord name.
Updated the old styles-measure syntax by the new context-measure syntax.
Refactored the render and the graphic objects, now each object calculates its own relative position.
Removed closure functions in favor of the "with" property.

Thank you!


To support bookmark an article

It will be nice If blog article can also support discussion bookmark ( by Clark) to allow user bookmark the article they like. So they can easily review them

It will be nice If blog article can also support discussion bookmark ( by Clark) to allow user bookmark the article they like. So they can easily review them

I could be wrong but you might need to ask the author of the other bookmark extension to support bookmarking blog posts. You will need to sponsor the feature as he doesn't work for free.

I've posted an issue here (https://github.com/clarkwinkelmann/flarum-ext-bookmarks/issues/2) let's see what he thinks.

I have added the button to flarum.core.compat['v17development/blog/pages/BlogItem'].prototype.contentItems via my extension.
That's how it looks for regular users:

As a development suggestion, it could be interesting to make the "edit"/"controls" area extensible horizontally so that admins can see the two buttons on the same line. Right now I have no choice but to add my button above or below the existing control:


Style oddities in Polish localisation

From<EMAIL_ADDRESS>on November 10, 2009 06:08:13
There are minor grammatical/style oddities in Polish localization.
The attached patch takes care of them.
Attachment: pl2.patch
Original issue: http://code.google.com/p/wwwsqldesigner/issues/detail?id=42

From ondrej.zara on November 09, 2009 22:53:07
Fixed in rev. 58.
Status: Fixed


As a user, I want to acquire a DOI for a PDS4 product that has been registered and is publicly accessible

Motivation
...so that I can get a DOI for a PDS4 product after it has already been publicly released.
The PDS Policy describes that the PDS "should" acquire DOIs prior to peer review. However, some scenarios will call for DOIs after the fact (e.g. DOIs for already existing User Guides or other documentation where a DOI was not foreseen as being needed prior to peer review).
Additional Details

Acceptance Criteria
Given an PDS4 product that has been registered, a landing page exists, and the data is available publicly online
When I perform a request to get a new DOI
Then I expect to be prompted to "release a new DOI"
Then I expect to be prompted to input the expected metadata to release a DOI
Then I expect to submit the required metadata to the DOI service
Then I expect to receive a notification as to the status of the request
Then I expect a DOI to be displayed, or information on how I will receive that DOI
Then I expect the information I entered to be saved in a draft state until it is released
Given an PDS4 product that has not been registered, a landing page does not exist, or the data is not publicly accessible
When I perform a request to get a DOI
Then I expect to be prompted to "release a new DOI"
Then I expect to be prompted to input the expected metadata to release a DOI
Then I expect to submit the required metadata to the DOI service
Then I expect to receive a prompt that the DOI request has failed do to the lack of landing page / public accessibility of the data.
Then I expect the information I entered to be saved in a draft state until it is released
Engineering Details

Related Requirements
🦄 https://github.com/NASA-PDS/pds-doi-service/issues/7

closed per https://app.zenhub.com/workspace/o/nasa-pds/pds-doi-ui/issues/51

@tloubrieu-jpl @jordanpadams I need access to the doi service and doi ui in pds-gamma.


FT-93 # Make "id" field type="hidden"

id fields of type text are now hidden fields
added tests

Code review notes

FT-93 will be rebased out once it passes code review

LGTM 👍


the feature 'Querying across databases' doesn't work

following the documentation to enable meta database and can't find database of type "Superset meta database" in add new database window.  the feature flag (ENABLE_SUPERSET_META_DB )mentioned in documentation can not be found in https://github.com/apache/superset/blob/master/RESOURCES/FEATURE_FLAGS.md.
How to reproduce the bug
set the ENABLE_SUPERSET_META_DB feature flag to true
add a new database of type "Superset meta database" with the SQLAlchemy URI "superset://".
Expected results
the database of type "Superset meta database" shows at available database list in add database windows
what you expected to happen.
Actual results
No such type of database shows
Screenshots
Environment
(please complete the following information):

browser type and version: chrome Version 117.0.5938.132
superset version: 3.0.0
python version: 3.9.6
node.js version: v16.20.2
any feature flags active:ENABLE_SUPERSET_META_DB= True ,WTF_CSRF_ENABLED = True

Checklist
Make sure to follow these steps before submitting your issue - thank you!

[x] I have checked the superset logs for python stacktraces and included it here as text if there are any.
[x] I have reproduced the issue with at least the latest released version of superset.
[x] I have checked the issue tracker for the same issue and I haven't found one similar.

Additional context
Add any other context about the problem here.

Someone mentioned in Slack that it will be released in version 3.1.0, but we are uncertain about the release date.
https://apache-superset.slack.com/archives/C016B3LG5B4/p1696459438961999

I confirm I can see the Superset Meta DB type in 3.1.0 version

I'm using 3.1.0 as well, and tried setting ENABLE_SUPERSET_META_DB to True inside the superset_config.py, saved the secret restarted my deployment, pods getting recreated but i don't see it.
There's also no mention of that feature on the supported feature flag documentation page and know i don't really know where to set the feature flag instead.

Just opened a PR to add the feature flag to the relevant page:
https://github.com/apache/superset/pull/27071
@betodealmeida feel free to categorize that if you'd like :)
The feature is indeed in 3.1 (see changelog here) so that's not it.
I'm closing this issue because the issue as-reported (not being in 3.0.0) isn't relevant. Questions about its existence in 3.1 have been addressed. Getting into the intricacies of why a particular deployment isn't updating should be filed as a new/separate issue, or taken to the #deploying-superset channel on Superset Slack

@nevotheless i found this issue and fixed this bug later this might help you
https://superset.apache.org/docs/installation/running-on-kubernetes/#superset_configpy


Explicitly set font-size / line-height for person name

Summary
Explicitly set line-height and font-size on demographics banner heading. This resolves #535
Deployment Link
https://terra-core-deployed-pr-779.herokuapp.com/static/#/site/demographics-banner
@cerner/terra

Do we still want to pull in the terra-heading component as the issue suggests? https://github.com/cerner/terra-core/issues/535

@emilyrohrbough I'd prefer we set the font-size for the heading element in DemographicsBanner.scss compared to using the <Heading /> component. This will give us more direct theming capabilities which will be scoped locally to the demographic banner styles.

Functional verification completed. Demographics examples display and function correctly after the changes.

@neilpfeiffer @jordanlawrence15 This is ready for UX review now. Here is a link to the updated component: https://terra-core-deployed-pr-779.herokuapp.com/static/#/site/demographics-banner

+1 for new sizes enhancements - ready to release.
I will log a new enhancement issue to fix padding and margin em/rem variances.


New auth path

New built-in-server authorisation path (instead of the peertube plugin) for the test accounts

Dynamically added new path for the test accounts (ready for production)

Deployed in release branch for testing


Wired all event handlers to buttons, tested for function.

Jp driving, George, Megan, Jed  navigating.  Added listeners to buttons and tested all.  Everything functioning normally.

Looks great from here!

11:45 am Saturday


Minor tweaks for FreeBSD (and simplify for OSX)

@waywardgeek I'll review and merge this pull request later today.
It's probably not perfect yet (as it includes my refactoring from #55), but now it also contains so many great changes from others.
Thanks to everyone!
The next big step is already evolving in my cmake branch: https://github.com/13-37-org/infnoise/tree/cmake

Tiny additional tweak that makes the output readable when more than one stick has been inserted.


A question about ffxiv.exe on .18

Hi
Will we need the .18 version of ffxiv.exe or the .15 version will still works just fine?

You can use the 6.15 client exe just fine, no need to update. It only needs the Oodle functions which were added in 6.15, the client itself doesn't matter much as long as those functions are present, at least until SE changes it again. The free trial client should work fine too.

Do you happen to know what the ffxiv.exe file was called originally? I don't seem to have it. Only variations of ffxivsetup.exe, ffxivboot.exe, ffxivlauncher.exe

Fixed my issue, my download got scuffed


Bluetooth: hci_uart: Add workaround for no command buffer available

Add workaround for no command buffer available when the host is
transmitting Host Number of Completed Packet Commands.
This command does not follow normal flow control of HCI commands and
the controller side HCI drivers that allocates HCI command buffers with
K_NO_WAIT can end up running out of command buffers.
Increase the command buffer count from 2 to 10 for the HCI uart driver
until the issue has a proper fix
Signed-off-by: Joakim Andersson<EMAIL_ADDRESS>

Should we trigger an assert when there are no command buffers available?

@rugeGerritsen I added a LOG_ERR similar to the others. I'll leave adding asserts if needed to the actual fix.


toggle label missing for attribute

Problem description
The toggle components label is missing the 'for' attribute, this is problematic for screen readers.
Versions

Material-UI: 2.1.0-beta.25
React: 15.3.2
Browser: chromium 53.0.2785.143

Being addressed in next.


send video to video capture source?

Thanks for making this code available!
It would be awesome if the video was fed into a video capture source for consuming in another app that expects a video capture source (like skype?)...

Hi Jeske and thanks for your comment. You can combine the background image/video with the green-screen output into a single byte array. That way, you could transmit the new byte array to the 3rd-party application.
In WPF, you can use a RenderTargetBitmap for that purpose.


If you go to another screen, and then return, the animation will be stopped!

If you go to another screen, and then return, the animation will be stopped, although isAnimating == yes.

Hi @Krusheuski, thanks for the bug report. I'll take a look at this when I get some time.

I've also come across this issue. It seems like what happens is that when the view is off screen but still retained in memory, the CAAnimations get removed, so the isAnimating property is out of sync. The state issue could be solved by returning isAnimating dynamically based on the presence of the animation keys.
I haven't found a workaround inside the spinner component itself, but in my view controller I am iterating through all the spinners and calling startAnimating() again. There is a slight side effect however, which is that it starts at the first color rather than the current color.
@justindhill it would be nice if we could get startAnimating() to continue from the current state (rotation and color)

Hey @pixelmatrix, those are both great ideas. Resuming from the last color is very easy and I have some ideas about how I could accomplish resuming the rotation from the existing state. Could you please file that as a separate ticket?

Also @pixelmatrix I was thinking the ideal solution would be to actually resume animating when the view is re-added to a window. It seems more in-line with the intent of the API consumer.

@pixelmatrix My indicators are in the cells. And now I have to reload the table cells after returning to the screen to start startAnimation. :(

Hey @Krusheuski - I just pushed up v1.3.1 to CocoaPods this morning. It should fix the immediate problem of the spinner being out of sync with the isAnimating property. DRPLoadingSpinner now simply starts the animation again when it is re-added to the window. For the moment, it does not resume the state of the animation that it had when it was removed from the window, but I will work on this when I get some time. I am also open to PRs that address the problem.

@justindhill thx

Looks like @pixelmatrix opened another issue for resuming from the spinner's prior state, so I'm going to close this one as the immediate problem is solved. We can continue discussion in #5


Challenge: Testing / CI for memory usage

I'd love to see some sort of reporting on how much memory Ghost uses as part of our build / CI.
Even though this information is readily available via process.memoryUsage(), all of the information / tools around seem to be focused on instrumenting the app and detecting memory leaks.
Although if we have memory leaks, we should find them, this is not what I'm really interested in. I'm more interested in how much memory the app is using overall on average, so we can keep an eye on usage as we grow the application.
Every additional dependency, all the modules we have internally, all the data we store in memory etc all has an effect on memory usage, and it would be nice to track this as we add new features.

Unsure how much has been done with this, but the nodejitsu blog just stopped working on a 1024mb drone. 'Stopped' as in the admin reporting a ENOMEM. It basically consumed the larger portion of all that memory.

Hi @Swaagie,
It looks like that blog is still running 0.5.0?  I don't think there were any identified leaks specific to that version, however, there is/was a known issue with the New Relic agent leaking memory (https://github.com/TryGhost/Ghost/issues/3980#issuecomment-54979472), if you happen to be using it...
If not, I'd recommend upgrading to 0.5.8 and seeing if the memory usage remains the same.  If it does we'd love a heads-up :smile:

Hi, I monitor a ghost blog using SPM. The screenshot in the blog is actually from a Ghost Server. http://blog.sematext.com/2015/03/30/nodejs-iojs-monitoring/
Live data is available in "Node.js Demo" https://apps.sematext.com/demo
npm/github link inhere: https://www.npmjs.com/package/spm-agent-nodejs
Let me know if I could help, we used it e.g. to compare our agents memory footprint on io & node. We found out that e.g. on 0.12 or io.js it can take hours until the memory gets back to low level - if you just watch a short time, while the server has not much to do you might get the impression that memory is always growing. Here is a chart over 2 days in such a situation https://apps.sematext.com/spm-reports/s/LmdiChz3UR

Hi @megastef I looked into this when you first posted it and it looks really interesting. I also saw your tweet the other day and wondered if you had any insights into how to improve that behaviour?

Hi - about the numbers it would need a clean test on recent versions e.g. 0.12 / ghost 0.6  - the chart from the tweet is a ghost blog I'm running on my web hoster and it's not really up to date because i'm happy with it and it's running well for several month. I think the node version is  0.10.36, using ghost 0.5.x (an early one). After adding monitoring I used 'siege' to put constantly traffic to it ~10 req/s - and just wondered how GC takes ~8% of time. So something keeps the GC busy - I guess a lot of temp. objects created, perhaps you can cache more things, ... http://stackoverflow.com/questions/18364175/best-practices-for-reducing-garbage-collector-activity-in-javascript  and http://stackoverflow.com/questions/18800440/javascript-and-garbage-collection might help you.
In general I see in most node 0.10.x versions growing memory - the recent 0.12.x versions and latest io.js release looks fine in this regards - but sometimes on low load it takes hours until the low memory is reached again - so when watching memory for a short time you might get the impression of memory leaks - but this might not be the case, be patient.
For example here all running the same program on different node/io versions:
I suggest to setup latest ghost on differnt node/io versions and see if it still behaves like the one in my tweet. Just drop me an e-mail and we can arrange e.g. a call  to see what else could be done (e.g. add custom metrics or logging to Logsene to correlate logs with metrics in SPM).

Every additional dependency, all the modules we have internally, all the data we store in memory etc all has an effect on memory usage, and it would be nice to track this as we add new features.

Just a few more ideas on the original issue. You could use daily e-mail reports as PDF/Image, create it on demand or you can save metrics in a shareable link - in that way you could compare memory of build/test run. Like the link I used in the tweet - it's fixed to a specific time, and secured to share. It could be useful to create the reports at the end of a test cycle. A sample of such a report

I think the node version is 0.10.36, using ghost 0.5.x (an early one). Are all of these charts from such an old version? Almost every line of Ghost has changed in that time!

Hi, I had quick look into charts for Ghost 0.6.2 running on node 0.12.2 / ubuntu / digitalocean:
It's much better ~1-2 seconds GC time per minute when using ~10 req/s. To reach again 5-6s and high number of GC runs (~300/s) it needs now a 10 times higher request rate! (~100 req/s).
HTTP req: https://apps.sematext.com/spm-reports/s/bKylFGuFAX
HTTP res. times: https://apps.sematext.com/spm-reports/s/0yCd9TXARp
GC Times: https://apps.sematext.com/spm-reports/s/n6ZIC2hi5z
GC Runs: https://apps.sematext.com/spm-reports/s/ReJHSCKGGz
Actually it looks that a lot of memory is released (which is good)
GC released memory: https://apps.sematext.com/spm-reports/s/5CVv3mmkLV
Memory usage: https://apps.sematext.com/spm-reports/s/36o2iMCTTa
Event Loop latencies: https://apps.sematext.com/spm-reports/s/j2y1y4Tt8A
CPU usage: https://apps.sematext.com/spm-reports/s/rcbF0qbJvX
(it would be easier to share the whole app, via e-mail .. But you can try it yourself, use a free account and observe it - let me know if you need help to get started).
Some news regarding the original issue of continuous measurements during tests:
We just implemented the API feature to trigger reports via the API (it's called 'subscription' in the UI). This means the scenario to run benchmark and trigger then e-mails with the charts for documentation is now possible using SPM HTTP JSON/API. We will update the API documentation soon.

Challenge was never accepted 😂
We have various monitoring available to us on Ghost(Pro). If anyone ever has a nice idea for a solution to this let us know, we're interested. In the meantime gonna close!


Lazy loading added

Related Issue
Closes: #100
Describe the changes you've made

Added lazy loading to the pages of the website
Added a loading spinner to the website

Type of change
What sort of change have you made:

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Enhancement in the existing features
[ ] Other

Checklist:

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[x] My changes generate no new warnings.
[x] I have verified/tested my code by running it locally.

Files Added/Modified

App.js
Loading.js
loading.css
routes.js

@Avinash905 Please change the title of this PR. Check the already merged PRs and write the title. Otherwise, it will not allow to merge.


How to support element plus ?

How to support element plus ?

See https://github.com/element-plus/element-plus-playground


Bug: Combining bold italic strikethrough can generate invalid markdown

Combining Bold, Italic and strikethrough formats can generate invalid markdown
Lexical version: 0.2.9
Steps To Reproduce

Enable Bold, type (Bold )
Enable Italic, type (Italic )
Enable strike through, type (bold italic strikethrough)
View generated markdown

Note that the generated markdown is:
**bold *italic ~~strikethrough***~~

Which escapes strikethrough incorrectly, it should be
**bold *italic ~~strikethrough~~***

The current behavior
Invalid markdown is generated
The expected behavior
Proper markdown should be generated
Current bad state

Fixed state with open PR:

:+1:

It appears there was a PR for this in #2304? Does anyone know why it wasn't committed?

Should be fixed by https://github.com/facebook/lexical/pull/5758


refactor for climate #250

Coverage increased (+0.01%) to 74.07% when pulling 9adc40006bef62edf625d7538437a312dfbd16f8 on itowtips:cms-search into ad4370b30ce5190cc4ceb9d20a4a64f5cb8f1d97 on shirasagi:master.

Coverage increased (+0.01%) to 74.07% when pulling 9adc40006bef62edf625d7538437a312dfbd16f8 on itowtips:cms-search into ad4370b30ce5190cc4ceb9d20a4a64f5cb8f1d97 on shirasagi:master.

Coverage increased (+0.01%) to 74.07% when pulling 9adc40006bef62edf625d7538437a312dfbd16f8 on itowtips:cms-search into ad4370b30ce5190cc4ceb9d20a4a64f5cb8f1d97 on shirasagi:master.

Coverage increased (+0.01%) to 74.07% when pulling 9adc40006bef62edf625d7538437a312dfbd16f8 on itowtips:cms-search into ad4370b30ce5190cc4ceb9d20a4a64f5cb8f1d97 on shirasagi:master.

Coverage increased (+0.01%) to 74.07% when pulling a8b1aab00b7d7455398890a8db87d619befe63b9 on itowtips:cms-search into ad4370b30ce5190cc4ceb9d20a4a64f5cb8f1d97 on shirasagi:master.