Is it possible to get a lossless (or even lossy) upgrade of a Spiro spline to a Hyperbezier?

Now that I have implemented https://github.com/MFEK/spiro.rlib, I am very curious if it's possible to upgrade my Spiros to the superior Hyperbezier.
I have a lot of Spiros, that's why I maintain it.
In https://github.com/raphlinus/raphlinus.github.io/issues/40 @raphlinus wrote:

Introduction: hyperbezier is a synthesis of three curves: cubic bezier, euler spiral, and elastica. Tension is a central concept.

This is very similar to how Spiro works, if I understood the thesis right. So really perhaps hyperbezier is "spiro v2", but perhaps that's ignorant of the maths of it all.
Is there a way to upgrade Spiros, Raph?

This is on my backlog, but I do hope to get back to it. There are three things holding me back.
The first is that I couldn't at the time figure out a good way to render hyperbeziers to ordinary cubic Béziers. That's a much harder problem than Spiros because of the high tension. I am pleased to say that I have done the conceptual work for this (see fitting cubic Bézier curves and the followup parallel curves of cubic Béziers) and, by happy coincidence, happen to be noodling on the Rust implementation in my holiday break. I believe this will be a completely satisfactory solution, as it will generate extremely accurate cubics, and I think the performance will be good as well, as it will generate a smaller number of segments to attain the desired accuracy bound.
Second, I'm not sure the existing formulation of the hyperbezier is perfect, though it is very good in its current state. One section of the parameter space I'm not sure about are when one side has very high tension and the other low but with a large deflection. There, hyperbezier produces a curve with a dip in curvature in the interior, while I think a curve closer to the semicubical parabola would be more aesthetically appealing. Another range I'm not completely satisfied with is when both tensions are low, as this should probably produce something closer to a superellipse with high-ish exponent. I might be able to figure out better math but haven't yet.
Third, the solver is not 100% numerically robust (problems are most likely to occur when knots are very irregularly spaced, with some very close together). I suspect there is a theorem that a unique solution is possible (at least under some reasonable conditions, as in the Hobby spline), which would illuminate an algorithm that can't diverge, but I believe this is fairly difficult math - I've played with it some, and asked advice of better mathematicians than myself. I should note though that it's already much better than the Spiro code, which as we all know is easily prone to divergence, related to the fact that we know mathematically that there are some inputs that do not have unique solutions.
So hopefully with patience we will see some more progress. The best way to speed that up would be to learn the math or recruit somebody with math skills.

Thanks for the general update @raphlinus, very interesting and appreciated. But, sorry, regarding my initial question, I think perhaps you overlooked it. If I have a lot of Spiro splines is there some way, even theoretical / with no implementation plan, to upgrade it to a Hyperbezier format spline?

