Permission denied (publickey) after setting with SSH with google-authenticator

Hi I followed the steps from article below and now I am not able to log into my VM.
I am getting Permission denied (publickey), I am using Secure Shell to log in.
I am not even getting prompted to enter google authentication bar code which i scanned from my phone when I was setting it up. I have my secret key, verification code and the emergency scratch codes. Please help!
https://www.digitalocean.com/community/tutorials/how-to-set-up-multi-factor-authentication-for-ssh-on-ubuntu-14-04
Below is the message I am getting.
Permission denied (publickey).
NaCl plugin exited with status code 255.
(R)econnect, (C)hoose another connection, or E(x)it?
Below is the full output with ssh -v MYIP
OpenSSH6.4, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/sshconfig
debug1: /etc/ssh/sshconfig line 51: Applying options for *
debug1: Connecting to MYIP [MYIP] port 22.
debug1: Connection established.
debug1: identity file /home/deviceadmin/.ssh/idrsa type -1
debug1: identity file /home/deviceadmin/.ssh/idrsa-cert type -1
debug1: identity file /home/deviceadmin/.ssh/iddsa type -1
debug1: identity file /home/deviceadmin/.ssh/iddsa-cert type -1
debug1: identity file /home/deviceadmin/.ssh/idecdsa type -1
debug1: identity file /home/deviceadmin/.ssh/idecdsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH6.4
debug1: Remote protocol version 2.0, remote software version OpenSSH6.7p1 Debian-5
debug1: match: OpenSSH6.7p1 Debian-5 pat OpenSSH*
debug1: SSH2MSGKEXINIT sent
debug1: SSH2MSGKEXINIT received
debug1: kex: server->client aes128-ctr<EMAIL_ADDRESS>none
debug1: kex: client->server aes128-ctr<EMAIL_ADDRESS>none
debug1: sending SSH2MSGKEXECDHINIT
debug1: expecting SSH2MSGKEXECDHREPLY
debug1: Server host key: ECDSA
debug1: Host 'MYIP' is known and matches the ECDSA host key.
debug1: Found key in /home/deviceadmin/.ssh/knownhosts:28
debug1: sshecdsaverify: signature correct
debug1: SSH2MSGNEWKEYS sent
debug1: expecting SSH2MSGNEWKEYS
debug1: SSH2MSGNEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2MSGSERVICEREQUEST sent
debug1: SSH2MSGSERVICEACCEPT received
Unauthorized access to this machine is prohibited.
Disconnect IMMEDIATELY if you aren't an authorized user with a valid account.
All activities performed on this device may be logged, and violations of
this policy may result in disciplinary action, and may be reported to
law enforcement authorities.
There is no right to privacy on this device.
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/deviceadmin/.ssh/idrsa
debug1: Trying private key: /home/deviceadmin/.ssh/iddsa
debug1: Trying private key: /home/deviceadmin/.ssh/idecdsa
debug1: No more authentication methods to try.
Permission denied (publickey).

So you can't log in to confirm the config?
I can't really help with troubleshooting that without config and/or logs.
Whenever you mess with PAM or SSH configs, don't log out until you've confirmed you can log back in.

I am currently locked out of the system so I don’t have access to the logs.
I have no clue where the keys are stored on the system so even if I had
access to the server I wouldn’t know where to copy the keys to.
On Tue, Oct 3, 2017 at 10:33 AM Thomas Habets<EMAIL_ADDRESS>wrote:

So you can't log in to confirm the config?
I can't really help with troubleshooting that without config and/or logs.
Whenever you mess with PAM or SSH configs, don't log out until you've
confirmed you can log back in.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/google/google-authenticator/issues/613#issuecomment-333861441,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AOZdee7IxOPQq2t0HxSQaa0QCz9_rgGhks5sokXRgaJpZM4PsH0p
.

--
Sent from www.Google.com/gmail/userid.qwusiort11903921041


Double check the lockdown multiplier logic

Reference: https://github.com/Urban-Analytics/RAMP-UA/blob/37a427154f5dcbddad572722f259cfc5845ca704/coding/initialise/raw_data_handler.py#L205

Reference for how to use it: https://github.com/Urban-Analytics/RAMP-UA/blob/37a427154f5dcbddad572722f259cfc5845ca704/coding/main_model.py#L127

Need to audit https://github.com/dabreegster/uatk-spc/blob/main/src/init/lockdown.rs and maybe improve comments
"the numbers in the file are extra time at home"

#18 fixed it


Release for purs 0.14

#21 has been merged into main (thanks @realvictorprm) but we need https://github.com/paf31/purescript-foreign-generic/pull/61 to finish a release.

Released as v8.0.0


Bump required version of dask

The dask.array.learn transition means we have a hard requirement on Dask's minimum version. Should require Dask >= 0.18.0 I think.

I don't totally follow along here. I could definitely be missing something, but it looks like dask-ml has removed all dependencies on dask.array.learn, so why would we need to bump the minimum required dask version?

Sorry, you're right. I had this backwards.


Saga intacct - After entering incorrect credentials, if we connect advanced-auto sync toggle is off.

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

Version Number: 9.0.33-1
Reproducible in staging?: Y
Reproducible in production?: Y
Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:

Launch app
Create a workspace
Tap more features --enable accounting features
Tap accounting features -- connect sage intacct entering incorrect credentials
Tap 3 dots - enter correct credentials and connect
Tap advanced
Note auto sync toggle is off
Disconnect connection
In new workspace, try to connect entering valid credentials
Tap advanced
Note auto sync is on

Expected Result:
After entering incorrect credentials, if we connect advanced-auto sync toggle must not be off.
Actual Result:
After entering incorrect credentials, if we connect advanced-auto sync toggle is off.
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos
https://github.com/user-attachments/assets/1e1f7615-2a08-4e04-93e7-3f0a2e2303a0

View all open jobs on GitHub

I don't think this one is a bug.


Microsoft SqlServer Support

Would you be willing to merge in support for Microsoft SQL Server?
I've begun the implementation. See https://github.com/danrzeppa/node-sql/compare/brianc:master...master to view my current changes.
I just started going through the tests (alphabetically) and adding tests for SqlServer, making implementation changes when necessary. I've only made it up to cast-tests, but plan on continuing at a pretty fast past. Just thought I'd check and make sure that the way I was doing things "fit in" with the rest of the project.
If you're open to adding this support, would you like to merge all the changes at once, or would you rather that I submit pull requests as I go along?

The Microsoft SQL Server support has been merged. There may be some features that are not yet implemented, but a very large portion is implemented and working. I've been using the module against MS SQL Server for quite some time. Let me know if there's something not working and I'll try to address it.


Modrinth disable Download of Required dependencies

Enhancement Type
Improve an existing feature
Describe the enhancement
Hey, if you want to use mods like adorn and wthit together on Quilt it is at the moment not working with the auto download feature.
Required dependencies wthit:

fabric-api

Required dependencies Adorn:

(qsl) Quilted Fabric API

If I start the server, qsl and fabric-api trying to register the same Mod ID and then the server stops because that is not possible.
I know that is an issue on Modrinth/modder side, and they should set the right dependencies for quilt versions. But could you implement an env variable where I can change the behaviour?
Documentation optional dependencies

Yes that totally makes sense. Really I should transform the option to download optional dependencies into an option that accepts none, required, or optional as the choices.

Thank you very much. I appreciate your work <3


Get Operation Doesn't Work in Comments Section Comment Listing Problem

Hello friends, there is a problem with the get process in the comments. There is no problem on localhost, but after uploading to the hosti, the comments are not listed, Angullar gives an error, 404 error. This could be the reason.

Maybe it's a deployment issue

I'm thinking about it but I've tried every method. Has anyone tried this in a hosting or server environment before? I am using the latest version of Angullarjs and there is no problem on localhost. It just doesn't work in the server environment, but the post process works.

You could check with the hosting company

