Firefox extension ask for access your data for all websites

I checked Firefox version of the extension it use Access your data for all websites permission which seems invasive.

But Chrome extension does not use a such permission

It seems that Firefox shows that warning is because my extension can inject a content script into any tab, whenever it wants.
There is a less intrusive permission called activeTab which does not show that warning, but requires the user to perform an action within that tab before my extension can inject its script. This is a problem because:

If the user forgets to perform such an action, my extension will not inject its script, and you won't receive a warning when your clipboard data was altered. This seems a bit counter intuitive to me.
Ideally my script needs to run before any other scripts, due to event bubbling

Perhaps I should add an explanation to the Firefox extension for the "Access your data for all websites" permission?
I'm open to suggestions.

There is a less intrusive permission called activeTab which does not show that warning, but requires the user to perform an action within that tab before my extension can inject its script.

Why do you need to inject a script? Cannot you detect clipboard changes using clipboardRead, clipboardWrite permissions?

I need the content script to listen for the "copy" event and to get the current text selection.

Seems like Firefox clipboard API is not ready yet

The Clipboard interface implements the Clipboard API, providing—if the user grants permission—both read and write access to the contents of the system clipboard. The Clipboard API can be used to implement cut, copy, and paste features within a web application.

I wonder how you do things in Chrome extension? Do you inject a script in there also?

I wonder how you do things in Chrome extension? Do you inject a script in there also?

Yes, the extension works identical in all versions (Chrome, Firefox and Edge). I use the webextension-polyfill so its a single code base for all versions.

Okay you may add a note about Firefox permission to the README

Okay you may add a note about Firefox permission to the README

Would it be possible for the "copy to clipboard" user action to be the action that triggers the script to be injected? Or would it be too late?

Unfortunately the browser extension API's do not provide such a feature. It would also be too late indeed (although only for the first time you copy) as the event listener will be added after the copy has been done.
The only way to inject the content script on all pages automatically, is to set the the allowed origins to http and https addresses, which, in Firefox, translates to "Access your data for all websites".
If I disable the automatic injection, it will get rid of the warning in Firefox, but the user will have to do a certain action like clicking on the browser extension icon, before I can inject the content script. They will have to do this on every visit.

Thanks.  That makes good sense.
I can't think of a really great solution, but I did come up with a possibility:
Firefox allows developers to set on-demand permissions for extensions.  By default, the extension could not ask for the "Access your data for all websites" permission; instead it can provide a toolbar button or context menuitem to activate the extension on the current page.  Separately, there can be an option to enable the extension for all pages.  When the user enables that option, Firefox will prompt for the "Access you data for all websites" permission.
I don't love the above because it's a bit clunky (IMO), but it might be the only possibility (besides keeping things how they are).

Has anything changed with the browser APIs that would allow an improvement per the OP's request?


Fix pending test in rpc batch 2

Currently there are several tests set on pending because of issue https://github.com/hashgraph/hedera-mirror-node/issues/6620. When it's fixed and there is a image, we can fix the tests.

@georgi-l95 can we close this now? Please go ahead if so

@Nana-EC Can be closed, yes.


Migrate a plugin (tbd.) to the new API

Maybe define the plugin that we want to move or remove this issue? @trusz

The publisher plugin seems to be a good candidate since it doesn't rely on Wizarding or Editing API


[ARVIR] Use a higher point in the screen for projecting the artwork vs the wall

Re-aligns the artwork to use a different screen point of reference in comparison to the floor. This fixes a weird UX issue. EV-209

Looks good to me!
Merge on green. 🤞


thread 'main' panicked at 'called Result::unwrap() on an Err value: Os

Hi,
On fresh Ubuntu Server 22.04.1 installed as VM in VMware Fusion :
thread 'main' panicked at 'called Result::unwrap() on an Err value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/sensors/powercap_rapl.rs:76:53
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
Same error on Ubuntu Desktop and RHL 8 in VMware fusion.
Command line used : scaphandre --vm stdout
It's the build version which was compiled.
Thanks

Hi !
Unfortunately vmware support is not implemented in scaphandre. We would need to develop an exporter like the qemu one but for vsphere, then you should be ablte use the powercap sensor inside the VM


Headless Chrome

Keep an eye on headless chrome progress. This could potentially be awesome.

This: https://github.com/GoogleChrome/puppeteer

included in v1.0.0 e92d5a6cf628cdf3c4d591f3af23776d55cd8136


Infinitely Polling Custom Data URL When Return Null

Expected Behavior
Should ping custom data URL's on the resolution step with max 30min, and when no data wait for the next step to poll again.
Actual Behavior
Returning null triggered immediate re-polling, causing LEAN to hit rate limit warnings for custom data APIs.
Potential Solution
Review custom data enumerator stack; perhaps there should be another return option:
null - immediately retry?  BaseData.None - wait for next resolution step?
Reproducing the Problem
Return null from USEnergyInformation.cs instead of new BaseDataCollection.
Checklist

[x] I have completely filled out this template
[x] I have confirmed that this issue exists on the current master branch
[x] I have confirmed that this is not a duplicate issue by searching issues
[x] I have provided detailed steps to reproduce the issue

Hi, In TextSubscriptionDataSourceReader.Read I added the following the check, it fixes my issue. That means, if the current BaseData implementation does not return a value, it skips and goes to the next enumerator. does this fix makes sense? at least I've been using this fix for a while.
`                        if(instance == null)
{
yield break;
}
                    if (instance != null && instance.EndTime != default(DateTime))
                    {`


Hang on out of memory error

System information

Have I written custom code (as opposed to using a stock
example script provided in TensorFlow):  No
OS Platform and Distribution (e.g.,
Linux Ubuntu 16.04): Ubuntu 18.04.3 LTS
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if
the issue happens on mobile device:
TensorFlow installed from (source or
binary): - TensorFlow version (use command below): 2.1.0 and nightly, used tensorflow/tensorflow:2.1.0-gpu-py3 and tensorflow/tensorflow:nightly-gpu-py3
Python version: - Bazel
version (if compiling from source):
GCC/Compiler version (if compiling from
source):
CUDA/cuDNN version: - GPU model and memory:  P100 and V100
Driver: 440.33.01
CUDA 10.1 in container

You can collect some of this information using our environment capture
script
You can also obtain the TensorFlow version with: 1. TF 1.0: python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)" 2. TF 2.0: python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"
Describe the current behavior
TensorFlow hangs when it hits out of memory after it dumps the out of memory message.
Describe the expected behavior
TensorFlow should exit on non-zero return code on OOM.
Standalone code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate
the problem. If possible, please share a link to Colab/Jupyter/any notebook.
import tensorflow as tf
from tensorflow.keras import backend as K

import numpy as np

def random_image_generator(batch_size, num_classes, input_shape):
    templates = 2 * num_classes * np.random.random((num_classes,) + input_shape)
    random_data = np.random.normal(loc=0, scale=1., size=input_shape)
    while True:
        y = np.random.randint(0, num_classes, size=(batch_size,))
        x = np.zeros((batch_size,) + input_shape, dtype=np.float32)
        for i in range(batch_size):
            x[i] = templates[y[i]] + random_data
        x_array = np.array(x)
        y_array = tf.keras.utils.to_categorical(y, num_classes)
        yield(x_array, y_array)

def run_model():
    K.set_image_data_format('channels_first')
    image_dim = 5000
    input_shape = (3, image_dim, image_dim)

    num_classes = 15
    batch_size = 1
    model_class = tf.keras.applications.ResNet50
    model = model_class(weights=None, include_top=True, input_shape=input_shape,
                        classes=num_classes)

    model.compile(optimizer='rmsprop', loss='categorical_crossentropy')

    random_generator = random_image_generator(batch_size, num_classes,
                                              input_shape)
    model.fit(random_generator, steps_per_epoch=10,
              epochs=1)

run_model()

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.
This program hangs after dumping the out of memory error on 16GB and 32GB GPUs (P100 and V100 tested). The program use to exit on TensorFlow 1.15. This happens on both the 2.1.0 and nightly containers on Intel x86 systems.
I originally hit this on built-from-source TensorFlow 2.1.0 on ppc64le. On that system, I attached gdb and dumped the stacks. It seems the code is hanging on the three thread stacks noted in the attachment.
threeThreadStacks.txt

Was able to reproduce the issue on colab with Tf 2.1 and Tf-nightly.

This hangs inside ParallelMapIterator::~ParallelMapIterator.  Assigning to @jsimsa for further triaging.

@aaudiber could you please take a look?

From the stack traces, it looks like the program hangs while waiting for the Python generator function to complete. It isn't clear whether the Python function is hanging, or if it crashes but we fail to notify RunWithBorrowedArgs that it has finished.
#6  0x00007fff462e9cd4 in tensorflow::condition_variable::wait
#7  0x00007fff4114079c in tensorflow::data::InstantiatedCapturedFunction::RunWithBorrowedArgs
#8  0x00007fff40d88d3c in tensorflow::data::GeneratorDatasetOp::Dataset::Iterator::GetNextInternal
@smatzek can you tell from the OOM error message where the OOM is encountered?

@gadagashwini I haven't been able to reproduce the hang. Can you share your repro methodology?

@aaudiber, I could replicate the issue with Tf-gpu 2.1 on colab.
Please find the gist here. At the end session stopped by saying Your session crashed after using all available RAM. Thanks!