Ah, I misunderstood the question, I thought you were asking about upgrading the code, but now I see it's about changing curve representations. That is a very interesting question indeed.
First, all Spiro curve segments with tension <= 1 are automatically hyperbeziers (at least in the current representation). That includes Euler spirals, which are the result of plain G2 curve interpolation. So those could be converted with a relatively straightforward re-parametrization.
But that's not a fully satisfying answer, as it's certainly possible to create curves with higher tension (though, that said, it would be interesting to see what fraction actually are in your dataset). I believe the best way to go about that is to do general hyperbezier curve fitting. That will be useful in converting existing cubic Bézier splines, as well as freeform pen strokes. I just spent a bunch of effort doing curve fitting with cubic Béziers (see https://github.com/linebender/kurbo/pull/230), and in particular I think the ParamCurveFit trait can work for this. You could either implement this trait analytically for Spiro, or just do a spammy conversion to Béziers and use the implementation in that PR; the accuracy and performance of curve fitting basically doesn't depend on the number of subdivisions of the source curve for piecewise representations.
I haven't fully worked out how to do curve fitting, but I think Newton iteration of the tension parameter to match area/moment will probably work most of the time, especially if initial setting of the tension parameters is reasonably good. The reason I think Newton iteration will work is that area/moment should (in most cases, though this bears experimental validation) be monotonic and in fact nearly linear.
As before, the fastest way to see progress on this is to get someone who would enjoy getting deep in the math.

Very cool. I'm going to have to check how many are tension ≤ 1. Thank you for all your work on non-Bézier spline formats! :-)


HELICS

Name
HELICS
Screenshots

Focus Topic
Hierarchical Engine for Large-scale Infrastructure Co-Simulation
Primary Purpose
Flexible and scalable open-source co-simulation framework is designed to integrate simulators designed for separate TDC domains to simulate regional and interconnection-scale power system behaviors at unprecedented levels of detail and speed.
Description
Flexible and scalable open-source co-simulation framework is designed to integrate simulators designed for separate TDC domains to simulate regional and interconnection-scale power system behaviors at unprecedented levels of detail and speed. The target is to scale up to linking a 50,000-node transmission system with millions of distribution nodes, coupled with 100,000 communication points. This simulation should enable planning studies in a turnaround time of minutes to hours, instead of days with today's simulation technologies, a speedup of 50 to 100 times — a feat not previously done before.
This comprehensive TDC simulation tool is fundamental for investment decision-making by industry. It's also important to help quantify the impact of the ever-increasing high penetration variable generation on power grid reliability and resiliency.
Mathematical Description
No response
Website
https://helics.org/
Documentation
https://docs.helics.org/en/latest/user-guide/index.html
Source
https://pypi.org/project/helics/
Year
2017
Institution
NREL
Funding Source
No response
Publications
11
Publication List

Yang, Rui, Michael Ingram, and Mengmeng Cai. Situational Awareness of Grid Anomalies (SAGA). No. NREL/PR-5D00-84465. National Renewable Energy Lab.(NREL), Golden, CO (United States), 2022.
Jain, Himanshu. HELICS-HLA. National Renewable Energy Lab.(NREL), Golden, CO (United States), 2018.
Palmintier, Bryan S. HELICS for Integrated Transmission, Distribution, Communication, & Control (TDC+ C) Modeling. No. NREL/PR-5D00-73977. National Renewable Energy Lab.(NREL), Golden, CO (United States), 2019.
Cutler, Dylan, et al. Zero-Export Feeder Through Transactive Markets. No. NREL/PR-7A40-80140. National Renewable Energy Lab.(NREL), Golden, CO (United States), 2021.
Palmintier, Bryan. How Use Cases Drove the Design of the HELICS Co-simulation Framework. No. NREL/PR-5D00-71160. National Renewable Energy Lab.(NREL), Golden, CO (United States); Pacific Northwest National Lab.(PNNL), Richland, WA (United States); Lawrence Livermore National Lab.(LLNL), Livermore, CA (United States), 2018.
Fang, Xin, Mengmeng Cai, and Anthony Florita. Cyber-Physical Events Emulation Based Transmission and Distribution Co-Simulation for Situation Awareness and Grid Anomaly (SAGA) Detection. No. NREL/CP-5D00-78189. National Renewable Energy Lab.(NREL), Golden, CO (United States), 2021.
Muratori, Matteo, et al. Grid-Enhanced, Mobility-Integrated Network Infrastructures for Extreme Fast Charging (GEMINI-XFC). No. NREL/PR-5400-76718. National Renewable Energy Lab.(NREL), Golden, CO (United States), 2020.
Wang, Wenbo, et al. Impact of Open Communication Networks on Load Frequency Control with Plug-In Electric Vehicles by Cyber-Physical Dynamic Co-Simulation. No. NREL/CP-6A40-82369. National Renewable Energy Lab.(NREL), Golden, CO (United States), 2022.
Sergi, Brian. Modeling Integrated Electricity and Natural Gas Systems Using Co-Simulation. No. NREL/PR-6A40-84354. National Renewable Energy Lab.(NREL), Golden, CO (United States), 2022.
Meintz, Andrew, et al. Grid-Enhanced, Mobility-Integrated Network Infrastructures for Extreme Fast Charging (GEMINI-XFC). No. NREL/PR-5400-79963. National Renewable Energy Lab.(NREL), Golden, CO (United States), 2022.
Baggu, Murali M., and Annabelle Pratt. NREL's Advanced Distribution Management System (ADMS) Test Bed. No. NREL/PR-5D00-75936. National Renewable Energy Lab.(NREL), Golden, CO (United States), 2020.

Use Cases
No response
Infrastructure Sector

[ ] Atmospheric dispersion
[ ] Agriculture
[ ] Biomass
[ ] Buildings
[ ] Communications
[ ] Cooling
[ ] Ecosystems
[X] Electric
[ ] District heating
[ ] Forestry
[ ] Health
[ ] Hydrogen
[ ] Individual heating
[ ] Land use
[ ] Liquid fuels
[ ] Natural Gas
[ ] Transportation
[ ] Water

Represented Behavior

[ ] Earth Systems
[ ] Employment
[ ] Built Infrastructure
[ ] Financial
[ ] Macro-economy
[ ] Micro-economy
[ ] Policy
[ ] Social

Modeling Paradigm

[ ] Analytics
[ ] Data
[ ] Discrete Simulation
[ ] Dynamic Simulation
[ ] Equilibrium
[ ] Engineering/Design
[ ] Optimization
[ ] Visualization

Capabilities
Co-simulation platform that has been designed to allow integration of these simulators across a variety of computation platforms and languages.
Programming Language

[ ] C – ISO/IEC 9899
[ ] C++ (C plus plus) – ISO/IEC 14882
[ ] C# (C sharp) – ISO/IEC 23270
[ ] Delphi
[ ] GAMS (General Algebraic Modeling System)
[ ] Go
[ ] Haskell
[ ] Java
[ ] JavaScript(Scripting language)
[ ] Julia
[ ] Kotlin
[ ] LabVIEW
[ ] Lua
[ ] MATLAB
[ ] Modelica
[ ] Nim
[ ] Object Pascal
[ ] Octave
[ ] Pascal Script
[X] Python
[ ] R
[ ] Rust
[ ] Simulink
[ ] Swift (Apple programming language)
[ ] WebAssembly
[ ] Zig

Required Dependencies
No response
What is the software tool's license?
None
Operating System Support

[ ] Windows
[ ] Mac OSX
[ ] Linux
[ ] iOS
[ ] Android

User Interface

[ ] Programmatic
[ ] Command line
[ ] Web based
[ ] Graphical user
[ ] Menu driven
[ ] Form based
[ ] Natural language

Parallel Computing Paradigm

[ ] Multi-threaded computing
[ ] Multi-core computing
[ ] Distributed computing
[ ] Cluster computing
[ ] Massively parallel computing
[ ] Grid computing
[ ] Reconfigurable computing with field-programmable gate arrays (FPGA)
[ ] General-purpose computing on graphics processing units
[ ] Application-specific integrated circuits
[ ] Vector processors

What is the highest temporal resolution supported by the tool?
Not Applicable
What is the typical temporal resolution supported by the tool?
None
What is the largest temporal scope supported by the tool?

None
What is the highest spatial resolution supported by the tool?
Not Applicable
What is the typical spatial resolution supported by the tool?
None
What is the largest spatial scope supported by the tool?

None
Input Data Format
PY, JSON
Input Data Description
No response
Output Data Format
PY, JSON
Output Data Description
No response
Contact Details
<EMAIL_ADDRESS>Interface, Integration, and Linkage
No response

Updates/Additions for HELICS:
Name: HELICS, the Hierarchical Engine for Large-scale Infrastructure Co-Simulation
Focus Topic
Co-simulation of multi-energy systems
Primary Purpose
Flexible and scalable open-source co-simulation framework is designed to integrate simulators designed for separate energy domains to simulate regional and interconnection-scale power system behaviors at unprecedented levels of detail and speed. Co-simulation enables multiple existing simulators to act like one large simulation by coordinating time and exchanging data at every timestep.
Description
Flexible and scalable open-source co-simulation framework is designed to integrate simulators designed for separate energy system domains--such as transmission, distribution, communications, natural gas, buildings, transportation, natural gas, water, control schemes, etc.  Together these simulations can co-simulate a wide range of grid-related applications ranging in spatial scale from a single controller managing an electric vehicle charging station up to regional and interconnection-scale power system behaviors at unprecedented levels of detail and speed. For example, HELICS can link multi-faceted large-scale (20,000+ node) bulk power simulations (markets, powerflow, dynamics)  with  thousands of distribution simulations (each with thousands of nodes), in combination with hundreds of thousands of controllers, communication simulation with hundreds of thousands of communication points, and more.
This comprehensive multi-energy simulation tool is fundamental for investment decision-making by industry. It's also important to help quantify the impact of the ever-increasing high penetration variable generation, DERs, control schemes, and other changes on the power grid reliability and resiliency; and to simulate possible solutions at scale in silico.
Documentation
https://docs.helics.org/en/latest/index.html
Source
https://github.com/GMLC-TDC/HELICS
Year
2017
Institution
NREL, PNNL, LLNL
Funding Source
DOE GMLC
Publications
Lots, please add the following, plus some extras coming from PNNL and other locations and then update the sum
_(Additional) Publication List
Note: the current list is mostly presentations, not sure if you would want to include all of these or are focussed more on papers.

(should list first, current standard HELICS reference, although we are working on an updated one expected mid-2023) Palmintier, Bryan, Dheepak Krishnamurthy, Philip Top, Steve Smith, Jeff Daily, and Jason Fuller. 2017. “Design of the HELICS High-Performance Transmission-Distribution-Communication-Market Co-Simulation Framework.” In Proc. of the 2017 Workshop on Modeling and Simulation of Cyber-Physical Energy Systems. Pittsburgh, PA. https://doi.org/10.1109/MSCPES.2017.8064542.
Panossian, Nadia, Tarek Elgindy, Bryan Palmintier, and Diana Wallison. 2021. “Synthetic, Realistic Transmission and Distribution Co-Simulation for Voltage Control Benchmarking.” In 2021 IEEE Texas Power and Energy Conference (TPEC), 1–5. https://doi.org/10.1109/TPEC51183.2021.9384935.
Panossian, Nadia V., Haitam Laarabi, Keith Moffat, Heather Chang, Bryan Palmintier, Andrew Meintz, Timothy E. Lipman, and Rashid A. Waraich. 2023. “Architecture for Co-Simulation of Transportation and Distribution Systems with Electric Vehicle Charging at Scale in the San Francisco Bay Area.” Energies 16 (5): 2189. https://doi.org/10.3390/en16052189.
Wang, Jing, Jeff Simpson, Rui Yang, Bryan Palmintier, Soumya Tiwari, and Yingchen Zhang. 2021. “Hardware-in-the-Loop Evaluation of an Advanced Distributed Energy Resource Management Algorithm.” In 2021 IEEE Power Energy Society Innovative Smart Grid Technologies Conference (ISGT), 1–5. https://doi.org/10.1109/ISGT49243.2021.9372182.
Wang, Jing, Jeff Simpson, Rui Yang, Bryan Palmintier, Soumya Tiwari, and Yingchen Zhang. 2021. “Performance Evaluation of an Advanced Distributed Energy Resource Management Algorithm.” In 2021 IEEE International Conference on Communications, Control, and Computing Technologies for Smart Grids (SmartGridComm).
Barbierato, Luca, Pietro Rando Mazzarino, Marco Montarolo, Alberto Macii, Edoardo Patti, and Lorenzo Bottaccioli. 2022. “A Comparison Study of Co-Simulation Frameworks for Multi-Energy Systems: The Scalability Problem.” Energy Informatics 5 (4): 53. https://doi.org/10.1186/s42162-022-00231-6.
Sergi, Brian, and Kwabena Pambour. 2022. “An Evaluation of Co-Simulation for Modeling Coupled Natural Gas and Electricity Networks.” Energies 15 (14): 5277. https://doi.org/10.3390/en15145277.

If you do want more Presentations:
8. Huang, Henry, Liang Min, Jason Fuller, Bryan Palmintier, Philip Top, and Shrirang Abhaynkar. 2018. “GMLC 1.4.15: Integrated Transmission, Distribution, and Communication (TDC) System Model: HELICS.” Presented at the Workshop on Co-Simulation Platforms for the Power Grid, Berkeley, CA, May 21.
9. Palmintier, Bryan. 2019. “Integrated Transmission-Distribution-Communication/Control Modeling with HELICS.” Presented at the InnovationXLab: Grid Modernization Technology Showcase, Seattle, WA, January 25.
10. Palmintier, Bryan. 2019. “HELICS for Integrated Transmission, Distribution, Communication, & Control (TDC+C) Modeling.” Presented at the SETO Challenges for Distribution Planning, Operational and Real-time Planning Analytics Workshop, Washington, DC, May 17.
Use Cases
I'll point @lmramirea1 to some slides from various workshops showcasing past use cases
What Infrastructure Sector does this software tool model?
Note: only included relevant ones
Buildings
Communications
Electric
District heating
Hydrogen
Liquid fuels
Natural Gas
Transportation
Water
Represented Behavior
What is the represented behavior that the tool is modeling?
Built Infrastructure
Modeling Paradigm
What modeling Paradigm does this software tool follow?
Discrete Simulation
Dynamic Simulation (assumed to focus on msec grid dynamics, term might be confusing in entry form)
Engineering/Design
Time series Simulation (should be added to the list)
Capabilities
In addition to the summary in original issue entry

Scalable: 2-1,000,000+ federates
Modular: mix and match existing tools.
Differentiates physical values exchange from communication/control messages
Supports co-iteration to converge physical values between federates before advancing time (aka tight coupling)
Built-in support for communication message "Filters" to add delays, drop packets, change data, reroute to different simulators, etc.
Built-in unit management
Tools for managing large runs
Existing interfaces for: PSS/E, GridDyn, PowerWorld, SIIP, MATPOWER, CYME, PyDSS, OpenDSS, GridLAB-D, NS-3, SAInt, NG-Fast, NG-Transient, BEAM, Polaris, Opal-RT, and others
Supports multiple simulation types including: Time series, dynamics, discrete event
Interfaces for FMI

Programming Language
C – ISO/IEC 9899
(written in)  C++ (C plus plus) – ISO/IEC 14882
C# (C sharp) – ISO/IEC 23270
Java
Julia
MATLAB
Octave
Python
Required Dependencies
Only other open-source libraries
What is the software tool's license?
BSD-3
Operating System Support
Windows
Mac OSX
Linux
User Interface
What user interfaces are supported by the software tool?
Programmatic
Command line
Web based
Parallel Computing Paradigm
Multi-threaded computing
Multi-core computing
Distributed computing
Cluster computing
Massively parallel computing
What is the highest temporal resolution supported by the tool?
Instant
What is the typical temporal resolution supported by the tool?
1 ms to 1 hr depending on application and which other tools are connected
What is the largest temporal scope supported by the tool?
Arbitrary, 1 year common max
What is the typical temporal scope supported by the tool?
1-hour (e.g. dynamic response to grid outage) to 1-year (e.g. integrated T&D production cost) depending on application  and which other tools are connected
What is the highest spatial resolution supported by the tool?
Component
What is the typical spatial resolution supported by the tool?
Varies by use case, component common,
What is the largest spatial scope supported by the tool?
Grid intercection (e.g. Western US, Europe, etc.)

Varies by application, data, and which other tools are connected
Input Data Format
Varies by tools integrated.
Input Data Description
Interconnected tools generally use their own native input formats. HELICS provides built-in "player" file support (CSV) to substitute for missing simulators during development or to provide known inputs to subsets of a federation
Output Data Format
Varies by tools integrated
Output Data Description
Interconnected tools generally use their own native output formats. In addition, HELICS provides built-in "recorder" file support (CSV) to capture data exchanged as desired
Interface, Integration, and Linkage
See list above

Thank you @bpalmintier . I included all your comments except the interface, integration and linkage list because I couldn't see it.


Gossip Analysis (Blockchain Forks)

Extend the Gossip Analysis CLI and add functionality that enables the user to visually verify if the blockchain is forked.
Acceptance:

Allows the user to visually verify a fork in the chain
Outputs an image for visual verification
Optionally outputs a JSON representation which can be processed by testing tools

Currently blocked on #4810

Closing this issue as it is stale for a long time.


:JukitOutHist: The history window does not work with conda.

Hello, thanks for the nice plugin! I only encountered a problem when running :JukitOutHist conda activate <env name>. The conda option is only honored by the output window that works perfectly. But it seems the history window does not change the environment. Would be nice if that could be fixed, unfortunately I'm very new to vim and can't fix it myself.

Hi, this should work now, please reinstall the plugin and try again :)


Propagate Status field of k8s Service resources

Research what other LB implementations propagate in the status field
Set the status field to cover

error conditions
statistics?

Blocked on #1171


[Karpenter] Subnet distribution

Describe the documentation issue
According to this documentation, as far as I can tell, it's going to deploy all karpenter instances into the first private subnet of the VPC.
How would you provision them into any private subnet in the VPC for high availability?
Links
https://aws-quickstart.github.io/cdk-eks-blueprints/addons/karpenter/

