sensor failure after prolonged deployment outdoors

My MoonRabbit quit reporting values after a couple of weeks outdoors (protected from rain).  I brought it inside, but it would not boot up.  I re-flashed the SD card, reloaded the Rabbit software, and repositioned it outside.  I worked briefly and then failed again.  It is reporting the same value repeatedly.  Since it is still delivering a webpage, I assume that the Pi is working but not the sensors.  I will bring it in and replace the sensors and redeploy it.

I have unplugged the device, brought it inside, and powered it up again.  It is continuing to report the same values as it did previously when it was outside.  I will now 'update' the software and see what happens.

I have no confirmation that the software was indeed updated.  The device did not power off and reboot, but then I do not know if it was expected to do that.

The manual reboot resulted in the sensors reporting new data.  I will keep it inside for now.

It is reporting the same value repeatedly.

Good to know.  This is a locking problem.
Steve.

On 15/12/2024 15:50 GMT hrickdiz @.***> wrote:
My MoonRabbit quit reporting values after a couple of weeks outdoors (protected from rain). I brought it inside, but it would not boot up. I re-flashed the SD card, reloaded the Rabbit software, and repositioned it outside. I worked briefly and then failed again. It is reporting the same value repeatedly. Since it is still delivering a webpage, I assume that the Pi is working but not the sensors. I will bring it in and replace the sensors and redeploy it.
—
Reply to this email directly, view it on GitHub (https://github.com/SteveBz/MoonRabbit/issues/10), or unsubscribe (https://github.com/notifications/unsubscribe-auth/AAMR37QWHMBF66KK2KLG5JT2FWQLFAVCNFSM6AAAAABTUVFDH6VHI2DSMVQWIX3LMV43ASLTON2WKOZSG42DANZRHE4DMOA).
You are receiving this because you are subscribed to this thread.Message ID: @.***>


Farming wont work

Hello,
I setup bot properly. After first successful start all account online but half of them only idle in games remaining accounts are online bot not in the game. I try and send them trade offer they accept it but chat command wont work. When I restart bot only few account idle in games other just online and again trade work but chat command wont. I run 0.5 version on windows 7. Any idea or advice?

Update to 0.6 first, maybe this fixes some problems for you. Are you sure those accounts which aren´t idling games have card-drops left? How much bots are you using?

https://github.com/JustArchi/ArchiSteamFarm/issues/10

Try https://github.com/JustArchi/ArchiSteamFarm/releases/tag/<IP_ADDRESS> if you're brave.

Thanks 0.6 works fine now.


Search doesn't work with Cyrillic (Russian, Ukrainian) text

To reproduce:

create a post with the title "Тест" ('test' in Russian).
create another post with the title "Test".
Try searching for "Тест" - nothing shows up.
Search for "Test" - our post shows in the results.

Edit - issues:

https://github.com/weixsong/elasticlunr.js/issues/76
https://github.com/olivernn/lunr.js/issues/318

Possible solution - https://github.com/MihaiValentin/lunr-languages has support for Russian. Will give it a try.

Hey @solarfl4re, sorry about the huge delay! We're not planning to add Cyrillic support to search function by default.
Here is a repo for elasticlunr.js language support. And here is a helpful comment from the maintainer for integrating different language than English in the library.
Our forum is also a great place to get community support.
Thanks!


Sites don't render unless published

With the current design its not possible to render a site before its published.
Static genereation accesses the master branch on build. So that mean no generation unless the master endpoint is available.
The first time a develoepr sets up a project they will expect it to render something. Unless they publish (Who publishes a site that shows an error?) it will not work.
The new app-guillotine endpoints have the same issue. They have a draft and master version, so it will cause the same issue. No site will render unless published.

This problem should be fixed with transition to app-guillotine

This is true even with app-guillotine:
{
  "data": {
    "guillotine": {
      "getChildren": null
    }
  },
  "errors": [
    {
      "errorType": "DataFetchingException",
      "message": "Exception while fetching data (/guillotine/getChildren) : Error: Site not found.",
      "locations": [
        {
          "line": 4,
          "column": 5
        }
      ],
      "exception": {
        "name": "com.enonic.xp.resource.ResourceProblemException",
        "message": "Error: Site not found."
      }
    }
  ]
}


Namespace management commands

Currently the management commands are flag, sample, and switch. But those are all fairly common words. It'd be more polite to other libraries to do waffle_flag or waffle flag (the former is easier and perfectly clear).

@jsocol I'd be happy to take this one if you want.


augment libc++ test for smart pointers

Confirms behavior of new and delete using best-practices API.
This also requires a change to the testsuite to use the correct type for the condition argument.

Blocked by https://github.com/zephyrproject-rtos/zephyr/issues/18999#issuecomment-531483984


ARROW-11427: [C++] On Windows, only use AVX512 when enabled by the OS

AVX512 may be supported by the CPU but not by the Windows kernel (which needs to save and restore 512-bit registers on context switch).
Also, add a GetRuntimeInfo() API and the corresponding Python function pa.runtime_info() to query the current SIMD level.

cc @jianxind

+1 for GetRuntimeInfo, I wanted that when I was debugging ARROW-11217

The fix has been verified to work.


Scripts for re-generation of textures for the editor don't work

Operating system or device - Godot version:
Mageia 6
Godot 3.0 69a4ea34c4f630c1ca353a135d768872bb54cd41
Issue description:

edit: This glitch is actually the "ERROR" image repeating over. I'll check if something is wrong with my build.
Steps to reproduce:
Create a new project and copy-paste assets from another folder to the new project folder. Switch to Godot editor while importing so you can see the import popup.
Link to minimal example project:
N/A

That happens because the Icons header is not updated, i remember that before it could be commited, but now it does not get pushed when i regenerate it. to fix simply call the SVGS_2_PNGS script

I have the same issue.. tried running the script but didn't help...

maybe if you manually call make_headers.py in editor/icons folder?

I tried to run both scripts:

misc/scripts/SVGS_2_PNGS.py complains about "No module named 'rsvg'` (on Mageia6)
scene/resources/default_theme/make_headers.py fails at line 12 with TypeError: a bytes-like object is required, not 'str'
I was able to fiw by re- git clone and recompile from scratch.

I guess I'll close the issue since the problem is known, and scripts exist to fix it. Or maybe I should re-title it so it concerns the scripts that won't work instead?

Have you tried running make_headers.py using python2.7?

@Hinsbart i had the same problem when i added those textures to the icons folder, however in my case regenerating the icons was enough for scons to regenerate editor_icons_gen.cpp, i would suggest you to check that file and see if you are able to locate the missing textures, if they are not there, it means that the file is not being correctly generated, the reason for it not being generated should be examined.

Alright, deleting editor_icons_gen.cpp did the trick. I thought I did this before but I removed the old editor_icons.cpp instead, not knowing the file has been renamed :P

We really should integrate nanosvg and generate icons for the right resolution on the fly.. no one is up for this? :\ I could give it a try, but have so many things to do/fix..

icons are now generated on the fly, so closing this.


Token contract

Token contract currently doesn't work, because _init is not allowed anymore.
Also on the master templates folder doesn't have current templates.

Also on the master templates folder doesn't have current templates.

@ilblackdragon may you be more specific? Do you mean it's out of sync with docs?

@ilblackdragon
Updated templates to avoid using _init. Re-open if anything else is needed.


MongoDB system.indexes: Cannot read property 'toString' of undefined

Repro steps:
Right-clicked on system.indexes and selected Open Collection.
I also see "Error: Cannot read property 'toString' of undefined" in the tree view when I expand some, but not all, system.indexes nodes.
Using MongoDB version 3.6.4 on WSL.
Overall this is still just an excellent extension - thanks!
Action: cosmosDB.openCollection
Error type: TypeError
Error Message: Cannot read property 'toString' of undefined
Version: 0.7.1
OS: win32

Hi @eug48,
Thanks for using the extension! We could not repro the issue on our end. If you want to see a collection's indexes, consider using the command db.collection.getIndexes() instead.

Yes, the system.indexes collection isn't even shown anymore (I'm now using MongoDB 4.0).


Add Gradio Support for WebUI

Awesome implementation, have you considered adding Gradio as a UI layer for users to access the generation through the browser?