@aaudiber The stack after the memory region dump mentions FusedBatchNorm.
2020-02-28 16:35:54.147979: W tensorflow/core/framework/op_kernel.cc:1732] OP_REQUIRES failed at fused_batch_norm_op.cc:1181 : Resource exhausted: OOM when allocating tensor with shape[1,256,1250,1250] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
 1/10 [==>...........................] - ETA: 3:52Traceback (most recent call last):
  File "recreate.py", line 37, in <module>
    run_model()
  File "recreate.py", line 35, in run_model
    epochs=1)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py", line 718, in fit
    use_multiprocessing=use_multiprocessing)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training_v2.py", line 341, in fit
    total_epochs=epochs)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training_v2.py", line 128, in run_one_epoch
    batch_outs = execution_function(iterator)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training_v2_utils.py", line 98, in execution_function
    distributed_function(input_fn))
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/def_function.py", line 576, in __call__
    result = self._call(*args, **kwds)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/def_function.py", line 640, in _call
    return self._stateless_fn(*args, **kwds)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/function.py", line 2414, in __call__
    return graph_function._filtered_call(args, kwargs)  # pylint: disable=protected-access
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/function.py", line 1660, in _filtered_call
    self.captured_inputs)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/function.py", line 1741, in _call_flat
    ctx, args, cancellation_manager=cancellation_manager))
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/function.py", line 598, in call
    ctx=ctx)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/execute.py", line 60, in quick_execute
    inputs, attrs, num_outputs)