For anyone else that finds this, wildcards work - it's not as good as being able to provision your own tags but it works in a pinch:
{
    requirements: [
        { key: 'node.kubernetes.io/instance-category', op: 'In', vals: ['c', 'm', 'r'] },
        { key: 'kubernetes.io/arch', op: 'In', vals: ['amd64'] },
        { key: 'karpenter.sh/capacity-type', op: 'In', vals: ['on-demand'] },
        { key: 'karpenter.k8s.aws/instance-hypervisor', op: 'In', vals: ['nitro'] }
    ],
    subnetTags: {
        "Name": "*PrivateSubnet*",
    },
    securityGroupTags: {
        "kubernetes.io/cluster/example": "owned",
    },
    amiFamily: "AL2",
    consolidation: { enabled: true },
    ttlSecondsUntilExpired: 2592000,
    weight: 1,
    interruptionHandling: true,
    limits: {
        resources: {
            cpu: 32,
            memory: "128Gi"
        }
    }
}


[WIP] Schedule phone call with single person

This closes #24

@cromulus ready for review. Email templates have placeholder content, please let us know what the final copy would be?
Btw, tests are passing but this remains to be tested manually. Leaving it to when we stage it, so we can get the emails sent

Also, leaving the js warning as a separate issue, so this can go up asap

@oliverbarnes: you can use sendmail in your local env - that should actually send mails. Also let's squash the commits before merging.

Excellent!
I'll review tomorrow morning.
Thanks.
On Feb 16, 2016 1:05 PM, "Marco Otte-Witte"<EMAIL_ADDRESS>wrote:

@oliverbarnes https://github.com/oliverbarnes: you can use sendmail in
your local env - that should actually send mails. Also let's squash the
commits before merging.
—
Reply to this email directly or view it on GitHub
https://github.com/BlueRidgeLabs/kimball/pull/26#issuecomment-184803905.

you can use sendmail in your local env - that should actually send mails.

@marcoow good point, will look into it.

Also let's squash the commits before merging.

will do!

While working on #31 we noticed a couple of gaps on validations, we're working on them now.

Regarding the last commit, not sure whether this new form object should really stay under app/models/, or in a separate directory, since it doesn't persist and also sends out emails. I've been using a app/domain directory lately for stuff like this. What do you guys think?

I think as it behaves like a model more or less and also uses include ActiveModel::Model the model folder is fine. I would move sending out the mails into the controller though to make it more explicit.

Done. And come to think of it, this makes it easy to persist invitations eventually, if need be. Reviewing past invitations is something that was mentioned at one of our huddles.


Change distance comparison operator

Change feet comparison operator. Clean up distance unit spacing and consistency
Fixes #583
I debated many different ways of putting this:

6+ ft
6+ feet
6ft+

I'm open to doing it a different way. I think "6+ feet" is longer but clearer. I worry that "6ft+ / 2m+" will look too much like a math equation at first glance.
Looking forward to input!

I agree that "6+ feet" is clearer.
Re:: "6ft+ / 2+m"; are the units already converted/translated for countries that don't use freedom units? If not, I would lean towards this one; as it would make more sense to more of the world. However,  it does appear more "mathy"/intimidating (according to my  housemate whom has been struggling the most with the spreadsheet/microcovid process).

The units are only converted in regions where we have a complete translation available. We could probably have it automatically localize it to only read "6ft+" or "2m+" depending on what country the person is in. I'll open a separate issue for that.


verifySignedMessageConstraints does not work

Is there an existing issue for this?

[X] I have searched the existing issues

Summary
Use next code to sign and verify message
main :: IO ()
main = do
  args <- getArgs
  let nargs = length args
  let gameId = if nargs > 0 then read (args!!0) else 0
  let oracleSignKey = if nargs > 1 then args!!1  else ""
  let winnerId = if nargs > 2 then read (args!!2) else 0
  let statusM = if nargs > 3 then decode (LB8.pack $ args!!3) else Just NS
  status <- maybe(exitWithErrorMessage "Wrong status") pure statusM
  signerKeyEither:: Either (FileError TextEnvelopeError) (SigningKey PaymentExtendedKey)<- readFileTextEnvelope (AsSigningKey AsPaymentExtendedKey) oracleSignKey

  case signerKeyEither of
    Left err -> exitWithErrorMessage $ "SKey parse error" ++ show err
    Right sKey -> do
      let signKeyE = xprv $ serialiseToRawBytes sKey
      case signKeyE of
        Left error -> exitWithErrorMessage error
        Right signKey -> do
          let privPub = toPublicKey signKey
          let pkhPriv = pubKeyHash $ privPub

          --exitWithErrorMessage $ "pkh: " ++ show pkh ++ " privPkh: " ++ show pkhPriv
          let message = OracleSignedMessage{
              osmWinnerId = winnerId,
              osmGameId = gameId,
              osmGameStatus = status
          }
          let signedMessage = signMessage message signKey

          case verifySignedMessageConstraints privPub signedMessage of
            Left err                 -> exitWithErrorMessage $ "verify error: " ++ show err
            Right (osm, constraints) -> exitWithErrorMessage $ "verify success"

exitWithErrorMessage :: String -> IO a
exitWithErrorMessage str = hPutStrLn stderr str >> exitWith (ExitFailure 1)

Steps to reproduce the behavior
create extended key and run
{
    "type": "PaymentExtendedSigningKeyShelley_ed25519_bip32",
    "description": "Payment Signing Key",
    "cborHex": "..."
}

exec command
    cabal exec -- encode-oracle-request 1 $ORACLE_SIGN_KEY 0 "\"LIVE\""
Actual Result
Output
 verify error: SignatureMismatch e4eeb82e5992083a4fb18ff97fe490e75978e3e8d3f51fd8e0a958ae9e1f7fce88050409f868cd2eae77c6f836aadc76dcb42d2c2a145105b62394c0e1469f09 3978ed863054ad729479fcee093506e3cdca0ed71cf2aa24b6fd62f5c56e4cb9 9a23ef09426b07ac1ba4a70b5dea0493235f2bff1ae6a2fcfc6de765adfa6079
Expected Result
It should verify signature successfully
What have you tried to resolve this issue?
Dived to the sign verifiction, but do not know yet much detils of compaibility XPrv with Ed25519Donna
module Crypto (verifySignature) where

import Control.Applicative
import Crypto.ECC.Ed25519Donna
import Crypto.Error (maybeCryptoError)
import Data.ByteString qualified as BS

verifySignature
    :: Alternative f
    => BS.ByteString  -- ^ Public Key
    -> BS.ByteString  -- ^ Message
    -> BS.ByteString  -- ^ Signature
    -> f Bool
verifySignature pubKey msg sig =
    maybe empty pure . maybeCryptoError $
        verify
            <$> publicKey pubKey
            <*> pure msg
            <*> signature sig

Checked our docs?

[X] Yes, I have looked in the the readme, plutus docs, and technical report for help on this issue.

Checked Stack Exchange?

[X] Yes, I have searched Stack Exchange for this issue and it doesn't exist.
[X] I have considered raising this issue in Stack Exchange.

System info
plutus apps a78e858f77cd3ecb76877351e0832ee5643f09a9
nix on macos bigSur 11.5.2
Screenshots and attachments
No response

Hey @volodyad we will investigate this issue to try and discern why this isn't working for you.

It turns out the issue was that there was a passphrase always being used with the oracle signing functions that didn't necessarily correspond to private keys like the one you loaded from the text envelope, I have created PR to address this.

Fixed with #177


bokeh backend acting up in ordering attributes

It seems the bokeh backend does not always work correctly to link drawn polygons and their attributes. Here's an example that reproduces the issue with the Inner London dataset attached (inner_london.geojson.zip).
Setup:
import geopandas as gpd
import pysal as ps
from pysal.contrib.geotable.utils import to_df
from pysal.contrib.viz.mapping import geoplot
from bokeh.plotting import output_file

Read the data and turn into a geotable:
il = to_df(gpd.read_file('inner_london.geojson'))

Plot to a file:
output_file('test.html')
geoplot(il, col='st_areasha', backend='bk')

When you run the last line, you can see the following warnings:
In [13]: maps.geoplot(il, col='st_areasha', backend='bk')
/home/dani/anaconda/envs/gds3/lib/python3.5/site-packages/bokeh/models/sources.py:81: BokehUserWarning: ColumnDataSource's columns must be of the same length
  lambda: warnings.warn("ColumnDataSource's columns must be of the same length", BokehUserWarning))
/home/dani/anaconda/envs/gds3/lib/python3.5/site-packages/bokeh/models/sources.py:81: BokehUserWarning: ColumnDataSource's columns must be of the same length
  lambda: warnings.warn("ColumnDataSource's columns must be of the same length", BokehUserWarning))
/home/dani/anaconda/envs/gds3/lib/python3.5/site-packages/bokeh/models/sources.py:81: BokehUserWarning: ColumnDataSource's columns must be of the same length
  lambda: warnings.warn("ColumnDataSource's columns must be of the same length", BokehUserWarning))
/home/dani/anaconda/envs/gds3/lib/python3.5/site-packages/bokeh/models/sources.py:81: BokehUserWarning: ColumnDataSource's columns must be of the same length
  lambda: warnings.warn("ColumnDataSource's columns must be of the same length", BokehUserWarning))

In [14]:

My hunch with this is there might be multi-part polygons and we're not accounting for this?

Just thinking about it, I wonder if this would get fixed by @jsignell in #921 at all or it's independent? My sense is it does not relate to that but to how polygons are read in plot_geocol_bk, potentially in L.819 and after?
@ljwolf any idea maybe?

UPDATE: No, I don't think #921 fixes it. The problem is that, while locations and colors are expanded if multipart polys exist, the attributes brought in are not and should.

looks like this was fixed in https://github.com/pysal/splot/pull/3 and so this issue can be closed?


Perform a version check

When interacting with a remote API, check the version number that is returned in the response metadata, and warn if it is different from the cached client-side version

This is not a bad idea, but in the years since sapi-client-ruby has been in deployment we've not had the core issue be a problem. Closing, but this could always be resurrected in the future.


Invoke Nominate Nuget restore on changes to configured project

Listen for changes to Package references, Project references, and Project configuration and call the nominate restore API. This is implemented at the Unconfigured project level so that we can link all the configured projects and produce one event when any changes.
/cc @dotnet/project-system

Can we rebase the changes - looks like you've got some accidental reverts/changes in your history.

@davkean I've synced this to master to get ActiveConfiguredProjectsProvider that Manish just checked in

Filed #614 to track moving this change and #534 to a common service that fires subscriptions on any changes to multiple configured projects that match the "VS" active configured project.
Temporarily switched to using short target framework since TargetFrameworkMoniker is currently not available prior to restore. Track reverting this in #615
We plan to merge this in to prepare an insertion to unblock NuGet.

@dotnet retest this please

@dotnet retest this please


ATTiny88