Hi, @nickmitchko.
I hadn't thought of doing the generation via browser, but it sounds more accessible.
For your information, this is a demo that is not local but allows for easier 3D model generation using Shap-E via browser (https://huggingface.co/spaces/hysts/Shap-E)


completions for a DivElement are duplicated

(will follow up with a code example)

dartpad.dartlang.org/d593ff0011c8a24bb8b1

Seems to be that one is a getter and the other is a setter:

Good find; looks like the issue is more about differentiating them in the UI.


fix cannot disable date before minDate / after maxDate

+1

Hi, would you mind adding a failing please ? Thanks.

Just created this PR https://github.com/quri/react-bootstrap-datetimepicker/pull/171 but looks like it's a dup of this.

@bpnetguy I also have one #136


How to run code on CPU

Hello Author, how should I modify the code to run the entire code on the CPU?

hi @mocha1908
Running such a large model on the CPU could be horrible. We strongly suggest you use GPU.


provide an API to manage host records

we have a traditional monolithic app that we are moving to microservices on kubernetes.  we would like to use coredns with our test and staging environments.  while coredns can detect the services running on kubernetes, it can not detect the services that are still running on a traditional VM.  we would like our orchestration code to populate the missing host overrides.  as a result, coredns should support one of the common dns apis.  examples might be dnssimple or zerigo.  I considered aws route53 but it is much more complicated.
dns services ruby (fog) supports:
http://fog.io/about/supported_services.html
dns services python (libcloud) support:
https://libcloud.readthedocs.io/en/latest/supported_providers.html#dns
Note, I would be willing to write the code for this issue

Do you expect the services running on VMs to be in the same zone or will you have different zones for k8s and those services?
If they are different zones, you can use a separate middleware (say etcd) to manage those records.
If you want them to be the same zone, it's something we may be able to do with #515 in combination with etcd (or others).
You can definitely build a middleware for any of these APIs. That can live in-tree or out-of-tree depending on how generally applicable it is. For an example out-of-tree middleware (the only one in existence so far as I know) take a look at https://github.com/infobloxopen/coredns-grpc.

[ Quoting<EMAIL_ADDRESS>in "Re: [miekg/coredns] provide an API ..." ]

Do you expect the services running on VMs to be in the same zone or will you have different zones for k8s and those services?
If they are different zones, you can use a separate middleware (say etcd) to manage those records.
If you want them to be the same zone, it's something we may be able to do with #515 in combination with etcd (or others).
You can definitely build a middleware for any of these APIs. That can live in-tree or out-of-tree depending on how generally applicable it is. For an example out-of-tree middleware (the only one in existence so far as I know) take a look at https://github.com/infobloxopen/coredns-grpc.

To echo what John said, to "old" way of service discovery (before k8s) was
skydns + etcd; this is functionality coredns also supports. That API is just
the etcd2 API (etcd3 is an open issue: #341).
The generic DNS api for updating zones is called dynamic updates: rfc2136

Appreciate the quick replies.  The issue with etcd is that I don't believe its meant to be available over the internet (i.e. no api key authentication).  Dynamic DNS is interesting as it uses the DNS protocol.  Need to investigate if this is something easy for orchestration (i.e. something in ruby or Go) to generate.   Let me research both of these options further.

Note that the file middleware currently does not support dynamic updates, nor do any of the other middlewares.
dyn. update + tsig (+optional source ip validation) is usually used here, downside is that tsig is a shared secret. Maybe a REST like protocol layered on top of dyn. updates is something to link into.

Adding a comment here - the referenced repo does not have any code in it. From what I can tell, no solution to this is currently available.
It seems that quite a few users are asking about the same thing - REST API to CoreDNS.

It'd be useful for using CoreDNS with ACME DNS challenge support afaik?
Is there any API that CoreDNS can expose for a separate service could use to update records? It wouldn't need to be exposed to public internet, although a companion service that uses that API could expose a more secure API without burdening CoreDNS devs?
Caddy manages it's internal config in v2 as JSON, exposing an admin REST API for retrieving or modifying it for example.

AFAIK, no one has added this yet. To do this properly, you need:

A "writable" interface for backends to implement. And to implement it for a plugin or two.
A plugin that provides the REST API and allows writing to the backends that support it.
Some way of doing AAA, ideally in a plug-in mechanism that is orthogonal to the API plugin, so that other types of API plugins can be developed.


WIP: Debug machine failed state

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #

/keep-test-v1a5-ubuntu-e2e
/test-v1a5-ubuntu-e2e

/keep-test-v1a5-ubuntu-e2e
/keep-test-v1a5-centos-e2e
/test-v1a5-ubuntu-e2e
/test-v1a5-centos-e2e

/keep-test-v1a5-ubuntu-e2e
/keep-test-v1a5-centos-e2e
/test-v1a5-ubuntu-e2e
/test-v1a5-centos-e2e

/keep-test-v1a5-ubuntu-e2e
/keep-test-v1a5-centos-e2e

/test-v1a5-ubuntu-e2e
/test-v1a5-centos-e2e


DOC-1255 Update GDK and plugin terminology

Primary reviewer: @ElleEss
Summary of changes:
I updated the wording around the GDK/plugin for:

the readme
the versioning page
the tech overview pages, including the networking switch diagram

I also changed "Fork" to "fork" (lower case) throughout, and checked that "plugin" is lower case already.

What I haven't done:

home page
Starter Template
Example Project
get started

What I'll update outside of this repo

any other GDK repo readmes that are confusing

@ElleEss OK, I think this is now ready for review!


News analysis not working

Everything start fine but it hangs when it gets to analysing and it get no error

New Iteration of Stock Scanning
Closed all positions

Market Close
HTTP Error 404: Not Found
News analysis not working for ZIOP
HTTP Error 404: Not Found
News analysis not working for FB
HTTP Error 404: Not Found
News analysis not working for INTC
HTTP Error 404: Not Found
News analysis not working for AAPL
HTTP Error 404: Not Found
News analysis not working for GOOG
HTTP Error 404: Not Found
News analysis not working for AMD
HTTP Error 404: Not Found
News analysis not working for MSFT
HTTP Error 404: Not Found
News analysis not working for AMZN
HTTP Error 404: Not Found
News analysis not working for TWLO
HTTP Error 404: Not Found
News analysis not working for IBM
HTTP Error 404: Not Found
News analysis not working forHTTP Error 404: Not Found
News analysis not working for NVDA
 ETSY
HTTP Error 404: Not Found
News analysis not working for TSLA
HTTP Error 404: Not Found
News analysis not working for QCOM
HTTP Error 404: Not Found
News analysis not working for TWTR
HTTP Error 404: Not Found
News analysis not working for AVGO
HTTP Error 404: Not Found
News analysis not working for NFLX
HTTP Error 404: Not Found
News analysis not working for ROKU


Please help me make a live graph with DateTime on the X axis

Question: Still - how to make a live graph with DateTime on the X axis
ScottPlot Version: I'm using ScottPlot.WinForms - 5.0.23
My task is to visualize data that contains values and recording times. On the Y axis I can use any numeric types, but on the X axis I need DateTime.
I tried "Data Logger" and "Data Streamer" - I really liked the implementation, but the problem is that there is no way to change the data format using X, and in general it is a one-dimensional graph.
On the other hand, I was hooked by "Live Financial Plot", because according to Y it has a numeric format, according to X DateTime and it is updated dynamically (in real time). But I didn't understand how to make a line graph out of it.
I've already seen a user talk about converting the DateTime value to OADates and adding it to the Y axis to do this, but I didn't like that idea, although I understand that SigmalXY is probably a better option.
Please tell me the solution. Attached a picture. I think many users really need this.
Thank you in advance!

Using DataLogger and with DateTime is not that difficult:

var myPlot = new ScottPlot.Plot();

// plot data using DateTime units
int numberOfHours = 24;
var samples = new List<Coordinates>();
DateTime currentTime = new(2024, 1, 1);
foreach(var y in Generate.Sin(numberOfHours))
{
    samples.Add(new Coordinates(currentTime.ToOADate(), y));
    currentTime = currentTime.AddHours(1);
}

var dl = myPlot.Add.DataLogger();
myPlot.Axes.Bottom.TickGenerator = new ScottPlot.TickGenerators.DateTimeAutomatic();
myPlot.Axes.DateTimeTicksBottom();

dl.Add(samples);

myPlot.SavePng("DataLogger_dateTime.png", 400, 300);

// add logic into the RenderStarting event to customize tick labels
myPlot.RenderManager.RenderStarting += (s, e) =>
{
    Tick[] ticks = myPlot.Axes.Bottom.TickGenerator.Ticks;
    for (int i = 0; i < ticks.Length; i++)
    {
        DateTime dt = DateTime.FromOADate(ticks[i].Position);
        string label = $"{dt:hh:mm:ss}";
        ticks[i] = new Tick(ticks[i].Position, label);
    }
};

myPlot.SavePng("DataLogger_dateTimeCustom.png", 400, 300);


[TFLite] Error: TfLiteGpuDelegate Init: MUL: 1024x131  cannot be reduced to linear.

Please make sure that this is a bug. As per our
GitHub Policy,
we only address code/doc bugs, performance issues, feature requests and
build/installation issues on GitHub. tag:bug_template
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): Android 10.0
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: Pixel3
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): org.tensorflow:tensorflow-lite-gpu:2.2.0 / 0.0.0-nightly
Python version: 3.6
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version: X
GPU model and memory:  Adreno 630

You can collect some of this information using our environment capture
script
You can also obtain the TensorFlow version with:

TF 1.0: python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"
TF 2.0: python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"

Describe the current behavior
Hi. I'm trying to serve our model on Pixel3(Android 10), using TFLite's GPU backend.
But, this error makes our app crash. (Both of tensorflow-lite-gpu:2.2.0 and 0.0.0-nightly)
  Process: org.tensorflow.lite.examples.posenet, PID: 30052
    java.lang.IllegalArgumentException: Internal error: Failed to apply delegate: Next operations are not supported by GPU delegate:
    SUM: Operation is not supported.
    First 141 operations will run on the GPU, and the remaining 7 on the CPU.
    TfLiteGpuDelegate Init: MUL: 1024x131  cannot be reduced to linear.
    TfLiteGpuDelegate Prepare: delegate is not initialized
    Node number 148 (TfLiteGpuDelegateV2) failed to prepare.

The error is "TfLiteGpuDelegate Init: MUL: 1024x131  cannot be reduced to linear."
What is the matter and what can I do to utilize TfLiteGPUDelegate?
Describe the expected behavior
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.
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.

Hello @cathy-kim , have you solved the problem?

@zldrobit Actually, No.
I just replace 'MUL'(in TFLite, that operation is the same as 'FullyConnected') to another operation.

@cathy-kim thanks for your confirming.
I see now, and I decide to reconstruct my network.

@cathy-kim
Is this still an issue.

I found a relevant issue where someone seemed to solve the problem.
https://github.com/tensorflow/tensorflow/issues/37102


Quick fix for private tip message tagging

For some reason User.tag includes username#1234, not just 1234 as one would expect, so quick fix so these display properly. Nothing complicated.
Fixes issue #24

I´ll merge this PR as it contains nothing that could cause any problems with any wallets. It´s just a quick fix!


Add LFD workshop FLIM tutorial

Description
This tutorial is a close adaptation of the LFD Workshop computer training tutorial - FLIM section (by E. Gratton, M. Digman, and J. Unruh) using the PhasorPy library instead of the Globals for Images · SimFCS and Excel software.
I was curious how much of the original tutorial could be implemented using the current state of the PhasorPy library.
The following functionality is still missing from PhasorPy to finish the tutorial:

[ ] synthesize time-domain signal (#6, #86)
[ ] filtering, thresholding images (#85, #88)
[ ] cursors (#48)
[ ] component analysis (#47 and #59)

Release note
Summarize the changes in the code block below to be included in the
release notes:
Add LFD workshop FLIM tutorial

Checklist

[x] The pull request title, summary, and description are concise.
[x] Related issues are linked in the description.
[ ] New dependencies are explained.
[ ] The source code and documentation can be distributed under the MIT license.
[x] The source code adheres to code standards.
[ ] New classes, functions, and features are thoroughly tested.
[ ] New, user-facing classes, functions, and features are documented.
[ ] New features are covered in tutorials.
[x] No files other than source code, documentation, and project settings are added to the repository.

Excelent idea Christoph! This is very useful to see what vital aspects of the library are we missing. We can discuss today, but I think this is a very good starting point to think how to approach this missing functionalities and plan the next steps.

Sounds very good and important. I will be happy to collaborate in testing and running the tutorial

A HTML version of the tutorial is available in the artifact of the "Deploy documentation" checks. Extract all the files in the archive to a directory and open index.html with a web browser. Then browse to Tutorials -> LFD Workshop FLIM Tutorial.

Could this PR be merged so it can be updated while adding new features in other PRs?


flatmap-stream

npm install
Not Found: flatmap-stream@http://registry.npm.taobao.org/flatmap-stream/download/flatmap-stream-0.1.1.tgz

This question is available on Nuxt community (#c8263)

Nuxt dont have deps to flatmap stream. Its your dep. Maybe nodemon. Update to latest versions


Restarting calculation fails in this case with multigrid

I am trying to perform gradients calculation on a laptop based on a rks-calculation that happened on a cluster. My script simulates this by first fitting with the RKS object nf which saves a chk-file (this is the simulated cluster). Then make a new rks-object called mf where I read in the chk-file and do not invoke the mf.kernel (this is the simulated laptop). This way I can calculate the gradient on the laptop based on what the cluster did. But this fails because of AttributeError. I tried to do a workaround to fix the problem.
import numpy
import pyscf
from pyscf.pbc import gto, dft
from pyscf import data
import numpy as np
from pyscf.pbc.dft import numint, multigrid

# change this path to whatever you want
chkpath = '/path/to/chkfile/name.chk'

cell = gto.Cell()
cell.a = '''
3.5668  0       0
0       3.5668  0
0       0       3.5668'''
cell.atom = '''C     0.      0.      0.
              C     0.8917  0.8917  0.8917
              C     1.7834  1.7834  0.
              C     2.6751  2.6751  0.8917
              C     1.7834  0.      1.7834
              C     2.6751  0.8917  2.6751
              C     0.      1.7834  1.7834
              C     0.8917  2.6751  2.6751'''

cell.verbose = 5
cell.basis = 'gth-szv'
cell.pseudo = "gth-pade"

cell.ke_cutoff = 500  # kinetic energy cutoff in a.u.
cell.precision = 1e-6
cell.use_loose_rcut = True # integral screening based on shell radii
cell.use_particle_mesh_ewald = True # use particle mesh ewald for nuclear repulsion
cell.build()

nf = dft.RKS(cell)
nf.xc = "LDA, VWN"
nf.chkfile = chkpath
nf.conv_tol = 1e-8
nf.with_df = multigrid.MultiGridFFTDF2(cell)
nf.with_df.ngrids = 4 # number of sets of grid points
nf.kernel()
nf.dump_scf_summary()

"""
This works...
"""
from pyscf.pbc.grad import rks as rks_grad
grad = rks_grad.Gradients(nf)
grad.kernel()

"""
...but after reading in the ao_coeffs from chk, ...
"""

mf = dft.RKS(cell)
mf.conv_tol = 1e-8
mf.with_df = multigrid.MultiGridFFTDF2(cell)
mf.with_df.ngrids = 4 # number of sets of grid points
mf.xc = "LDA, VWN"
mf.__dict__.update(pyscf.pbc.scf.chkfile.load(chkpath, 'scf'))
mf.converged = True

"""
... I get unwanted behaviour
"""

grad = rks_grad.Gradients(mf)
g = grad.kernel()

This is the traceback I am getting.
Traceback (most recent call last):
  File "~/Desktop/scipt.py", line 93, in <module>
    g = grad.kernel()
        ^^^^^^^^^^^^^
  File "~/Programs/anaconda3/lib/python3.11/site-packages/pyscf/grad/rhf.py", line 415, in kernel
    de = self.grad_elec(mo_energy, mo_coeff, mo_occ, atmlst)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~/Programs/anaconda3/lib/python3.11/site-packages/pyscf/pbc/grad/rhf.py", line 61, in grad_elec
    h1ao += -mf.with_df.get_vpploc_part1_ip1(kpts=kpt.reshape(-1,3))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'MultiGridFFTDF2' object has no attribute 'get_vpploc_part1_ip1'

The workaround I attempted to use is to read in a value for vpplocG_part1 from a h5-file that I got from the first calculation (nf.with_df-instance), and set it to that value after loading the chk-file in the mf-instance.
setattr(mf.with_df, "vpplocG_part1", array)

Here is the workaround in action:
import numpy
import pyscf
from pyscf.pbc import gto, dft
from pyscf import data
import numpy as np
from pyscf.pbc.dft import numint, multigrid

# change this path to whatever you want
chkpath = '/path/to/chkfile/name.chk'

def chkappend(path, group, key, array):
    import h5py
    try:
        with h5py.File(path, "a") as hdf:
            try:
                del hdf[f"{group}/{key}"]
            except KeyError:
                hdf.create_dataset(f"{group}/{key}", data=array)
            else:
                hdf.create_dataset(f"{group}/{key}", data=array)
    except ValueError:
        print("WARN: Unable to append {key} to {group}. Perhaps {path} doesn't exist")

cell = gto.Cell()
cell.a = '''
3.5668  0       0
0       3.5668  0
0       0       3.5668'''
cell.atom = '''C     0.      0.      0.
              C     0.8917  0.8917  0.8917
              C     1.7834  1.7834  0.
              C     2.6751  2.6751  0.8917
              C     1.7834  0.      1.7834
              C     2.6751  0.8917  2.6751
              C     0.      1.7834  1.7834
              C     0.8917  2.6751  2.6751'''

cell.verbose = 5
cell.basis = 'gth-szv'
cell.pseudo = "gth-pade"

cell.ke_cutoff = 500  # kinetic energy cutoff in a.u.
cell.precision = 1e-6
cell.use_loose_rcut = True # integral screening based on shell radii
cell.use_particle_mesh_ewald = True # use particle mesh ewald for nuclear repulsion
cell.build()

nf = dft.RKS(cell)
nf.xc = "LDA, VWN"
nf.chkfile = chkpath
nf.conv_tol = 1e-8
nf.with_df = multigrid.MultiGridFFTDF2(cell)
nf.with_df.ngrids = 4 # number of sets of grid points
nf.kernel()
nf.dump_scf_summary()

"""
This works...
"""
from pyscf.pbc.grad import rks as rks_grad
grad = rks_grad.Gradients(nf)
grad.kernel()

"""
...but after reading in the ao_coeffs from chk, ...
"""

mf = dft.RKS(cell)
mf.conv_tol = 1e-8
mf.with_df = multigrid.MultiGridFFTDF2(cell)
mf.with_df.ngrids = 4 # number of sets of grid points
mf.xc = "LDA, VWN"
mf.__dict__.update(pyscf.pbc.scf.chkfile.load(chkpath, 'scf'))
for attr, value in pyscf.pbc.scf.chkfile.load(chkpath, 'with_df').items():
    setattr(mf.with_df, attr, value)
mf.converged = True

"""
... now this works
"""

grad = rks_grad.Gradients(mf)
g = grad.kernel()

Thanks. Restarting the calculation from a chkfile was not considered. I'll fix this in the next release.


PERMISSION ON COPIED FILE

I implemented this and a number of other file & directory copying features in https://godoc.org/github.com/projectriff/riff/pkg/fileutils. It's Apache licensed, so feel free to use it.


Configurable Gas Price

PR for this issue: https://github.com/OriginProtocol/origin-dollar/pull/758


Custom font is not visible when submitting a ticket

Hi,
When using custom fonts for the theme, everything seems to update correctly, except the ticket submission screen. We are not able to see what the user is typing on in the screen. Is this a bug?

Update: Issue is resolved. Please close this. The problem was I swapped font name and size values in the plist. Thanks.

Thank you for the update .


Adding performRequestAsync to SDKRestClient

Description
Adds the performRequestAsync method to SDKRestClient. This allows us to send non-blocking rest requests.
Issues Resolved
https://github.com/opensearch-project/opensearch-sdk-java/issues/644
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #645 (bd74c5c) into main (a16651d) will increase coverage by 0.03%.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@             Coverage Diff              @@
##               main     #645      +/-   ##
============================================
+ Coverage     63.67%   63.70%   +0.03%
  Complexity      263      263
============================================
  Files            52       52
  Lines          1137     1138       +1
  Branches         36       36
============================================
+ Hits            724      725       +1
  Misses          402      402
  Partials         11       11

Impacted Files
Coverage Δ

src/main/java/org/opensearch/sdk/SDKClient.java
92.23% <100.00%> (+0.07%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


add middleware e2e features for app and pages

test middelwares via the appMiddelware and pagesMiddleware pages e2e features, as part of this change remove the no longer necessary middleware unit tests

To do:

[ ] test NextResponse.json
[ ] test response headers modification

Note: in the client side navigation tests I could not test for the absence of hard navigation 😓
I've done that in the ssr features by checking the requests that get sent to the app and make sure that those don't indicate a full page reload, but in this case I couldn't find anything that I could use to discern hard navigation requests from non-hard navigation requests
I've been trying to do other stuff to test that no hard navigation occurs like adding things to the window object (via evaluate) and checking that they are still present when no hard-navigation occurs or trying to get frames and see if they get detached on hard navigation, but nothing seems to work...
I've tried googling it but I couldn't find a clear way in playwright to check that no hard navigation occurs 😕, if someone has some ideas on how to do that please let me know 🙂


add support for sorucehut

Mostly based on gitlab fetcher
Tarball link template from nix source code
Note: i did test this only with offical sourcehut instance in sourcehut:~p00f/clangd_extensions.nvim on MyConfig (nixos, home manger, etc) at here and here

While I am not against adding this here exclusively should we need to, my preferred route would be through an upstream pr to flake-compat.

okay i will sent this patch to flake-compat too, i wasnt noticed this
was fork of it when i created this pr.
should we merge it here and in flake-compat(if it gets merged there) or
merge upstream then merge from flake-compat to get-flake
On 4/22/23 17:57, Mason Mackaman wrote:

While I am not against adding this here exclusively should we need to,
my preferred route would be through an upstream pr to flake-compat.
—
Reply to this email directly, view it on GitHub
https://github.com/ursi/get-flake/pull/2#issuecomment-1518679588, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/A2MAFQMMRBOV3X4YQXVTQWLXCPWWBANCNFSM6AAAAAAXFSQA5M.
You are receiving this because you authored the thread.Message ID:
@.***>

yeah I realized that I actually don't say anywhere explicitly that it's a fork. I should probably do that. Regarding your question, I was planning on merging the upstream change into get-flake.


How can I scrape images off a board from 4chan/8chan? Apparently the source to add it isn't there.

I want to automatically scrape all the images from an entire board on 4chan/8chan however everytime I try to add it to the source list, it says it's unable to get the site's type. What can I do to fix this? I put https://boards.4chan.org/b/ as the url for the source.

I could be wrong, but as far as I know, grabber does not support 4chan/BBS styled imageboards

I could be wrong, but as far as I know, grabber does not support 4chan/BBS styled imageboards

Indeed, they aren't supported yet.
But since v7, they could be added without too much of a problem I guess.

What I want to do is plug in a specific 4chan thread in the search bar, and selectively download specific images in the thread.
Is that possible in the vurrent version of the program?
Should I make a new issue to talk about this feature, or is this close enough to "4chan board ripping" to leave here?

FWIW, I wrote a small utility to download all images of a 4chan thread a couple years ago by collecting various code samples over the net because I was unsatisfied with everything I found. I intended to filter out the things I didn't like later on-disk.
Not sure if it still works, but it's here.


ImportError: libmklml_intel.so: cannot open shared object file: No such file or directory with python 2.7

Ubuntu 16.04
GPU: 1080 Ti
Cuda 9.0
CuDDN 7.0 v7
Using my PC, not a VM
Installed Intel MKL-DNN by this guilde, but looks like something wrong, because when trying to make a test for tensorflow, got error:
gagazet@woof:~/Desktop$` python 123.py
Traceback (most recent call last):
  File "123.py", line 1, in <module>
    import tensorflow as tf
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.py", line 24, in <module>
    from tensorflow.python import *
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 72, in <module>
    raise ImportError(msg)
ImportError: Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
ImportError: libmklml_intel.so: cannot open shared object file: No such file or directory

Failed to load the native TensorFlow runtime.

See https://www.tensorflow.org/install/install_sources#common_installation_problems

for some common reasons and solutions.  Include the entire stack trace
above this error message when asking for help.

Recently someone created same problem and it was closed with reason: PR #12975, but it was for a VM.
Can anyone explain, please, what i can be and how to fix it? Dont have any build_pip_package scrips at the TF folder.
Its doesnt looks like same problem as PR #12975

Seems like the linker cannot find libmklml_intel.so so it's like some linker configuration or MKL installation issue.
FYI @tfboyd in case he has other suggestions.

The error message suggests a linker configuration or MKL installation issue. Does libmkl_intel.so exist on your filesystem and is it available to the linker? (You might get some clues from ldd /usr/local/lib/python2.7/dist-packages/tensorflow/python/_pywrap_tensorflow_internal.so)
FYI @tfboyd in case he has other suggestions.
However, since the distribution (.whl file) you're using is not something maintained by the TensorFlow team, but rather maintained by TinyMind in their github project at https://github.com/mind/wheels - I'm going to suggest that you seek help there.


Workflow lint readme and prereq tags

Overall Review of Changes:
Added new workflow
lints updates and aligned
readme updated
pre-commit enabled and ready
tags on prereqs added
Issue Fixes:
tags on prereqs thanks to @trae on discord community
Enhancements:
Please list any enhancements/features that are not open issue tickets
How has this been tested?:
Manually, high disruption with audit

workflow will fail as files missing due to tidy up


Return previous state if the props change but not the output

I have an array of posts, which is filtered by user such that I have the following
const currentUsersPosts = createSelector(
  [state => state.currentUser.id, state=> state.posts],
 (userId, posts) => posts.filter(p=>p.id === userId)
);

When a new post is creates for another user this correctly filters the list and produces an identical (but differently referenced) array. This means that I re-render the component needlessly. Is there a way to get at the previously memo'd value for this instance of the reselector and return that if it's shallow equal (hence avoiding children re-rendering)?
eg:
import { shallowEqualArrays } from 'shallow-equal';

const currentUsersPosts = createSelector(
  [state => state.currentUser.id, state=> state.posts],
 (userId, posts, prevPostsForUser) => {
     const nextPostsForUser = posts.filter(p=>p.id === userId);
     return shallowEqualArrays(prevPostsForUser, nextPostsForUser)
        ? prevPostsForUser
         : nextPostsForUser;
  }
);

I believe you can do this with createSelectorCreator.

@danielcruser could you provide an example?

I believe this would accomplish what OP wants, albeit in a more verbose way. It might be helpful to provide an API surface like the one OP was asking for as it would allow the consumer to more easily choose when to cache the result or not.
import { createSelectorCreator } from 'reselect';
import { shallowEqualArrays } from 'shallow-equal';

// START STUFF TAKEN DIRECTLY FROM RESELECT SOURCE
function defaultEqualityCheck(a, b) {
  return a === b;
}

function areArgumentsShallowlyEqual(equalityCheck, prev, next) {
  if (prev === null || next === null || prev.length !== next.length) {
    return false;
  }

  // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.
  const length = prev.length;
  for (let i = 0; i < length; i++) {
    if (!equalityCheck(prev[i], next[i])) {
      return false;
    }
  }

  return true;
}
// END STUFF TAKEN DIRECTLY FROM RESELECT SOURCE

function customMemoize(func, resultEqualityCheck = defaultEqualityCheck, equalityCheck = defaultEqualityCheck) {
  let lastArgs = null;
  let lastResult = null;
  // we reference arguments instead of spreading them for performance reasons
  return function () {
    if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {
      // apply arguments instead of spreading for performance.
      // lastResult = func.apply(null, arguments)

      // BEGIN CUSTOMIZATION OF MEMOIZE FUNCTION TO ALSO MEMOIZE RESULT
      const result = func.apply(null, arguments);
      if (!resultEqualityCheck(lastResult, result)) {
        lastResult = result;
      }
      // END CUSTOMIZATION OF MEMOIZE FUNCTION TO ALSO MEMOIZE RESULT

    }

    lastArgs = arguments;
    return lastResult;
  }
}

const createArrayResultSelector = createSelectorCreator(customMemoize, shallowEqualArrays);

const currentUsersPosts = createArrayResultSelector(
  [state => state.currentUser.id, state=> state.posts],
 (userId, posts) => posts.filter(p=>p.id === userId)
);

FWIW heres how I solved it myself
import { createSelectorCreator } from 'reselect';
import { shallowEqualArrays, shallowEqualObjects } from 'shallow-equal';

const resultMemoize = (func) => {
  let lastArgs = null;
  let lastResult = null;

  return (...args) => {
    if (!shallowEqualArrays(lastArgs, args)) {
      // faster with apply, this might get called a lot
      // https://medium.com/@pouyae/what-is-the-es6-spread-operator-and-why-you-shouldnt-use-it-57c056078ed9
      // eslint-disable-next-line prefer-spread
      const nextResult = func.apply(null, args);
      if (Array.isArray(nextResult) && shallowEqualArrays(nextResult, lastResult)) {
        // keep the last result
      } else if (typeof nextResult === 'object' && shallowEqualObjects(nextResult, lastResult)) {
        // keep the last result
      } else {
        lastResult = nextResult;
      }
    }

    lastArgs = args;
    return lastResult;
  };
};

export default createSelectorCreator(resultMemoize);

usage:
export const selector = createResultCheckingSelector(
  [
    state => state.complexThings
  ],
  complexThings => complexThings.reduce((acc, thingKey) => {
      acc[thingKey] =state.complexThings[thingKey].simpleThing;
      return acc;
    }, {})
);

If other unrelated parts of my state are mutated it wont trigger everything else to re-render.

You can manually expose the last result of the selector yourself.
import { createSelector } from 'reselect';
import { shallowEqualArrays } from 'shallow-equal';

const currentUsersPosts = createSelector(
  [state => state.currentUser.id, state=> state.posts],
  (userId, posts) => {
    const lastResult = currentUsersPosts.lastResult;
    const result = posts.filter(p=>p.id === userId);
    if (shallowEqualArrays(lastResult, result)) return lastResult;
    currentUsersPosts.lastResult = result;
    return result;
  }
);

interesting, ill give that a go, it will clean things up quite a bit.

Not sure why nobody uses defaultMemoize that's already in reselect to do this:
const createMemoizeArray = () =>
  defaultMemoize((...array) => array);
const selectCurrentUsersPosts = ((memoizeArry) =>
  createSelector(
    [
      (state) => state.currentUser.id,
      (state) => state.posts,
    ],
    (userId, posts) =>
      memoizeArry.apply(
        null,
        posts.filter((p) => p.id === userId)
      )
  ))(createMemoizeArray());//IIFE

When you want to pass user id to the selector because you you want to show list of users and posts of each user you can do the following:
const createMemoizeArray = () =>
  defaultMemoize((...array) => array);
const createSelectCurrentUsersPosts = (userId) => {//curry user id
  const memoizeArry = createMemoizeArray();//create its own memoize array
  return createSelector([(state) => state.posts], (posts) =>
    memoizeArry.apply(
      null,
      posts.filter((p) => p.id === userId)
    )
  );
};
// used in components
const UserList = (users) => (
  <ul>
    {users.map((user) => (
      <UserContainer user={user} key={user.id} />
    ))}
  </ul>
);
const UserContainer = ({ user }) => {
  const selectUserPosts = React.useMemo(//(re) create selector based on user id
    createSelectCurrentUsersPosts(user.id),
    [user.id]
  );
  const userPosts = useSelector(selectUserPosts);
  return 'jsx';
};

@amsterdamharu just wanted to extend your brilliant answer with a createMemoizeArrayFn so you don't need a selector factory:
const memoizeArrayProducingFn = (fn) => {
  const memArray = defaultMemoize((...array) => array);
  return (...args) => memArray(...fn(...args));
};

const selectCurrentUsersPosts createSelector(
    [
      (state) => state.currentUser.id,
      (state) => state.posts,
    ],
    memoizeArrayProducingFn((userId, posts) => posts.filter((p) => p.id === userId))
);

@akmjenkins thanks for the nice succinct function above. For those using typescript, I found that the function above destroys the types associated with the output arguments of fn - so I modified it as something like this:
    function memoizeArrayProducingFn<S, T>(
      fn: (input: S[]) => T[]
    ): (input: S[]) => T[] {
      const memArray = defaultMemoize((...array) => array);
      return (...args) => memArray(...fn(...args));
    }

Thanks @akmjenkins for the short and sweet solution and thanks @Mchristos for the typed version.
Here is another modified version similar to @Mchristos which takes an arbitrary number of arguments, and should preserve types:
function memoizeArrayProducingFnTyped<T extends (...args) => any[]>(fn: T) {
  const memArray = defaultMemoize((...array) => array);
  return ((...args) => memArray(...fn(...args))) as T;
}

Oh hey, those are pretty neat!
Seems like a common enough problem that it might even be worth at least including this as a documented recipe, if not an actual API addition.

I've been using a similar idea which I've called "stabilize". (A "stable" identity is one that doesn't needlessly change.)
These helpers can be used to memoize not just selectors which return arrays, but selectors which returning any non-primitive type. Furthermore, this idea can be used as a React hook, alongside useMemo (which is conceptually similar to a selector).
import { shallowEqualArrays } from 'shallow-equal';

//
// Example usage in Reselect
//

import assert from 'assert';
import { createSelector, defaultMemoize } from 'reselect';

const stabilize = <A extends unknown[], R>(
    fn: (...args: A) => R,
    isResultEqual: (a: R, b: R) => boolean,
): ((...args: A) => R) => {
    const memoizedIdentity = defaultMemoize(
        (result: R) => result,
        // `defaultMemoize` has bad typings.
        // @ts-ignore
        isResultEqual,
    );
    return (...args) => memoizedIdentity(fn(...args));
};

/** Re-use the previous result if the Array value matches the latest result */
const stabilizeArray = <A extends unknown[], R>(
    fn: (...args: A) => Array<R>,
): ((...args: A) => Array<R>) => stabilize(fn, shallowEqualArrays);

type User = {
    id: string;
    age?: number;
};

type State = {
    users: { [key: string]: User };
};

const state1: State = {
    users: {
        foo: { id: 'foo' },
        bar: { id: 'bar' },
    },
};
const state2: State = {
    users: {
        foo: { id: 'foo', age: 1 },
        bar: { id: 'bar' },
    },
};

const getUsersById = (state: State) => state.users;

const getUserIds = stabilizeArray(
    createSelector(getUsersById, (users) => Object.keys(users)),
);
// OR
// const getUserIds = createSelector(
//     getUsersById,
//     stabilizeArray((users) => Object.keys(users)),
// );

assert(getUserIds(state1) === getUserIds(state2));

//
// Example usage in React
//

import React, { FC, useMemo, useRef } from 'react';

/**
 * This is a hook version of `stabilize`.
 * Only store/return a new value when it's determined to be inequal to the previous value.
 */
const useStable = <T,>(value: T, equalityCheck: (a: T, b: T) => boolean): T => {
    const ref = useRef(value);

    if (equalityCheck(ref.current, value) === false) {
        ref.current = value;

        return value;
    } else {
        return ref.current;
    }
};

// `userIds` has same reference identity on second render
const MyComponent: FC<{ users: State['users'] }> = ({ users }) => {
    const _userIds = useMemo(() => Object.keys(users), [users]);
    const userIds = useStable(_userIds, shallowEqualArrays);
    console.log('render', userIds);
    return null;
};

<MyComponent users={state1.users} />;
<MyComponent users={state2.users} />;

Resolved by #513 .


Generate a tar/gzip'ed stack image as well

There are some situations where not having to loop mount a whole image is advantageous, so also generate a straight up tar & gzipped version of the images content before unmounting the created image.
TODO

[ ] Use something better than md5 (sha256?)

I would really prefer not having to produce a number of different formats.
Building the stack image is already slow (especially because it runs inside a virtual machine with terrible I/O performance) and we sometimes need to do it fast.
I'm happy to consider using another format altogether.

We could shift to making a tarball the primary artifact, rather than a loopback filesystem. Runtimes can always restore the tarball to a fresh filesystem during installation… Or if we switch to aufs or something, any random directory can be a filesystem root.

I believe one of the benefits of loopback format in the the way we use the image in cedar is that we can mount the image as read-only straight out of s3 and with tar we have to move to a union filesystem like AUFS or OverlayFS to have this protection from the filesystem level and still there is a memory and performance impact involved, specially for 250 dynos in a single instance also moving the tarball restoration to runtime setup I think isn't a good idea because it would increase the time for an instance to boot (already ~7 min).
Despite the issues I listed here I still think there are benefits of a tar image including the ability to use any filesystem (zfs perhaps?) and not having to worry about the number of loopback devices would be good but I can't really see a world where we don't have to generate more than one format so if space or s3 cost is not an issue I would +1 on that.

@rsampaio Excellent reply. Thank you.
This sounds like a really good justification for an image builder.

(as part of any change would ❤  to see a move to something better than md5)

I'm closing this as we've changed how we're building stack images slightly and will need to rework the approach.


fixed app crash on adding a metric to favourite #186

@pg301 You can borrow the work @anant-dev and complete this PR.

Refactor list_item_alert into list_item_with_menu
Provide it in FavMetricsAdapter.java

@pg301 you will need to rebase

@pg301 Rebasing this branch will need more effort than work in PR. You can either reset this branch with current master and work on that to resolve this issue. Or altogether create a new branch of master

@garg-anuj Is it ok if I make a new new PR for this issue and close the current PR.

@pg301 Sure

I am closing this PR since I have made a new PR addressing this issue.


Add httpoption to ingress spec

Signed-off-by: Arghya Sadhu<EMAIL_ADDRESS>
Changes

Add httpOption to ingress spec

/kind enhancement

Fixes #297

Release Note

Adds httpOption to ingress spec

Docs

/cc @ZhiminXiang

/lgtm
/hold in case anyone wants to take another look.
@arghya88 could you please add some descriptions to the Release Note section of your PR description? Thanks!

/cc @mattmoor @vagababov

/lgtm
/approve

/unhold


i want to add two users(connected from different front end servers) in one channel, how can i do this?

We are developing a multiplayer game, with multiple connector servers and multiple logic(backend) servers.
If two users connected from different connectors want to join same game (one channel),
How can it be managed?
I suppose, i can not access channel created on one connector, on another connector OR any backend server. Am i wrong?
And i have tried using globalchannel-plugin, but for existing codebase it is not right choice for us.

You could try to route the requests for the players in the same game to the same server where the common channel resides. I did this in the beginning of my project but as soon as I discovered the globalchannel plugin I switched to it.

yeah,
I got it now,

I can create channel at backend server and route such request to that server.

Thanks.


The "installation instructions" link at the bottom of the home page gives error 404

Very grateful for this resource. I found what I think is a dead URL on the homepage of multiqc.info, when I scroll to the bottom of the page and see a hyperlinked "installation instructions" above the view on github button, clicking the blue hyperlink gives an error 404 when trying to link to the below url: https://multiqc.info/docs/usage/installation

Good spot, thanks! Link updated in https://github.com/MultiQC/website/commit/811e64cd3ae7950094b1b5a797d86519ced169fc


Add Assets

In this pull request, I performed the following:

Modified the Readme file
Choose images, text, icons, fonts.

STATUS: APPROVED :green_circle: :clap:
Hi @SelmaNdapanda   🙋♂,
Your project is complete!  There is nothing else to say other than... Great job 👏
Congratulations! 🎉


feat(react): show search suggestions

Search suggestions are fetched from elastic by querying for * and then randomizing the order of the result

Checklist

[ ] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable)

@dexter-mh-lee all these queries are issued client side, so nothing is shown here until the response comes back. On my machine, its near instantaneous though.


Switch from Streams1 to Streams3

The current latest version of replacestream uses Streams1 via the through module but Streams1 is the really older implementation. Actually Node v0.10 that uses Streams2 instead of Streams1 was released in Mar 2013.
This PR replaces through 0.6 with readable-stream v2.0.0 to switch to Streams3 which is a more popular stream implementation as it's used in the latest Node and io.js.

:+1:

Hi @shinnn. Great work! I've published as 3.0.0 due to the amount of code changed to be safe. I've also given you commit rights to this repo as replacestream is an OPEN Open Source project
Cheers!


Update introducing-the-sharepoint-migration-tool.md

removing having to update build number at 2 different locations

ready for approval


Format code using 'cargo fmt'

Hi. Thanks for the PR. There are certain places in code where rustfmt is screwing up readability. I'll take a call on final configuration after releasing stable versions of this crate (end of this month)

ok, let me know if there is any merge conflict I will branch off from master & fix the merge conflict.

Formatted with rustfmt in the new release


[BUG] key associated with [azure-sign-cert] not a private key

I'm getting the error below while using OpenJDK 19.0.1. I'm sure my variables AZURE_KEY_VAULT_* are correct due the same values work to sign Windows exes using AzureSignTool.
I installed the cert following the guide from globalsign. The problem seems to be similar like #35677. Any ideas?
 It's a Azure portal permission issue. Despite our key vault only has one code signing certificate and no keys or secrets, we had to grant the right "Secret permissions - Get" to the used application in "Access Policies".


Link updates and error corrections in rmd files

Compared to ggamin2,  gganim1  is missing the labels = scales::dollar in scale_x_log10() and the labels for the x and y axes also need to be modified.

This is my first time submitting a pull request, so please bear with me if there are any errors in the submission.

Thanks for sharing the course material, I have learned a lot. I will keep submitting some errors found during the learning process.

Thanks!


Fix typos.

Impact

[ ] Bug fix (non-breaking change which fixes expected existing functionality)
[X ] Enhancement/New feature (adds functionality without impacting existing logic)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description
Just fix typo's
Things to be aware of

Describe the technical choices you made
Describe impacts on the codebase

Things to worry about

List any questions or concerns you have with the change
List unknowns you have

Additional Context
Add any other context about the problem here.

Initial/Pre-Review Thoughts
Thanks for finding them!
Questions I have:

None

Potential risks:

None

What could make the full review difficult:

Nothing


[v3] can not console.log( require )

Bug report

What is the current behavior?
In Webpack 3, I can not do simple things like console.log( require ) because for some reason Webpack thinks I'm trying to import something.
If the current behavior is a bug, please provide the steps to reproduce.
console.log( require )

becomes
console.log(!(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()));

What is the expected behavior?
I'm obviously not trying to import anything there, so I expected it to log require.

Other relevant information:
webpack version:  3
Node.js version:
Operating System:
Additional tools:

I've learnt after the fact that __non_webpack_require__ can be used in the place of require so that the native require will be there, so that works.


Remove TravelAgent

I closed the original PR (#179) because I realized that there was some use of TravelAgent I missed.

We'll revisit this after 5.0.0's ACF PRs.

We'll revisit this after 5.0.0's ACF PRs.


Add support for "drone build start foo/bar last"

This starts the build on the default branch

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.

LGTM thanks!


Make SVG transparent

this commit fixes #3

hey guys, when is this fix going to be pushed npm registry
https://www.npmjs.com/package/react-open-weather-icons


Automated Package Upgrade

:tada: This PR is included in version 5.0.478 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


New docker images fail running apt-get update?

Hello,
I recently tried updating one of our docker containers to use bioconductor_docker:RELEASE_3_10.  When I ran "apt-get update", it fails with errors along the lines of the following.  I think this has to do with the date being incorrect on the image?
Step 1/2 : from bioconductor/bioconductor_docker:RELEASE_3_10
---> 35e63c04aa52
Step 2/2 : RUN apt-get update -y
---> Running in 5a17e10abbf4
Get:1 http://deb.debian.org/debian buster InRelease [122 kB]
Get:2 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
Get:3 http://deb.debian.org/debian buster-updates InRelease [49.3 kB]
Get:4 http://deb.debian.org/debian buster/main amd64 Packages [7,907 kB]
Reading package lists...
E: Release file for http://security.debian.org/debian-security/dists/buster/updates/InRelease is not valid yet (invalid for another 6d 2h 55min 29s). Updates for this repository will not be applied.
E: Release file for http://deb.debian.org/debian/dists/buster-updates/InRelease is not valid yet (invalid for another 7d 9h 38min 1s). Updates for this repository will not be applied.
This simple docker file is sufficient to repro, at least for me:

from bioconductor/bioconductor_docker:RELEASE_3_10

RUN apt-get update -y

You only need to restart Docker, the date of the docker engine is delayed.

interesting - thanks for the quick reply.  yes, that fixed it.


Issues:  self.action_grads = tf.gradients(self.out, self.action)

HI
see the link first :https://github.com/tensorflow/tensorflow/issues/675
if self.out is a vector and self.action is a vector ,  the result should be a Jacobian matrix , but "Currently if you call gradients(ys, xs), it will return the sum of dy/dx over all ys for each x in xs."
So I think the expression used in your code is not the one as written in DDPG paper.
Thank u very much

Hi,
self.out is actually a Tensor of shape [MINIBATCH_SIZE, 1] and self.action is a Tensor of shape [MINIBATCH_SIZE, self.action_dim]. Calling tf.gradients(self.out, self.action) is correct; for each action in the minibatch (i.e., for each x in xs), this will sum up the gradients of each critic output in the minibatch w.r.t. that action (i.e., sum of dy/dx over all ys). There is an error here though, in that I should be dividing the result by the size of the minibatch. I'm not sure why Tensorflow doesn't do this automatically. I'll add that to my to-do list, but feel free to submit a pull-request with a fix - it should be quick.
Thanks!

Resolved in commit bf21e10d6a977a15fd96fe38d80e2294cf5f9bdc

isn't there still an error?
self.out.shape = [MINIBATCH_SIZE, 1]
self.action.shape = [MINIBATCH_SIZE, self.action_dim]

let's assume MINIBATCH_SIZE = 4
self.out =
  [[o11],
   [o21],
   [o31],
   [o41]]

self.action =
  [[a11, a12, a13],
   [a21, a22, a23],
   [a31, a32, a33],
   [a41, a42, a43]]

ys = self.out
xs = self.action
tf.gradients(ys, xs) -> sum(dy/dx) for y in ys

g11 = o11/da11 + o21/da11 + o31/da11 + o41/da11
g12 = o11/da12 + o21/da12 + o31/da12 + o41/da12
...
g43 = o11/da43 + o21/da43 + o31/da43 + o41/da43

grads =
  [[g11, g12, g13],
   [g21, g22, g23],
   [g31, g32, g33],
   [g41, g42, g41]]
grads = tf.div(grads, MINIBATCH_SIZE)

actor.train(s_batch, grads[0])  -> only [g11, g12, g13]

so shouldn't it be
grads = tf.reduce_mean(grads, 0)

(changed a bit)
isn't there still an error?
self.out.shape = [MINIBATCH_SIZE, 1]
self.action.shape = [MINIBATCH_SIZE, self.action_dim]

let's assume MINIBATCH_SIZE = 4
so we have 4 state-action pairs (si,ai)
self.out = critic([s1, s2, s3, s4])
self.out  ->
  [[o1],
   [o2],
   [o3],
   [o4]]

self.action =
  [[a11, a12, a13],
   [a21, a22, a23],
   [a31, a32, a33],
   [a41, a42, a43]]

ys = self.out
xs = self.action
tf.gradients(ys, xs) -> sum(dy/dx) for y in ys

g11 = o1/da11 + o2/da11 + o3/da11 + o4/da11
g12 = o1/da12 + o2/da12 + o3/da12 + o4/da12
...
g43 = o1/da43 + o2/da43 + o3/da43 + o4/da43

grads =
[[g11, g12, g13],
 [g21, g22, g23],
 [g31, g32, g33],
 [g41, g42, g41]]
grads = tf.div(grads, MINIBATCH_SIZE)

but don't we only want the derivative of some output wrt. the matching action (instead of the sum)?
g11 = o1/da11 (->critic(s1)/da11)
g12 = o1/da12 (->critic(s1)/da12)
g21 = o2/da21 (->critic(s2)/da12)
...
g43 = o4/da43 (->critic(s4)/da43)

Note that the action dimension is just 1.  I see the issue you're talking about though; I'm trying to figure out a way to do
g1 = o1/da1 (->critic(s1)/da1)
g2 = o2/da2 (->critic(s2)/da2)
g3 = o2/da3 (->critic(s3)/da3)
...
g64 = o64/da64 (->critic(s64)/da64)

without calling tf.gradients MINIBATCH_SIZE (e.g., 64) times each update. I'm looking at https://arxiv.org/pdf/1510.01799.pdf and https://github.com/tensorflow/tensorflow/issues/4897 but haven't figured out a solution for this specific situation yet. Any thoughts?

haven't tried it yet, but what happens if we change out to:
self.out  ->
  [[o1, 0, 0, 0],
   [0, o2, 0, 0],
   [0, 0, o3, 0],
   [0, 0, 0, o4]]

It would be great if the code can be general and support multiple actions. I've done a little test based on @abred 's notion above:
import tensorflow as tf

action = tf.placeholder(tf.float32, [None, 3])
out_op = tf.div(action, tf.constant(2.0))
grad_op = tf.gradients(out_op, action)

sess = tf.Session()
out, grad = sess.run([out_op, grad_op], {action: [[1,2,3], [4,5,6], [7,8,9], [10,11,12]]})

print(out)
print(grad)

and here's output
[[ 0.5  1.   1.5]
 [ 2.   2.5  3. ]
 [ 3.5  4.   4.5]
 [ 5.   5.5  6. ]]
[array([[ 0.5,  0.5,  0.5],
       [ 0.5,  0.5,  0.5],
       [ 0.5,  0.5,  0.5],
       [ 0.5,  0.5,  0.5]], dtype=float32)]

So it seems to me that gi,j = oi/dai,j is just what we want. And this is contradicting TF documentation: they are not summed over samples in the minibatch. Or did I do anything wrong?

Check this out:
import tensorflow as tf

MINIBATCH_SIZE = 4

action = tf.placeholder(tf.float32, [None, 3])

out_op1 = [tf.square(action[0]) for _ in range(MINIBATCH_SIZE)]
out_op2 = tf.square(action[0])
grad_op1 = tf.gradients(out_op1, action)
grad_op2 = tf.gradients(out_op2, action)

sess = tf.Session()

out1, out2, grad1, grad2 = sess.run([out_op1, out_op2, grad_op1, grad_op2], {action: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]})

print("Out1: {}".format(out1))
print("Grad1: {}".format(grad1))
print("Out2: {}".format(out2))
print("Grad2: {}".format(grad2))

and the output is
Out1: [array([ 1.,  4.,  9.], dtype=float32), array([ 1.,  4.,  9.], dtype=float32), array([ 1.,  4.,  9.], dtype=float32), array([ 1.,  4.,  9.], dtype=float32)]
Grad1: [array([[  8.,  16.,  24.],
       [  0.,   0.,   0.],
       [  0.,   0.,   0.],
       [  0.,   0.,   0.]], dtype=float32)]
Out2: [ 1.  4.  9.]
Grad2: [array([[ 2.,  4.,  6.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]], dtype=float32)]

So when you have a list of Tensors as your ys, tf.gradients computes the sum over each Tensor in the list. Hence, the difference between Grad1 and Grad2. So a single Tensor of shape [None, 3] differentiated w.r.t. a single Tensor of shape [None, 3] won't do any averaging and just produces the Jacobian of interest. For our case, just calling `tf.gradients(self.out, self.action)' should be fine then! It actually doesn't even need to be divided by the batch size either. Sounds correct?

Yes, that's what I'm thinking. We don't need that tf.div().

It also works if out1 is tensor and not a list of tensors
import numpy as np
import tensorflow as tf

MINIBATCH_SIZE = 4

action = tf.placeholder(tf.float32, [4, 3])

out_op1 = tf.stack([tf.square(action[0]) for i in range(MINIBATCH_SIZE)])
out_op2 = tf.square(action)
grad_op1 = tf.gradients(out_op1, action)
grad_op2 = tf.gradients(out_op2, action)

sess = tf.Session()

ac = np.array([[1, 2, 3],
               [4, 5, 6],
               [7, 8, 9],
               [10, 11, 12.0]])
# ac = np.array([[1], [2], [3], [4]])
out1, out2, grad1, grad2 = sess.run(
    [out_op1,
     out_op2,
     grad_op1,
     grad_op2],
    {action: ac})

print("act: {}".format(ac))

print("Out1: {}".format(out1))
print("Grad1: {}".format(grad1))
print("Out2: {}".format(out2))
print("Grad2: {}".format(grad2))

I think we are lucky because we are computing the gradient with regard to an input.
tf.gradients computes sum(dy/dx), dx is the input in our case. Each sample has a different input so dyi/dxj = 0 if i != j
In general it is used to compute the gradient of a weight and  the weight is the same for each sample so the gradient is not necessarily zero

Okay, I see. So regardless of whether it is a list or not, it will accumulate gradients over a batch if the same inputs are used to produce the outputs. Interesting.
@abred what you are saying is correct; however, for tf.gradients(self.out, self.action), self.action are the inputs. So we should be fine. See below:
For Grad2, the first row is [6, 12, 18], because the partial derivative of Out2_11, Out2_12, and Out2_13 w.r.t. actions other than those in the first "batch" (i.e., action[0]), is 0! So g11 = dOut2_11/dA_11 + dOut2_12/dA_11 + dOut2_13/dA_11 =   (2 * action_11 * 1) + (2 * action_11 * 1) +( 2 * action_11 * 1) = 6. You can likewise derive the rest of Grad2 this way.
import numpy as np
import tensorflow as tf

MINIBATCH_SIZE = 4

action = tf.placeholder(tf.float32, [4, 3])

# weight matrix
params = tf.placeholder(tf.float32, [3, 3])
out_op1 = tf.stack([tf.matmul(tf.square(tf.reshape(action[0], [1, 3])), params) for i in range(MINIBATCH_SIZE)])
out_op2 = tf.matmul(tf.square(action), params)
grad_op1 = tf.gradients(out_op1, action)
grad_op2 = tf.gradients(out_op2, action)

sess = tf.Session()

ac = np.array([[1, 2, 3],
               [4, 5, 6],
               [7, 8, 9],
               [10, 11, 12.0]])

p = np.ones((3, 3))

# ac = np.array([[1], [2], [3], [4]])
out1, out2, grad1, grad2 = sess.run(
    [out_op1,
     out_op2,
     grad_op1,
     grad_op2],
    {action: ac, params: p})

print("act: {}".format(ac))
print("Out1: {}".format(out1))
print("Grad1: {}".format(grad1))
print("Out2: {}".format(out2))
print("Grad2: {}".format(grad2))

and output:
act: [[  1.   2.   3.]
 [  4.   5.   6.]
 [  7.   8.   9.]
 [ 10.  11.  12.]]
Out1: [[[ 14.  14.  14.]]

 [[ 14.  14.  14.]]

 [[ 14.  14.  14.]]

 [[ 14.  14.  14.]]]
Grad1: [array([[ 24.,  48.,  72.],
       [  0.,   0.,   0.],
       [  0.,   0.,   0.],
       [  0.,   0.,   0.]], dtype=float32)]
Out2: [[  14.   14.   14.]
 [  77.   77.   77.]
 [ 194.  194.  194.]
 [ 365.  365.  365.]]
Grad2: [array([[  6.,  12.,  18.],
       [ 24.,  30.,  36.],
       [ 42.,  48.,  54.],
       [ 60.,  66.,  72.]], dtype=float32)]

Even though the same weights were used to compute the outputs for each minibatch, each batch of inputs only corresponds to one batch of outputs and so they won't get averaged over them. Does this make sense?

^if this is what you were already saying in your previous comment, my apologies! Just making sure this is clear.

that's what I was saying, no worries. might help someone else having this problem.

Fixed in PR #8


Restoring a backup: login source already exists [name: OpenLDAP]

Description
I try to restore Gitea on a new server. I copied Gitea files and db dump to new server. Trying to start Gitea fails with the log message:
Admin account 'xxx' already exist. Running update to sync password...
2022/11/03 17:38:19 ...orm@v1.2.5/engine.go:1139:Get() [I] [SQL] SELECT "id", "lower_name", "name", "full_name", "email", "keep_email_private", "email_notifications_preference", "passwd", "passwd_hash_algo", "must_change_password", "login_type", "login_source", "login_name", "type", "location", "website", "rands", "salt", "language", "description", "created_unix", "updated_unix", "last_login_unix", "last_repo_visibility", "max_repo_creation", "is_active", "is_admin", "is_restricted", "allow_git_hook", "allow_import_local", "allow_create_organization", "prohibit_login", "avatar", "avatar_email", "use_custom_avatar", "num_followers", "num_following", "num_stars", "num_repos", "num_teams", "num_members", "visibility", "repo_admin_change_team_access", "diff_view_style", "theme", "keep_activity_private" FROM "user" WHERE "lower_name"=$1 LIMIT 1 [ahdiqu6b] - 9.829027ms
xxx's password has been successfully updated!
...password sync done.
No ldap configuration found with name 'OpenLDAP'. Installing it now...
2022/11/03 17:38:20 ...d/admin_auth_ldap.go:135:func1() [I] [SQL] SELECT "id", "type", "name", "is_active", "is_sync_enabled", "cfg", "created_unix", "updated_unix" FROM "login_source" WHERE (name=$1) LIMIT 1 [OpenLDAP] - 10.152211ms
2022/11/03 17:38:20 main.go:117:main() [F] Failed to run app with [/usr/local/bin/gitea -c /data/gitea/conf/app.ini admin auth add-ldap --admin-filter (&(objectClass=inetOrgPerson)(memberOf=cn=Administrators,ou=Group,dc=muellerpublic,dc=de)) --bind-dn CN=admin,dc=muellerpublic,dc=de --bind-password xxx --email-attribute mail --host openldap.kube-ldap.svc.cluster.local --name OpenLDAP --port 1389 --public-ssh-key-attribute publicSSHKey --security-protocol unencrypted --user-filter (&(objectClass=inetOrgPerson)(memberOf=cn=Gitea,ou=Group,dc=muellerpublic,dc=de)(uid=%s)) --user-search-base ou=People,dc=muellerpublic,dc=de --username-attribute CN]: login source already exists [name: OpenLDAP]

Gitea Version
1.16.3
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
No response
Operating System
No response
How are you running Gitea?
Kubernetes 1.25
Database
PostgreSQL

Hi,
Thank you for this report. To confirm you made the dump using the binary using something like gitea dump, or did you use pg_dump to dump the database? Also as you are running on k8s, are you using the helm chart because it looks like the error might be caused by some magic that the helm chart tries to do? If yes, I'm assuming you added the ldap config to your helm values (please let me know if this assumption is correct).
(and a general note, I do recommend updating to the latest stable version, 1.17.3 at time of writing, as well as the latest stable version of the helm chart if you are indeed using it)

The log is from the Helm Chart. I recognize the output from the init container.
A known root cause is a change of the encryption related keys inside the app.ini. This happened with Helm Chart version prior to 5.0.0.

I copied Gitea files and db dump to new server.

@devent What version of the Helm Chart do you use? If you are using the Chart prior to 5.0.0 you are most likely affected by recreated encryption keys. Do you still have the original app.ini file from the old environment? If so please compare values for [security].SECRET_KEY, [security].INTERNAL_TOKEN and [oauth2].JWT_SECRET with the current app.ini on the new environment.

We close issues that need feedback from the author if there were no new comments for a month. :tea:


AttributeError: 'tuple' object has no attribute 'load_weights'

Environment -
Ubuntu 18.4
Tensorflow-GPU - 1.18
Keras tired with 2.2.4 and 2.3.1
cuda-9.0
Tried to import keras from TensorFlow but in all cases getting the following error.
Model Created
Traceback (most recent call last):
File "batch_inference.py", line 228, in
main()
File "batch_inference.py", line 206, in main
model.load_weights(args.checkpoint_path)
AttributeError: 'tuple' object has no attribute 'load_weights'

Sorry my bad .. closing this.. it was a path issue.

HI @Nixon

Sorry my bad .. closing this.. it was a path issue.

HI Nixon,
i am getting same issue (screenshot attached).  Could you please let me know how did you fix the issue.

Vishal

Specify the path along with the ligan checkpoint file name, not only the
folder path
On Tue, 25 Feb 2020, 13:47 vishalsharma345<EMAIL_ADDRESS>wrote:

HI @nixon https://github.com/nixon
Sorry my bad .. closing this.. it was a path issue.
HI Nixon,
i am getting same issue (screenshot attached). Could you please let me
know how did you fix the issue.
[image: error]
https://user-images.githubusercontent.com/38868982/75228039-5a213e00-57d5-11ea-831d-765261014dfd.png
Vishal
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/Rudrabha/LipGAN/issues/11?email_source=notifications&email_token=AEKSEBSFPPCXE336B75MFITRETH2ZA5CNFSM4KYMTKBKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEM272RA#issuecomment-590740804,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEKSEBTDBAPUF4DMRNEACY3RETH2ZANCNFSM4KYMTKBA
.


Copy code to clipboard on single tap or keyboard

Hello,
A cool feature implemented in Authy app : when you enter an app to get the code, you can tap a button to copy it in the clipboard. As codes are directly shown, I think a simple tap should copy code to clipboard.
Better option, but surely lost complicated could be adding a keyboard with a selector (to choose an account), and a button to send code like if you have typed it manually. (I took this idea to password safe, which handles a keyboard to send passwords in fields.)

Dupe of #1

the copy to clipboard feature encourages bad security practices and therefore I left it out on purpose.

So using this app is a security flaw... when you start the app, it computes all the codes (only one is generally necessary), key is unencrypted in memory, code too.
I think (I may be wrong then :)) that a partial hash result is not enough to get the secret key, even with a lot of times/codes. Google generates a secret with 32 characters (32^32 combination), and this number is not fixed.

@mioux I don't want to encourage people to login on device which the also use as their second factor for authentication.


Please help about SSH Tunel

[x] I have checked that a similar feature request does not already exist.

Dear friends,
Can you help me set up SSH Tunel or document to setup it step-by-step? Sorry I am new in this :(
//
My situation:
My phones connected to my Windows 7 PC computer via USB cable. I ran SCRCPY via USB cable (serial) and it works OK.
I installed a VMWare running Windows 7 on my PC and want to run SCRCPY on it also. But for some reason i dont want to run it via wireless (TCP/IP). I searched and found a way to use SSH Tunel. But i dont know how to config & settup it. Can anyone help me setup them or advise me a solution for my situation?
Many thanks & regards.

0 - Make sur your VM is configured in bridge mode
1 - activate wireless adb in your setting
2-  in your shell : .\adb.exe connect PHONE_IP:5555 (you can find your ip in your mobile setting
3- .\scrcpy


Fix spring force in forceLink.

Here is the thing, I think forceLink is mean to implement a spring force, if so, now code of the force has a issue.

Prove the implementation is spring force
I just give some reason to prove this is a implementation of spring force, you can skip this part if you alredy believe this.
According to Hooke's law:

F = k * dl // here F is the spring force,k is a positive real number, characteristic of the spring, dl is the delta length of spring.

And according to Newton's laws:

F = m * a // here F is force, m is the mass of object, a is acceleration of object

So we can get a = k * dl / m, we can set strength = k / m, then get this:
 a = strength * dl

Then we get delta x and delta y like this:
 // if we alread computed delta x as x, delta y as y
 l = Math.sqrt(x * x + y * y);
dl = (l - distance);
acceleration = strength * dl; //              => strength * (l - distance)
dv = acceleration * dt; //                    => strength * (l  - distance) * dt
// next (x / l) means get delta in x axis
dvx = dv * dt * x / l; //                     => x * (l  - distance) * strength  * dt * dt / l
// next (y / l) means get delta in y axis
dvy = dv * dt * y / l; //                     => y * (l  - distance) * strength  * dt * dt / l

Here we do some change to the variable.
 l = Math.sqrt(x * x + y * y);
 l = (l - distances[i]) / l * strengths[i] * (dt * dt);
 x *= l, y *= l;

You can see the only difference with here forceLink code is dt * dt and alpha.

My problem with compute delta x and delta y
My problem is here:
 x = target.x - source.x; // instead of target.x + target.vx - source.x - source.vx
 y = target.y - source.y; // insrtead of target.y + target.vy - source.y - source.vy

If we add target.vx - source.vx (call this dvx) or target.vy - source.vy (call this dvy), image that,

spring distance is geting larger and larger, so dlx = target.x - source.x is getting lagger

the velocity is geting smaller and smaller, so dvx = target.vx - source.vx is getting smaller

al last, dlx + dvx will become smaller, it will make the force become smaller, then the dx and dy will change less.

This is addressed in https://github.com/d3/d3-force#forces:

forces may also “peek ahead” to the anticipated next position of the node,

@Fil Sorry, I ignored this.


MNT: Re-rendered with conda-smithy 2.0.0

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Thanks @goanpeca.


chore: add 1.26 step in drone.yaml for 3.25 calico

Tested calico 3.25 with 1.26:

Pods OK
Ingress OK
Svc OK
APIs OK
Istiod OK

Added steps in drone to make rc tests with 1.26-calico
About 3.25.1, still unstable from issues about tls and panic

Closing as superseded by newer PR


Implement TabBar and Tabs for web

This PR adds the TabBar and Tabs widgets to the web as requested by #38 .
Known limitations:

No icon support as there is currently no way of specifying the icon font on the web
No hover styling as there is currently no easy way of styling on the web

@Icelk if something isn't working as expected, feel free to open up an issue. :slightly_smiling_face:

Hugely appreciated, @Kaiden42!


Mention Ubuntu 20.04 support

Please add “Microsoft ODBC driver for SQL Server” installation instructions also for Ubuntu 20.04, the latest long-term support version.

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

ID: 0fc3da20-7ab2-d20f-4d29-4664d3183b57
Version Independent ID: 986d25d9-5d2e-5154-39ea-3b683faf2264
Content: Install the Microsoft ODBC driver for SQL Server (Linux) - SQL Server
Content Source: docs/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server.md
Product: sql
Technology: connectivity
GitHub Login: @David-Engel
Microsoft Alias: v-daenge

Duplicate of #4678


Missing protobuf dependency

The test unified_planning/test/test_protobuf_io.py makes use of protobuf. But this is not expressed in the setup.py.

@onjen protobuf is marked as a development requirement and is not needed in general to use the UP. But you are right, I think a simple solution would be to gracefully skip the test if protobuf is not installed.
Would this be OK?


AB#23432 Correctly display attachment tab status

hi @AndreGAot -- i've tested and pushed now the code that you shared, its all working well.  Thanks.

@AndreGAot  will work now on refactoring the chefs attachment into a separate widget. thanks

hi @AndreGAot -- this is now ready for another round of review. thanks.


Moving to SQLAlchemy >= 1.4

Currently, dask does not work properly with SQLAlchemy 1.4. I am working on getting dask to work with SQLAlchemy 1.4. This is the state of my work, which does kind of work but is not yet properly tested and documented. It also seriously changes the API around sql io which will break code.
Right now, it is possible to pass a sql function as index_col or columns. If, for example, someone wants to cast the index to another type via a sql function, it could also be done using read_sql_query(sql=the_sql_to_do_the_casting). This "feature" however is very buggy right now and supporting this feature with SQLAlchemy 1.4 makes a big mess, so I suggest removing it. As my changes actually support sql queries (it was very buggy), all of those cast can be done using sql selects.
When breaking code anyway, I suggest to also make the dask sql io API more similar to the pandas sql io API.
What I want to change:

read_sql_table() will no longer support sql queries
read_sql_query() will handle SQLAlchemy queries
read_sql() will try to call read_sql_table() or read_sql_query() depending on the passed arguments (not yet implemented)
rename some arguments
it might be possible to support str sql queries (not yet implemented) (no, this will not work)

Before I implement, test and document all the changes, I would like to have some feedback on my suggestions.

Can one of the admins verify this patch?

cc @martindurant

Supporting this feature with SQLAlchemy 1.4 makes a big mess, so I suggest removing it.

Can you clarify this? We certainly wouldn't want to throw away functionality if we don't have to. We have no other way to support general SQL (as opposed to reading a table), because we need to be able to compose the partition selection logic, and that would be SQL dialect specific when using text.

I meant supporting sql functions passed to index_col and columns is a mess. That might have been unclear.
SQLALchemy 1.3 select objects had a .c / .column attribute. Columns have these too. In 1.4, select objects should now use .selected_columns instead. This makes it really hard to mix those two in the same way as it is right now. Especially as they have to be combined in a SQL query in the end.
It could be possible to convert columns to select statements, but I don't know how to combine them back into a single query, and I think that it might make the query less performant.
General SQL is supported through SQLAlchemy queries. Applying a SQL function to the index_col for example, can be done like this:
`
s = sql.select(
[
sa.cast(sql.column("number"), sa.types.BigInteger).label("number"),
sql.column("name"),
]
).where(sql.column("number") >= 5).select_from(sql.table("test"))
out = read_sql_query(s, db, npartitions=2, index_col="number")
`

General SQL is supported through SQLAlchemy queries

but can we modify these to produce the partitioned sub-queries needed to build a dask dataframe? If yes, great!

At least it does work in that test. I will be trying to find a case to break it, but until now it works.

Thanks for the ping. There's quite a lot in this PR, and I am not an expert on sqlalchemy, but we have a very good reason to move ahead now, even if we drop support for slqlachemy<1.4

Yeah since pandas is moving to >1.4 I think we can reasonably do that as well.
If it isn't too hard, it would definitely be better if we could go through a deprecation cycle. That would look like adding clear warnings with suggested actions and then altering the tests to expect those warnings on older versions.

I assume the win37 tests pass if we merge from main?

This win37 tests are failing on main, they should be ignored.

+1 from me, this is nicely done.

@McToel do you mind updating the environment.yamls so that the tests run with latest sqlalchemy?

I have no idea how the yamls work. So if someone else has the time to do it, it would be great

e.g., this line: https://github.com/dask/dask/blob/main/continuous_integration/environment-3.9.yaml#L33

Sorry I wasn't very clear @McToel. Do you mind if I push to your branch? There are a few other environment.yaml files to change for other python versions.

I think I've done it myself, but if anything is missing, feel free to just contribute to my branch.

Ok, @McToel I just removed a file that has been deleted on main since this PR was first opened.

It looks like there is one issue with the int32 dtype:
================================== FAILURES ===================================
____________________________ test_query_with_meta _____________________________
[gw1] win32 -- Python 3.8.12 C:\Miniconda3\envs\test-environment\python.exe

db = 'sqlite:///C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwxx4978a'

    def test_query_with_meta(db):
        from sqlalchemy import sql

        data = {
            "name": pd.Series([], name="name", dtype="str"),
            "age": pd.Series([], name="age", dtype="int"),
        }
        index = pd.Index([], name="number", dtype="int")
        meta = pd.DataFrame(data, index=index)

        s1 = sql.select(
            [sql.column("number"), sql.column("name"), sql.column("age")]
        ).select_from(sql.table("test"))
        out = read_sql_query(s1, db, npartitions=2, index_col="number", meta=meta)
>       assert_eq(out, df[["name", "age"]])

dask\dataframe\io\tests\test_sql.py:433:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

a =            name  age
number
0         Alice   33
1           Bob   40
2         Chris   22
3          Dora   16
4         Edith   53
5       Francis   30
6       Garreth   20
b =            name  age
number
0         Alice   33
1           Bob   40
2         Chris   22
3          Dora   16
4         Edith   53
5       Francis   30
6       Garreth   20
check_names = True, check_dtype = True, check_divisions = True
check_index = True, scheduler = 'sync', kwargs = {}

    def assert_eq(
        a,
        b,
        check_names=True,
        check_dtype=True,
        check_divisions=True,
        check_index=True,
        scheduler="sync",
        **kwargs,
    ):
        if check_divisions:
            assert_divisions(a, scheduler=scheduler)
            assert_divisions(b, scheduler=scheduler)
            if hasattr(a, "divisions") and hasattr(b, "divisions"):
                at = type(np.asarray(a.divisions).tolist()[0])  # numpy to python
                bt = type(np.asarray(b.divisions).tolist()[0])  # scalar conversion
                assert at == bt, (at, bt)
        assert_sane_keynames(a)
        assert_sane_keynames(b)
        a = _check_dask(
            a, check_names=check_names, check_dtypes=check_dtype, scheduler=scheduler
        )
        b = _check_dask(
            b, check_names=check_names, check_dtypes=check_dtype, scheduler=scheduler
        )
        if hasattr(a, "to_pandas"):
            a = a.to_pandas()
        if hasattr(b, "to_pandas"):
            b = b.to_pandas()
        if isinstance(a, (pd.DataFrame, pd.Series)):
            a = _maybe_sort(a, check_index)
            b = _maybe_sort(b, check_index)
        if not check_index:
            a = a.reset_index(drop=True)
            b = b.reset_index(drop=True)
        if isinstance(a, pd.DataFrame):
>           tm.assert_frame_equal(
                a, b, check_names=check_names, check_dtype=check_dtype, **kwargs
E               AssertionError: Attributes of DataFrame.iloc[:, 1] (column name="age") are different
E
E               Attribute "dtype" are different
E               [left]:  int32
E               [right]: int64

dask\dataframe\utils.py:560: AssertionError

ref: https://github.com/dask/dask/runs/4925139130?check_suite_focus=true

That's interesting. On my platform (Ubuntu, 3.8) it works perfectly fine. I switched to python 3.9 and removed df.append which was causing a deprecation warning. But I don't have a dev Windows machine right now, so it is a little hard for me to debug those errors. @jsignell do you have I Windows machine?

I don't have a windows machine, but I think we should merge this and fix the windows issue as a follow-up. I am going to push a skip for the win32 case.

I'm looking into how to filter all the warnings for python 3.7

I just merged main into this branch to try to get CI working properly. Thanks for being so patient on this @McToel, it should be in soon.

Ok I feel persuaded that this is an improvement. Thanks @McToel for taking on this work!


Update version to 1.0.23-0 on main

Update version to 1.0.23-0

🚀 [Deployed](https://github.com/Expensify/Expensify.cash
/actions/runs/765130740) 🚀 to
staging on Mon Apr 19 2021 at 22:41:56 GMT+0000 (Coordinated Universal Time)

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Outdated Documentation

Describe the bug
The SOCA documentation at https://awslabs.github.io/scale-out-computing-on-aws/ is not compatible with the 24.10.0 release.
To Reproduce
Go to https://github.com/awslabs/scale-out-computing-on-aws/releases and click on the "Installation instructions" link corresponding to the 24.10.0 release.
Expected behavior
The documentation for the 24.10.0 release should be available. Due to the significant changes from 2.7.5 to 24.10.0, a migration guide from 2.7.* to 24.10.* would also be helpful.
Additional context
This 24.10.0 release has a lot of nice changes, but these can currently only be discovered in the change log and/or by exploring a deployed system.

Hello @pmcchesn  -
Correct, moving forward the documentation is https://awslabs.github.io/scale-out-computing-on-aws-documentation/ . Not all references have been updated yet, as we are planning to update all URL links in the upcoming release.

One way to manage this is to create a branch for each release so the document can easily link to it. You can host multiple versions of the document, each linking to its own source code.


Fix script permissions

fabric8-hdd-bug-id: fabric8-hdd/supervisor#26
Signed-off-by: anmolbabu<EMAIL_ADDRESS>

@miteshvp @mik-dass @dev-gaur Please review

Looks good to me

Looks good to me too.


add plotProfile example without TES/TSS labels

Here is a plotProfile example without the TES/TSS label on the bin_labels row.

Perfect, thank you!


Packaging CLI application release for Homebrew & GitHub

Hi,
I have recently created a CLI application with picocli and everything works fine on my local machcine.
I am now struggling with packaging my apllication on homebrew using Jreleaser.
I am a bit overwhelmed with the steps involved on those documentations and would need some step by step clerification on how to
get this accomplished.
What i have accomplished

I have successfully added Jrealeser to my project
Also i have set up the release for both GitHub and Homebrew see here
The realease works for GitHub here but doesn't work for homebrew

What i need to know

Would i have to do any GraalVM configuration ? And if yes, what're the steps
How can i correctly cofigure my package for homebrew.

Thanks a ton,
Ahmed.

Hi Ahmed, thank you for trying out JReleaser. I see that in your configuration you set up a lot of settings, most of them use default values evaluated automatically by the model. You can remove those settings to reduce verbosity.
Now on to brew configuration. You have both brew and cask settings. If your application is just a zip then I suggest to remove the cask configuration, as that is mostly used for formulas that rely on installers (.dmg and .pkg). Also, the value for token is explicitly set to "DO_NOT_SET_HERE" which is an invalid value. You must define and environment variable such as JRELEASER_HOMEBREW_GITHUB_TOKEN or JRELEASER_GITHUB_TOKEN but make sure that the token in use has write access to other repositories, as explained at https://jreleaser.org/guide/latest/configuration/packagers/homebrew.html#_tokens

Thank you very much for your  response!
I have removed the previously set token vaue and it currently uses env variable set in config.properties.
Also I have gotten rid of cask configuration as it's of no use.
But when i run  ./gradlew jreleaserFullRelease i get Build Failed with an unexpected exception. Although ./gradlew jreleaserConfig is always sucessful. What could be the issue as the error is a little bit vague.
I have also updated the build.gradle file so you could take a look from the previous url.
Please pardon my disturbance, thanks

Hi Ahmed,
Could you try invoking gradle jreleaserFullRelease -S? This will print out the full stack trace. Also, trace.log should have the stack trace as well. I had a look at your project and the minimum configuration for it (using default values) would be:
jreleaser {
    release {
        github {
            overwrite = true
        }
    }

    distributions {
        qurancli {
            active = 'ALWAYS'
            name = 'qurancli'
            artifact {
                path = 'build/distributions/{{distributionName}}-{{projectVersion}}.zip'
            }
        }
    }

    packagers {
        brew {
            active = 'ALWAYS'
            commitAuthor {
                name = 'Ahmed Saheed'
                email =<EMAIL_ADDRESS>            }
        }
    }
}

Make sure to set the project version to 1.0.0 as it currently is set to 1.0. With these settings I've got the following
$ $ tree build/jreleaser/
build/jreleaser/
├── checksums
│   ├── checksums_sha256.txt
│   └── qurancli
│       └── qurancli-1.0.0.zip.sha256
├── output.properties
├── prepare
│   └── qurancli
│       └── brew
│           ├── Formula
│           │   └── qurancli.rb
│           └── README.md
└── trace.log

$ cat build/jreleaser/prepare/qurancli/brew/Formula/qurancli.rb
# Generated with JReleaser 1.0.0 at 2022-06-29T11:26:49.692526+02:00
class Qurancli < Formula
  desc "A simple tool to Read, Search and Recite the Quran."
  homepage "https://github.com/ahmedsaheed/quranCLI"
  url "https://github.com/ahmedsaheed/quranCLI/releases/download/v1.0.0/qurancli-1.0.0.zip"
  version "1.0.0"
  sha256 "bdcb9abc160d96c438f294ad87be09e89c864f83966e41d5ebc380b79f4dcd94"
  license "Apache-2.0"

  depends_on "openjdk@17"

  def install
    libexec.install Dir["*"]
    bin.install_symlink "#{libexec}/bin/qurancli" => "qurancli"
  end

  test do
    output = shell_output("#{bin}/qurancli --version")
    assert_match "1.0.0", output
  end
end

Another thing I noticed is that the main class is found in the default package, it's recommended that you define your own package, such as org.saheed.ahmed, or org.qurancli, or another value based on a reverse domain under your control. It could even be com.github.ahmedsaheed.


Collapse multiple pending builds for one revision

[Close if out of plugin's scope]
I'm looking for guidance/help in achieving this for now. (Cooler if the plugin provides an option :wink:)
If there are multiple queued Jenkins builds corresponding to multiple updates on a revision, how can the builds be collapsed to build only the latest build of a revision?

This has something we've been investigating internally as well. @Ignas did we ever find something that works here?

While a job is in the queue, the plugin does not have any hooks for it to process and trim the queue. The only other way I can think of is to have running builds take a look at the queue during the plugin execution phases and try to optimize the queue, but I believe that will lead to weird results. If you have too mNy items wait in queue, it might help to bump up the executors instead and let #171 take care of it when new jobs are executed

Our builds are CPU intensive on a small machine, so increasing the number of executors is not tenable for us (as the builds could be of different revisions).
A plugin does seem to have hooks into queue

One thread to explore is via Jenkins Extensions. QueueListener seems interesting
GHPRB plugin (which offers similar capabilities for Github-Jenkins integration) seems to have a similar feature in https://github.com/jenkinsci/ghprb-plugin/pull/273 (which also seems to be using Jenkins Extensions in some form, perhaps custom extension points)

Another simpler way could be this:
The build task gets the queue and aborts itself if it finds a newer build scheduled.

I believe this was implemented in #171

I believe this was implemented in #171

Not completely. The builds in queue aren't touched. Typical Jenkins installations have limited number of executors and an infinite queue. See comment on the PR.