tensorflow.python.framework.errors_impl.ResourceExhaustedError:  OOM when allocating tensor with shape[1,256,1250,1250] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
	 [[node resnet50/conv2_block2_3_bn/FusedBatchNormV3 (defined at recreate.py:35) ]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.
 [Op:__inference_distributed_function_19978]

@aaudiber, I could replicate the issue with Tf-gpu 2.1 on colab.
Please find the gist here. At the end session stopped by saying Your session crashed after using all available RAM. Thanks!

@gadagashwini That's the behavior I get as well. In this case crashing after using all available RAM is the expected behavior, the issue is about hanging instead of crashing.
I spent some time trying to reproduce on my local GPU with both tf-nightly and tensorflow-2.1-gpu, but I've never been able to get a hang - the process always exits with an OOM error.
If the reported stack traces are to be believed, the hanging c++ thread is blocked waiting for the random_image_generator function to generate an element. It would be useful to know whether that python function is blocked during the hang, or whether the python function completed with an error, but failed to notify the GeneratorDataset thread. I visually inspected our logic for handling errors in calling a python function, and I don't see a way for the python function to complete without notifying the GeneratorDataset thread.
To debug further, I suggest simplifying the example as much as possible so that we can zero in on what exactly causes the hang.

I gutted the random_image_generator and it does NOT hang for me.
Code:
import tensorflow as tf
from tensorflow.keras import backend as K

import numpy as np

image_dim = 5000
input_shape = (3, image_dim, image_dim)

num_classes = 15
batch_size = 1

templates = 2 * num_classes * np.random.random((num_classes,) + input_shape)
random_data = np.random.normal(loc=0, scale=1., size=input_shape)
y = np.random.randint(0, num_classes, size=(batch_size,))
x = np.zeros((batch_size,) + input_shape, dtype=np.float32)
for i in range(batch_size):
    x[i] = templates[y[i]] + random_data
x_array = np.array(x)
y_array = tf.keras.utils.to_categorical(y, num_classes)

def random_image_generator(batch_size, num_classes, input_shape):
    while True:
        yield(x_array, y_array)

def run_model():
    K.set_image_data_format('channels_first')

    model_class = tf.keras.applications.ResNet50
    model = model_class(weights=None, include_top=True, input_shape=input_shape,
                        classes=num_classes)

    model.compile(optimizer='rmsprop', loss='categorical_crossentropy')

    random_generator = random_image_generator(batch_size, num_classes,
                                              input_shape)
    model.fit(random_generator, steps_per_epoch=10,
              epochs=1)

run_model()

One idea is to add print statements to random_image_generator to see whether the function hangs.

As noted in the original issue description, this hang on OOM did not occur on TF 1.15. The image generator is only calling out to tf.keras and numpy.
So this morning I tried the following container images:
tensorflow/tensorflow:1.15.2-gpu-py3 (has numpy 1.18.1)
tensorflow/tensorflow:2.0.0-gpu-py3  (has numpy 1.17.2)
tensorflow/tensorflow:2.1.0-gpu-py3 (has numpy 1.18.1)
tensorflow/tensorflow:nightly-gpu-py3 (has numpy 1.18.1)
The recreate program hangs on OOM in 2.1.0 and nightly. It does NOT hang in 1.15.2 or 2.0.0. The numpy levels used are noted above. I also upgrade numpy to 1.18.1 in my 2.0.0 container and it still did not hang.
Since the numpy levels remain constant and I see the change in behavior between 2.0.0 and 2.1.0 I suspect that something changed between 2.0.0 and 2.1.0 which is contributing to this behavior. Later today I'll diff tensorflow::data between the 2.0.0 and 2.1.0 tag levels and see if anything stands out to me.

In my diff I noticed that the entire ParallelMapIterator class is new between 2.0.0 and 2.1.0. I spent over an hour investigating the code and following its waits/notifies. As far as I traced the code flows it looked OK to me.
I then added prints into the generator function and saw I do have a start without a yield. However, I do not think it is dependent on the actual work this function is doing. I replaced the work in the while loop with a simple sleep and still reproduced the hang on ParallelMapIterator.
I understand that the hang is "new" in 2.1.0 because ParallelMapIterator is doing the wait for all outstanding work on deconstruction. It may not have happened in the previous way this was called.
The random generator with only the sleep in the while/yield is:
def random_image_generator(batch_size, num_classes, input_shape):
    templates = 2 * num_classes * np.random.random((num_classes,) + input_shape)
    random_data = np.random.normal(loc=0, scale=1., size=input_shape)
    y = np.random.randint(0, num_classes, size=(batch_size,))
    x = np.zeros((batch_size,) + input_shape, dtype=np.float32)
    for i in range(batch_size):
        x[i] = templates[y[i]] + random_data
    x_array = np.array(x)
    y_array = tf.keras.utils.to_categorical(y, num_classes)
    while True:
        print('random_image_generator while start')
        time.sleep(1)
        print('random_image_generator while yield')
        yield(x_array, y_array)

In my recreate I see about 14 "while start" messages and 13 yields. So it's not the first result return either.

I don't think the issue is with ParallelMapIterator - it was moved between 2.0.0 and 2.1.0, but it's always had the logic of waiting for outstanding calls to finish during deconstruction: https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/core/kernels/data/parallel_map_iterator.cc#L70-L79
From the stack trace
#6 0x00007fff462e9cd4 in tensorflow::condition_variable::wait
#7 0x00007fff4114079c in tensorflow::data::InstantiatedCapturedFunction::RunWithBorrowedArgs
#8 0x00007fff40d88d3c in tensorflow::data::GeneratorDatasetOp::Dataset::Iterator::GetNextInternal
it looks like we're getting stuck here: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/data/captured_function.cc#L717-L721. We call lib_->Run to invoke the python function, which is supposed to call Notify() when the python function completes (whether or not it succeeds). For some reason it looks like that callback never happens. It isn't clear whether that's because the python function itself never completes, or because lib_->Run fails to call Notify on some error-handling code path. If I could reproduce, I would add additional logging to see what happens in lib_->Run

Colab crashes while reproducing the issue with TF v2.5,please find the gist here..Thanks!

@smatzek With the latest tf-nightly I believe the issue has been resolved with no crash anymore:Could you Please find the gist here for reference and confirm the same ?Thank you!

@sushreebarsa I see the gist failing with InvalidArgumentError:  Default MaxPoolingOp only supports NHWC on device type CPU rather than an out of memory error.
The gist from June 23, IS failing on OOM.

Was able to reproduce the issue in tf v2.7. Please find the gist here


fix: remove unused messages and add missing messages

removes unused messages and adds missing messages
Running sf dev audit messages after this change reports nothing found (which is good).
@W-12236626@

QA Notes

✅ : sf dev audit messages
✅ : duplicate messages removed
✅ : no undefined messages


Make Cookies available on SSR.

Describe the problem
While coding on the server part of the project, you have access to an object of type Cookies in the RequestEvent. However, when coding on the SSR part, this object does not exist plus you can't access the document object in the browser.
Describe the proposed solution
I believe while the request is being SSR, there should still be access to the request's headers so, my proposal is to also allow the Cookies object to exist in the load functions.
Obviosuly this will break the load functions when they are CSR so the solution should be some sort of polyfill that transparently integrates with either the request's headers or the document.cookie in the browser.
Alternatives considered
I'm afraid I can't think of an alternative at this moment as in the SSR zone, there is no access to neither the Cookies object nor the document object.
Perhaps the only "solution" would be to not use cookies and return the data directly instead? But this would require the client code to manually send it back on every request.
Importance
would make my life easier
Additional Information
No response

To clarify: Are you talking about load functions inside +page.js/+layout.js?
Adding support there would probably introduce other sorts of confusion: "why can't I access this cookie in the browser, but on first SSR on the server I can?" (answer: because it's a http only cookie by default).
I suggest to use +page.server.js or +layout.server.js instead where you have access to cookies, as that load function is guaranteed to always run on the server.

@dummdidumm yes, I mean the load functions in +page.js/+layout.js.
I understand your concerns but they are the same issue as explaining the users the difference between SSR and CSR (imho).
Utlimately, the proposed polyfill could filter the HttpOnly cookies out (for the sake of browser transparency) giving the server files the only ones capable of manipulating them.
This could be signaled easily with types in a similar fashion as it is done now with the PageLoad and PageServerLoad types: ClientCookies vs ServerCookies (where the ClientCookies would be the polyfill I'm talking about including the filter for the HttpOnly cookies and ServerCookies could be exactly as it is right now).

This is something that has been discussed in the past, and it's not something we want to do. It would be a mistake. If you want to read cookies, use a +page|layout.server.js file

Hi @Rich-Harris, I humbly disagree with this logic. I understand this is, perhaps, not an SvelteKit sort of functionality to maintain (kind of like sessions are not SvelteKit's functionality either). However, the problem I have is that I can't even provide a polyfill myself. There is no way (that I know) to circumvent this limitation. SSR environment does not have access to the Cookies object, nor it does to the document object, and it does event prevent the modification of the cookies header via setHeader (this is why I suggested SvelteKit could filter the HttpOnly cookies out seeing that it already does stuff like this for good reasons).
In addition to this, this issue limits quite drastically what the SvelteKit is good for like, precisely, the SSR environment. You can't use it if you rely on accessing cookies in the client (or you must use it by proxifying the cookies throught the server which, imho, it's a bit silly and unecessary).

Could you expand on your use case? Why do you need to read/modify cookies in the browser and why does that need to happen in load?

I've setup an authentication system that relies on HttpOnly cookies. Because they are HttpOnly, I have no way to know if I have a logged in user or not in the client code. To circumvent this, I'm creating a separate regular cookie as token to notify the client so SvelteKit can render the apropiate HTML. I need to read this cookie during the load function to either send the user to the login page (in case there is not a logged in user), or to discriminate by role.
I originally did this by returning a value in a server page (like you guy mentioned) but because the log in information is system-wide (think about it like showing a Login/Logout link on the page header), I'm reading it in the root layout which requires me to use the parent function which has the potential of triggering circular dependencies. That's why I though on the cookie solution.

Why has using await parent() the potential of triggering circular dependencies?
// +layout.server.js
export function load({ cookies, url }) {
  if (!cookies.get('user') && url.pathname !== '/login') {
    throw redirect('/login');
  }
}

Thanks for your sugestion, @dummdidumm. The problem is that his file is evaluated only once. I know there is a way to declare dependencies and invalidations but this requires to insert them on every single load method (again, layout are -to the best of my knowledge- not enough) with the potential of a very bad security flaw if you forget one.
The other solution would be to inject a handler in the hooks.server.ts file that does this but you cannot return data in this handler.
I've re-read the parent documentation and I can't find the circular dependency problem I mentioned (sorry, I guess I confused the waterfall warning with a circular dependency 🤦🏼♂). So, I guess I could use the parent function to retrieve the data from the server which is better than the cookie, yay! However I still have the issue of the layout server not being run for every request thus forcing me to polute the project with page.server.ts files doing all of them pretty much the same 🤔.

I'm not sure I follow - so your problem is not actually the cookie, but using the cookie to achieve something specific? Poking-in-the-dark-suggestions:

you can attach something to locals in hooks.server.ts which all +layout/page.server.ts files can access
you can add a dependency on url in your root +layout.server.ts so it runs on every page change: export function load ({ url }) { url.pathname; ... }

Oh! That's very interesting! I didn't know I could force the run of the layouts by using url.pathname. From the documentation, I though that could only be accomplished with depends and invalidate.
I will revert from using a cookie and I'll use a variable passed from the server.
Imho, I still think allowing for some degree of cookie access at SSR would be beneficial (it could just be allowing to access the request headers, for example) but, for my case, it is no longer required.
Thanks so much for your help @dummdidumm!

I´m currently facing some issues while working on the supabase auth helpers for sveltekit.
The problem is this:
We can easily read the cookie inside handle hook/server load functions/actions/request handlers and even update the session by saving it to the cookie. But how are we supposed to do this in shared load functions on the server?
We can use the root layout load to pass down the current session value, but there is no way to update it. So what happens if an access_token expires right in the middle of the shared load chain? The client is not authenticated anymore and we are not able to refresh the token and save it to the cookie.
Since we are not supposed to use cookies in shared load functions, how should this be implemented? I thought about using event.fetch to get/set/delete the session from another endpoint, but that add complexity (custom hook with an api endpoint) that seems unneccesary.

Hi @david-plugge, I'm not sure I fully understand your use case but I also thought on having potential problems in similar situation so I resorted to make the cookie to artificially expire a few minutes earlier so I have a grace period to refresh the token or, at least, to guarantee that it won't expire in the middle of a request.
I hope this helps!

Yeah that´s what we currently do aswell but it feels hacky.
Though I´d prefer a framework level solution as cookies are not limited to server only.


How to compile for ARM64

Hi, first of all thanks for that library.
I'm would like to use this library into iOS project. How I can compile the library for ARM64?
Thanks!

Hi,
I have little to no experience with macOS and none with iOS, so unfortunately I cannot help you there. However, libConfuse is a GNU Configure & Build based project, so it is possible to cross-compile using the standard mechanisms for that.  Usually ./configure --host=toolchain-prefix or similar works.
In my own little hobby OS, TroglOS, I use the following:
Say my cross-toolchain is located here
/usr/local/arm-unknown-linux-gnueabi-6.2.0-1/bin/arm-unknown-linux-gnueabi-gcc

Then I have that added to my $PATH
export PATH=/usr/local/arm-unknown-linux-gnueabi-6.2.0-1/bin:$PATH

and I call the libConfuse configure script like this:
./configure --host=arm-unknown-linux-gnueabi --prefix= --disable-examples

The configure script figures out everything else by itself.  I'm guessing building apps for iOS has some similar framework for calling the configure script ... but like I said, I don't know any more than that.

@OriolOMM Do you require further assistance, or can we close this issue with libConfuse?

Hi, thanks for your answer.
I'm still trying to do it.
I did the same procedure that you told me in a Linux machine. After ./configure --host=arm-unknown-linux-gnueabi --prefix= --disable-examples I run make and make install. Then I browse to lib folder and run $file arm/lib/libconfuse.so.1.1.0, and the output is:
arm/lib/libconfuse.so.1.1.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=905d3883e3375f9ad4d9a3a4d66db6eec356b1df, not stripped
As you can see, x86-64.
Any suggestion?
Thanks

Could you try defining the CC variable so that it points your the crosscompiler? E.g.,
CC=arm-unknown-linux-gnueabi-gcc ./configure --prefix= --disable-examples

I'm not sure why I'm not using --host in my cross building scripts, but something close to the above is what I've been using.

Hi, finally I have managed to compile for iOS.
I used this scripts to do it https://github.com/intlres1/iOS-autoconf
Thanks!!!!

Good, then we can close this issue. Thank you for checking back, and thanks to @fhunleth for helping out as well! :)


Replace HTML break for control technologies with a comma delimiter

Need to replace break with a comma to enable Datateers #738

@jwhitehead77 will step in and run a SQL script if this cannot be done in time for sprint 3.2

We have discovered a data transform that we need done. The following fields in the table below contain html  due to the way that data is being used on the current AMPD website. However, the new system does not need that so can you please replace the  with a comma to create a comma separated list of values in those fields.
camddmw.unit_fact

so2_control_info
nox_control_info
part_control_info
hg_control_info

Example:
Current value: "Additives to Enhance PAC and Existing Equipment PerformanceUntreated PAC Sorbent Injection"
New value: "Additives to Enhance PAC and Existing Equipment Performance,Untreated PAC Sorbent Injection"

@vkdontula Hello, this task is ready for development

this has been completed in staging and we will be running the Informatica process in dev over the weekend or performing a backup restore from staging to dev


Treat dev versions as unstable in pipchecker

This prevents pipchecker from suggesting upgrading to a dev version when the currently installed version is stable.
See eg. https://pypi.org/project/django-filter/2.0.0.dev1/

Thanks !

Coverage increased (+0.5%) to 54.493% when pulling fb414eff931dd8d6f16252abff8d0a0579f9a7e3 on michael-k:patch-1 into 6c25cb2c186cbaecfcb9fbee5b2b262ec71eb3ae on django-extensions:master.


More Open Source game lists

Am posting some other Open Source program lists that might have some games not yet listed here.
List of games (with screenshots) that have been ported to Syllable OS:
https://sites.google.com/site/syllablesoftware/games
Open source games ported to Android:
http://libsdl-android.sourceforge.net/
Cross-platform ncurses/pdcurses based games under active development:
https://github.com/untakenstupidnick/nbsdgames
Blockout II
https://github.com/untakenstupidnick/nbsdgames
List of some of my favorite Open Source games:
https://lmemsm.dreamwidth.org/8013.html
I have patches for many of these games to improve portability to other platforms, fix bugs such as memory issues and update to work with later libraries (such as SDL 2.x support as well as SDL 1.x support).

Thanks for the suggestions. I added them to the backlog (https://github.com/Trilarion/opensourcegames/blob/master/tools/backlog.txt), which is a list I go through whenever there is free time and nothing else to do.
Please note that the desired platforms are currently limited to Windows, Linux, macOS, Android, iOS and Web. This is mostly to keep the effort manageable (better to have one more complete collection than two half complete ones). Maybe later one could extend to consoles, mini computers (Arduino) and other rare OS systems.
If you have patches, then please apply them. I recommend to first contact the maintainers if there are still some of them. If the project is inactive and there is no source repository on Gitlab or Github, I typically convert the sources to Git and upload them on Gitlab and Github (see for example https://gitlab.com/osgames and https://github.com/osgamearchive). From there on the standard way would be forking and applying patches. The entries here in this database for source repositories should point to the most recent and most complete (working) version.
Improvement fixes and all the other things you mention are exactly what I would also like to see applied. If you have a list of games you have fixes for, I could help you identifying where they should be applied best.

Most of the programs for unusual operating systems that I posted are typically written using SDL which means they'll work on Windows, Linux, etc.  The Syllable OS list has some really nice SDL based games.  The Android games are just ports of SDL games that work on Linux, Windows, etc.  I typically work with cross-platform programs, so everything I use will build on multiple operating systems.

Looks like I added the wrong link for Blockout II.  It should be:
https://github.com/bomblik/BlockOut_II_PSVITA
It's built with SDL and TinyGL so it should be fairly portable.
Another archive that might be useful is:
https://github.com/cymonsgames/CymonsGames
It has a lot of command line games which should be very portable.

Thanks for the additional links. If the games are written under SDL, then the aim here would be to get them running under Windows, Linux, macOS at least (and also under Android if that is feasible from the user interaction). If the game could run on any of the supported platforms, then I would be willing to include it.
It's good that you are make multiplatform programs. There are literally hundreds of C/C++ SDL based games in this database here.

Any plans to update the older SDL 1.2.x games to SDL 2.x?  I've started doing that for the SDL programs I regularly build from source.  However, there are some operating systems that have a port of SDL 1.x and haven't yet been able to port SDL 2 yet.  I've also run across a few situations where developers/Linux distributions might prefer SDL 1.x because it uses less system resources.  So, if a programs supports SDL 1.2.15, I've left the code in the program to support compiling either way.
I've done a lot of building from source for SDL based programs using C/C++.  They port to multiple platforms very easily.  I've compiled SDL based programs on Windows, Linux and FreeBSD.  Have also ported some programs to work on Android using SDL 2.

I'm not yet at the stage where I really look at the projects. Conversion of SDL 1.x to SDL 2.x makes sense if the games kind of profit from it. Looking at the statistics so far about 1/3 of games using SDL use SDL2. There are at least 100 games in this database using SDL 1.x
I guess that SDL2 has advantages and SDL 1.2.X may become deprecated at some point. On the other hand conversion just for the sake of conversion doesn't sound very useful for now. There might be more pressing matters.
If you want to convert games from SDL 1.2.X to SDL 2 I fully support this and at some point I might also join the effort.

I started a new issue for the SDL idea in order to have a better overview. See #232

Links are stored in the backlog. SDL conversion has its own issue, can close here.


search: mapResults endpoint doesn't return correctly filtered results

request url: /?selectedCategory=case&resultType=map&returns=json
expected: to return only cases in the json response
actual behaviour: returns cases, methods and orgs
response object:

i will cache the results and filter these on the front end for now, so we can solve for this later if needed.


Error executing NodeTask type from a subproject: "Task with path 'nodeSetup' not found in project ':foo'"

Summary
Configuring the node plugin for a multi-project build, I can run a NodeTask task out of the rootProject, but I get an error as described in the subject when I try to run it out of a subproject.
Any suggestions on how to configure this properly? Any alternate approaches (other plugins?) to run the TypeScript compiler?
Please let me know if you need any further info, or would like me to try running different tests.
Thanks for your attention.
Repro
Files
settings.gradle
include 'foo', 'bar'`

build.gradle
buildscript { repositories { mavenCentral() } }
plugins { id "com.moowork.node" version '0.12' }
allprojects {
    node {
        download       = true    // download node
        workDir        = new File(rootProject.projectDir, '.gradle/nodejs')
        nodeModulesDir = workDir // colocate node modules with local node install
    }
    task installTypeScript(type: NpmTask) {
        workingDir = node.workDir
        args = ['install', 'typescript']
    }
    task runTypeScript(type: NodeTask, dependsOn: installTypeScript) {
        script = new File(node.nodeModulesDir, 'node_modules/typescript/bin/tsc')
        args = ['--version']
    }
}

Gradle Version
$ gradle --version
------------------------------------------------------------
Gradle 2.13
------------------------------------------------------------
Build time:   2016-04-25 04:10:10 UTC
Build number: none
Revision:     3b427b1481e46232107303c90be7b05079b05b1c
Groovy:       2.4.4
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_25 (Oracle Corporation 25.25-b02)
OS:           Mac OS X 10.10.5 x86_64

Expected Results
Running the task out of the rootProject works as expected:
$ rm -fr .gradle
$ gradle :runTypeScript
:nodeSetup
Download https://nodejs.org/dist/v4.4.0/node-v4.4.0-darwin-x64.tar.gz
:installTypeScript
<EMAIL_ADDRESS>node_modules/typescript
:runTypeScript
Version 1.8.10

BUILD SUCCESSFUL

Total time: 14.927 secs

Note: this places the node installation and node modules under the .gradle/nodejs directory under the root project:
$ ls -1 .gradle/nodejs/
node-v4.4.5-darwin-x64
node_modules

$ ls -1 .gradle/nodejs/node_modules/
typescript

Actual Results
But running it from the subproject does not:
$ rm -fr .gradle
$ gradle :foo:runTypeScript

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':foo:runTypeScript'.
> Task with path 'nodeSetup' not found in project ':foo'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 3.309 secs

Attempted Workarounds
Manually add nodeSetup task for subprojects
I added the following blurb to build.gradle:
subprojects {
    task nodeSetup(dependsOn: rootProject.nodeSetup) {}
}

A different error is now encountered:
$ rm -fr .gradle
$ gradle :foo:runTypeScript
:nodeSetup
Download https://nodejs.org/dist/v4.4.0/node-v4.4.0-darwin-x64.tar.gz
:foo:nodeSetup
:foo:installTypeScript FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':foo:installTypeScript'.
> Extension of type 'NodeExtension' does not exist. Currently registered extension types: [DefaultExtraPropertiesExtension]

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 12.528 secs

Any thoughts, @srs? This is blocking me from adopting not only your plugin but others that extend it.
Am I declaring it correctly for use with a multi-project build? I'd appreciate any suggestions you can offer.

Hi.
Thanks for the really detailed description. Will try out what you have done here and see if i can get it to work.

Ok, it seems to be something wrong with the plugin when doing the multi-project build like you do. Will see what needs to be changed.

Now I have something that works. If you use it like this instead, it will work:
buildscript {
  repositories {
    jcenter()
  }

  dependencies {
    classpath "com.moowork.gradle:gradle-node-plugin:0.12"
  }
}

allprojects {
  apply plugin: 'com.moowork.node'

  ...
}

The only thing I do differently is to actually add the plugin on all projects and not just the root project. I do not know how to do this with the plugins closure.

Seems that this is a limitation on gradle itself. See http://stackoverflow.com/questions/26236308/how-to-apply-plugin-to-allprojects-with-new-gradle-plugins-mechanism
So, you will have to stick with the "old" notation for now (the one above). Closing this issue.


Where is the pretrained model on KITTI ?

Thanks for your great work, I have two questions:

I Notice there is no pretrained model on KITTI in https://share.phys.ethz.ch/~gsg/Predator/weights.zip, don't you want to make it  public for forgot it ?

2.and there is no file : configs/train/kitti.yaml, and you didn't mention that training network in kitti dataset, only mentioned evaluating Predator on KITTI test set in README.md, So you have not make  the training code/config files on kitti dataset public ?

hi,
Thanks for your interest. To answer your question:

I will make it public
I will provide the config file

Please see: https://github.com/overlappredator/OverlapPredator/issues/15#issuecomment-862404089, and https://github.com/overlappredator/OverlapPredator.Mink/issues/3. I am busy with other projects BUT will update them ASAP.
best,
Shengyu

OK, thanks a lot.

hi,

I have updated KITTI pretrained models
For training, I use the curriculum training strategy. Specifically, I start with max_points in circle loss being 512, then increase it to 1024 and 1536, this helps learn sharp features in the end.

Best,
Shengyu

hi,

I have updated KITTI pretrained models
For training, I use the curriculum training strategy. Specifically, I start with max_points in circle loss being 512, then increase it to 1024 and 1536, this helps learn sharp features in the end.

Best,
Shengyu

Thank you : )


Added support for selecting DB in redis

@aleksen : Could you please change the package name back to github.com/aleksen/gohort/shortener in main.go

Does that do the trick?

LGTM.


https://adoptopenjdk.net/upstream.html (8, 11)

Summary

Steps to reproduce

Expected results
Actual results
Triaging info
Java version:

What is your operating system and platform?

How did you install Java?

Did it work before?

Did you test with other Java versions?

This report contains no content.


[Question] [HELP] Installation On Windows

To Reproduce:

Downloaded Mango file from Release page
Open CMD
cd C:/Mango Server
Run Mango

Error: 'mango' is not recognized as an internal or external command, operable program or batch file.

There's no native windows support at this moment. You can either run Mango in WSL or use Docker. See https://github.com/hkalexling/Mango/wiki/Platform-Support


Problem using @AfterSuite and dataProvider together

Hi,
I'm trying to get @AfterSuite and dataProvider to work together but I'm always getting a Method testJavaLogFile requires 1 parameters but 0 were supplied in the @Configuration annotation. error.
My use case is that I want a test to be run at the end of our Selenium suite to test that our application logs don't contain any error or exception. I implemented that with:

A @DataProvider annotated method that provides the name of the log files to check
A test method that check the content of each log:

@Test(dataProvider="logFiles")
@AfterSuite(alwaysRun=true)
public void testJavaLogFile(String logFile) {
    ...
}

I want this method to run last (hence the @AfterSuite) and I want it to always run regarding of the tests failures (alwaysRun=true). Since I want to use the data provider on it I had to annotate it with @Test as well.
I suspect that's what may be tripping TestNG? The method is correctly executed with the data provider at the end of the run, but TestNG also tries to run it as an individual test due to the @Test annotation and fails because it's missing a parameter?
Is there a way to achieve what I'm trying to do? (@AfterSuite doesn't seem to take a dataProvider attribute).  I'm using TestNG v6.8.5 but I'll bump the version to the latest today just to confirm it's still a problem.
Cheers,
Nicolas

@Test(dataProvider="logFiles")
@AfterSuite(alwaysRun=true)
public void testJavaLogFile(String logFile) {
    ...
}

is not legal. You have separate test methods and after* methods.
If you want to have your data provider result, you can store it into the TestContext which is available everywhere.

is not legal

Fair enough, but it's not documented (AFAIK), possible to do and the error message is not very clear, so there may be room for improvement here ;)
I think adding support for @AfterSuite(dataProvider=...) could make sense. An @AfterSuite could be considered a test method after all, so it should support everything a @Test annotated method do?
Thanks for the TextContext pointer, I guess that could work but if I'm not mistaken I'll have to manually iterate over the list of log files, so I'll lose the fact that each log file was treated as a separate test (in the reporting for instance) and the test will fail immediately at the first failing log file (unless I manually take steps to prevent this), that's where the data provider came in handy...
Thanks,
Nicolas

there may be room for improvement here

For sure! But it is the first time I see someone trying to use the same method as a test method + a after method.

An @AfterSuite could be considered a test method after all, so it should support everything a @Test annotated method do?

I'm not an expert of the theory, but before and after methods are not tests. Before methods are often used to prepare the tests, and after methods are often used to stop what before methods have just started.
@cbeust What is your opinion?

I manually take steps to prevent this

Yes, why not?

Thanks for your reply.

Yes, why not?

I definitely can, but the data provider would be nice to use here to have separate reporting on each test instance, rather than having to manually build a list of "failures" and assert a single time at the end.

Your test design (an after method as a test) is weird for me, but I propose you describe it on the mailing list and/or stackoverflow to have another point of view than mine :)


Remove shortcut methods from templates model

The Templates model contains a few methods that I believe must have been introduced as shortcuts to make it easier on the UI side. They don't really belong in the template though. We should remove the methods and replace any calls to them with the following.
Remove self.templates_org_type and replace with:
templates = Org.where(published: true, org_type: [org_type]).templates

Remove self.funders_templates and replace with (note this one doesn't check the published status ... should it!?):
templates = Org.where(org_type: :funder).templates

Remove self.own_institutional_templates and replace with:
templates = current_user.org.templates

Remove self.funders_and_own_templates and replace with:
templates = current_user.org.templates
templates += Org.where(org_type: :funder).templates

Remove org_type method. We should use:
template.organisation.org_type

closing this one as it will be covered as part of #1340


UDP support?

Hi!
Is there any support for glisten to do listen for UDP traffic? Thanks

The structure of this library is pretty tied to how TCP works.  It's crossed my mind to try to make it agnostic, but I'm not really sure how possible that is.  Or really how much I want to try to rewrite this to handle that.
I published a super barebones UDP server.  I honestly haven't used UDP in any capacity for a long time, and even then it wasn't very much.  So I don't know how good it is 😅 I'm definitely open to issues there!


Tags - "Required" text is missing for required tags

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.61-0
Reproducible in staging?: Y
Reproducible in production?: N
Found when validating PR : https://github.com/Expensify/App/pull/37388
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:
Precondition:

Setup collect policy in OD for Tags and Categories and invite employee account to created policy
Enable "People must tag expenses"
Enable multilevel tags in OD
Create or import two or more multi-level tags
Disable toggle "REQUIRED" for half multilevel tags

Steps:

Open https://staging.new.expensify.com/

Sign In with employee account

Navigate to Workspace chat

Tap on plus button

Select Manual tab

Write any amount and click on Continue button

Click on Show more

Scroll down to multilevel tags

Expected Result:
"Requered" text should be displayed in ND against required tags
Actual Result:
"Required" text is missing for required tags in RHP in ND when required option enabled in OD
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
https://github.com/Expensify/App/assets/115492554/ec8f6586-804b-4b16-aace-2acd2c6e9619
Independent - Multi Level tags.csv

View all open jobs on GitHub

@mallenexpensify I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors.

We think this issue might be related to the #collect project.

Production
https://github.com/Expensify/App/assets/115492554/a88e1739-0cf9-44cb-8e1e-04e10923d408

cc @MonilBhavsar as you worked on that issue

bump @akinwale @dukenv0307 @MonilBhavsar  could you take a look at this and the linked PR

Cross-posted in the issue

@MonilBhavsar , since you're familiar with the issue that led to this regression, do you agree with @dukenv0307 's assessment above that this is BE?

I am not able to reproduce
Tag's required property is always set for me

Tried to manually setup multi-level tags and wasn't able to

Added retest-weekly to see if others can repro.  Thanks @MonilBhavsar for checking/testing.

I did just setup tags via NewDot and required that they be used

When I submitted an expense on my test account for that workspace, I wan't told that a tag was required.

@MonilBhavsar I was able to reproduce the required property not being present in the BE response using the independent multi-level tags from the CSV file uploaded in the OP.
In OD, "Use multiple levels of tags" is enabled.
In the OpenDraftWorkspaceRequest response, for the tags with Required enabled in OD, there is no required property present at all. On the other hand, if Required is disabled, the required property exists and is set to false. I have included a screenshot which shows an example of this response (Department has Required enabled while Four does not).

cc @mallenexpensify

This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989

@mallenexpensify is this still occurring?

Was able to reproduce. Thanks @akinwale for the breakdown, I think I missed the link to the csv file with the tags.  I made this external, if anyone disagrees, plz comment.
https://github.com/Expensify/App/assets/22508304/92790f86-5a56-433c-80ba-1e8b654332d2

@mallenexpensify I think this is supposed to be a backend fix as outlined here. Previously required was only sent if the value was true, but we're seeing the reverse behaviour here.
Also, since this was discovered due to https://github.com/Expensify/App/issues/37095,  I think it can be considered as a separate issue instead of a regression.

cc @MonilBhavsar on the https://github.com/Expensify/App/issues/39916#issuecomment-2087882551.

Issue not reproducible during KI retests. (First week)

Ah okay, let's fix it from backend separately and not consider it as a regression
May be we fixed as it's not reproducible?

@grgia do you agree this requires a back end fix? If so, let's make it Internal
gijoe0295, since this was labeled 'Help Wanted', if we use code from your proposal, you'd be compensated

@grgia 👀 plz on the above when you have a min (it's not high priority)
https://github.com/Expensify/App/issues/39916#issuecomment-2091999562

@mallenexpensify I updated to internal, but is it still reproducible?

Was able to reproduce

@grgia @MonilBhavsar are either of you interested in and able to fix this? If not I'll try to rally someone in #wave-collect and #engineer.   It seems like a significant bug, I imagine many folks require tags.

Yeah, I need to unassign, so we can add this to hot-picks

@carlosmiceli might be a good one to look into!

Yes, thank you @grgia! I imagine I should be able to start working on it next week. Is that a realistic/useful timeframe, @mallenexpensify ?

Yup, that works.  Want me to assign you @carlosmiceli ?!?!?

@mallenexpensify do you think this needs to be daily or could it be weekly? Just trying to be realistic with what I have on my plate, but definitely want to take it.

I can take this now @mallenexpensify ;)

@mallenexpensify @grgia found the issue: when we import we don't set the required value for all tags in the DB. Will think of best way to fix and complete soon :)

Hey, this is causing a deploy blocker, so I'm reverting it [BugBot] [STAGING] - Expensify\Policy\MultiTagUpdaterConfig - requiresTag setting was specified in Policy_Tags_Import and that has been depre - WARN_8fbfcadd8fc5c53ce7a989f36e2e3904

I see the issue now, need to learn how to change the event payload I think. @neil-marcellini What's the proper way to fix a revert and submit again in a case like this one?

New PR to fix reversion: https://github.com/Expensify/Web-Expensify/pull/42286

Already deployed to prod.

@gijoe0295, the best practice is to review the PR and your proposal. If you think significant code you proposed is used, share that in a post here and recommend the compensation amount, ideally using a percentage of the job amount, with 100%, 50% and 25% being the standards.  For the job price, let's assume this job would be the default/standard $250.  Please cc @eVoloshchak for 👀 too.
The other option is for @carlosmiceli to comment if they specifically reviewed and used your code. If so, @carlosmiceli should propose the compensation percentage they feel is fair (100,50,25%)

I think the investigation was not related to the implementation but it did help us skip looking into the FE for problems, so I think 25% compensation is fair. cc @mallenexpensify

Issue not reproducible during KI retests. (First week)

@gijoe0295 can you please accept the job and reply here once you have?
https://www.upwork.com/jobs/~018e0cc7dd6abb5f54

Issue not reproducible during KI retests. (Second week)

Contributor: @gijoe0295 paid $75 via Upwork
Thx!


[Websub]No service matching found error when service listen on path /

Description:
When created a websub subscriber service as follows, which listen on path /, following error get thrown
no matching service found for path : /

Sample code used,
import ballerina/websub;
import ballerina/io;

@websub:SubscriberServiceConfig {
    target: [
        "https://api.github.com/hub",
        "https://github.com/MadhurangaWije/github-connector/events/*.json"
    ],
    secret: "<YOUR_SECRET_KEY>",
    callback: "<CALLBACK_URL>/",
    httpConfig: {
        auth: {
            token: "<ACCESS_TOKEN>"
        }
    }
}
service / on new websub:Listener(9090) {

    remote function onEventNotification(
                    websub:ContentDistributionMessage event){
        var retrievedContent = event.content;
        io:println(retrievedContent);
    }
}

Also tested by removing / from the service declaration, but still the same error occurs.
Steps to reproduce:
Affected Versions:
Ballerina Swan Lake Alpha 5
OS, DB, other environment details and versions:
Ubuntu 20.04, OpenJDK 11,
Suggested Labels (optional):
websub
Suggested Assignees (optional):

callback is an optional configuration in websub:SubscriberServiceConfig which is used to provide the callback-URL when we run the websub:SubscriberService behind a reverse-proxy or tcp-tunneling software (ngrok etc.). Therefore, is there a reason to use the callback in this case ?
In current websub design we generate random unique URL path segment when / is provided as the service path. This decision was taken since websub has a security concern on the URLs that they should be unguessable and unique. In addition to that, in websub this URL is also used as a form of authenticating the subscriber.

Therefore is there a special reason to go against websub recommendations ?

No, actually there is no any special reason to specifically have only /, this concern was raised because, the previous versions supported to have /. We can follow-up with the suggested way then.
Thank you.


Add example to install CNI by default along with the cluster using terraform module

Add instructions in Readme to install CNI after the cluster installation
Add an example to show how a CNI can be installed

Fixes: https://github.com/equinix-labs/terraform-equinix-kubernetes-cluster/issues/32
Signed-off-by: Ayush Rangwala<EMAIL_ADDRESS>

Ok, tried to run this and found a couple things.
First, I think we want to add the provider block to this example. Right now just trying to run it causes an error cause the provider block is missing and no value for auth_token is defined.
Two, I think the tfvars template could use some changes:
First, rename it to terraform.tfvars.example (small change but means you only have to delete the .example off the end).
Second, I suggest adding some comments to the file like below:
# User API token for Equinix Metal
auth_token           = "YOUR_TOKEN_HERE"
# Optional, choose a specific flannel version, leave blank for latest
flannel_version      = ""
kube_vip_version     = "v0.6.2"
kubernetes_version   = "v1.28.1"
metro                = "da"
# Equinix Metal Project ID
project_id           = "YOUR_PROJECT_ID"
# Optional, where you want to store your SSH key
ssh_private_key_path = ""

First, I think we want to add the provider block to this example. Right now just trying to run it causes an error cause the provider block is missing and no value for auth_token is defined.

Strange behaviour but I ran it on my local without the equinix provider and it was successful. I will try again

Ok, tried to run this and found a couple things. First, I think we want to add the provider block to this example. Right now just trying to run it causes an error cause the provider block is missing and no value for auth_token is defined.
Two, I think the tfvars template could use some changes: First, rename it to terraform.tfvars.example (small change but means you only have to delete the .example off the end). Second, I suggest adding some comments to the file like below:
# User API token for Equinix Metal
auth_token           = "YOUR_TOKEN_HERE"
# Optional, choose a specific flannel version, leave blank for latest
flannel_version      = ""
kube_vip_version     = "v0.6.2"
kubernetes_version   = "v1.28.1"
metro                = "da"
# Equinix Metal Project ID
project_id           = "YOUR_PROJECT_ID"
# Optional, where you want to store your SSH key
ssh_private_key_path = ""

This removes the unused cpem variable which casued an error message if you defined it in here but didn't use it in the module. It also removes what looks like actual API keys from the example. Finally, I alphabetized the variables.

Yes, that was right. I missed committing adding provider. Fixed that


UnboundLocalError: cannot access local variable 'doc_int_parser' where it is not associated with a value

Please provide us with the following information:

This issue is for a: (mark with an x)
- [X] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce

Setup cloud resources and load data:
$ azd auth login
$ azd env set OPENAI_HOST openai
$ azd env set OPENAI_ORGANIZATION $OPENAI_ORGANIZATION
$ azd env set OPENAI_API_KEY $OPENAI_API_KEY
$ azd up # To deploy the new resources
$ chmod u+x ./scripts/*
$ pip install -r requirements-dev.txt # Install the dependencies
$ python ./scripts/prepdocs.py --removeall
Any log messages given by the failure

Traceback (most recent call last):
File "/Users/amarppatel/workspace/saathratri-app-holder/hotelchatbot/./scripts/prepdocs.py", line 425, in
ingestion_strategy = loop.run_until_complete(setup_file_strategy(azd_credential, args))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File<EMAIL_ADDRESS>line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/Users/amarppatel/workspace/saathratri-app-holder/hotelchatbot/./scripts/prepdocs.py", line 87, in setup_file_strategy
".docx": FileProcessor(doc_int_parser, sentence_text_splitter),
^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'doc_int_parser' where it is not associated with a value
Expected/desired behavior

No error and the data in the backend should be deleted along with the index.
OS and Version?

Windows 7, 8 or 10. Linux (which distribution). macOS (Yosemite? El Capitan? Sierra?)
macOS Darwin

azd version?

run azd version and copy paste here.
azd version 1.6.1

Versions

Mention any other details that might be useful

Thanks! We'll be in touch soon.

Hm, did you run "azd up" a while ago? If you ran it today, it should set up your Document Intelligence environment variables, in AZURE_DOCUMENTINTELLIGENCE_SERVICE, but it seems like it's missing. You can delete this lines for now:
        ".docx": FileProcessor(doc_int_parser, sentence_text_splitter),
        ".pptx": FileProcessor(doc_int_parser, sentence_text_splitter),
        ".xlsx": FileProcessor(doc_int_parser, sentence_text_splitter),
        ".png": FileProcessor(doc_int_parser, sentence_text_splitter),
        ".jpg": FileProcessor(doc_int_parser, sentence_text_splitter),
        ".jpeg": FileProcessor(doc_int_parser, sentence_text_splitter),
        ".tiff": FileProcessor(doc_int_parser, sentence_text_splitter),
        ".bmp": FileProcessor(doc_int_parser, sentence_text_splitter),
        ".heic": FileProcessor(doc_int_parser, sentence_text_splitter),


Replace derive_more

Hey, I see that derive_more is only used in two modules to derive Display. With many proc-macros having moved to syn 2.0 but derive_more not (outside of beta releases), plus being somewhat heavy itself (containing much more than just that Display derive, taking 3.3s to compile on my machine compared to syn's 6s), I think this dependency is a rather big compile time hit for the relatively small value it provides.
Would you accept a PR that replaced all four derived Display implementations with hand-written ones? Alternatively, would you accept a PR that replaced the three Display derives (and two missing Error impls) in error.rs with thiserror::Error derives, and the last Display derive with a manual implementation?

PR is up ^


Error: "E1208: -complete used without -nargs" reported on client start

Environment

Operating System: Windows 11
Neovim version :version: 0.6.1 and Neovide version :version: 0.5.0
NERDTree version, found on first line of quickhelp ?: version 6.10.16
Are you using any of these NERDTree-dependent plugins?
look to config
Provide a minimal .vimrc file that will reproduce the issue.

call plug#begin()

Plug 'arcticicestudio/nord-vim'
Plug 'preservim/nerdtree'
Plug 'Xuyuanp/nerdtree-git-plugin'
Plug 'ryanoasis/vim-devicons'
Plug 'tiagofumo/vim-nerdtree-syntax-highlight'
Plug 'scrooloose/nerdtree-project-plugin'
Plug 'PhilRunninger/nerdtree-buffer-ops'
Plug 'PhilRunninger/nerdtree-visual-selection'

call plug#end()

Steps to Reproduce the Issue

use neovide or neovim on windows (isntalled with scoop)
create nvim/init.vim with above config
run ':PlugInstall'
look for error :>

Current Behavior (Include screenshots where appropriate.)
error reported on startup of neovim and neovide:

running NERDTree does still work, not entirely sure what this effects but it's an error!
Expected Result
No reported error :>

Hi, so I encountered the same problem and I believe it's an issue with the scrooloose/nerdtree-project-plugin plugin.
It has a fix which wasn't merged. https://github.com/scrooloose/nerdtree-project-plugin/pull/2


update tracks list looks, add logic to play / pause

on hover the play / pause button is displayed, button logic added

the pause button doesn't become a play button any more if playback is just paused

the pause button doesn't become a play button any more if playback is just paused

fixed


Missing permission checks on symlink_fs leads to privilege escalation using sudo

Missing permission checks in symlink_fs lead to privilege escalation by creating a symbolic link at /var/sudoers/1000 pointing to a file with a recent timestamp.
sudo uses a token_file with a timestamp to check for previous sudo usages, so it does not prompt the user for a password all the time:
sprintf(token_file, "/var/sudoers/%d", me); /* TODO: Restrict to this session? */

if (need_password) {
	struct stat buf;
	if (!stat(token_file, &buf)) {
		/* check the time */
		if (buf.st_mtime > (SUDO_TIME) && time(NULL) - buf.st_mtime < (SUDO_TIME)) {
			need_password = 0;
		}
	}
}

symlink_fs allows to create file anywhere, as long as it does not overwrite an existing file.
int symlink_fs(char * target, char * name) {
	fs_node_t * parent;
	char *cwd = (char *)(this_core->current_process->wd_name);
	char *path = canonicalize_path(cwd, name);

	char * parent_path = malloc(strlen(path) + 5);
	snprintf(parent_path, strlen(path) + 4, "%s/..", path);

	char * f_path = path + strlen(path) - 1;
	while (f_path > path) {
		if (*f_path == '/') {
			f_path += 1;
			break;
		}
		f_path--;
	}

	debug_print(NOTICE, "creating symlink %s within %s", f_path, parent_path);

	parent = kopen(parent_path, 0);
	free(parent_path);

	if (!parent) {
		free(path);
		return -ENOENT;
	}

	int ret = 0;
	if (parent->symlink) {
		ret = parent->symlink(parent, target, f_path);
	} else {
		ret = -EINVAL;
	}

	free(path);
	close_fs(parent);

	return ret;
}

With the arbitrary file write using symlink_fs, we can create the /var/sudoers/1000 token_file and pass this check without entering the password.
The other filesystem related syscalls use a permission check function, which symlink_fs seems to be missing.
https://github.com/klange/toaruos/blob/e03e2ff189c3d424701a2dd10dc7ffbd55a3f346/kernel/vfs/vfs.c#L509
Over all, the privilege escalation PoC looks as follows:
local@livecd ~$ sudo ls                                                                                [12/30 17:32:52]
[sudo] password for local:
Sorry, try again.
[sudo] password for local:
Sorry, try again.
[sudo] password for local:
sudo: 3 incorrect password attempts
local@livecd 1 ~$ echo "hello" > test.txt                                                                    [12/30 17:32:57]
local@livecd ~$ ln -s /home/local/test.txt /var/sudoers/1000                                                 [12/30 17:33:05]
local@livecd ~$ sudo cat /etc/master.passwd                                                                  [12/30 17:33:33]
root:toor:0:0:Administrator:/home/root:/bin/esh:fancy
local:local:1000:1000:Local User:/home/local:/bin/esh:fancy
guest:guest:1001:1001:Guest User:/home/guest:/bin/esh:fancy
local@livecd ~$                                                                                [12/30 17:33:39]

If the /var/sudoers/1000 file already exists due to a successful login attempt, you can also just write to the file after the timeout.
local@livecd ~$ sudo ls                                                                                [12/30 17:59:16]
[sudo] password for local:
Desktop          README.md        text_layout.krk
local@livecd ~$ sudo ls                                                                                [12/30 18:04:21]
[sudo] password for local:
Sorry, try again.
[sudo] password for local:
Sorry, try again.
[sudo] password for local:
sudo: 3 incorrect password attempts
local@livecd 1 ~$ echo "root please" > /var/sudoers/1000                                 [12/30 18:04:48]
local@livecd ~$ sudo ls                                                                                [12/30 18:04:56]
Desktop          README.md        text_layout.krk

The other filesystem related syscalls use a permission check function, which symlink_fs seems to be missing.
 if (!has_permission(parent, 02)) {

Ah, even that's wrong... that's only checking for w but it needs to be wx...

If the /var/sudoers/1000 file already exists due to a successful login attempt, you can also just write to the file after the timeout.

This seems to work because of a combination of two things - we're never examining directory 'search' permissions... so while there's a check is there that you can't otherwise edit the directory entries because /var/sudoers is 0700, you can still manage to open /var/sudoers/1000 directly, and further, the permission mask sudo uses when creating the token files is also a+rw, so anyone can write to those existing token files (it also creates those files with the group id for the original user... but I'm not sure that matters?).
I think this should suffice to fix the wx problem across the board (almost missed unlink when I was typing this up...), as well as the missing x search checks when opening files in general (though I've realized a design issue with kopen where we can't properly communicate the permission failure - that'll take a bit more reworking and we'll have to settle for things throwing ENOENT for now...):
diff --git a/kernel/vfs/vfs.c b/kernel/vfs/vfs.c
index bf4c559f..11fd8e9e 100644
--- a/kernel/vfs/vfs.c
+++ b/kernel/vfs/vfs.c
@@ -392,8 +392,10 @@ int create_file_fs(char *name, mode_t permission) {
 		return -ENOENT;
 	}

-	if (!has_permission(parent, 02)) {
-		debug_print(WARNING, "bad permissions");
+	/* Need both exec and write on the parent to create a new entry */
+	if (!has_permission(parent, 02) || !has_permission(parent, 01)) {
+		free(path);
+		close_fs(parent);
 		return -EACCES;
 	}

@@ -441,7 +443,7 @@ int unlink_fs(char * name) {
 		return -ENOENT;
 	}

-	if (!has_permission(parent, 02)) {
+	if (!has_permission(parent, 02) || !has_permission(parent, 01)) {
 		free(path);
 		close_fs(parent);
 		return -EACCES;
@@ -499,17 +501,11 @@ int mkdir_fs(char *name, mode_t permission) {
 		return -EEXIST;
 	}

-	fs_node_t * this = kopen(path, 0);
-	int _exists = 0;
-	if (this) { /* We need to do this because permission check stuff... */
-		close_fs(this);
-		_exists = 1;
-	}
-
-	if (!has_permission(parent, 02)) {
+	/* Need both exec and write on the parent to create a new entry */
+	if (!has_permission(parent, 02) || !has_permission(parent, 01)) {
 		free(path);
 		close_fs(parent);
-		return _exists ? -EEXIST : -EACCES;
+		return -EACCES;
 	}

 	int ret = 0;
@@ -564,6 +560,13 @@ int symlink_fs(char * target, char * name) {
 		return -ENOENT;
 	}

+	/* Need both exec and write on the parent to create a new entry */
+	if (!has_permission(parent, 02) || !has_permission(parent, 01)) {
+		free(path);
+		close_fs(parent);
+		return -EACCES;
+	}
+
 	int ret = 0;
 	if (parent->symlink) {
 		ret = parent->symlink(parent, target, f_path);
@@ -1095,6 +1098,15 @@ fs_node_t *kopen_recur(const char *filename, uint64_t flags, uint64_t symlink_de
 			return node_ptr;
 		}
 		/* We are still searching... */
+		if (!has_permission(node_ptr, 01)) {
+			/*
+			 * TODO: kopen_recur has no way to pass along a failure reason?
+			 *       This will appear as 'ENOENT' instead of 'EACCESS', should fix that...
+			 */
+			free(node_ptr);
+			free((void*)path);
+			return NULL;
+		}
 		debug_print(INFO, "... Searching for %s", path_offset);
 		fs_node_t * node_next = finddir_fs(node_ptr, path_offset);
 		free(node_ptr); /* Always a clone or an unopened thing */


Add new dataset routes

Codecov Report

Merging #339 (71c7f7a) into main (21be6b4) will decrease coverage by 1.04%.
The diff coverage is 34.97%.

@@            Coverage Diff             @@
##             main     #339      +/-   ##
==========================================
- Coverage   71.31%   70.27%   -1.05%
==========================================
  Files         180      182       +2
  Lines        7439     7616     +177
  Branches      555      595      +40
==========================================
+ Hits         5305     5352      +47
- Misses       2002     2131     +129
- Partials      132      133       +1

Impacted Files
Coverage Δ

pyEX/common/__init__.py
100.00% <ø> (ø)

pyEX/tests/test_api.py
100.00% <ø> (ø)

pyEX/platform/platform.py
23.62% <23.62%> (ø)

pyEX/common/urls.py
35.11% <32.78%> (-0.36%)
:arrow_down:

pyEX/metadata/__init__.py
68.42% <33.33%> (-8.05%)
:arrow_down:

pyEX/client.py
63.66% <66.66%> (-0.41%)
:arrow_down:

pyEX/timeseries/timeseries.py
51.51% <66.66%> (-0.66%)
:arrow_down:

pyEX/__init__.py
100.00% <100.00%> (ø)

pyEX/platform/__init__.py
100.00% <100.00%> (ø)

pyEX/rules/__init__.py
28.57% <100.00%> (-4.77%)
:arrow_down:

... and 1 more

Continue to review full report at Codecov.

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


Turning off receiving limit

Probably I'm in the wrong repository, but I think this is the fastest way. The customer service is making me crazy and says there is no bug....
German Paypal, trying to to turn off the receiving limit. So what have I done:
Trying to set myself as the only owner of a capital company. At the first click nothing happens, at the second click I receive the error pop up.
(Browser: Firefox)
I hope someone can help.
Best regards
Timm

Hi,
This repo is more for javascript integrations, specifically, but I'm hoping @trainerbill can help triage this to the right folk.

@timmtrede I am asking around.  When I find someone is there an email that they can reach out to you at?

<EMAIL_ADDRESS>Thanks

Thanks.  I am reaching out to some contacts in Germany but may not hear back till tomorrow.  I am going to close this issue.


[scheduling] Expand slot scheduler to resource scheduler

What do these changes do?
Currently Mars use slot for resource management and bands allocation which just consider cpu/gpu but no memory. Mars always allocate one slot which represents one core cpu or gpu for a subtask. It works well most time. But there are some shortcomings like:
Subtasks need less cpu but assigned more which results in low cpu utilization and long execution time
Subtasks need more memory and less cpu which leads node OOM
So we could develop more granular resource management and allocation to increase resource utilization, improve scheduling efficiency, and avoid OOM.
Related issue number
Closes #2787
Check code requirements

[ ] tests added / passed (if needed)
[ ] Ensure all linting tests pass, see here for how to run them

I think failure of asv benchmark can be ignored, because the modification, the benchmark cannot run on master branch any more. The time in #2875 is 1.09±0.02s, I think this PR does not make the time worse.

I think failure of asv benchmark can be ignored, because the modification, the benchmark cannot run on master branch any more. The time in #2875 is 1.09±0.02s, I think this PR does not make the time worse.

I think so. Thanks for your reminder.


Bug: Cannot read property 'getCharacterList' of undefined

Hi DraftJS team! Thanks for all your hard work on DraftJS!
Bug description:
I've been able to reliably reproduce an exception in both Chrome and Firefox using DraftJS 0.10.1, 0.10.2 and 0.10.3. If you try and drag a selection that spans multiple blocks to the end of a paragraph, an exception will occur.
Here's a GIF of the issue:

To reproduce:

Write two paragraphs of text.
Select from the end of the first paragraph to somewhere in the second paragraph (in other words, the selection should span the blocks)
Try and drag that selection to the end of the second paragraph.

What happens:
The text does not move, and this unhandled exception appears in the console:
Draft.js:5579 Uncaught TypeError: Cannot read property 'getCharacterList' of undefined
    at removeForBlock (Draft.js:5579)
    at removeEntitiesAtEdges (Draft.js:5534)
    at Object.replaceWithFragment (Draft.js:847)
    at Object.moveText (Draft.js:843)
    at moveText (Draft.js:7447)
    at onDrop (Draft.js:7437)
    at Draft.js:6579
    at Object.ReactErrorUtils.invokeGuardedCallback (react.js:10560)
    at executeDispatch (react.js:2862)
    at Object.executeDispatchesInOrder (react.js:2885)

What should happen:
The text should be moved, and the document should respect the newlines that were included in the selection. Here is how Google Docs handles the same operation:

@seejee Hi, I am having same problem and it seems that I found why.
DraftModifier.moveText is not looking what should be done first. Basically there are two steps that need to happen,

remove text from source selection
insert text to destination selection

Those two steps are done but based on position of source/destination selection those steps needs to reorder.
text source something destination end of sentence.
then you need to insert first and then remove
but if
text destination something source end of sentence.
then you need to remove first and then insert.


Dashboard icon colors need to be updated

As a: color blind user
I want: to see colors on the icons in dashboard
So that: I can infer the status of deployments in the dashboard
Describe the solution you'd like:
Right now, the colors being used on the dashboard are not color blind friendly.

[ ] Update the dirty yellow icon for warning on the left column to a red color from this page.
[ ] Update the clock waiting icon on the left column to match the yellow waiting icon on the Approval PR column
[ ] Make sure colors of icons across the entire page are consistent with colors recommended on this page.
[ ] The red color of left column icon and the one for failed build pipeline in the center of dashboard is not quite the same.

Acceptance Criteria:
Dashboard colors are more user friendly
Describe alternatives you've considered:
Additional context:
Does this require updates to documentation?: No

On further investigation, it seems that the status indicator we're using from the azure-devops-ui library does have a color prop but it does not respect it, so on trying to add colors for any of these icons i'm finding them turn black instead of respecting the color I provide. May have to open a bug with azure-devops-ui.


"Parsing error: Unexpected token" when invoking anonymous arrow-functions

The parser fails when invoking arrow functions inline, like so:
const fourtyTwo = () => { return 42 }()
//                                   ^ Unexpected token

Minimal reproduction:
()=>{}()
//    ^ Unexpected token

Workarounds:

Use function instead:

const fourtyTwo = function () { return 42 }()
// This works fine

Wrap the arrow function with parens:

const fourtyTwo = (() => { return 42 })()

If you ever get Unexpected token then it's an issue with babylon the parser (either unsupported or a syntax error)
In this case, I don't think that is valid so you would have to wrap it in parens like you added above. You can check on http://astexplorer.net/ for the other parsers as well


fix(theme): allow empty code blocks and live playgrounds

Motivation
An empty code block should render as a code block, not an inline code block
An empty code block can be a live playground
Fix https://github.com/facebook/docusaurus/issues/9699
Note: MDX will emit no children prop if the code block is empty or has a single line, which is kind-of surprising but we'll handle it.

Also extracts CodeInline to make it easier to swizzle and customize without ejecting <MDXCode/> (the RN website does that)
(MDX v1 used to have a spacial inlineCode component but it was removed in v2: https://mdxjs.com/migrating/v2/)
Test Plan
dogfood + deploy preview
Test links
https://deploy-preview-9704--docusaurus-2.netlify.app/tests/pages/code-block-tests#empty-code-blocks-edge-cases

@lebalz I understand your intent was likely to create an empty react-live playground (https://github.com/facebook/docusaurus/issues/9699)
However, it seems that react-live does not support well an empty editor (cc @carloskelly13)
Cf the demo on react-live site: https://formidable.com/open-source/react-live/

Not sure what you would expect the empty editor to render, curious to know more about the use case you have in mind.

Thanks @slorber for the fix 😍
Actually i'm using empty codeblocks for an education page where the students can write and execute python code in a similar manner as the live playground (with a custom python codeblock theme...). And i have a playground where the students find empty codeblocks to try stuff as turtle graphics and so on... https://ofi.gbsl.website/playground
During the upgrad to docusaurus v3 this bug popped up and i thought the reported usecase would apply for live codeblocks too, but i didn"t try out the scenario - obviously it does not make sense in that usecase... sorry for that.


New package: StochasticGene v0.1.0

Registering package: StochasticGene
Repository: https://github.com/nih-niddk-mbs/StochasticGene.jl
Created by: @ccc1685
Version: v0.1.0
Commit: 88e91998e22458fa3e010f255f4bba5de7f169af
Reviewed by: @ccc1685
Reference: https://github.com/nih-niddk-mbs/StochasticGene.jl/issues/1#issuecomment-990381431
Description: Julia module to fit and analyze stochastic gene transcription models

@ccc1685 please see the message above.  Once you fix the automerge issues you can register again the new revision without changing the version number and this pull request will be automatically updated.
Side note, it'd be good to actually have a robust test suite, instead of an empty set.
[noblock]


Create "How to Create New Users" documentation

Does this need to be part of a larger page with additional info, or a standalone page?
Other possible things this could be grouped with?  Seems fundamentally different to me than "How to create a Form/Fund/Round/" page, for instance.
Maybe belongs with "Roles" page? (just don't want it to get lost)

Maybe a "Hypha administration" section?


Defer initialization of size of BatchNormalization and infer it at first iteration.

The input dimension of several links (e.g. L.Linear, L.Convolution) do not have to be fed and is inferred by the minibatch size of the first iteration. Theoretically we should do the similar thing with L.BatchNormalization.

Hi, I started working on this issue. To implement this lazy inference,BatchNormalization needs to know an axis or axes of channel dimension(s) in an input tensor, instead of a size or a shape of input channels. My work-in-progress implementation has BatchNormalization with a constructor like
def __init__(self, axis=1, decay=0.9, eps=2e-5, ...):

where axis is an int or a tuple of ints that specifies an axis or axes of channel dimension(s) in an input tensor. The default value of 1 assumes that a mini-batch size is at the first dimension, channels is at the second dimension and the rest is the spatial dimensions of a sample.
But this will break compatibility with existing code.
Is there any better approach to implement this feature? What do you think?

Thank you for your interest! I would suggest that the improved implementation should accommodate the original usages. If users assume the original API use this API, the function wrongly interpret the first argument as axis.
Similar problem occurred when we introduce input size inference of L.Linear. So its implementation could be helpful.
One idea I come up with is to apply two-step change.

Add None to the types that size accept and add axis argument. If size is None, axis is used to infer the channel dimension(s).
Allow users to remove the first argument. If the first argument is removed, users have to specify non-default options as keyword arguments (See the document of L.Linear).

Thanks for the feedback. I will continue working on it.

Hi. Can you spare time to continue to work on this? If it is difficult, we may take over your work. thank you.

Sorry, I've forgot this, but I'm still willing to work on it.  Can you give me a few days to see how far I can go?  If you have a coming deadline and have little time, I'm happy to hand this over to you.

Thank you for your reply. We do not have any special deadline. I would happy if you work on it.

Hi, how are you?

Thanks for reminding me. I just made a pull request (#4149) addressing this issue.

Thank you!

We are now working on this issue in PRs #4266 and #4149.