Hello. Can you help me? How to make it work with ATTiny88? It has 8bit timer0 and 16bit timer1.
Manual http://ww1.microchip.com/downloads/en/DeviceDoc/doc8008.pdf

Heya, Im happy to accept PRs but I'm unable to support the 88 as I don't have one for testing and debugging.


fix:Dockerfile user apk --no-cache

Tips

Thanks very much for contributing to Apache DolphinScheduler.
Please review https://dolphinscheduler.apache.org/en-us/community/index.html before opening a pull request.

What is the purpose of the pull request
(For example: This pull request adds checkstyle plugin.)
Dockerfile use apk --no-cache
Dockerfile use COPY
Brief change log
(for example:)

Add maven-checkstyle-plugin to root pom.xml

Verify this pull request
(Please pick either of the following options)
This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added dolphinscheduler-dao tests for end-to-end.
Added CronUtilsTest to verify the change.
Manually verified the change by testing locally.

Is this a bug?

Is this a bug?

Not a bug
Just optimize with "hadolint".


Goflow input operator

Description of Changes
Goflow input operator will open the door to 3 plugins by supporting these "modes"

Netflow V5
Netflow V9 / IPFIX
Sflow

NetFlow is a feature that was introduced on Cisco routers around 1996 that provides the ability to collect IP network traffic as it enters or exits an interface.

This operator is a wrapper around Cloudflare's Goflow. It works by implementing Goflow's transport interface, which allows Goflow to write messages to Stanza's pipeline.
Test config contains four inputs and four outputs. I am using the solarwinds netflow generator tool to generate load.
pipeline:
- type: goflow_input
  id: netflow_v5
  mode: netflow_v5
  port: 2056
  output: v5_out
- type: goflow_input
  id: netflow_v9
  mode: netflow_v9
  port: 2055
  output: v9_out
- type: goflow_input
  id: sflow
  mode: sflow
  port: 2054
  output: sflow_out
- type: goflow_input
  id: ipfix
  mode: netflow_v9
  port: 2053
  output: ipfix_out

- type: file_output
  id: v5_out
  path: ./v5
- type: file_output
  id: v9_out
  path: ./v9
- type: file_output
  id: sflow_out
  path: ./sflow
- type: file_output
  id: ipfix_out
  path: ./ipfix

From left to right: netflow v5, netflow v9, ipfix (uses mode netflow_v9), sflow

The pipeline runs with all four enabled without any parsing errors. I have also tested with
Please check that the PR fulfills these requirements

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)
[ ] Add a changelog entry (for non-trivial bug fixes / features)
[ ] CI passes

Log Files
Logs / Second
CPU Avg (%)
CPU Avg Δ (%)
Memory Avg (MB)
Memory Avg Δ (MB)

1
1000
1.5517472
-0.15515661
128.19801
+1.7998428

1
5000
5.000072
+0
138.2434
+0

1
10000
9.396828
+0
143.90181
+0

1
50000
50.431675
+0
173.25902
+0

1
100000
99.17785
+8.538353
241.27464
+5.796463

10
100
2.1034966
+0
131.35628
+0

10
500
6.0173655
+0.46559143
138.33243
-1.3182983

10
1000
10.844921
-0.39667416
148.29768
+2.629715

10
5000
50.67268
+0.28078842
178.57516
-0.41419983

10
10000
98.18275
+0.9577179
221.5621
-0.18856812

Log Files
Logs / Second
CPU Avg (%)
CPU Avg Δ (%)
Memory Avg (MB)
Memory Avg Δ (MB)

1
1000
1.3448272
-0.36207664
129.30348
+2.9053116

1
5000
4.620714
+0
137.33311
+0

1
10000
10.034745
+0
146.29889
+0

1
50000
51.156597
+0
175.41016
+0

1
100000
101.50231
+10.862816
228.88605
-6.5921326

10
100
1.7931591
+0
135.02061
+0

10
500
5.8966103
+0.34483624
139.22966
-0.42106628

10
1000
11.24155
-4.4822693e-05
146.7966
+1.1286316

10
5000
57.899616
+7.507725
180.27344
+1.2840729

10
10000
107.921585
+10.696556
229.14252
+7.3918457

Log Files
Logs / Second
CPU Avg (%)
CPU Avg Δ (%)
Memory Avg (MB)
Memory Avg Δ (MB)

1
1000
1.5862372
-0.12066662
129.74973
+3.3515549

1
5000
4.6724763
+0
138.04944
+0

1
10000
9.327755
+0
144.69746
+0

1
50000
50.776398
+0
175.93265
+0

1
100000
96.06921
+5.4297104
256.5528
+21.074615

10
100
1.7931442
+0
134.80563
+0

10
500
5.465702
-0.08607197
139.70003
+0.049301147

10
1000
10.638173
-0.60342216
148.89548
+3.2275085

10
5000
50.640675
+0.24878311
179.11005
+0.12068176

10
10000
99.169716
+1.9446869
227.47617
+5.7254944

Log Files
Logs / Second
CPU Avg (%)
CPU Avg Δ (%)
Memory Avg (MB)
Memory Avg Δ (MB)

1
1000
1.5173
-0.1896038
129.22858
+2.8304062

1
5000
4.58619
+0
136.52425
+0

1
10000
9.67232
+0
146.16231
+0

1
50000
51.27256
+0
179.53502
+0

1
100000
96.06529
+5.4257965
238.46822
+2.990036

10
100
1.6897135
+0
133.72185
+0

10
500
5.4483743
-0.10339975
140.4608
+0.81007385

10
1000
11.534453
+0.29285812
145.97804
+0.31007385

10
5000
55.499664
+5.107773
175.38564
-3.6037292

10
10000
98.675095
+1.4500656
217.13792
-4.612747

Log Files
Logs / Second
CPU Avg (%)
CPU Avg Δ (%)
Memory Avg (MB)
Memory Avg Δ (MB)

1
1000
1.3449109
-0.36199296
128.33945
+1.9412766

1
5000
4.9829416
+0
137.14763
+0

1
10000
10.050423
+0
145.45042
+0

1
50000
52.187458
+0
177.55011
+0

1
100000
97.70881
+7.069313
233.04863
-2.4295502

10
100
1.9138225
+0
133.09698
+0

10
500
6.0519905
+0.5002165
140.40787
+0.7571411

10
1000
10.965611
-0.2759838
147.71283
+2.0448608

10
5000
56.56996
+6.17807
179.92053
+0.9311676

10
10000
115.14582
+17.920792
231.35117
+9.600494


Issue with JWK Validation: Leading Zero in Coordinates

We have encountered a problem where loading JSON Web Keys (JWKs) results in the following error message:
"failed to validate JSON Web Key: failed to validate JWK: marshaled JWK does not match original JWK"
The JWK is set as follows:
                "kty": "EC",
                "crv": "P-256",
                "alg": "ES256"

Upon investigation, we found that the problem lies in one of the key coordinates starting with a leading zero. For example:
The x coordinate starts with "ALTu..." After the coordinate is changed with the following function https://github.com/MicahParks/jwkset/blob/b0b8e8b30a697b253418a506e8a76510039d4da8/marshal.go#L485 the result looks like:
[0 180 238...]
However, after calling Set.Bytes() on this value, the leading zero disappears..
https://github.com/MicahParks/jwkset/blob/b0b8e8b30a697b253418a506e8a76510039d4da8/marshal.go#L231
When converting the result back to bytes we see the following result:
[180 238...]
This discrepancy leads to the original error message because the deepEqual check here no longer validates correctly.
https://github.com/MicahParks/jwkset/blob/b0b8e8b30a697b253418a506e8a76510039d4da8/jwk.go#L311
We recommend addressing this issue by ensuring consistent handling of leading zeros in key coordinates during JWK validation.
We hope to hear soon from you!
Kind regards,
Hauke

Hello, thank you for opening this issue.
Are you able to share where you got this JWK from? If it's a public vendor such as an AWS product, Okta, Auth0, etc, I would like to send them an email regarding RFC compliance.
The reason this happened is because the JWK being used is non-RFC compliant regarding padding with leading zeros. Please see this note in the README.md and these lines of RFC 7518:

The octet sequence MUST utilize the minimum number of octets needed to represent the value.

I know saying "the JWK is non-RFC compliant" isn't a satisfying answer. I plan on adding a work-around for non-RFC compliant JWK with leading padding similar to the trailing padding issue. Unfortunately, this is unlikely to happen today, but is likely to happen before the week is over.

Hi @MicahParks,
I took a look at the RFC 7518. I might be missing something since I did not read it fully, but to me the section on the "x" and "y" parameters sounds like they should be represented as a fixed length base64url encoded string:

<IP_ADDRESS>.  "x" (X Coordinate) Parameter
The "x" (x coordinate) parameter contains the x coordinate for the
Elliptic Curve point.  It is represented as the base64url encoding of
the octet string representation of the coordinate, as defined in
Section 2.3.5 of SEC1 [SEC1].  The length of this octet string MUST
be the full size of a coordinate for the curve specified in the "crv"
parameter.  For example, if the value of "crv" is "P-521", the octet
string must be 66 octets long.

As far as I can see the Base64urlUInt is only used in the parameters "n", "e", "d", "p", "q", "dp", "dq", "qi", the  "r" (Prime Factor), "d" (Factor CRT Exponent) and "t" (Factor CRT Coefficient).
Again I may be totally wrong here because I only looked for that term.

@raskad thank you for politely pointing that out.
It does look like these JWK parameters are defined by base64url encoding as defined by RFC 7518 Section 1.1, not Base64urlUInt, which is defined differently in Section 2.
I'm going to mark this issue as bug.

It's a shame that the RFC did not define some of these JWK parameters as Base64urlUInt or some other type like Base64urlInt for values that could be negative.
Looking at *ecdsa.PublicKey for example, the X, and Y fields are represented as *big.Int and the most natural way to turn that into the JWK parameter using Golang is always going to strip and leading zeros, unless the leading zeros are added manually.
The new validation method I'm working on will be comparing the affected JWK parameters *big.Int types. This technically would be the wrong way to compare Base64url Encoding, but I think it's safe to assume this comparison will be correct for certain JWK parameters, such as "x" and "y", also there's doesn't seem to be any other way to compare values since it's impossible to know how many leading zeros are added when JWKs come from other projects.

The new validation method I'm working on will be comparing the affected JWK parameters *big.Int types.

That was also my first idea when I took a look at the code.

also there's doesn't seem to be any other way to compare values since it's impossible to know how many leading zeros are added when JWKs come from other projects.

From my reading of the descriptions of "x" and "y", in theory they must have a fixed length corresponding to the crv right? The length of this octet string MUST be the full size of a coordinate for the curve specified in the "crv" parameter. I'm not 100% read up on the code, but maybe there could be a check when parsing the jwk to verify that "x" and "y" have the specified length and then later you could add the leading zeroes up to that point? But I'm not sure if that actually improves anything.