I talked to them and they said a few things and I wrote them again.
The answer they gave me is as follows ---
On the local side, file/folder paths are defined according to the device on which the installation is made. Can you check the file/folder paths in the area where you make the http get request and all file paths of your site by updating them according to your hosting service?
I'd be happy to help you with any other questions you may have.
Some of the general methods recommended for the "Possibly unhandled exception" error appearing in the browser console are as in the article below:
https://www.codelord.net/2017/08/20/angular-1-dot-6-s-possibly-unhandled-rejection-errors/
Again, the link that is subject to the error and displays 404 is as follows, and when we visit it directly, we encounter a 404 error:
https://bronzgroup.com.tr/comments?entityId=2&entityTypeId=NewsItem&search=&page=1
Could you please check again accordingly?

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(
SELECT c1.Id, c1.CommentText, c1.CommenterName, c1.`Crea...' at line 10 I am using mysql, I think it may have something to do with mysq https://bronzgroup .com.tr/comments?entityId=2&entityTypeId=NewsItem&search=&page=1 please look here Pomelo.EntityFrameworkCore.MySql" Version="7.0.0" I use


Upload wheel to PyPI

Please could you also upload a wheel to PyPI?
For example, to generate:
python3 -m pip install -U pip setuptools wheel
python3 setup.py sdist --format=gztar bdist_wheel

https://pythonwheels.com/ says advantages include:

Faster installation for pure Python and native C extension packages.
Avoids arbitrary code execution for installation. (Avoids setup.py)
Installation of a C extension does not require a compiler on Linux, Windows or macOS.
Allows better caching for testing and continuous integration.
Creates .pyc files as part of installation to ensure they match the Python interpreter used.
More consistent installs across platforms and machines.

The wheel (11K) is also smaller to download than sdist (25K).
These advantages also help other packages which include pyperclip as a dependency.
Thank you!

The modern, recommended way to upload wheels is to use build and twine:
build
twine upload dist/*

If this project wishes to adopt jaraco/skeleton (or concepts from it), tagged commits would be automatically released with wheels after passing tests.


Add support for bfe.u64 and bfi.b64

The cub::BFE and cub::BFI wrappers are useful, because nvcc likes to place bitfield structs in local memory rather than registers, making it far more efficient to work with 64-bit integers instead.
At present, CUB only provides wrappers for 32-bit bit field manipulation: 64-bit BFE is handled via the bit shift operator rather than inline assembly, and 64-bit BFI is not supported at all.
This PR adds support for 64-bit BFI and BFI. It changes the return type of cub::BFE to match that of the PTX intrinsic, and adds templates for BFI that match BFE.

Looks like this was closed accidentally during the repo move. Reopening.

It looks like 64-bit BFE/BFI were added since this PR was added, but the current implementation doesn't use inline ptx for the 64-bit versions. We should check what the optimizer outputs for the current version and switch to inline ptx if needed.

@aterenin we'd still welcome this functionality, but it has grown quite out of date. I'm going to close this PR for now, but feel free to reopen if you decide you would like to update it and move forward.

Thanks for the response! I would've loved to do this, but it has been so long that I no longer have an idea what is going on. Anyone who needs this is welcome to build on my PR.


[New practice exercise]: Linked list

Nice!
Well, there is only one exercise left in store for this month.
That is sublist.
You can do that one if you want but otherwise, I can do it.
If you want you can wait a bit with that one since it is 2 weeks left until next month, or you can do it when you feel like it (as long as it's done this month).

Hey @meatball133, I'll take care of sublist soon.


ImportError: /usr/lib/libtorch_cpu.so: undefined symbol: _ZNK3c1010TensorImpl13is_contiguousENS_12MemoryFormatE

I was trying to train the model using the command:
python ../../external/mmdetection/tools/train.py          $CONFIGURATION_FILE
but faced this preoblem:
python ../../external/mmdetection/tools/train.py          $CONFIGURATION_FILE
Traceback (most recent call last):
File "../../external/mmdetection/tools/train.py", line 8, in
from mmdet.datasets import get_dataset
File "/home/j/Desktop/mmdetection/mmdet/datasets/init.py", line 2, in
from .cityscapes import CityscapesDataset
File "/home/j/Desktop/mmdetection/mmdet/datasets/cityscapes.py", line 14, in
from .coco import CocoDataset
File "/home/j/Desktop/mmdetection/mmdet/datasets/coco.py", line 10, in
from mmdet.core import eval_recalls
File "/home/j/Desktop/mmdetection/mmdet/core/init.py", line 7, in
from .post_processing import *  # noqa: F401, F403
File "/home/j/Desktop/mmdetection/mmdet/core/post_processing/init.py", line 1, in
from .bbox_nms import multiclass_nms
File "/home/j/Desktop/mmdetection/mmdet/core/post_processing/bbox_nms.py", line 3, in
from mmdet.ops.nms import nms_wrapper
File "/home/j/Desktop/mmdetection/mmdet/ops/init.py", line 11, in
from .nms import nms, soft_nms
File "/home/j/Desktop/mmdetection/mmdet/ops/nms/init.py", line 1, in
from .nms_wrapper import nms, soft_nms
File "/home/j/Desktop/mmdetection/mmdet/ops/nms/nms_wrapper.py", line 4, in
from . import nms_cpu, nms_cuda
ImportError: /usr/lib/libtorch_cpu.so: undefined symbol: _ZNK3c1010TensorImpl13is_contiguousENS_12MemoryFormatE
my gpu is 1060,cuda 10.2,torch 1.1.
can anyone help with my preoblem?I cant find proper answer.
thx

@JachinMa PyTorch 1.1 might be too old. The code is tested with PyTorch 1.4. Also please make sure that buildtime and runtime versions match.

@JachinMa PyTorch 1.1 might be too old. The code is tested with PyTorch 1.4. Also please make sure that buildtime and runtime versions match.

thx for reply
I used pytorch1.5 at first,and faced this problem:
ImportError: cannot import name 'deform_conv_cuda'
Traceback (most recent call last):
File "../../external/mmdetection/tools/train.py", line 8, in
from mmdet.datasets import get_dataset
File "/home/j/Desktop/openvino_training_extensions-develop/external/mmdetection/mmdet/datasets/init.py", line 1, in
from .custom import CustomDataset
File "/home/j/Desktop/openvino_training_extensions-develop/external/mmdetection/mmdet/datasets/custom.py", line 11, in
from .extra_aug import ExtraAugmentation
File "/home/j/Desktop/openvino_training_extensions-develop/external/mmdetection/mmdet/datasets/extra_aug.py", line 5, in
from mmdet.core.evaluation.bbox_overlaps import bbox_overlaps
File "/home/j/Desktop/openvino_training_extensions-develop/external/mmdetection/mmdet/core/init.py", line 6, in
from .post_processing import *  # noqa: F401, F403
File "/home/j/Desktop/openvino_training_extensions-develop/external/mmdetection/mmdet/core/post_processing/init.py", line 1, in
from .bbox_nms import multiclass_nms
File "/home/j/Desktop/openvino_training_extensions-develop/external/mmdetection/mmdet/core/post_processing/bbox_nms.py", line 3, in
from mmdet.ops.nms import nms_wrapper
File "/home/j/Desktop/openvino_training_extensions-develop/external/mmdetection/mmdet/ops/init.py", line 1, in
from .dcn import (DeformConv, DeformConvPack, ModulatedDeformConv,
File "/home/j/Desktop/openvino_training_extensions-develop/external/mmdetection/mmdet/ops/dcn/init.py", line 1, in
from .functions.deform_conv import deform_conv, modulated_deform_conv
File "/home/j/Desktop/openvino_training_extensions-develop/external/mmdetection/mmdet/ops/dcn/functions/deform_conv.py", line 5, in
from . import deform_conv_cuda
ImportError: cannot import name 'deform_conv_cuda'
this will not happen in pytorch1.1,maybe I should use pytorch 1.4?
also,this question may be stupid,but what is buildtime and runtime,I am new here.

PyTorch 1.5 support is not there yet. Some components may be compatible with multiple versions, but full functionality is only guaranteed for PyTorch 1.4 currently. So please try it.
In general the simplest way to set everything up properly is to closely follow install instructions from here.

PyTorch 1.5 support is not there yet. Some components may be compatible with multiple versions, but full functionality is only guaranteed for PyTorch 1.4 currently. So please try it.
In general the simplest way to set everything up properly is to closely follow install instructions from here.

py1.4 did work,now I wont see this problem,but another problem occurs:
Traceback (most recent call last):
File "../../external/mmdetection/tools/train.py", line 8, in
from mmdet.datasets import get_dataset
ImportError: cannot import name 'get_dataset'
I cant find the file 'get_dataset.py' everywhere,what should I do to solve this?

Please make sure that submodules are up to date. Use this command to update all submodules:
git submodule update --init

@JachinMa Did submodules' update help?

@JachinMa Did submodules' update help?

sorry I forgot to reply.
I've tried this comman,but it didnt work.
now I get another experiment to run,Im very glad of your kind help.

@JachinMa As long as I can't reproduce the issue on my side, at least without some extra information from you, I'll close it now. If you'll experience it again, please, reopen.


Temperature & Redshift

Added in some old code from before the refactor of GeodesicTracer.jl so that redshift values for the CarterBoyerLindquist method may be calculated. At the moment, this still requires a little bit of boiler plate as I don't want to commit to an API until I've finished looking at some analytic derivations for the general 2nd order case redshift, and had a chance to think about how the dispatch is going to work.
Here's an example script in the mean time:
using GeodesicRendering
using AccretionGeometry
using CarterBoyerLindquist
using AccretionFormulae

using Plots
gr()

m = CarterMethodBL(M=1.0, a=1.0)

# observer position
u = [0.0, 1000.0, deg2rad(85.0), 0.0]

# disc has inner radius 10, outer radius 50, perpendicular to the spin axis
d = GeometricThinDisc(10.0, 50.0, deg2rad(90.0))

# wrapper around the redshift function
function redshift(m, sol, max_time; kwargs...)
    u = sol.u[end]
    AccretionFormulae.regular_pdotu_inv(u, sol.prob.p, m)
end

# create and compose the ValueFunction
redshift_vf = (
    # calculate redshift
    ValueFunction(redshift)
    # filter only pixels with r > 9, i.e. on the disc
    ∘ FilterValueFunction((m, sol, max_time; kwargs...) -> sol.u[end][2] > 9, NaN)
    # filter only pixels that terminated early (i.e., intersected with something)
    ∘ ConstValueFunctions.filter_early_term
)

# do the render
img = @time rendergeodesics(
    m, u, 2000.0,
    d,
    fov_factor=3.0, abstol=1e-9, reltol=1e-9,
    image_width = 350,
    image_height = 250,
    vf =redshift_vf
)

# plot
heatmap(reverse(img, dims=1))

For CarterMethodBL, the tolerances need to be a little better, i.e. 1e-9. If scaling the image up, e.g. twice the size (as below), image_width, image_height and fov_factor should be multiplied by the same scaling integer n.
Output:

Developing after the refactor
It's probably easiest to use the Julia Pkg develop or dev command, along with all the benefits they bring, and to create a development environment "seperate" from the actual package you are working on. I would recommend creating a new directory to keep this development environment in -- in this example, DevEnv/.
AccretionFormulae depends on two packages, which we can install in the new environment. To do this, we just need to add the Astro Group Bristol registry:
(@1.7) julia>] activate .
(DevEnv) pkg> registry add https://github.com/astro-group-bristol/AstroRegistry

We can now install the dependencies we need just as we would any other package
(DevEnv) pkg> add GeodesicRendering CarterBoyerLindquist

Next, we want to check out the AccretionFormulae repository for development; we select specifically the fergus/wip-redshift branch so we have access to the code in this draft PR:
(DevEnv) pkg> dev --local https://github.com/astro-group-bristol/AccretionFormulae.jl#fergus/wip-redshift

The dev command creates a (local) clone of the desired package, and tells Julia to use this in the environment. Once we have finished developing a dev package, we can free it to use the registry versions again.
You should now have a directory structure similar to:
DevEnv/
├── Manifest.toml
├── Project.toml
├── dev
│   └── AccretionFormulae.jl/
└── script1.jl

To make sure everything is working correctly, I would recommend copying the script above into a new file script1.jl and make sure you can recreate the above plot. If anything isn't working, tag me in this PR with your issues and I will do my best to help.
Packages you install into the DevEnv, such as Plots.jl or BenchmarkTools.jl, are then added to the Package.toml of the development environment, and not the repository you are developing, allowing you to keep development tools and project tools seperate :)
Development practice
I would strongly recommend using Tim Holy's Revise.jl when developing. Install it into DevEnv with
(DevEnv) pkg> add Revise

then simply call
julia> using Revise

in the REPL before using any other libraries. This will ensure that if you modify files in e.g. dev/AccretionFormulae that they will be reloaded by Revise, and ensures you don't have to keep restarting your REPL whenver you make changes.
This is quite different from how you might have developed in Python before, but lends itself to exploratory work much more succinctly -- hopefully you'll agree!

Oh, one last thing! DifferentialEquations recently released a substantial update, so it may take several minutes to precompile GeodesicRendering again. The first time you run the script, you may wish to take a short coffee break ;)

Hi @fjebaker, we're trying to get an image of the observed temperature using your redshift function. We need to take the product of the temperature at each radius (from our function), with the corresponding g factor (as per the Fanton paper). In order to do this we need to find the g factor at each radius, however we're unsure how to obtain g values as a function of radius. It seems from the 'redshift()' function above, the line: 'AccretionFormulae.regular_pdotu_inv(u, sol.prob.p, m)' gives the g factor?  Would you be able to suggest a way to combine these g values with the corresponding values of T, i.e. at the same radius? Finally, once we've got a function producing redshift adjusted temperature values, is a case of inputting this into the 'ValueFunction()', as in the above script? Thanks, Kyle and Dan

Yes! So this is pushing up against an API choice that I haven't quite settled on yet. I'd like for the ValueFunctions to be composable, as they already are in the case of the FilterValueFunctions, but I haven't quite worked out how to do this best.
tl;dr
The easiest thing to do at the moment is to not try and compose your temperature function with the redshift function, but just evaluate it in your own ValueFunction. To be more detailed:
All of the information of the geodesic solution is contained in sol;

the position of the intersection is stored in sol.u[end], i.e. the last four-vector in the geodesic path.
sol.u[end] is an array with 4 elements, with index 1 being time, and 2-4 being r, theta, and phi respectively.

You can therefore write your temperature function along these lines:
function temperature_function(m, sol, max_time; kwargs...)
    # calculate redshift at intersection position
    g = redshift(m, sol, max_time; kwargs...)

    # get intersection position
    u = sol.u[end]

    # calculate temperature using `g` and `u`
    temperature = ...

    return temperature
end

This obviously requires the redshift function above. Then, the full ValueFunction you'd want to compose is:
temperature_vf = (
    ValueFunction(temperature_function)
    ∘ FilterValueFunction((m, sol, max_time; kwargs...) -> sol.u[end][2] > 9, NaN)
    ∘ ConstValueFunctions.filter_early_term
)

which will filter the pixel values so you're only calculating the temperature for geodesics that actually intersected the disc, and not those which e.g. travelled to infinity or fell into the event horizon.
Speculative API
At the moment, whatever the previous ValueFunction returns is passed to the next (if there is one); so doing something like
vf = ValueFunction(temperature_function)∘ ValueFunction(redshift)

would pass the redshift calculated as the sole argument to (temperature_function). This is obviously not desireable, since all information about the geodesic intersection is lost. It may be recovered by ammending
function redshift(m, sol, max_time; kwargs...)
    u = sol.u[end]
    g = AccretionFormulae.regular_pdotu_inv(u, sol.prob.p, m)
    (sol, g)
end

which now passes sol and the redshift value g to the temperature function as arguments. Though this works for intended purposes, it doesn't feel generic enough for future applications, where my hope is that complex functions could be chained together from many smaller functions without them having to be "aware" of eachother's output formats.
At the moment, the kwargs... argument has been left in for perhaps such a purpose, passing the output of previous ValueFunctions to the next via this parameter, but I think the signature is a little strange like this...
If you have a suggestion for how this might elegantly work, in such a way as to allow ValueFunctions to string together or exist solely, please let me know!

The previous implementation used a px value, which represented the pixel value computed so far (initialised to NaN) which the ValueFunctions continously modified, but I didn't like that particularly.
Another idea I am considering is having a distinction between ValueFunctions which use/modify a previous result (as temperature would), and those which just generate a value, as with redshift.

For now just compute the redshift function within your temperature function, and we'll see how that can be decoupled in the future.

@kyle8mcknight Another point to mention, which I forgot in the above: all of the metric-relevant quantities, i.e. black hole spin and mass, are in the m parameter passed into the ValueFunctions.

m.M is the black hole mass in gravitational units;
m.a is the black hole spin, again in gravitational units.

I don't believe it is relevant for your needs, but for completeness, the max_time parameter is the value of the affine parameter at which the geodesic terminated.

Thanks for the help @fjebaker. We've tried to make a temperature function based on your advice, but have run into an issue with the following error. We think this is the same error we were getting when we were initially playing with the mass and spin. Here is our code:
Emission Profile:
#imports
using Plots

#functions
"""
From Reynolds (2020) (Eq2-4)
Calculates the radius of the inner most stable circular orbit of the a black hole,
with spin a_star, and mass M.
"""
function r_isco(a_star, M)

    a = a_star
    r_g = 2*G*M/(c^2)
    z1 = 1+∛(1-a^2)*(∛(1+a)+∛(1-a))
    z2 = √(3*a^2+z1^2)
    if a >= 0
        r_isco = (3+z2-(3-z1)*√(3+z1+2*z2))*r_g
    elseif a < 0
        r_isco = (3+z2+(3-z1)*√(3+z1+2*z2))*r_g
    end
end

"""
From Page & Thorne (1974) (Eq15n)
Calculates the function f at radius r, for a black hole of spin a_star, and mass M,
which is used to calculate the flux given by its accretion disk.
"""
function f(r, a_star, M)

    R_isco = r_isco(a_star, M)

    x = √(r/M)
    x0 = √(R_isco/M)
    x1 = 2*cos((1/3)*(acos(a_star))-(π/3))
    x2 = 2*cos((1/3)*(acos(a_star))+(π/3))
    x3 = -2*cos((1/3)*(acos(a_star)))

    f = (3/(2*M))*(1/(x^2*(x^3-(3*x)+(2*a_star))))*(x-x0-((3/2)*a_star*log(x/x0))
            - (3*(x1-a_star)^2)/(x1*(x1-x2)*(x1-x3))*log((x-x1)/(x0-x1))
            - (3*(x2-a_star)^2)/(x2*(x2-x1)*(x2-x3))*log((x-x2)/(x0-x2))
            - (3*(x3-a_star)^2)/(x3*(x3-x1)*(x3-x2))*log((x-x3)/(x0-x3)))
end

function diss(mdot, r, a_star, M)
    diss = mdot*f(r, a_star, M)/(4*π*r)
end

function mdot(M)
    L_edd = 3e4*L_☼*(M/M_☼)
    Mdot = -L_edd/(c^2*η)
    mdot = 0.1*Mdot
end

function temp(r, a_star, M)
    m_dot = mdot(M)
    temp = (diss(m_dot, r, a_star, M)/σ_SB)^(1/4)
end

"""
From Fanton et al. (1997) (Eq78)
"""
function temp_obs(r, a_star, M, g)
    temp = temp(r, a_star, M)
    temp_obs =  g*temp
end

# constants
G = 6.67e-11
c = 3e8
L_☼ = 3.8e26
M_☼ = 1.99e30
σ_SB = 5.67e-8

η = 0.1
# M = 10*M_☼
# a_star = 0.1

module EmissionProfile

export temp_obs, r_isco

end

Script to test:
using GeodesicRendering
using AccretionGeometry
using CarterBoyerLindquist
using AccretionFormulae
include("emission_profile.jl")
#using emission_profile

using Plots
gr()

m = CarterMethodBL(M=1.0, a=1.0)

# observer position
u = [0.0, 1000.0, deg2rad(85.0), 0.0]
R_isco = r_isco(m.a, m.M)

# disc has inner radius 10, outer radius 50, perpendicular to the spin axis
d = GeometricThinDisc(R_isco, 50.0, deg2rad(90.0))

# wrapper around the redshift function
function redshift(m, sol, max_time; kwargs...)
    u = sol.u[end]
    AccretionFormulae.regular_pdotu_inv(u, sol.prob.p, m)
end

function temperature(m, sol, max_time; kwargs...)
    g =  redshift(m, sol, max_time: kwargs...)

    u = sol.u[end]

    M = m.M*1.99e30
    a = m.a
    a_star = a/M
    temperature = temp_obs(u[2], a_star, M, g)
end

# create and compose the ValueFunction
redshift_vf = (
    # calculate redshift
    ValueFunction(temperature)
    # filter only pixels with r > 9, i.e. on the disc
    ∘ FilterValueFunction((m, sol, max_time; kwargs...) -> sol.u[end][2] > r_isco, NaN)
    # filter only pixels that terminated early (i.e., intersected with something)
    ∘ ConstValueFunctions.filter_early_term
)

# do the render
img = @time rendergeodesics(
    m, u, 2000.0,
    d,
    fov_factor=3.0, abstol=1e-9, reltol=1e-9,
    image_width = 350,
    image_height = 250,
    vf =redshift_vf
)

# plot
heatmap(reverse(img, dims=1))

If there's any more information you need to diagnose this, just let us know.
We were also having problems correctly importing the functions from the files, and settled on include("emission_profile.jl"), which worked some of the time but doesn't seem right if you have any insight.

Hi @dangoh123, the error your getting seems to be because you're trying to compare the value of a float to a function name, in
redshift_vf = (
    ValueFunction(temperature)
    ∘ FilterValueFunction((m, sol, max_time; kwargs...) -> sol.u[end][2] > r_isco, NaN)
    #                                                                      ^^^^^^

    ∘ ConstValueFunctions.filter_early_term
)

Should this be R_isco?
I will try running this code later today if you still have problems!

When you open a PR with your new code I'll review how to structure your work into the module, and we can resolve the import issues you are having then 👍

Actually, thinking about that a little more, when you open the PR, can you select this branch as the one to merge into?

@fjebaker cheers for that, I've opened a PR with all the new things.
I changed r_isco to R_isco, but that didn't seem to make any difference. These two similar variables exist because Julia was having problems with the variables and functions sharing names if you know anything about that.

Temperature plots in their current standing for maximally spinning Black Hole:

Resolved differences in the redshift calculations in Carter and 2nd Order methods:

Merging to keep future updates clean.

Hi @fjebaker, just a quick one about the scale of the graph. As you can probably see from any temperature plots, the tick labels on the colourbar go off the plot. eg:

This is quite annoying, as we can't really figure out if our scale is correct. Preferably, we would be able to have scientific notation on the scale, but so far I haven't been able to find any simple way of doing this. I found a couple of threads (1, 2) discussing this, but they all seemed to require installation of other packages like PyPlot or Plotly, which adds more annoying dependencies, and hasn't been working very well. I haven't managed to find an elegant solution to this, and was wondering if you were very familiar with the syntax of Julia's default Plots package?

@dangoh123 What I usually do with Plots.jl is divide the data manually, and then put the scaling in the title or somewhere similar:
img ./= 1e4 # just a guess

heatmap(img)
title!("Temperature x1e4")

I've not used Plots.jl to create publication quality plots before, I just use it as a quick tool to view data, create interactions (plotly) and create animations. If you really want fine control over your plots, I would highly recommend Makie.jl (also by the JuliaPlots community, but uses Cairo as a backend and has a much nicer layout and attribute management system).

Another option would be to play with the size of the figure (I don't know if this works, but it's an idea):
hm = heatmap(img)
plot(hm, size=(800, 300))

@fjebaker that first method seemed to do the trick for now, thanks. Hopefully there'll be a more elegant solution for our final plots, but this should get us on the right path.

@dangoh123 What I usually do with Plots.jl is divide the data manually, and then put the scaling in the title or somewhere similar:
img ./= 1e4 # just a guess

heatmap(img)
title!("Temperature x1e4")

I've not used Plots.jl to create publication quality plots before, I just use it as a quick tool to view data, create interactions (plotly) and create animations. If you really want fine control over your plots, I would highly recommend Makie.jl (also by the JuliaPlots community, but uses Cairo as a backend and has a much nicer layout and attribute management system).

Just one quick question about the first line. What exactly does the . represent in ./=? I get that the /= is a divide equals, but I can't find anything about the ..


Corrected default caps for data.

@suneetnangia : Thanks for your contribution to the Azure documentation! The author, @CFreemanwa, has been notified to review your proposed change.

Please can you look at this? We need to fix this for our customers, we cannot afford to have out of sync documentation anymore.

#sign-off


Kill Signal For Intended Termination

I'm creating a Perl script to launch multiple sessions of retina against an array of cameras.  The purpose of this endeavor is to isolate error conditions and create a data set of unique error conditions which may be addressed in your development.
I just sent a "kill -HUP [process #}" and checked my output log of the process so-killed and there was no entry.  What kind of signal should I send to a background running retina process so that it will gracefully shut down and the log will reflect the requested shutdown?
Here's a current example of the command I'm forking off (from a Perl script using "system($cmd)"):
 cargo run --example client mp4 /tmp/retina/Garage_East_20210605_073201.mp4 --url rtsp://<IP_ADDRESS>:554/h264Preview_01_main --username retina --password testingisfun  >/tmp/retina/Garage_East_20210605_073201.log  2>&1 &

I haven't, but will, isolate STD and STDERR, to see if the regular output of each frame can be isolated from error conditions.
Here's the last 5 lines of a log of a process launched in the format above where I sent the active process a "kill -HUP [process number]":
jlpoole@ares /usr/local/src/retina $ tail -n 5 /tmp/retina/Peck_West_Alley_20210605_073201.log
2729606549 (mod-2^32:<PHONE_NUMBER>), npt 3820.544: 512-byte audio frame
3003918369 (mod-2^32:<PHONE_NUMBER>), npt 3820.507: 21397-byte video frame
3003921339 (mod-2^32:<PHONE_NUMBER>), npt 3820.540: 22484-byte video frame
3003924309 (mod-2^32:<PHONE_NUMBER>), npt 3820.573: 20732-byte video frame
2729607573 (mod-2^32:<PHONE_NUMBER>), npt 3820.608: 512-byte audio frame
jlpoole@ares
/usr/local/src/retina $

kill -INT should work. The CLI is a quick example so I didn't put a lot of thought into different ways people might use it.

Thank you.  That works.  Here the tail end of my log showing a date time stamp for termination:
    Finished dev [unoptimized + debuginfo] target(s) in 0.26s
     Running `target/debug/examples/client mp4 /tmp/retina/Peck_West_Alley_20210605_102220.mp4 --url 'rtsp://<IP_ADDRESS>:554/h264Preview_01_main' --username retina --password testingisfun`
I20210605 10:22:45.418 main client::mp4] Stopping
I20210605 10:22:45.420 main client] Done
jlpoole@ares /usr/local/src/retina $


Fix version number and SHA

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

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.

@adbeda - as the maintainer, it is your job to merge this :wink:


Make namespaced forms return model for #to_model.

While working with this basic setup today
class PostForm < Reform::Form

  class Admin < PostForm; end

  class Normal < PostForm; end

  # def to_model
  #   model
  # end
end

I discovered that when sending my view a PostForm::Normal instance, the path generated for the form action (= form_for @form do |post_form|) was defaulting to post_form_normals_path.  After some digging, I found that this was due to #to_model and that uncommenting the above-defined #to_model method gave the expected behavior.
This change implements the expected behavior for non-composed forms and preserves the existing behavior for composed forms.

@posgarou all rails/ ActiveModel related code has been moved to the reform-rails gem. I'm going to close this PR, but feel free to reopen in reform-rails if you want.
Thanks!


[DNM]Cherry pick sm4

What problem does this PR solve?
Issue Number: close #xxx
Problem Summary:
What is changed and how it works?
Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 2 committers have signed the CLA.:x: BusyJay:x: jiayang-zhengYou have signed the CLA already but the status is still pending? Let us recheck it.

I can't push to your branch. So I create a new pull request here: https://github.com/pingcap/tidb-engine-ext/pull/142


Rule-based generation

Hello,
Thank you for this work, it is very interesting and helpful.
I have read carefully the paper you put on arxiv, and there is not detailed explanation on the type of rules you used for the dataset building (Particularly NuScenes ). Can you please provide me with some details or implementations?
Best,
Nassim.

Hello,
Now we don't have such a plan to release the dataset building detail now, as we may use the test data for the challenge (CVPR 2024). But at some point we may release it as a data_building.py


Access Denied

Hello!
I seem to be getting an error when executing BurntToast:
Exception calling "Show" with "1" argument(s): "Access denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))"
At C:\WINDOWS\system32\config\systemprofile\Documents\WindowsPowerShell\Modules\BurntToast\0.6.1\Public\Submit-BTNotific
ation.ps1:70 char:5

[Windows.UI.Notifications.ToastNotificationManager]::CreateToastN ...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
FullyQualifiedErrorId : UnauthorizedAccessException
Exception calling "Show" with "1" argument(s): "Access denied. (Exception from H
RESULT: 0x80070005 (E_ACCESSDENIED))"
At C:\WINDOWS\system32\config\systemprofile\Documents\WindowsPowerShell\Modules
\BurntToast\0.6.1\Public\Submit-BTNotification.ps1:70 char:5

[Windows.UI.Notifications.ToastNotificationManager]::CreateToastN ...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
FullyQualifiedErrorId : UnauthorizedAccessException

I'm running the script as local system account
EDIT: Wrong logfile

Hello @Windos!
Terribly Sorry to be bothering you once again, I do hope I'm not interlopeing or becoming a source of irritance.
I was wondering perhaps if you would have any notion regarding the issue I presented, if it is related to the actions I've chosen to take with it or regarding the module itself.
Looking forward to your respons
Best Regards, Kanudas

Hi! The same is happening to me:
Exception calling "Show" with "1" argument(s): "Access is denied. (Exception from HRESULT: 0x80070005
(E_ACCESSDENIED))"
At C:\Program Files\WindowsPowerShell\Modules\BurntToast\0.6.3\BurntToast.psm1:1641 char:9

    [Windows.UI.Notifications.ToastNotificationManager]::CreateTo ...

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
FullyQualifiedErrorId : UnauthorizedAccessException

Thanks.

Hi, The same issue when I deploy the script via SCCM.
The script run with System account

ParameterBinding(Out-String): name="InputObject"; value="Exception calling "Show" with "1" argument(s): "Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))""
Exception calling "Show" with "1" argument(s): "Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))"
At C:\Program Files\WindowsPowerShell\Modules\BurntToast\0.6.3\BurntToast.psm1:1641 char:9

    [Windows.UI.Notifications.ToastNotificationManager]::CreateTo ...

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
FullyQualifiedErrorId : UnauthorizedAccessException

Process ID: 15460
PSVersion: 5.1.17763.134
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.17763.134
BuildVersion: 10.0.17763.134
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: <IP_ADDRESS>
A running script without SCCM works very well
Many thanks

I'm getting the following error when running under my admin credentials and running it locally.
Exception calling "Show" with "1" argument(s): "Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))"
At C:\Program Files\WindowsPowerShell\Modules\BurntToast\0.6.3\BurntToast.psm1:1641 char:9

    [Windows.UI.Notifications.ToastNotificationManager]::CreateTo ...

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
FullyQualifiedErrorId : UnauthorizedAccessException

Hey there,
i am doing the following to start the toast as System in the users context:
$server = [System.Net.Dns]::GetHostByName($env:computerName).HostName
Invoke-Command -ComputerName $server -ScriptBlock { New-BurntToastNotification }
If you want to use variables in the ScriptBlock you have to use the -Argumentlist or by using the $using: variable.

Same access denied issue here. Maybe the code should be rewritten using:
Add-Type -AssemblyName System.Windows.Forms
$global:balmsg = New-Object System.Windows.Forms.NotifyIcon
$path = (Get-Process -id $pid).Path
$balmsg.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)
$balmsg.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::Warning
$balmsg.BalloonTipText = ‘This is the pop-up message text for the Windows 10 user'
$balmsg.BalloonTipTitle = "Attention $Env:USERNAME"
$balmsg.Visible = $true
$balmsg.ShowBalloonTip(20000)
This works on my system under logged user and also from console started using runas (under different user)

The easiest thing to do if you can't run the toast as the interactive user is to run it through @KelvinTegelaar's RunAsUser module.
Kelvin has a blog post showing it in action, the use case in mind here is that the script is running as SYSTEM via an RMM tool but obviously the toast needs to come through in the user context.
Another tool you can use is @mkellerman'a Invoke-CommandAs.

This may very well be a system based permissions issue. I have been using a non-BurntToast method (sorry) and get the same error from Show() method on the Windows.UI.Notifications.ToastNotificationManager object. Ran on a few machines in my Enterprise with the noted error. Sent the script to my personal machine and it ran perfectly.

The RunAsUser repo doesn't have issues enabled, the repo has recent commits, but the latest version on PSG is 18 months out of date, and the solution doesn't work for me:
        Invoke-AsCurrentUser : Could not execute as currently logged on user: Exception calling "StartProcessAsCurrentUser"
        with "7" argument(s): "CreateProcessAsUser failed. (Access is denied, Win32ErrorCode 5 - 0x00000005)"

The runasuser repo purposely has issues disabled; there's too many begging choosers demanding support. As it's an open source project. Feel free to dissect the code and make the changes you need really.

Got it.  Maybe post something in your README that says "works for me, if it doesn't work for you, GFY".
Knowing the project has that attitude, I wouldn't have wasted several hours coming up with a fix.

Never said anything like that, but if you think being rude helps your case, it doesn't:) good luck on your endevours though!

It's not my intent to be rude.  My intent was to debug and potentially fix the problem, then share it to help everyone, but your repo and your attitude appear to be that you're shutting down any and all collaboration because some people apparently "demand" help.  That's fine.  That's your choice.


.NET Core support

Hello, do you have any plans to move it to .net core?

It works on netcore. Just look to the nugetpackage repository: https://github.com/pjrharley/Hangfire.Core.Dashboard.Management

@staticdev thanks but I asked about official support, not a fork


Benchmarks on readme?

Hey there, great to see some more bloom/HLL/probabilistic datastructure libraries available for Go, nice work!
Wondered if you wanted to list some benchmarks on the readme so that users navigating around from library to library can evaluate some baseline information about each one?
We are using a forked bloom filter library from Will Fitzgerald:
https://github.com/m3db/bloom
Here's the results I found just between ours (fairly similar, except for the third benchmark):
$ GOMAXPROCS=1 go test github.com/steakknife/bloomfilter -bench=.
goos: darwin
goarch: amd64
pkg: github.com/steakknife/bloomfilter
BenchmarkAddX10kX5              10000000               204 ns/op
BenchmarkContains1kX10kX5       10000000               184 ns/op
BenchmarkContains100kX10BX20     1000000              1398 ns/op

$ GOMAXPROCS=1 go test github.com/m3db/bloom -bench=.
goos: darwin
goarch: amd64
pkg: github.com/m3db/bloom
BenchmarkAddX10kX5              10000000               174 ns/op
BenchmarkContains1kX10kX5       10000000               139 ns/op
BenchmarkContains100kX10BX20     5000000               271 ns/op

You're comparing apples and oranges, and with stolen code modified run differently.
Sent with GitHawk


Slow Download speed on a youtube playlist

I'm using the software in my notebook Windows 10 with a wired connection and the download speed are too slow, i check if there's a problem with my connection but that's not the case, can someone help me with this issues. I took some screenshots from the connection and the software download speed to show the issue.

@aphonsoeliasf, if you were in a country that started a war in Europe i would assume you were censored and in your case using a fast VPN outside your country would help. have you tried this workaround and did it help you get acceptable download speeds?

I run some tests about the network, it seems my ISP is slowing my speed
during the download. I live in Brazil, i enter in contact with them and
there's some block which is slowing the speed, i've been using a VPN and
solve this issue. Thanks for reply.
Em dom., 28 de jul. de 2024 às 15:45, Korb @.***>
escreveu:

@aphonsoeliasf https://github.com/aphonsoeliasf, if you were in a
country that started a war in Europe i would assume you were censored and
in your case using a fast VPN outside your country would help. have you
tried this workaround and did it help you get acceptable download speeds?
—
Reply to this email directly, view it on GitHub
https://github.com/ErrorFlynn/ytdlp-interface/issues/58#issuecomment-2254608442,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHBACBRQ4KIXR5RHM4EB6WLZOU35ZAVCNFSM6AAAAABLTAV6SWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJUGYYDQNBUGI
.
You are receiving this because you were mentioned.Message ID:
@.***>


Environment variable BACKUP_TYPE its not working as expected

If the container is executed as docker run <args> blacklabelops/volumerize [backup/restore/etc] it sets correctly the BACKUP_TYPE env var. But if its not specified the action (aka let the cron job do his thing), its not going to be correctly set.

Still needs a pull request


Increase performance of process_write_paged when writing page sizes that are larger than transfer page size

Currently process_write_paged handles this case by splitting a write for a single page into units of transfer page size (4096B), we should consider updating this so we only need to do one write per page.
e.g. page size = 4128B, we first write 4096B to page X and then another write for remaining 32B

this was fixed a while ago, we always write as much data as available in one transaction


First pass at spec for extensions + project command implementations.

This is a first stab at internal developer docs for how SDKs should support extensions and project commands.
Prioritized throwing something together here since we now have 3 devs working on 3 SDKs to support project commands. No need to immediately bring every SDK into "compliance" with the requirements here, especially since they will be rapidly changing, but hopefully this can be useful and get us off on the right foot towards keeping the SDKs consistent in terms of functionality and requirements.
@helderco @TomChv Let me know if this is at least somewhat useful. Happy to clarify anything that would be helpful for your ongoing work.
Also cc @crjm @shykes if interested

btw @TomChv, don't worry about the hierarchies of parent and subcommands immediately for your Typescript POC, I think just starting with the flat set of commands and focusing only on the code->schema part would be good. Can then add the hierarchy support as a next step (unless it's completely trivial to support the hierarchy, in which case do whatever makes sense to you).

To add clarity in the Requirements section, there's two things to understand ⚖. There's the user's function, and there's the SDK implementation wrapper of what to send to and get from that function and return back to the runtime. For fresh eyes this may not be properly cemented in so it can help grok it more quickly with a few examples or a diagram.


fix: do not crash on inexistent group

This commit fixes the config-parser to not return an error if a group does not exist. So far we didn't return a Kubernetes "NotFound" error, but a custom one, which meant that the matching didn't work.
We "fixed" this for the test-mock once already, but never fixed the actual implementation...
Notes:

The added tests-case actually also passes without the fix, because the tests use the discovery mock.
We might want to test the discovery-mock separately. I'll add that in a separate PR tomorrow.
Maybe there's a way to template the Helm configmap and make sure that that can be parsed successfully as well. That would be a pretty cool integration test...

:tada: This PR is included in version 0.5.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


failed to write InterleavedBlock with more than 3 elements

HI, I'm developing a connector, and encountered a strange error when I serialize a Map or Row type column with more than 3 elements inside. Can somebody tell me why this happens? thanks.
Here's the code
         final ImmutableList<Type> fieldTypes = ImmutableList.of(
          VarcharType.VARCHAR,
          VarcharType.VARCHAR,
          VarcharType.VARCHAR,
          VarcharType.VARCHAR,
          VarcharType.VARCHAR,
          VarcharType.VARCHAR
          );
        final BlockBuilder blockBuilder = new InterleavedBlockBuilder(fieldTypes,
          new BlockBuilderStatus(), expectedEntries);
        VarcharType.VARCHAR.writeString(blockBuilder, pbUserAudio.getDeviceModel());
        VarcharType.VARCHAR.writeString(blockBuilder, pbUserAudio.getAppVersion());
        VarcharType.VARCHAR.writeString(blockBuilder, pbUserAudio.getOsVersion());
        VarcharType.VARCHAR.writeString(blockBuilder, "" + pbUserAudio.getRecordTimezone());
        VarcharType.VARCHAR.writeString(blockBuilder, "" +pbUserAudio.getRecordTimestamp());
        VarcharType.VARCHAR.writeString(blockBuilder, "" + pbUserAudio.getMode());
        return blockBuilder.build();

And here's the stacktrace:

2016-01-05T20:28:40.569+0800	ERROR	query-execution-1	com.facebook.presto.execution.QueryStateMachine	Query 20160105_122838_00002_g5dsi failed
java.lang.IllegalArgumentException: position is not valid
	at com.facebook.presto.spi.block.AbstractVariableWidthBlock.checkReadablePosition(AbstractVariableWidthBlock.java:169)
	at com.facebook.presto.spi.block.AbstractVariableWidthBlock.isNull(AbstractVariableWidthBlock.java:157)
	at com.facebook.presto.spi.block.AbstractInterleavedBlock.isNull(AbstractInterleavedBlock.java:288)
	at com.facebook.presto.operator.scalar.RowFieldReference.sliceAccessor(RowFieldReference.java:131)
	at com_facebook_presto_$gen_PageProcessor_45.project_0(Unknown Source)
	at com_facebook_presto_$gen_PageProcessor_45.process(Unknown Source)
	at com.facebook.presto.operator.FilterAndProjectOperator.getOutput(FilterAndProjectOperator.java:91)
	at com.facebook.presto.operator.Driver.processInternal(Driver.java:380)
	at com.facebook.presto.operator.Driver.processFor(Driver.java:303)
	at com.facebook.presto.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:587)
	at com.facebook.presto.execution.TaskExecutor$PrioritizedSplitRunner.process(TaskExecutor.java:505)
	at com.facebook.presto.execution.TaskExecutor$Runner.run(TaskExecutor.java:640)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

And if I query for the whole row type column, it just returns 3 elements only in the result. but the row type columns has 6 row fields. so strange.

I read both your email in the mailing list and the example you shown above. It doesn't look like there's anything wrong in the code you shared.
Can you please tell us what the declared type of the column is? For example, you can run describe tableName.
Additionally, it would also help if you can show more code (context of the example you shared).

@haozhun Thank you .
Here's how I define my row type column:
    static RowType pbAudioType() {
        ImmutableList.Builder<RowType.RowField> builder = ImmutableList.builder();
        builder.add(new RowType.RowField(VarcharType.VARCHAR, Optional.of("device_model")));
        builder.add(new RowType.RowField(VarcharType.VARCHAR, Optional.of("os_version")));
        builder.add(new RowType.RowField(VarcharType.VARCHAR, Optional.of("app_version")));
        builder.add(new RowType.RowField(VarcharType.VARCHAR, Optional.of("record_timezone")));
        builder.add(new RowType.RowField(VarcharType.VARCHAR, Optional.of("record_timestamp")));
        builder.add(new RowType.RowField(VarcharType.VARCHAR, Optional.of("mode")));

        final List<RowType.RowField> rowFields = builder.build();
        final List<Type> rowFieldTypes = Lists.newArrayListWithCapacity(rowFields.size());
        final List<String> filedNames = Lists.newArrayListWithCapacity(rowFields.size());
        rowFields.forEach(field -> {
            rowFieldTypes.add(field.getType());
            filedNames.add(field.getName().get());
        });
        final RowType rowType = new RowType(rowFieldTypes, Optional.of(filedNames));
        return rowType;
    }

And here's how the table looks like:

Column
Type
Null
Partition Key
Comment

record_time
varchar
True
True
time when user recorded. Not null. client time using client timezone.  like: '23:59:10'

record_date
varchar
True
True
date when user recorded. Not null. client date using client timezone. like: '2015-12-13'

user_id
varchar
True
True
user neo id in the s3 path

tid
varchar
True
False
reserved column. no meaning until now

activity_id
varchar
True
False
lesson activity id

lesson_id
varchar
True
False
lesson id. unique only when lesson_id and activity_id

platform
varchar
True
False
client device platform. ios or android. This column is decided by the file format. android generate flac file, while ios generate m3a file.

pbaudio
row(device_model varchar, os_version varchar, app_version varchar, record_timezone varchar, record_timestamp varchar, mode varchar)
True
False
NO COMMENT HERE!

s3_key
varchar
True
False
full S3 key for the object. you can use this key to get the object through S3 api

file_size
bigint
True
False
audio file size in bytes

upload_timestamp
timestamp
True
False
timestamp when the audio is uploaded to server. GMT+8 time

And I use a lazy block loader to load the row type column pbaudio, here's the code;
    @Override
    public void load(LazyBlock block) {
        final S3Object s3Object = this.s3Client.getObject(this.bucketName, this.s3Key);
        if (s3Object != null) {
            final Protoss.PBUserAudio pbUserAudio;
            try {
                pbUserAudio = Protoss.PBUserAudio.parseFrom(s3Object.getObjectContent());
            } catch (IOException ex) {
                throw new PrestoException(StandardErrorCode.INTERNAL_ERROR,
                  "failed parse pb from s3 key: s3://" + this.bucketName + "/" + this.s3Key,
                  ex
                );
            }
            LOG.info("start to get s3 content, key: " + this.s3Key);
            final Block mapBlock = serializeRow(pbUserAudio);
            block.setBlock(mapBlock);
        }
    }

    private Block serializeRow(Protoss.PBUserAudio pbUserAudio){
        int expectedEntries = calculateEntrySize(pbUserAudio);
        final ImmutableList<Type> fieldTypes = ImmutableList.of(
          VarcharType.VARCHAR,
          VarcharType.VARCHAR,
          VarcharType.VARCHAR,
          VarcharType.VARCHAR,
          VarcharType.VARCHAR,
          VarcharType.VARCHAR
          );
        final BlockBuilder blockBuilder = new InterleavedBlockBuilder(fieldTypes,
          new BlockBuilderStatus(), expectedEntries);
        VarcharType.VARCHAR.writeString(blockBuilder, pbUserAudio.getDeviceModel());
        VarcharType.VARCHAR.writeString(blockBuilder, pbUserAudio.getAppVersion());
        VarcharType.VARCHAR.writeString(blockBuilder, pbUserAudio.getOsVersion());
        VarcharType.VARCHAR.writeString(blockBuilder, "" + pbUserAudio.getRecordTimezone());
        VarcharType.VARCHAR.writeString(blockBuilder, "" +pbUserAudio.getRecordTimestamp());
        VarcharType.VARCHAR.writeString(blockBuilder, "" + pbUserAudio.getMode());
        return blockBuilder.build();
    }

@haozhun I'm using 0.125, I found that there's some api changes in 0.131, and I think I need sometime to merge into 0.131.

@haozhun  I've merged to the lastest 0.131, still the same error:
java.lang.IllegalArgumentException: position is not valid
	at com.facebook.presto.spi.block.AbstractVariableWidthBlock.checkReadablePosition(AbstractVariableWidthBlock.java:169)
	at com.facebook.presto.spi.block.AbstractVariableWidthBlock.isNull(AbstractVariableWidthBlock.java:157)
	at com.facebook.presto.spi.block.AbstractInterleavedBlock.isNull(AbstractInterleavedBlock.java:288)
	at com.facebook.presto.operator.scalar.RowFieldReference.sliceAccessor(RowFieldReference.java:113)
	at com_facebook_presto_$gen_PageProcessor_48.project_0(Unknown Source)
	at com_facebook_presto_$gen_PageProcessor_48.process(Unknown Source)
	at com.facebook.presto.operator.FilterAndProjectOperator.getOutput(FilterAndProjectOperator.java:110)
	at com.facebook.presto.operator.Driver.processInternal(Driver.java:380)
	at com.facebook.presto.operator.Driver.processFor(Driver.java:303)
	at com.facebook.presto.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:573)
	at com.facebook.presto.execution.TaskExecutor$PrioritizedSplitRunner.process(TaskExecutor.java:505)
	at com.facebook.presto.execution.TaskExecutor$Runner.run(TaskExecutor.java:640)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

I don't think there's any material change between 0.125 and 0.131 related to Block and BlockBuilder.
The way you are using LazyBlock doesn't seem right. A lazy block usually represent a column (instead of one row in a column). These two concepts are different: a map, vs a column of only one item which is a map. Their difference is very similar to that between 1 and ARRAY [1].
I had that thought yesterday. However, the stack trace you showed at the beginning should not happen if that is the case because your stacktrace shows that com_facebook_presto_$gen_PageProcessor_45.project_0 is able to successfully extract an InterleavedBlock from the Block it's working on and pass it to RowFieldReference.sliceAccessor. This is not possible if you made the mistake I mentioned above.
Now, if you are using LazyBlock in a way we don't usually do, it is possible that all the code you presented is correct. The problem lies in the code that is further up.

@haozhun I see. It worked after I change the load strategy. Thank you very much.


Wrapper not used if not world (?) executable

I observed after a poorly done restore from backup that the tools/bazel wrapper in my repo was not executed. The permissions were 0700.
I'm no bits or go expert but it seems like https://github.com/bazelbuild/bazelisk/blob/d1565d8213492a2d380c8a07a1061268f12d65bb/core/core.go#L425 is checking the world-executable bit specifically.
Does there exist a function that will tell us whether tools/bazel is effectively executable (by the current user), rather than checking like this?

Should be fixed by #345


Implement hashing function on definition objects

Doing this would allow a better guarantee that things don't get screwed up when buttons are added/removed from sort bars.
I've been considering using a 32-bit Rabin fingerprint as the hash.

I've got an implementation of a 32-bit Rabin fingerprinting algorithm now, and it's now being used to generate hashes for the sort button and sort bar definitions. Additionally, SortBar now uses these hashes to validate states that the user gives it in the SetState() method. Closing this now.


Pin QCPortal to 0.53

#275 is causing false negatives, so I'd like to pin this the upstream versions that are known to be compatible

Oh wow, I didn't expect that to be so straightforward (I thought the bug was all serverside)


can I use it with some polyfill in ie8 ?

Hi @codering.  Most requires at least an ES5 environment, plus ES2015 Promise.  You can probably find what you need to support IE8 over at es-shims.  I'd guess that either es6-shim (which already includes a Promise polyfill), or es5-shim plus a Promise polyfill (like es6-promise, creed, or bluebird) would be a good place to start.
Hope that helps!

"addEventListener/removeEventListener" may be a problem

@codering Yeah, if you want to use most.fromEvent or @most/dom-event, you'll need to polyfill add/removeEventListener.  I'm sure several exist, and google search would find what you need.

Just as a recommendation for events or other polyfill's we use https://qa.polyfill.io/v2/docs/ its a conditional cdn which only loads the polyfills you want and with the browser that needs them but if you want you could force those polyfills to always load.
For add/removeEventListener: https://qa.polyfill.io/v2/docs/features/#Event

thanks @briancavalier @davidchase


Cannot load the system dictionary for zh-CN. Checked the following paths for dictionary files

Description
My compute is mac and I just download the latest version atom.app and open it ,atom remind me this error.
Actual behavior: [Cannot load the system dictionary for zh-CN. Checked the following paths for dictionary files:
/
/System/Library/Spelling
/Applications/Atom.app/Contents/Resources/app.asar/node_modules/spellchecker/vendor/hunspell_dictionaries]
Versions
Versions=1.26.1
macOS Sierra 10.12.6
China

In addition，Atom how to set the specified error ignored

Thanks for contributing!
We noticed that this looks like a duplicate of https://github.com/atom/spell-check/issues/253 so you can subscribe there for updates if you'd like.

Because we treat our issues list as the Atom team's backlog, we close duplicates to focus our work and not have to touch the same chunk of code for the same reason multiple times. This is also why we may mark something as duplicate that isn't an exact duplicate but is closely related.
For information on how to use GitHub's search feature to find out if something is a duplicate before filing, see the How Can I Contribute? section of the Atom CONTRIBUTING guide.


Offset distance violation on arcs

Its me again :)
Some of polygonized arc segments in the offset output are violating offset distance significantly.
Clipper1 on the same input was not violating it for more than 1.5 units of distance.
Clipper2 violates it on 14470.2 units of distance.
Red is input, green is output, blue points on arcs is where polygonization violates distance.
Somehow only subset of arcs has these problems.

Test (As always, add this to your unit tests please):
TEST(Clipper2Tests, OffsetDistanceViolationOnArcs)
{
	auto GetDistanceViolators = [](
		Clipper2Lib::Path64& distanceViolators,
		const Clipper2Lib::Path64& input,
		const Clipper2Lib::Path64& output,
		const double desiredDist,
		const double scaledTol)
	{
		const int stepsAlongSegment = 10;
		double maxDeviation = 0;

                // For each output point (and interpolated subpoints in output) find closest point on input
                // Put this (sub)point into distanceViolators vector if distance is too far away from desiredDist
		for (size_t resIdx = 0; resIdx + 1 < output.size(); ++resIdx)
		{
			const auto outPtA = output[resIdx];
			const auto outPtB = output[resIdx + 1];

			for (int step = 0; step <= stepsAlongSegment; ++step)
			{
				const auto outPt =
					outPtA + (outPtB - outPtA) * (static_cast<double>(step) / stepsAlongSegment);
				double minSqrDist = std::numeric_limits<double>::infinity();
				Clipper2Lib::Point64 sourcePt;

				for (size_t i = 0; i + 1 < input.size(); ++i)
				{
					const Clipper2Lib::Point64 a = input[i];
					const Clipper2Lib::Point64 b = input[i + 1];
					const auto closestPt = Clipper2Lib::GetClosestPointOnSegment(outPt, a, b);
					const double sqrDist = Clipper2Lib::DistanceSqr(outPt, closestPt);
					if (sqrDist < minSqrDist)
					{
						//sourcePt = closestPt;
						minSqrDist = sqrDist;
					}
				}

				if (!std::isinf(minSqrDist))
				{
					const double minDist = std::sqrt(minSqrDist);
					maxDeviation = std::max(maxDeviation, std::abs(minDist - desiredDist));
					if (std::abs(minDist - desiredDist) > scaledTol)
					{
						distanceViolators.push_back(outPt);
						//distanceViolators.push_back(sourcePt);
					}
				}
			}
		}
		return maxDeviation;
	};

	Clipper2Lib::Paths64 tmpSubject = {
		{{91759700, -49711991},    {83886095, -50331657},
		 {-872415388, -50331657},  {-880288993, -49711991},  {-887968725, -47868251},
		 {-895265482, -44845834},  {-901999593, -40719165},  {-908005244, -35589856},
		 {-913134553, -29584205},  {-917261224, -22850094},  {-920283639, -15553337},
		 {-922127379, -7873605},   {-922747045, 0},          {-922747045,<PHONE_NUMBER>},
		 {-922160557,<PHONE_NUMBER>}, {-920414763,<PHONE_NUMBER>}, {-917550346,<PHONE_NUMBER>},
		 {-913634061,<PHONE_NUMBER>}, {-908757180,<PHONE_NUMBER>}, {-903033355,<PHONE_NUMBER>},
		 {-896595982,<PHONE_NUMBER>}, {-889595081,<PHONE_NUMBER>}, {-882193810,<PHONE_NUMBER>},
		 {-876133965,<PHONE_NUMBER>}, {-876145751,<PHONE_NUMBER>}, {-875781839,<PHONE_NUMBER>},
		 {-874690056,<PHONE_NUMBER>}, {-874447580,<PHONE_NUMBER>}, {-874341490,<PHONE_NUMBER>},
		 {-874171960,<PHONE_NUMBER>}, {-873612294,<PHONE_NUMBER>}, {-873201878,<PHONE_NUMBER>},
		 {-872941042,<PHONE_NUMBER>}, {-872893274,<PHONE_NUMBER>}, {-872835064,<PHONE_NUMBER>},
		 {-872834788,<PHONE_NUMBER>}, {-872769052,<PHONE_NUMBER>}, {-872297948,<PHONE_NUMBER>},
		 {-871995958,<PHONE_NUMBER>}, {-871995958,<PHONE_NUMBER>}, {-871908872,<PHONE_NUMBER>},
		 {-871671308,<PHONE_NUMBER>}, {-871301302,<PHONE_NUMBER>}, {-870835066,<PHONE_NUMBER>},
		 {-870285226,<PHONE_NUMBER>}, {-868659019,<PHONE_NUMBER>}, {-868548443,<PHONE_NUMBER>},
		 {-868239649,<PHONE_NUMBER>}, {-868239527,<PHONE_NUMBER>}, {-838860950,<PHONE_NUMBER>},
		 {-830987345,<PHONE_NUMBER>}, {-823307613,<PHONE_NUMBER>}, {-816010856,<PHONE_NUMBER>},
		 {-809276745,<PHONE_NUMBER>}, {-803271094,<PHONE_NUMBER>}, {-752939437,<PHONE_NUMBER>},
		 {-747810128,<PHONE_NUMBER>}, {-743683459,<PHONE_NUMBER>}, {-740661042,<PHONE_NUMBER>},
		 {-738817302,<PHONE_NUMBER>}, {-738197636,<PHONE_NUMBER>}, {-738197636,<PHONE_NUMBER>},
		 {-738622462,<PHONE_NUMBER>}, {-739889768,<PHONE_NUMBER>}, {-802710260, 995094494},
		 {-802599822, 995052810},  {-802411513, 994586048},  {-802820028, 993050638},
		 {-802879992, 992592029},  {-802827240, 992175479},  {-802662144, 991759637},
		 {-802578556, 991608039},  {-802511951, 991496499},  {-801973473, 990661435},
		 {-801899365, 990554757},  {-801842657, 990478841},  {-801770997, 990326371},
		 {-801946911, 989917545},  {-801636397, 989501855},  {-801546099, 989389271},
		 {-800888669, 988625013},  {-800790843, 988518907},  {-800082405, 987801675},
		 {-799977513, 987702547},  {-799221423, 987035738},  {-799109961, 986944060},
		 {-798309801, 986330832},  {-798192297, 986247036},  {-797351857, 985690294},
		 {-797228867, 985614778},  {-796352124, 985117160},  {-796224232, 985050280},
		 {-795315342, 984614140},  {-795183152, 984556216},  {-794246418, 984183618},
		 {-794110558, 984134924},  {-793150414, 983827634},  {-793011528, 983788398},
		 {-792032522, 983547874},  {-791891266, 983518284},  {-790898035, 983345662},
		 {-790755079, 983325856},  {-789752329, 983221956},  {-789608349, 983212030},
		 {-787698545, 983146276},  {-787626385, 983145034},  {-536871008, 983145034},
		 {-528997403, 982525368},  {-521317671, 980681627},  {-514020914, 977659211},
		 {-507286803, 973532542},  {-501281152, 968403233},  {-496151843, 962397582},
		 {-492025174, 955663471},  {-489002757, 948366714},  {-487159017, 940686982},
		 {-486539351, 932813377},  {-486539351, 667455555},  {-486537885, 667377141},
		 {-486460249, 665302309},  {-486448529, 665145917},  {-486325921, 664057737},
		 {-486302547, 663902657},  {-486098961, 662826683},  {-486064063, 662673784},
		 {-485780639, 661616030},  {-485734413, 661466168},  {-485372735, 660432552},
		 {-485315439, 660286564},  {-484877531, 659282866},  {-484809485, 659141568},
		 {-484297795, 658173402},  {-484219379, 658037584},  {-483636768, 657110363},
		 {-483548422, 656980785},  {-482898150, 656099697},  {-482800368, 655977081},
		 {-482086070, 655147053},  {-481979398, 655032087},  {-481205068, 654257759},
		 {-481090104, 654151087},  {-480260074, 653436789},  {-480137460, 653339007},
		 {-479256372, 652688735},  {-479126794, 652600389},  {-478199574, 652017779},
		 {-478063753, 651939363},  {-477095589, 651427672},  {-476954289, 651359626},
		 {-475950593, 650921718},  {-475804605, 650864422},  {-474770989, 650502744},
		 {-474621127, 650456518},  {-473563373, 650173094},  {-473410475, 650138196},
		 {-472334498, 649934610},  {-472179420, 649911236},  {-471091240, 649788626},
		 {-470934848, 649776906},  {-468860016, 649699272},  {-468781602, 649697806},
		 {-385876037, 649697806},  {-378002432, 649078140},  {-370322700, 647234400},
		 {-363025943, 644211983},  {-356291832, 640085314},  {-350286181, 634956006},
		 {-345156872, 628950354},  {-341030203, 622216243},  {-338007786, 614919486},
		 {-336164046, 607239755},  {-335544380, 599366149},  {-335544380, 571247184},
		 {-335426942, 571236100},  {-335124952, 570833446},  {-335124952, 569200164},
		 {-335037864, 568650330},  {-334800300, 568184084},  {-334430294, 567814078},
		 {-333964058, 567576517},  {-333414218, 567489431},  {-331787995, 567489431},
		 {-331677419, 567474593},  {-331368625, 567077133},  {-331368503, 567070001},
		 {-142068459, 567070001},  {-136247086, 566711605},  {-136220070, 566848475},
		 {-135783414, 567098791},  {-135024220, 567004957},  {-134451560, 566929159},
		 {-134217752, 566913755},  {-133983942, 566929159},  {-133411282, 567004957},
		 {-132665482, 567097135},  {-132530294, 567091859},  {-132196038, 566715561},
		 {-132195672, 566711157},  {-126367045, 567070001},  {-33554438, 567070001},
		 {-27048611, 566647761},   {-20651940, 565388127},   {-14471751, 563312231},
		 {-8611738, 560454902},    {36793963, 534548454},    {43059832, 530319881},
		 {48621743, 525200596},    {53354240, 519306071},    {57150572, 512769270},
		 {59925109, 505737634},    {61615265, 498369779},    {62182919, 490831896},
		 {62182919, 474237629},    {62300359, 474226543},    {62602349, 473823889},
		 {62602349, 472190590},    {62689435, 471640752},    {62926995, 471174516},
		 {63297005, 470804506},    {63763241, 470566946},    {64313081, 470479860},
		 {65939308, 470479860},    {66049884, 470465022},    {66358678, 470067562},
		 {66358800, 470060430},    {134217752, 470060430},   {134217752, 0},
		 {133598086, -7873605},    {131754346, -15553337},   {128731929, -22850094},
		 {124605260, -29584205},   {119475951, -35589856},   {113470300, -40719165},
		 {106736189, -44845834},   {99439432, -47868251},    {91759700, -49711991}}};

	const double offset = -50329979.277800001;

	Clipper2Lib::Paths64 pathsC2;

	Clipper2Lib::ClipperOffset offseter(2, 0.25);
	offseter.AddPaths(tmpSubject, Clipper2Lib::JoinType::Round, Clipper2Lib::EndType::Polygon);

	offseter.Execute(offset, pathsC2);

	/*
        // Uncomment if you want to check Clipper1 results
        ClipperLib::Paths tmpSubjectOld = {{}};
	for (const auto& pt : tmpSubject[0])
	{
		tmpSubjectOld[0].emplace_back(pt.x, pt.y);
	}

	ClipperLib::ClipperOffset offsetterOld(2, 0.25);
	offsetterOld.AddPaths(
		tmpSubjectOld, ClipperLib::JoinType::jtRound, ClipperLib::EndType::etClosedPolygon);
	ClipperLib::Paths pathsOld;
	offsetterOld.Execute(pathsOld, offset);

	pathsC2 = {{}};
	for (const auto& pt : pathsOld[0])
	{
		pathsC2[0].emplace_back(pt.X, pt.Y);
	}
        */

	pathsC2[0].push_back(pathsC2[0].front());
	Clipper2Lib::Path64 distanceViolators;
	auto maxDeviation =
		GetDistanceViolators(distanceViolators, tmpSubject[0], pathsC2[0], std::abs(offset), 2);
	std::cout << "Max offset deviation from desired offset value: " << maxDeviation << std::endl;
	ASSERT_TRUE(maxDeviation < 2);
}

Firstly, the purpose of the arc tolerance parameter (with offsetting) is to allow users to specify what they consider a sensible compromise between achieving curve quality (with rounded offsets) while avoiding generating excessive numbers of vertices. And in your example above you are generating a huge (and arguably excessive) numbers of vertices. These will seriously degrade performance (eg in offsetting, in rendering, an in storage), and almost certainly won't achieve any detectable improvement in arc quality.
Further, arc imprecision is premised on the assumption that arcs will be starting exactly where they're meant to start. And that's not the case here, so the imprecision that you are seeing here is mostly unrelated to arc quality. The offset imprecision we're seeing here is very small, less than 0.03% of your offset delta. And when setting join_type = JoinType::Bevel, where offsetting should always be less than or equal delta, there is still some offsetting that exceeds delta (again by about 0.03%).
Nevertheless, I am still investigating why there is even this small amount of offsetting imprecision (and it seems unlikely that this is all due to rounding errors).
(More info on arc tolerance here.)


IA-1916 entity mandatory field

In entity types create/edit modal, the List fields and Details info fields need to be made mandatory to prevent bugs with the mobile app
Related JIRA tickets : IA-1916
Self proofreading checklist

[X] Did I use eslint and black formatters
[X] Is my code clear enough and well documented
[X] Are my typescript files well typed
[ ] Did I add translations
[ ] My migrations file are included
[ ] Are there enough tests

Changes

Added validator for both fields
Marked them as required
Changed the default value in intialState fromm [] to undefined to enable the validation check
Filtered out forms without XLS version to avoid users having no fields to choose from after having selected a reference form when creating an entity type
Fixed usePossibleFields so it fetches the fields when user changes selection in UI
Fixed Dialog so it would reset onClose to avoid keeping the values after a Create

How to test
Go to Beneficiary Types
Create a Beneficiary: you shouldn't be able to save unless all fields have a value
Print screen / video
https://user-images.githubusercontent.com/38907762/219353290-04a94906-bd96-4984-ba74-029d2fec036f.mov

cypress

While clicking on cancel, the fields are displaying an error state, not very sure how to handle this https://user-images.githubusercontent.com/12494624/219588271-ac39fd02-c6fa-42ea-a7b9-894bd4f2727a.mov

That's probably because we reset the state values but the formik context hasn't reset

cypress


Closing SSH connection while Micro runs as root using "sudo su" eats 60%-100% CPU

Description of the problem or steps to reproduce
ssh into your server. Open a root shell by using sudo su. Now open micro using micro. Use your window manager to quit the terminal hosting the connection. So on linux Super + Q  (usually) or the x and on Windows click the x.
This issue is related to #2569, the difference is that instead of using su root to open root shell, you must use sudo su.
Specifications
Commit hash:

Output via micro -version: Version: 2.0.11

OS:

Server OS (output via uname -v): #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01)
Client SSH OS: Windows 11 and Arch Linux running Hyprland

Terminal:

kitty 0.29.2 created by Kovid Goyal
Windows 11 Default Terminal

Output via micro -version: Version: 2.0.11

Hmm, but the original issue #2569 was reported on 2.0.11 too, and the first release with the fix 5739daf for it was 2.0.12. Could you try with 2.0.12 or 2.0.13?

It fixed it, the server is running Debian so the package was not fully up to date. Had to manually grab the 2.0.13 .deb file and install it. Thanks!


Basic Setup and Running

What happened?
I followed the instructions and downloaded the synthea jar file
The I run the java -jar using the option to generate a csv.
What I fail to see is how do the vocabularies get saved in the /tmp/Vocabulary_20181119
Is this something I have to do separately? If yes, what files should it be in that folder?
Could you please explain? I do not seem to find anything in the documentation that explains this aspect.
I also get the errors below after running the java-rar
Many thanks
Amelia
Environment
- OS: Windows
- Java: 18.0.1

Relevant log output
Max Age: 140
1 -- Marion502 Shanahan202 (18 y/o M) Boston, Massachusetts  (24145)
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
ERROR StatusLogger Unrecognized format specifier [d]
ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [thread]
ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [level]
ERROR StatusLogger Unrecognized conversion specifier [level] starting at position 35 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [logger]
ERROR StatusLogger Unrecognized conversion specifier [logger] starting at position 47 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [msg]
ERROR StatusLogger Unrecognized conversion specifier [msg] starting at position 54 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [n]
ERROR StatusLogger Unrecognized conversion specifier [n] starting at position 56 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [d]
ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [thread]
ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [level]
ERROR StatusLogger Unrecognized conversion specifier [level] starting at position 35 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [logger]
ERROR StatusLogger Unrecognized conversion specifier [logger] starting at position 47 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [msg]
ERROR StatusLogger Unrecognized conversion specifier [msg] starting at position 54 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [n]
ERROR StatusLogger Unrecognized conversion specifier [n] starting at position 56 in conversion pattern.
Records: total=1, alive=1, dead=0
RNG=9
Clinician RNG=5644

What I fail to see is how do the vocabularies get saved in the /tmp/Vocabulary_20181119

I don't know what you are talking about.

The ERROR messages are confusing, but the JAR should still function.
You should see files in ./output including files such as ./output/fhir/*.json.


"ping" is not installed in container, so startup fails

Hi,
I found this issue with Enigmatica 2 - Expert Skyblock but maybe this is also an issue for other modpacks.
https://github.com/NillerMedDild/Enigmatica2/blob/1111595b724c757ac695f349551f4531aa3f80cd/ServerStartLinux.sh#L161
The serverstart script has an online check that will ping around to check if there is internet availability. The check fails because ping isn't installed in the container.
There is a workaround (you can set the setting in the config file to disable the internet check) but it definitely requires some research. Adding ping shouldn't cause too much overhead in the container.

Yes, that would be quite doable.
As a note for myself:

Debian : iputils-ping
Alpine: iputils

ping is now included in the latest image, so it's ready to test

This is fixed btw :) Thanks for adding it.
For some reason, enigmatica 2 expert skyblock has another problem (not sure if its your image or their startscript thats responsible for this): It will not start until you manually download the forge installer.
I think this line isn't doing what it's supposed to: https://github.com/EnigmaticaModpacks/Enigmatica2/blob/master/ServerStartLinux.sh#L113
I used this image: itzg/minecraft-server:java8-openj9
I fixed it by just manually repeating the steps outside of the container. It picked up the installer.jar and everything was fine. But this issue (the ping one) is solved.


Implementing upsert and adding tests

Now we have Mongo docs being inserted as nodes with their respective properties in Neo4j

All the nodes come labelled as Document:Mongo_collection, as @jexp suggested

Ready to merge this pull request @hannelita ?

@jexp If it seems ok to you, you can merge. I still pushing changes to here because all the other methods depend on this PR

@jexp https://github.com/neo4j-contrib/neo4j_doc_manager/pull/2/files#r36712319 What do you think of these points? I can also add them into this PR or make another one

Had some further comments before merging, please have a look.
Thanks a lot.


Attribute Routing: Come up with a good scheme for generating route group tokens

Attribute routing is based on comparisons of a generated string token that is unique to each group. Right now the generation of these tokens is super naive and uses relatively long strings. We should implement something smarter.

@rynowak this issue seems obscure, is there a real thing left to do here?

@yishaigalatzer @javiercn I'd suggest we close this item and revisit if/when we look at attribute route perf. If this is a bottleneck, and worth improving, we'll surely reach that conclusion during future perf analysis.


Incorrect meta properties after serialize/parse using fits format

With regions v0.5, some meta properties of regions are not correctly handled by Regions.serialize/Regions.parse with fits format.
See the following example:
>>>from regions import Regions
>>>regions_str = '# Region file format: DS9\nimage\ncircle(147.10,254.17,3.1) # color=green\n'

>>>regions = Regions.parse(regions_str, format='ds9')
>>>print(regions[0].meta)
{'include': True}
>>>table = regions.serialize(format="fits")
>>>regions = Regions.parse(data=table, format="fits")
>>>print(regions[0].meta)
{'tag': '1', 'include': False}

The include meta entry should be set to True.

This appears to always have been the behavior.  For example, these are the equivalent commands using regions v0.4:
>>> from regions import DS9Parser
>>> regions_str = '# Region file format: DS9\nimage\ncircle(147.10,254.17,3.1) # color=green\n'
>>> parser = DS9Parser(regions_str)
>>> regions = parser.shapes.to_regions()
>>> print(regions[0].meta)
{'include': True}

>>> from regions import fits_region_objects_to_table
>>> from regions import FITSRegionParser
>>> table = fits_region_objects_to_table(regions)
>>> parser = FITSRegionParser(table)
>>> regions = parser.shapes.to_regions()
>>> print(regions[0].meta)
{'tag': '1', 'include': False}

I need to check how the include metadata flag is used in FITS region format specification.  Note that there is not a one-to-one correspondence of all the meta features of the three different region file formats.  Because of this, the serialization step may need to drop unsupported region metadata.  In those cases, we should warn the user.

As far as I know, in the FITS regions specification document, the exclude flag is handled by adding a ! character in the SHAPE string.

I've fixed this in #444.  Parsed FITS regions will now have "include = 0" in their metadata if the shape is prefixed with '!'.  Shapes without '!' will not have include in their metadata.


Fix release changelog

Release of v0.6.0 has a changelog that just says "no changes".
In #70 we tried to revert to what was likely the version that during the previous release, but that didn't work either.

@aalsabag manually updated the release notes for v0.5.0. He is/was aware that this was happening and he said that it is being worked on


Auto mount in Docker containers (1416)

Enable procs to load the library in containers
Access the Edge socket if applicable
close #1416
close #1424

[ ] Test with scope service

[ ] Resolve symbol resolution of runtime/internal/syscall.Syscall6.abi0


Which firewall ports?

Hello,
I want to block access to the configuration panel but the firewall is blocking all the connections, which ports should I allow?
Thanks

Hello, you should allow port 5000


[SPIKE][1757] Add interrupt page acknowledgments model and API

This will be used for determining if a user has accepted on interrupt
page on publish for that recruitment cycle
Context
corresponding publish PR with more info https://github.com/DFE-Digital/publish-teacher-training/pull/1679
Changes proposed in this pull request
Guidance to review
Checklist

[ ] Make sure all information from the Trello card is in here
[ ] Attach to Trello card
[ ] Rebased master
[ ] Cleaned commit history
[ ] Tested by running locally

 [SPIKE] Avoid adding accepted_rollover_2022 user state


Callback function crashes

Hi,
I tried to use this module but unfortunately I cant get it work.
Any clue whats wrong? :/
"react-native": "0.35.0"
console.log("do uploadPicture",this.state.capturedImage.path,RNImageToBase64 ); // works fine
RNImageToBase64.getBase64String(this.state.capturedImage.path, function(err, imageBase64) {
...
});

Xcode error

Do i need to set special privacy settings?!

I think i got it.
It seems that ALAssetsLibrary is deprecated and removed since SDK 10.0 like all other ALAsset related libs.
Unfortunately I don't really get how to change it because of not having any objective-c background
´´´
...
NS_CLASS_DEPRECATED_IOS(4_0, 9_0, "Use PHPhotoLibrary from the Photos framework instead")
@interface ALAssetsLibrary : NSObject {
...
// Returns an ALAssetRepresentation object for the default representation of the ALAsset

(ALAssetRepresentation *)defaultRepresentation NS_DEPRECATED_IOS(4_0, 9_0, "Use PHImageRequestOptions with the PHImageManager from the Photos framework instead");
....

´´´
Would be awesome if you can have a look @xfumihiro .

Right, it is not possible to use this library now :( ..

@MM-Psiiirus Is there any updates? you solved it or something else you are using?

@xfumihiro Can you please take a look at it and give an update? Is this issue still there or not?

same issue.OTL.
is there anyway else?
:(

in my case a needed a base64 captured camera image so i just choose another camera bundle which provides a asset-uri and a base64. :/

@dyguests , @joypatel04 i just came along the ImageStore...maybe this can help you solve the problem without this npm-package
https://facebook.github.io/react-native/docs/imagestore.html#getbase64fortag
ImageStore.getBase64ForTag("file://" +imageURI.uri,(data) =>
      {
        console.log('getBase64ForTag',data);
        this.setState({
          ...this.state,
          capturedImage: {data,uri: imageURI.uri },
          isLoading: false
        });
      },(e) => {
          console.log('getBase64ForTag-error',e);
        this.setState({
          ...this.state,
          isLoading: false
        });
      });

For me (iOS 10) ImageStore don't work.
I created PR where I handle only local files, but I'm going to make it work with normal url and add handling errors.

you can use  https://github.com/itinance/react-native-fs
  RNFS.readFile(path, 'base64')
  .then((data) => console.log(data))
  .catch((err) => console.log(err));
});


Composter haunted

Just noticed the composter is spinning on it's own, constantly. Still spins after emptying it. Breaking and replacing it stops spinning, but spinning it again causes it to endlessly spin. I've used it quite a bit and it hasn't done it before.
Edit: Scratch that, it seems to stop spinning after breaking it and placing it down again. Still not sure what caused it to endlessly spin.

Haha, that's very strange. Seems like somehow the composter's lastAeration field got set to some time in the future. I'll add some protection against the infinite spinning, but I'm not sure what would have caused the time traveling lastAeration field.


Steps to install locally?

Can you list steps to run it locally? I don't have Heroku Paid account.
So far what I have done with the little knowledge I have:

yarn install
Renamed .env.example to .env
Edited MONGO_URI to MONGODB_URI in .env and added my MongoDB instance URL.
Inserted random string for EXPRESS_SESSION_SECRET and JWT_SECRET.
yarn start

I am getting this:

Sorry @Suleman-Elahi. I need to work on better docs.
seems like you did everything correctly, you just need to run the front dev server as well
so you need to run the two commands yarn start & yarn front simultaneously

Worked. Thanks.

Hi !
Thanks for this awesome tool !
I have the same issue as @Suleman-Elahi.
With a local installation, I reach the admin panel but impossible to add a feature (error : var was not provided) or save a widget (fatal error)
The project looks awesome I really want to use it and spread it around me !
Can't wait to find a solution :)


Pre-lecture quiz is not working properly

In the second question, all answers display the message 'Sorry, try again'.

I fixed the quiz, thanks for the catch!

My Pleasure :D


Support for component passed cloud name

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

I would like to recommend adding a new component prop cloudName that when passed will overwrite the globally registered cloud name from environment variables.
I can totally see cases where users might want to utilize fetching images from multiple cloudinary spaces. This is now possible when using the useCldImageUrl composable but not possible from the component perspective.
<CldImage src="test" cloud-name="some-other-cloud-name" />

Describe alternatives you've considered

Additional context

@Baroshem maybe consider a config property instead, this is what we did with Next Cloudinary
the benefit here is someone can customize more things with the entire config object, which may be important if they want to set a custom cname for instance
examples:
config={ url: { secureDistribution: 'spacejelly.dev' } }
config={ cloud: { cloudName: 'colby' } }

https://cloudinary.com/documentation/cloudinary_sdks#configuration_parameters
(you wouldnt need to define these manually)
https://github.com/colbyfayock/cloudinary-util/blob/main/packages/url-loader/src/lib/cloudinary.ts#L53

Good idea Colby!
Will take a look at this implementation and do something similar :)


chore: bump version

About
This pull request is about (X), which does (Y.
Sorry for the new branch, please delete
Checklist

[ ] The pre-commit code linter has been run over all edited files to ensure the code is linted.
[ ] I've ensured the change(s) work on 3.8.6 and higher.

I've made this pull request: (check all that apply)

[ ] For the documentation
[ ] To add a new feature
[ ] As a general enhancement
[ ] As a refactor of the library/the library's code
[ ] To fix an existing bug
[ ] To resolve #ISSUENUMBER

This is:

[ ] A breaking change

good job ed xD


Add native bridge controller for flash message

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1084

Relevant Lines:
1084

💛  - Coveralls