@raskad I think the line you pointed out from RFC 7518 Section <IP_ADDRESS> is likely something I overlooked when implemented the affected portion of JWK.

The length of this octet string MUST be the full size of a coordinate for the curve specified in the "crv" parameter.

If I am reading this correctly and remember what exists in the code base today. I also need to check how JWK parameters that are marked as Base64url Encoding are treated. I am concerned some/all are being treated as Base64urlUInt when JSON marshaling or unmarshaling, they could be in a different format and I'm not sure the Golang methods being used are appropriate. .Bytes and .SetBytes
I am going to sign off for the night, but plan on looking at this further tomorrow.
If you want to take a peek at the work-in-progress branch, you can find that here: jwk-validation-rework. I am not attached to this WIP branch. Suggestions or pull requests that take a different approach are welcome.

Addressing a subset of the questions posed by this issue is this PR: https://github.com/MicahParks/jwkset/pull/19
The PR is meant to comply with the octet length requirements for ECDSA JWK parameters as discussed in this issue.
I encourage any interested parties to review, comment, and emoji react on the PR.
I am still investigating Base64urlUInt vs Base64url Encoding and if this project is in full RFC compliance regarding that.

Please see the newly release version v0.5.13. This should resolve the original issue. Thank you all again for opening this issue! If the issue has been solved to your satisfaction, please close the issue. I'll close it sometime in the future if there is no activity.
I've made two new issues relevant to this discussion.

Rework validation: https://github.com/MicahParks/jwkset/issues/20
Investigating Base64urlUInt vs Base64url Encoding and if this project is in full RFC compliance: https://github.com/MicahParks/jwkset/issues/21

Hi again @MicahParks,
thanks for your update and the new version, we appreciate you work!
Is it possible that you update the dependency on this project also in your keyfunc project?
That would help us too. Thanks and kind regards!

@Useserall please see keyfunc v3.2.6.

With the newest release, ECDSA keys produced by this project will have the proper padding in the relevant JWK parameters. This project will also work with all keys regardless of leading padding on ECDSA JWK parameters.


Add message about artifact to and remove links from comment

We can't link to individual files in the artifact, nor to the artifact itself because github doesn't support it.
This PR removes the links and adds a message about the artifact instead.
An example of the new comment is:
Smelly Python: 4.11/10

Smelly Python found 13 code smells in your project.

You can find the more detailed html report in the artifact of the action.

File
Lines
Smell
Explanation

:red_circle:
test/code_smell_with_smells.py
58:20
no value for parameter
Used when a function call passes too few arguments. [source]

:red_circle:
test/code_smell_with_smells.py
58:20
no value for parameter
Used when a function call passes too few arguments. [source]

:red_circle:
test/code_smell_with_smells.py
58:20
no value for parameter
Used when a function call passes too few arguments. [source]

:red_circle:
test/code_smell_with_smells.py
58:20
no value for parameter
Used when a function call passes too few arguments. [source]

:red_circle:
test/code_smell_with_smells.py
136:23
undefined variable
Used when an undefined variable is accessed. [source]

:orange_circle:
test/code_smell_with_smells.py
43:27
unused argument
Used when a function or method argument is not used. [source]

:orange_circle:
test/code_smell_with_smells.py
43:33
unused argument
Used when a function or method argument is not used. [source]

:orange_circle:
test/code_smell_with_smells.py
43:40
unused argument
Used when a function or method argument is not used. [source]

:orange_circle:
test/code_smell_with_smells.py
43:49
unused argument
Used when a function or method argument is not used. [source]

:orange_circle:
test/code_smell_with_smells.py
133:12
pointless string statement
Used when a string is used as a statement (which of course has no effect). This is a particular case of W0104 with its own message so you can easily disable it if you're using those strings as documentation, instead of comments. [source]

:yellow_circle:
test/code_smell_with_smells.py
132:11
comparison with itself
Used when something is compared against itself. [source]

:large_blue_circle:
test/code_smell_with_smells.py
43:49
invalid name
Used when the name doesn't conform to naming rules associated to its type (constant, variable, class...). [source]

:large_blue_circle:
test/code_smell_with_smells.py
52
invalid name
Used when the name doesn't conform to naming rules associated to its type (constant, variable, class...). [source]

From the job summary it's easy, it's just right above it.
From the PR tho... you first have to go to the checks tab and then here it is in the top right:

So we can add: "On the PR, you can find the artifact in the Checks tab at the right top"?


Support a flag for items which marks them as "unidentified" - hiding some details of the name

Add an "identified" field to the item data model which can mark an item as unidentified (false) or identified (true) with a null value meaning that no identification is required.
For identified items, show full details, for unidentified items show limited/restricted information until identification occurs.

Is anyone working on this at the moment? I could give this a go.


Error Calling Lua Chunk

OS: Arch
Nvim Version: 0.7.0-3
Expected Behavior: No errors
Actual Behavior: I haven't changed anything with regards to my setup but for some reason when I opened my nvim setup today the following error message appeared
Error detected while processing /home/xllvr/.config/nvim/init.lua:
E5113: Error while calling lua chunk: .../nvim/site/pack/packer/start/iron.nvim/lua/iron/core.lua:557: bad argument #1 to 'insert' (table expected, got nil)
stack traceback:
        [C]: in function 'insert'
        .../nvim/site/pack/packer/start/iron.nvim/lua/iron/core.lua:557: in function 'setup'
        /home/xllvr/.config/nvim/lua/plugin/iron.lua:4: in main chunk
        [C]: in function 'require'
        /home/xllvr/.config/nvim/init.lua:13: in main chunk

My Iron Setup is as follows:
---- IRON-REPL ----------------------------------------------------------------
local iron = require('iron')

iron.core.setup {
    config = {
        -- Highlights the last sent block with bold
        highlight_last = "IronLastSent",
        -- If iron should expose `<plug>(...)` mappings for the plugins
        should_map_plug = false,
        -- Whether a repl should be discarded or not
        scratch_repl = true,
        -- Automatically closes the repl window on process end
        close_window_on_exit = true,
        -- Your repl definitions come here
        repl_definition = {
            sh = {
                command = { "zsh" }
            },
            python = require("iron.fts.python").ipython
        },
        -- Repl position
        repl_open_cmd = require("iron.view").curry.right(function()
            return math.ceil(vim.o.columns / 2)
        end),
    },
    -- Iron doesn't set keymaps by default anymore. Set them here
    -- or use `should_map_plug = true` and map from you vim files
    keymaps = {
        send_motion = "<space>sc",
        visual_send = "<space>sv",
        send_line = "<space>sl",
        repeat_cmd = "<space>s.",
        cr = "<space>s<cr>",
        interrupt = "<space>s<space>",
        exit = "<space>sq",
        clear = "<space>cl",
    }

}

Hi @xllvrr,
I'm terribly sorry. I shouldn't have rushed something that now I realize is a breaking change.
I'm pushing a "fix" for it, but the actual issue is that I  renamed a mapping, so repeat_cmd is now send_mark.
The fix I'm pushing will make it more obvious than the cryptic message lua is giving (which makes sense, but requires some context to understand).

Hi @hkupty
Okay no problems. Glad to know that it's a known issue at least. Look forward to the change. Will be good to get notified once it's done so I can make the update required, otherwise I'm stuck without the functionality for the time being

Can you check with the latest commit - It might pop an ugly deprecation warning, but it should be informative enough to help you migrate. Let me know how it goes.

Error detected while processing /home/xllvr/.config/nvim/init.lua:
E5113: Error while calling lua chunk: .../nvim/site/pack/packer/start/iron.nvim/lua/iron/core.lua:561: attempt to call field 'deprecate' (a nil value)
stack traceback:
        .../nvim/site/pack/packer/start/iron.nvim/lua/iron/core.lua:561: in function 'setup'
        /home/xllvr/.config/nvim/lua/plugin/iron.lua:4: in main chunk
        [C]: in function 'require'
        /home/xllvr/.config/nvim/init.lua:13: in main chunk

It doesn't quite seem to clarify what the change required is to be honest but I'll be changing repeat_cmd on my side to see whether that works out

Changing the repeat_cmd to send_mark works perfectly but yeah not sure the error is much more clarifying to be honest

Perhaps. I'm at the latest non-nightly version available to Arch though. Made sure by doing an update just before this

So it's definitely introduced in a recent master version... I'll make sure to wrap it with a function, there are other uses in the codebase that will likely have similar errors..

Noted with thanks and thanks for the speedy response!
It should be good to close so I'll do so

I'm really glad to help!


remote_invocation when data comes from COS

This patch activates remote_invocation when the data comes from a COS bucket
Developer's Certificate of Origin 1.1
   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

@JosepSampe i run it over 1000 objects..I saw only one invocation from the client, which run internally 1000 invocations. I thought it suppose to be spanned acrross 10 local invocations, each invoke 100, right?

@gilv The flow is: one invocation from the client (data-discover-function) and then 10 invocations from data-discover-function, each one invoke 100 map functions.

@JosepSampe somehow this is not what i experience...it seems, one invocation which spans 1000 invocations internally. I will double check this

@JosepSampe you are correct, one invocation which spans 10 internally :)
thanks. will merge it


fix wrong use 'new' statement

Thanks!
This statement didn't cause an error, object of exception was created propertly by default constructor, very strange feature ;)


Question: How to advertise public IP given to KubeVirt VM Service to the external world

I have assigned a public IP to a service attached to the KubeVirt VM. When I connect with the Internet from the VM, it exposes the gateway IP. Instead, I want to expose my public IP attached to the VM service.  Cilium is used as CNI and it is also doing IPAM and we use IPVS.

If your pod sees the public IP address (I'm not sure how it works with Cilium), then with the passt binding you should get your public IP address propagated all the way into the guest (see "Pod IP in guest" in the page I linked).

@anjuls are you happy to close this issue?

Thanks for the pointer I will close it for now.


Update chain-list

[x] https://github.com/Koniverse/SubWallet-ChainList/issues/198
[x] https://github.com/Koniverse/SubWallet-ChainList/issues/199
https://github.com/Koniverse/SubWallet-Extension/issues/2848
[ ] xcDED
[x] xcBNCS
[x] https://github.com/Koniverse/SubWallet-ChainList/issues/197

ETH on Astar zkEVM: update logo -> ETH
OKX X1 testnet:
-- update name -> "X Layer testnet"
-- update network logo and token logo (link: https://www.figma.com/file/PxPvXw5woBernBu3BtwxkX/SubWallet-Project-Logo?type=design&node-id=1944-294&mode=design&t=9A2Ml6An2odQnzzO-4)

Also add group asset for BNCS (moonbeam, bifrost polkadot)

Version test: http://<IP_ADDRESS>:8900/s/543nadfcCfpSfbE
Validation passed in cases

Support X Layer

Show balance

Transfer token: https://www.okx.com/explorer/xlayer/tx/0xf98d38120bfa72214c1fe8c2908fcdcd51a44ed8d43ce63ed5e48859dfd82f86

View on explorer

Support ASTR for Astar zkEVM

Show balance

Transfer token (approve step)

View on explorer

Add support xcBNCS for Moonbeam

Show balance: Have no holder yet
View on explorer

Support DOTA token

Show balance
Transfer token (approve step)
View on explorer

Group for DED and BNCS

Please check issue

[ ] Incorrect URL explorer of the X Layer testnet (check with address 0xd6dda5aa7749142b7fda3fe4662c9f346101b8a6)

Actual: https://www.okx.com/nl/explorer/x1-test/
Expect: https://www.okx.com/explorer/xlayer-test/


Datasources as CRDs

This PR adds Perses Datasources as CRDs:

Adds the CR definitions based on Perses Datasources Types
Adds a datasource controller and tests

Draft because Requires #8


You have included the Google Maps API multiple times on this page. This may cause unexpected errors.

I followed this link tuto but in my project I need to integrate the map in a component other than the AppComponent but I always had this error :

You have included the Google Maps API multiple times on this page. This may cause unexpected errors.
any help please !

i have this issue too

will be fixed with the next version


Retrieval Error Unable to find a resource matching the provided identity provider

Describe the Issue:
Getting an error Retrieval Error Unable to find a resource matching the provided identity provider identifier when clicking on Set up of any local authenticator that appears in the search result of Connections but does not have a dedicated template.
Reproduction steps given for Active Sessions Limit. Also reproducible for Basic auth, Identifier first, etc.
How To Reproduce:

Go to Console and go to Connections
Search for the term Active in the search box and press enter
The Active Sessions Limit will appear. Click on Set up.

The above error appears.

Expected behavior:
Such an error should not occur.

Fixed with https://github.com/wso2/identity-apps/pull/4541


Elixir checker accept optional environment

The solution proposed here wasn't working for. elixirc reported errors on many files that mix wasn't. It must have something to do with build environments.
With this patch we can set let g:syntastic_elixir_compile_env = { 'MIX_ENV': 'test' } and
workaround this issue by building in a different environment.

The elixir checker is already broken beyond fixing, mainly because error messages produced by Elixir are way too hard to parse with errorformat.  So this checker is pretty high on the list of things to remove in a future release of syntastic.
In the mean time, you could achieve what you want without changes to the code, by using a script wrapper that sets whatever environment variables you want.  Thus, sorry, but no.


How to Change the Default Webdriver Folder for SeleniumBasic?

Is it possible to change the default webdriver folder of Selenium Basic to another folder? Is there a way to manually point it to somewhere else apart from the folder where Selenium Basic is installed to? In my organization we are required to install SB into a restricted drive (where only authorized IT personel can access for security) and the webdrivers into a non-restricted location where users have the free access to download the latest webdrivers and save them there.

For those who would like to do the same Floren has provided the answer to me here.


How does it perform with document images like invoices, receipts

Thanks for this awesome (and seamless) module.
I want to know if it performs equally "good" in document images. Ongoing through the code (and the blog), it seems the DHasher rescales every to image to (9, 8) and then code is generated using a direct horizontal gradient. This seems to do better for documents consists of abstract entities like person, car without much care for details (since even after rescaling to such narrow size our eyes can still differentiate the resulting image).
However, for document images, even some differences in table structure or lines can make it belong to different categories which after rescaling might be lost.
So, has evaluation been done on document images?

A detailed benchmarking on document images has not been done, but you can refer to the closed issue #80 where a similar problem was asked and the documents were found to be duplicates with the default settings.
Would be great if you can share some of your results on your document corpus.


0.0.10 breaks devtools

I originally filed this issue on freeqaz/redux-simple-router-example#1. I am able to reproduce the behavior elsewhere by switching between 0.0.8 and 0.0.10, so maybe this is a more appropriate place to file the issue?
Gif for your viewing pleasure:

The only change I see to the state as reported by devtools is the addition of changeId.

The gif (which is awesome, really helps thanks) is showing 0.0.8. Are you sure that it worked in 0.0.8 and broke in 0.0.10? It's confusing that you aren't showing it breaking the latest version.

Hmm, weird. I definitely recorded it with the latest version, which included changeId in the state. Maybe I didn't properly blow away my node_modules? Will retry.

From the other issue, here's screenshots of the state for each version:
Here's devtools' picture of the state changes in 0.0.8:

And here's the same thing for 0.0.10:

Oh, you are right. I think I was looking at the action but thinking that was state. In previous versions we actually stored the avoidRouterUpdate flag in the state.
I'll take a look soon.

Glad to see that someone else reported this! I was about to report it as well, except that I don't know how to make cool animated GIFs, so I maybe wouldn't have been as helpful.
(P.S. What are you using to make your animated GIFs?)

@rdelatorre I use cloudapp, but there are a number off free options out there along the power/simplicity curve:

Licecap
Recordit
quicktime->ffmpeg flavor 1
[quicktime->ffmpeg flavor 2}(http://spin.atomicobject.com/2015/07/08/simple-gif-screencast-workflow-mac/)

I have the same issue with my project. I started right away with the latest version but the ReduxDevTool events have no influence on my application state.

The problem is the history listen dispatching of event. You set avoidRouterUpdate to true which results in not counting up the change id. So lastChangeId is always gonna be equal to changeId so you never update the route when the store changes.

@kjbekkelund Have you tried it with devtools yet? I will very soon but work has just been crazy. I'll add the devtools to the basic example which will help have a quick simple project to diagnose issues.

As @fkrauthan says, incrementing the changeId systematically does fix the problem.
However, it also breaks a bunch of tests.
My guess is https://github.com/jlongster/redux-simple-router/blob/master/src/index.js#L95 will stop redux from replaying the changes when going back in time.

Don't we just need a flag outside of the two listeners that gets used to prevent a router change triggering a endless loop instead of relaying on that id?

@jlongster Haven't had time to play with devtools yet. Will try to get some time to do it soon.

:heart: :sparkles: Thank you!


feat: implement textinput

IOS

ANDROID

asdas

Does your component support animated title? Example like this one

If not, could you consider adding that feature?

Let me confirm whether you are referring to the title animation jumping or the title animation moving to the top but remaining inside the border. Which one did you mention?

Does your component support animated title? Example like this one

    [

        ![68747470733a2f2f692e696d6775722e636f6d2f4e61314b4c49452e676966](https://camo.githubusercontent.com/759e9531e1cc872a445550e259a7d06d690bece413fcd5e8ed4968ce740480c3/68747470733a2f2f692e696d6775722e636f6d2f4e61314b4c49452e676966)
      ](https://camo.githubusercontent.com/759e9531e1cc872a445550e259a7d06d690bece413fcd5e8ed4968ce740480c3/68747470733a2f2f692e696d6775722e636f6d2f4e61314b4c49452e676966)

      [

      ](https://camo.githubusercontent.com/759e9531e1cc872a445550e259a7d06d690bece413fcd5e8ed4968ce740480c3/68747470733a2f2f692e696d6775722e636f6d2f4e61314b4c49452e676966)

If not, could you consider adding that feature?

Let me confirm whether you are referring to the title animation jumping or the title animation moving to the top but remaining inside the border. Which one did you mention?
the title animation jumping like below:

Yes, that's it


⚠ ClamAV has degraded performance

In 085eace, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 68 ms

Resolved: ClamAV performance has improved in 060a57e.


s2n_blob_is_valid() cannot assert all expected invariants.

Problem:
s2n_blob_is_valid cannot check the following properties, which ought to be invariants of the data-structure, because not all tests enforce them.
IMPLIES(b->mlocked, b->growable) &&
IMPLIES(!b->growable, b->allocated == 0);

Proposed Solution:
Update the tests so they enforce them

This issue is outdated; s2n_blob doesn't even have a mlocked member anymore.


--api option

It sill be awesome if you add --api option than default the new Laravel project to the best options for a fully API application that did not contain any sort of UI.

@devmsh What kind of setup do you have in mind for a --api option? Is it just an alias for running a combination of the existing options or is there other configuration not yet supported you have in mind?

I think --all - any ui related option will be fine


⚠ Bofrost.be has degraded performance

In ec8fb96, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1471 ms

Resolved: Bofrost.be performance has improved in d996b2e.


Slide button cannot control input_numbers helpers?

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Create a helper called lounge_volume (or whatever, but this is the example I'm using)
Add the following to the dashboard

  - type: custom:bubble-card
    display_mode: slider
    entity: input_number.lounge_volume
    type: custom:bubble-card
    card_type: button
    button_type: slider
    show_state: true

Note that the percentage in the screenshot is 47% - but the bar is empty.
Interact with the slider. Doing so will change the amount the bar is filled, but not update the value

Expected behavior
I expected the control to read the value from the helper, and also update it.
Screenshots
Shown in reproduction steps.
Desktop (please complete the following information):

OS: [e.g. iOS] Reproduced on both Linux and Android.
Browser [e.g. chrome, safari] Vivaldi
Version [e.g. 1.6.2] 1.7.3

Thank you! 🍻

Hi and thank you for your feedback, for now the sliders only supports lights and media players. You are not the first one to ask for that feature and I will add that possibility soon.

I've finally had a chance to give this a whirl.
It's looking close, but it's trying to set between the range of -100 to 0
instead of 0 to 100. Is this a known bug or should I try and provide more
details?

Hi, can you provide more details indeed? I was not aware of this issue.

This is the helper

And this is the (relevant part of) the entity card I'm trying to use this in.
type: entities
entities:
  - type: custom:bubble-card
    card_type: button
    button_type: slider
    entity: input_number.lounge_volume

And this is the error that pops up

I've tried adding the button directly to the dashboard, and the same error occurs. I don't believe using it inside an entities card is relevant to the issue. I also don't see any configuration regarding the ability to override the range (not that it should be necessary).
Let me know if there's anything else more specific I can add.

Much appreciated that you're implementing this feature request. I can confirm that I have the same issue with the negative value. If needed I could also try to provide some details ?

I've fixed it in the last beta (v2.0.0-beta.6), can you confirm this? :)

That's done the trick - thanks for that :)

Yes, now it is working as expected. Thank you very much. 👍

Hi, you are not the first to tell me that but like I said in the documentation and in the editor, this is expected as the sliders are just supporting lights, covers, media players and input numbers at the moment.

But I will work on that really soon!

I will add this case in my code right now, could you just send me the attributes of this entity? You can find it in "Developer tools" > "States". I don't have any number entities.

Sorry for taking a bit, I had to step away from my desk. Hope these help!
Entity: number.vidal_sassoon_cutting_height
State: 4
State attributes:
min: 1
max: 9
step: 1
mode: auto
friendly_name: Vidal Sassoon Cutting height

I've just added an experimental support for these entities in v2.0.2, can you tell me if it works as expected?
https://github.com/Clooos/Bubble-Card/releases/tag/v2.0.2

I can confirm that number entities now work as expected. Thanks for your hard work!

Hell yeah! 🎉


兼容不了5.4.12Final

public String getQuerySequencesString() {
	//return "select name from sysobjects where type$ = 'SCHOBJ' and subtype$ = 'SEQ';";
}

这么代码，会报

可能得改成
@Override
public String getQuerySequencesString() {
	//return "select name from sysobjects where type$ = 'SCHOBJ' and subtype$ = 'SEQ';";
	return "select \n" +
			"d.SEQUENCE_NAME AS sequence_name,\n" +
			"'' as  sequence_catalog,\n" +
			"d.SEQUENCE_OWNER AS sequence_schema,\n" +
			"d.MIN_VALUE AS start_value,\n" +
			"d.MIN_VALUE AS minimum_value,\n" +
			"d.MAX_VALUE AS maximum_value,\n" +
			"d.INCREMENT_BY AS increment\n" +
			" from sysobjects a \n" +
			"inner join all_objects b on a.SCHID = b.OBJECT_ID AND b.object_type = 'SCH' \n" +
			"inner join ALL_USERS c on b.object_name = c.username\n" +
			"inner join ALL_SEQUENCES d on a.NAME = d.SEQUENCE_NAME AND c.username = d.SEQUENCE_OWNER  \n" +
			"where a.type$ = 'SCHOBJ' and a.subtype$ = 'SEQ' ";
}

这个应该和达梦数据库版本有关

最近使用这个方言 适配了达梦8.2版本 是没问题的


How to get quantity when user changes the quantity

How can get value of quantity when user changes the quantity?
I m aware that it has getOnQuantitChangeListener can help, but can you tell me how to use it?

I am sure you must have got the solution.
But just in case I faced the same problem
the solution is
the method to use is setOnQuantityChangeListener not  getOnQuantitChangeListener
the implementation is below
`setOnQuantityChangeListener(new QuantityView.OnQuantityChangeListener() {
@Override
public void onQuantityChanged(int oldQuantity, int newQuantity, boolean programmatically) {
}
        @Override
        public void onLimitReached() {

        }
    });

`


[enhancement] "Close with escape key" feature shouldn't activate while fullscreen video is playing

And other circumstances (if there are more) from which you normally can escape out of.

Duplicate: https://github.com/aluxian/Messenger-for-Desktop/issues/1189


More tweaks to GCP setup instructions

also

now opening all external links in a new window
silenced sphinx warnings about include files

The Bioc workshop material is still a work-in-progress so feel free to just skim that for now.

Lots of very good stuff in here. Adding the screenshots will really help users.
Two small comments. Otherwise LGTM.

I concur with Matt, the screenshots help a lot!  I always try to include some in my docs (picture is worth ... :)
Thanks for the nice work!
~p

thanks @mbookman! I'm about to start on a bunch of other feedback so I'll add port 22 in the next round.


[flutter_tools] Handle special characters during conversion of asset manifest paths into URIs

Adding @dnfield since he landed the previous fix

Is there a bug this is fixing for context?

While looking into https://github.com/flutter/flutter/issues/46163 I found that some characters that are meaningful in URIs were not being handled correctly in asset manifests (e.g. # and ?)
#46163 described a slightly different bug though.


Add SharedSpawn.

As a solution to #1669. It's sometimes convenient to have something like Arc<dyn Spawn> but Spawn isn't useful in this case because it accepts &mut self. I propose to have SharedSpawn/Spawn pair which work like the well-known Fn/FnMut pair.

As pointed out in #1669 I'd prefer changing Spawn and LocalSpawn over adding more traits, given that I think no one actually needs the &mut self variants.


Failed to scan device on iOS 16

When we use an iOS 16 device, it doesn't seem to be able to find any.
In iOS 15.x everything is fine
Does it really solve the problem if we enable the entitlement:
"com.apple.developer.networking.multicast"
Thanks

same issue

Can anyone solve this?

Can anyone solve this?
You can ask apple to allow access to MultiCast Network

Thanks!

Can anyone solve this?
You can ask apple to allow access to MultiCast Network

Thanks!

Yes, this issue has been resolved by enabling Multicast Networking (com.apple.developer.networking.multicast).
Request Apple to enable this advanced capability in your developer account for a particular Apple identifier.
Provide proper justification on using this capability in your app.
URL to make a request is: https://developer.apple.com/contact/request/networking-multicast
Ones Apple approved and enabled it, enable this capability to your bundle identifier in your developer account.
After this, add com.apple.developer.networking.multicastv = YES in your entitlement file in your project.
After all this, your app discovers all the devices immediately.
Enjoy Coding! :)


Fixed missing support for category groups in Azure.KeyVault.Logs

PR Summary
Fixes #1873
Fixed missing support for category groups in Azure.KeyVault.Logs rule.
PR Checklist

[x] PR has a meaningful title
[x] Summarized changes
[x] Change is not breaking
[x] This PR is ready to merge and is not Work in Progress
Rule changes

[x] Unit tests created/ updated
[x] Rule documentation created/ updated
[x] Link to a filed issue
[x] Change log has been updated with change under unreleased section

Other code changes

[ ] Unit tests created/ updated
[ ] Link to a filed issue
[ ] Change log has been updated with change under unreleased section

@BernieWhite
Ready for review.
The name of the rule should probably have been Azure.KeyVault.AuditLogs and adding the alias with the old name, but I don't know if that something you want as its not really in target for the bug.

@BernieWhite
CLA fixed.


500 error on Azure

Hey Sahat, I'm getting a 500 error when I try to run this on Azure. I tried it three different ways, and they all errored.
First I deployed my local, modified, hackathon starter and I got a 500 error, so then I forked hackathon-starter and tried to deploy it via the Local Git Repository option on Azure (as per instructions), but again, I got a 500 error. It also said something like "could not find local git repository" on the Azure Dashboard. So then I tried to install it from my forked Github repo, and there were no issues with Azure, but I still got the 500 error.
Any ideas?

Figured it out. It was simply the MongoLab line on secret.js...


Could you please describe what this app is doing? Couldn't figure out from readme

Some visual examples or explanation would be nice. Thanks <3

For example, you are coding in one language and chat in another one. When you're switching from IDE app to chat app, the keyboard layout follows the window focus as you switch it before when that window was in focus.

Oh, so its for keyboard layout. Couldnt figure it out 🥲


remove logo

Browser metadata
Path:      /
Browser:   Chrome 99.0.4844.51 on Mac OS 10.15.7
Viewport:  1792 x 898 @2x
Language:  en-US
Cookies:   Enabled

Open in BrowserStack

Open Deploy Preview · Mark as Resolved

Leave comments here
Browser metadata
Path:      /
Browser:   Chrome 101.0.4951.54 on Mac OS 10.15.7
Viewport:  1792 x 1041 @2x
Language:  en-US
Cookies:   Enabled

Open in BrowserStack

Open Deploy Preview · Mark as Resolved


Lock down python package versions for live tests

@anpaz: Apologies, I forgot to disable automerge, and it accidentally merged in with a false negative. If it's alright, I'll open a new PR to re-enable QuTiP tests.


Need a substitute for Perl 5 die with newline for raising end-user errors?

In Perl 5, die’s message could be terminated with a newline to suppress diagnostic messages (line number at minimum, up to full backtrace if you ask for it—in this issue I’ll just call it “backtrace” for simplicity, whatever it is—it’s anything added by the language to the message given to die).
This suppression via newline is no longer possible in Perl 6 (and for very good reasons that I shouldn’t have to mention here).
It does leave an open question, though: in directly interactive executables, how should the programmer idiomatically handle end-user errors such as incorrect usage (apart from USAGE itself, of course)—things like attempting an operation the user doesn’t have access to, trying to run a graphical program in a non-graphical context, etc.?

Pros:
a. It’s easy
b. It’s familiar
c. It doesn’t need special-casing
Cons:
a. A backtrace from a program in a non-debugging context, especially inside error-checking code, is user-unfriendly because it’s ugly;
b. It’s also user-unfriendly because it buries the useful part of the message at the top of a lot of debugging cruft that is not useful to the end-user
c. For the programmer, it makes it somewhat more difficult to do a CATCH-all at the top level for production code that turns the language backtrace into something that can be communicated by nontechnical users to support, since user errors are not something that needs such special handling

Follow the method recommended in die’s docs: create a top-level CATCH-all which changes the top-level uncaught behavior so it doesn’t print the backtrace, and then use die.

Pros:
a. It’s simple
b. It’s consistent
Cons:
a. It requires boilerplate that may not be obvious to many programmers who won’t think to look at die’s documentation and will contrive a solution with exit instead.
b. For executables I’ll call “targeted at the semi-technical user”, it’s common practice to exit with nice-human messages for things that the program checks, but to “toss its cookies” with a backtrace if it hits an exception unaccounted for. Besides being most parsimonious for the programmer, this seems like very reasonable behavior for users who are likely to know the difference between most “my fault” problems and “bugs”—and a top-level CATCH-all makes this more difficult to be the default behavior.

Create an exception class (X::UserMessage?) that (along with its subclasses) restores the Perl 5 die-with-newline behavior; if it reaches the top level, only the message of the exception is printed, and not a backtrace.

Pros:
a. It’s consistent with most of the rest of exception handling and would easily extend to Failures as well;
b. It could promote the use of proper exceptions instead of ad-hoc stringy exceptions, which may be desirable for code like we’re talking about (notably, it makes i18n and l10n for messages that may be expected to be seen by non-technical users much easier, since it’s confined to one place).¹
c. Most CPAN code won’t have to worry about this class of exception at all, since it isn’t concerned with end-user exceptions
d. You can convert any non-X::UserMessage exceptions into one complete with instructions for reporting bugs with a simple CATCH at the top level that catches everything but X::UserMessage.
e. Following from the above, it makes the “semi-technical user” oriented behavior of nice messages for things you want to gently inform the user about, but “cookie tossing” for unexpected failures, the normal case without any special handling.
Cons:
a. It seems a little magical.
b. It doesn’t allow for a simple CATCH-all at the top level with no special-casing—but as mentioned in the last Pro point, it obviates the CATCH entirely in the most likely use case where one would do that.

Create a new word (maybe exitwith) to give some syntactic sugar to
 -> $msg { note ~$msg andthen exit 255 }

Pros:
a. It’s closest to Perl 5’s die-with-newline behavior
b. It’s simple
c. It’s easy
Cons:
a. It requires a new word
b. It promotes ad-hoc stringy error messages, making i18n/l10n of messages more difficult
c. It’s not as easily caught (and by spec, isn’t necessarily catchable at all?).
d. Since it’s not as easily caught, it will prevent finalizers in ways that a special exception class wouldn’t.

(Throwing this in for completeness:) Adopt the Perl 5 behavior of paying attention to a trailing newline. I mention it, but it seems (to me) patently ridiculous behavior for Perl 6. A not-so-crazy alternative, however, would be to add to die a backtrace-suppression boolean flag (with an accompanying boolean field in exceptions, I presume?) that would stop the backtrace if and only if the exception gets all the way to the top level uncaught.

¹ I don’t think the promotion of proper exceptions is anything to sneeze at; I suspect that for programmers who use stringy ad-hocs for convenience’s sake, they probably have a very large overlap with programmers who only `die` at all for things they actually check for. So making this class of thing easier with real exceptions than with strings would be a win for non-ad-hoc exceptions.

Personally, I like the X::UserMessage solution best, though I’m not the greatest at naming things—the concept, not the name. If others like it, I’m happy to draw up a proposed class spec and changes to the docs with example code to show what it would look like in action.

On #perl6-dev this was discussed just now at some length, and a couple things to note:

There’s an &*EXIT that can be reset as necessary—useful for cases where you aren’t running as a POSIX process in your own right. But it can’t affect the error output, which is the primary issue here.

exit itself is a multi defined on Int:D, so one way to skin this cat that could be done entirely through a CPAN module (which isn’t possible for something that would need to reach out into the top-level and install a CATCH) would be to have variants of exit on Str and Exception. Unless someone else has strong feelings about a different option I may try to hack that up and see how it feels.
It would mean that instead of doing die for user-oriented errors, you do

exit "This is not a graphical display, I can't draw anything!";
# or, equivalently,
exit X::UserError::NoGraphics.new();

and it would note before redispatching to exit 255. Perhaps a new global is needed so that you can influence where fatal messages go rather than using note explicitly?
But even as now stands, assuming these exit variants existed, then, for example, a single program that can run in a CLI or a GUI could deal with this by redirecting $*ERR (perhaps via a filehandle-like buffer) and changing &*EXIT so instead of writing to standard error and exiting, you got a fatal dialog box with the message.

I don't like exit since it breaks my LEAVE phasers.  (I'd love for that to change, btw.  Perhaps that should be a separate issue -- What is a good way to finish any open LEAVE phasers, then exit the process with a non-zero code?)
I've been making a CATCH in a proto MAIN (so it works for all my multi MAINs) that prints the way I want for users.

@CurtTilmes It’s hard to get the CATCH clause right, though—a small one (such as is documented in the die docs) doesn’t work right in some circumstances, and a general one is quite long and hairy. (It feels to me analogous to how hard it was in Perl 5 to write while (<>) { ... } from scratch if you wanted to tweak it slightly.)
With the X::User class hierarchy with different top-level handling, I’m advocating the implicit behavior to obviate an explicit CATCH in almost all cases.
I hear you with regards to exit, but I don’t see an alternative that can be done via a CPAN module, do you?


WIP: Full set of changes for moving Resolution into Pipeline

Changes
DO NOT MERGE. This is my branch of changes for #4710 on top of #5200, broken up into separate commits which will each become a separate PR. I just wanted to get this up as a WIP PR to verify everything passes CI, and give reviewers an opportunity to look at the full picture of what the end result will look like and/or take a glance at individual commits before they are sequentially turned into PRs.
/kind feature
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[ ] Has Docs included if any changes are user facing
[ ] Has Tests included if any functionality added or changed
[ ] Follows the commit message standard
[ ] Meets the Tekton contributor standards (including
functionality, content, code)
[ ] Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
[ ] Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings)
[ ] Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
NONE

/retest


Use favicon based on new (2021) logo

Manual Test

Start the rails server in a browser
Expected result: New Icon appears in the tab for localhost::3000. (This happened instantly for Chrome, Firefox. For Safari it took longer and several tries.)

Coverage remained the same at 92.893% when pulling 3e0156a612e73ca29180a931ceca66d42f89190e on 179710678-favicon-update into d63515eb0cb9fb75b6d96529c07bf6e23687f18f on master.

Finally ready for review (after repeated typo fixes).
Please see Question and comments at https://github.com/MushroomObserver/mushroom-observer/pull/819#discussion_r785533924

This looks just right, Joe.  I think it does have to be in *.ico format, for historical reasons no doubt.  The query is the standard technique for handling caches.  (Works for stylesheets and javascript files, too, but fortunately Rails handles that for us!)  And I see no reason removing the domain from the URL shouldn't work.
I just downloaded the new favicon.ico, and Gimp can't open it, complaining about a zero-width icon.  I'm a little concerned about that.  Wow, even ImageMagick doesn't know what to do with it.  ... Yes, and my Firefox cannot display it either.  Would you mind trying a different tool for converting the png to an ico?  Maybe imagemagick, for example?

This looks just right, Joe. I think it does have to be in *.ico format, for historical reasons no doubt. The query is the standard technique for handling caches. (Works for stylesheets and javascript files, too, but fortunately Rails handles that for us!) And I see no reason removing the domain from the URL shouldn't work.
I just downloaded the new favicon.ico, and Gimp can't open it, complaining about a zero-width icon. I'm a little concerned about that. Wow, even ImageMagick doesn't know what to do with it. ... Yes, and my Firefox cannot display it either. Would you mind trying a different tool for converting the png to an ico? Maybe imagemagick, for example?

Thanks Jason! I'll try a different conversion tool.
I greatly appreciate the feedback because it works fine in my Firefox (96.0.1 (64-bit) on macOS 12.1). Weird.
Hope the snowstorm hasn't/won't hit you.

Oh we did (are getting) hit!  It's gorgeous! :)  I had to de-ice the dish
to get internet back earlier, though...
On Sun, Jan 16, 2022 at 8:03 PM Joseph D. Cohen @.***>
wrote:

This looks just right, Joe. I think it does have to be in *.ico format,
for historical reasons no doubt. The query is the standard technique for
handling caches. (Works for stylesheets and javascript files, too, but
fortunately Rails handles that for us!) And I see no reason removing the
domain from the URL shouldn't work.
I just downloaded the new favicon.ico, and Gimp can't open it, complaining
about a zero-width icon. I'm a little concerned about that. Wow, even
ImageMagick doesn't know what to do with it. ... Yes, and my Firefox cannot
display it either. Would you mind trying a different tool for converting
the png to an ico? Maybe imagemagick, for example?
Thanks Jason! I'll try a different conversion tool.
I greatly appreciate the feedback because it works fine in my Firefox
(96.0.1 (64-bit) on macOS 12.1). Weird.
Hope the snowstorm hasn't/won't hit you.
—
Reply to this email directly, view it on GitHub
https://github.com/MushroomObserver/mushroom-observer/pull/819#issuecomment-1014020006,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAYTNNMASZEIWTFWZML6SA3UWNTGXANCNFSM5MDISZHA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because your review was requested.Message ID:
@.***>

Joe - I suggest one of the online favicon generators. They’re great. You actually “need” quite a bit more formats than you think.  It's gorgeous! :) I had to de-ice the dish
to get internet back earlier, though...
On Sun, Jan 16, 2022 at 8:03 PM Joseph D. Cohen @.***>
wrote:

This looks just right, Joe. I think it does have to be in *.ico format,
for historical reasons no doubt. The query is the standard technique for
handling caches. (Works for stylesheets and javascript files, too, but
fortunately Rails handles that for us!) And I see no reason removing the
domain from the URL shouldn't work.
I just downloaded the new favicon.ico, and Gimp can't open it, complaining
about a zero-width icon. I'm a little concerned about that. Wow, even
ImageMagick doesn't know what to do with it. ... Yes, and my Firefox cannot
display it either. Would you mind trying a different tool for converting
the png to an ico? Maybe imagemagick, for example?
Thanks Jason! I'll try a different conversion tool.
I greatly appreciate the feedback because it works fine in my Firefox
(96.0.1 (64-bit) on macOS 12.1). Weird.
Hope the snowstorm hasn't/won't hit you.
—
Reply to this email directly, view it on GitHub
https://github.com/MushroomObserver/mushroom-observer/pull/819#issuecomment-1014020006,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAYTNNMASZEIWTFWZML6SA3UWNTGXANCNFSM5MDISZHA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because your review was requested.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

TLDR: I think it's okay now.
Long story: I downloaded and installed Imagemagick and Gimp, got called to dinner, ate, did the dishes and pots. Then finally figured out that the favicon on GitHub was different -- or at least behaved differently from -- the one in my local repo.
Deleted it and pushed the change.
Used Imagemagick to convert the png to an ico. Added it to my local repo.
And finally pushed again.
Now the GitHub favicon is/behaves the same as my local version. So I think it's good to go.
(I will also have a look at the generators mentioned by @nimmolo. They will likely come in handy for future changes.)


[ARIE-1687]  Setup Database Schema Initialization for the Command Expansion Server

Tickets addressed: AERIE-1687
Review: By commit
Merge strategy: Merge (no squash)

Description
Add the SQL tables to Postgres under the aerie-commanding db and enable them to be visible to Hasura.
Waiting on 2 PRs

https://github.com/NASA-AMMOS/aerie/pull/49 - Merged
https://github.com/NASA-AMMOS/aerie/pull/51 - Merged

Verification

Nuke everything:
docker system prune --all --volumes
build and run
./gradlew clean; ./gradlew assemble ; docker compose -f docker-compose.yml build; docker compose -f docker-compose.yml up

I have tested this locally and the tables are created in Postgres and viewable in Hasura
Documentation
None that I can think of
Future work
Now the infrastructure is in place we can start hooking up all the business logic

Looks good to me

Verification

Nuke everything:
docker system prune --all --volumes
build and run
./gradlew clean; ./gradlew assemble; ./gradlew distributeSql ; docker compose -f docker-compose.yml build; docker compose -f docker-compose.yml up

The PR desc. was probably written when we had distributeSql issues, but you should be able to do this without the explicit distributeSql now. Just wanted to make sure you weren't still hitting SQL dist. issues.

Thanks @pcrosemurgy, I re-tested it and can confirm you don't need ./gradlew distributeSql anymore. I updated the PR.
Feel free to mark at approve so I can merge it in.