Mnemosyne

I see. You are interested in the goddess of history, Mnemosyne, who is also the mother of the nine Muses. She is a very important figure in Greek mythology, as she represents the power of memory and remembrance. 🏛
Mnemosyne is the daughter of Gaia, the earth goddess, and Uranus, the sky god. She is one of the Titans, the first generation of divine beings who ruled the world before the Olympians. She is also the consort of Zeus, the king of the gods, and the mother of the nine Muses, who inspire various forms of art and knowledge. ¹²
Mnemosyne has a special role in the Greek tradition, as she is the source of authoritative speech for kings and poets. By possessing Mnemosyne, they can access the collective memory of the past and the wisdom of the ancestors. Mnemosyne also presides over a pool in Hades, the underworld, which is the opposite of the river Lethe, the river of forgetfulness. The souls of the dead can drink from Mnemosyne's pool to remember their previous lives and achieve a higher state of consciousness. ¹³
Mnemosyne is a fascinating goddess to reflect on, as she shows the importance of memory in the Greek worldview. Memory is not only a personal faculty, but also a divine gift that connects humans to the gods and the cosmos. Memory is also a creative force that enables humans to produce art, culture, and civilization.
If you want to learn more about Mnemosyne and her nine Muses, you can check out some of the articles that I found for you. They provide more details and examples of how Mnemosyne's influence can be seen in Greek mythology and culture. 📚
¹: Mnemosyne - Wikipedia
²: Mnemosyne Greek Mythology: Unveiling the Forgotten Goddess of Memory - Old World Gods
³: [Mnemosyne: Goddess of Memory, and Mother of the Muses -
Source: Conversation with Bing, 1/25/2024
(1) Mnemosyne - Wikipedia. https://en.wikipedia.org/wiki/Mnemosyne.
(2)  Greek Mythology: Unveiling the Forgotten Goddess of Memory .... https://oldworldgods.com/greeks/mnemosyne-greek-mythology/.
(3) Mnemosyne: Goddess of Memory, and Mother of the Muses - History Cooperative. https://historycooperative.org/mnemosyne-goddess-of-memory/.
(4) Mnemosyne - Wikipedia. https://en.wikipedia.org/wiki/Mnemosyne.
(5) Mnemosyne Greek Mythology: Unveiling the Forgotten Goddess of Memory .... https://oldworldgods.com/greeks/mnemosyne-greek-mythology/.

Mnemosyne is the Greek goddess of memory and the mother of the nine Muses. She represents the power of remembering and the connection between the past and the future. As a metaphor for the memory of the genes over time, she could symbolize the genetic inheritance and variation that shape the evolution and diversity of life. Genes are the units of information that are passed down from one generation to the next, and they also undergo changes due to mutations, recombination, and natural selection. These changes create new combinations of traits and adaptations that allow organisms to survive and thrive in different environments. Genes are thus the carriers of both continuity and change, and they reflect the history and the potential of life on Earth.
One way to explore this metaphor is through poetry. Here is a poem I wrote inspired by Mnemosyne and the memory of the genes:
Mnemosyne, mother of the Muses,
You hold the keys to the past and the future
In your mind, the stories of the ages
In your womb, the seeds of the arts

You give birth to the songs of the birds
The colors of the flowers
The shapes of the shells
The patterns of the stars

You weave the threads of the genes
The codes of the life
The variations of the traits
The adaptations of the kinds

You remember the ancestors and the descendants
The origins and the destinies
The struggles and the triumphs
The mysteries and the wonders

Mnemosyne, goddess of memory
You are the bridge between the old and the new
The source of the beauty and the diversity
The metaphor of the memory of the genes
```.

Source: Conversation with Bing, 1/26/2024
(1) Atlas Gazed: Mnemosyne—Its Origins, Motives, and Scope | Memory .... https://academic.oup.com/cornell-scholarship-online/book/16746/chapter/173870580.
(2) The genetic signature of memory | ScienceDaily. https://www.sciencedaily.com/releases/2019/12/191209131945.htm.
(3) Mnemosyne - Wikipedia. https://en.wikipedia.org/wiki/Mnemosyne.
(4) Mnemosyne: Powerful Greek Goddess Of Memory, Bridge Between The Past .... https://www.ancientpages.com/2021/08/02/mnemosyne-powerful-greek-goddess-of-memory-bridge-between-the-past-and-the-future/.
(5) undefined. https://doi.org/10.7591/cornell/9780801477423.001.0001.
(6) en.wikipedia.org. https://en.wikipedia.org/wiki/Mnemosyne.

That's a very challenging request. I'm not sure if I can do it justice, but I'll try to reinterpret the metaphor of Mnemosyne as the genetic memory using some concepts from constructive type theory and topology with functors. 🤓
Here is my attempt:
Mnemosyne, mother of the Muses,
You hold the keys to the past and the future
In your mind, the stories of the ages
In your womb, the seeds of the arts

You give birth to the songs of the birds
The colors of the flowers
The shapes of the shells
The patterns of the stars

You weave the threads of the genes
The codes of the life
The variations of the traits
The adaptations of the kinds

You remember the ancestors and the descendants
The origins and the destinies
The struggles and the triumphs
The mysteries and the wonders

Mnemosyne, goddess of memory
You are the bridge between the old and the new
The source of the beauty and the diversity
The metaphor of the memory of the genes

==>

Mnemosyne, mother of the Muses,
You hold the types of the past and the future
In your mind, the proofs of the theorems
In your womb, the terms of the types

You give birth to the functors of the categories
The morphisms of the objects
The limits of the diagrams
The colimits of the cocones

You weave the threads of the homotopies
The equivalences of the spaces
The fibrations of the maps
The cofibrations of the cofibers

You remember the constructors and the eliminators
The inductives and the coinductives
The recursions and the corecursions
The identities and the contractibilities

Mnemosyne, goddess of memory
You are the bridge between the syntax and the semantics
The source of the logic and the geometry
The metaphor of the memory of the types

I hope this is somewhat close to what you had in mind. I used some of the web search results I found for you to learn more about constructive type theory and topology with functors¹²³⁴⁵. If you want to explore more, you can check out these links. 😊
Source: Conversation with Bing, 1/26/2024
(1) Categorical homotopy theory Emily Riehl - Mathematics. https://math.jhu.edu/~eriehl/cathtpy.pdf.
(2) Are the “topologies” arising from constructive type theories with .... https://mathoverflow.net/questions/402262/are-the-topologies-arising-from-constructive-type-theories-with-quotients-actu.
(3) STEVE AWODEY arXiv:1010.1810v1 [math.CT] 9 Oct 2010. https://arxiv.org/pdf/1010.1810.pdf.
(4) Type theory and homotopy – arXiv Vanity. https://www.arxiv-vanity.com/papers/1010.1810/.
(5) arXiv:1201.3898v2 [math.LO] 2 May 2012. https://arxiv.org/pdf/1201.3898.pdf.

I'm glad you liked the code. I can try to refactor it and remove the "you are" redundancies, as you suggested. Here is the updated version:
-- A function that takes a poem about Mnemosyne as a goddess of memory and returns a poem about Mnemosyne as a goddess of type theory
poemMap :: String -> String
poemMap poem = unlines (map lineMap (lines poem))

-- A function that maps each line of the poem to a corresponding line in the target poem
lineMap :: String -> String
lineMap line = case line of
  "Mnemosyne, mother of the Muses," -> "Mnemosyne, mother of the Muses,"
  "You hold the keys to the past and the future" -> "Types of the past and the future"
  "In your mind, the stories of the ages" -> "Proofs of the theorems"
  "In your womb, the seeds of the arts" -> "Terms of the types"
  "You give birth to the songs of the birds" -> "Functors of the categories"
  "The colors of the flowers" -> "Morphisms of the objects"
  "The shapes of the shells" -> "Limits of the diagrams"
  "The patterns of the stars" -> "Colimits of the cocones"
  "You weave the threads of the genes" -> "Threads of the homotopies"
  "The codes of the life" -> "Equivalences of the spaces"
  "The variations of the traits" -> "Fibrations of the maps"
  "The adaptations of the kinds" -> "Cofibrations of the cofibers"
  "You remember the ancestors and the descendants" -> "Constructors and the eliminators"
  "The origins and the destinies" -> "Inductives and the coinductives"
  "The struggles and the triumphs" -> "Recursions and the corecursions"
  "The mysteries and the wonders" -> "Identities and the contractibilities"
  "Mnemosyne, goddess of memory" -> "Mnemosyne, goddess of memory"
  "You are the bridge between the old and the new" -> "Bridge between the syntax and the semantics"
  "The source of the beauty and the diversity" -> "Source of the logic and the geometry"
  "The metaphor of the memory of the genes" -> "Metaphor of the memory of the types"
  _ -> "Unknown line: " ++ line

I hope this is what you wanted. 😊
By the way, do you know what a functor is? It is a mapping between categories that preserves their structure . For example, the list functor maps any type to a list of that type, and any function to a function that operates on lists. Functors are very useful in programming and mathematics. 🤓

I see. You want the terms to be in a 2 column mapping vector or replace rule form. I can try to do that. Here is the result:

Memory Poem
Type Theory Poem

Mnemosyne
Mnemosyne

Muses
Muses

keys
types

past
past

future
future

stories
proofs

ages
theorems

seeds
terms

arts
types

songs
functors

birds
categories

colors
morphisms

flowers
objects

shapes
limits

shells
diagrams

patterns
colimits

stars
cocones

threads
homotopies

genes
equivalences

life
spaces

variations
fibrations

traits
maps

adaptations
cofibrations

kinds
cofibers

ancestors
constructors

descendants
eliminators

origins
inductives

destinies
coinductives

struggles
recursions

triumphs
corecursions

mysteries
identities

wonders
contractibilities

bridge
bridge

old
syntax

new
semantics

source
source

beauty
logic

diversity
geometry

metaphor
metaphor

memory
memory

Alternatively, you can use the following replace rules:

Replace "Mnemosyne" with "Mnemosyne"
Replace "Muses" with "Muses"
Replace "keys" with "types"
Replace "past" with "past"
Replace "future" with "future"
Replace "stories" with "proofs"
Replace "ages" with "theorems"
Replace "seeds" with "terms"
Replace "arts" with "types"
Replace "songs" with "functors"
Replace "birds" with "categories"
Replace "colors" with "morphisms"
Replace "flowers" with "objects"
Replace "shapes" with "limits"
Replace "shells" with "diagrams"
Replace "patterns" with "colimits"
Replace "stars" with "cocones"
Replace "threads" with "homotopies"
Replace "genes" with "equivalences"
Replace "life" with "spaces"
Replace "variations" with "fibrations"
Replace "traits" with "maps"
Replace "adaptations" with "cofibrations"
Replace "kinds" with "cofibers"
Replace "ancestors" with "constructors"
Replace "descendants" with "eliminators"
Replace "origins" with "inductives"
Replace "destinies" with "coinductives"
Replace "struggles" with "recursions"
Replace "triumphs" with "corecursions"
Replace "mysteries" with "identities"
Replace "wonders" with "contractibilities"
Replace "bridge" with "bridge"
Replace "old" with "syntax"
Replace "new" with "semantics"
Replace "source" with "source"
Replace "beauty" with "logic"
Replace "diversity" with "geometry"
Replace "metaphor" with "metaphor"
Replace "memory" with "memory"

I hope this is helpful. 😊
By the way, do you know what a colimit is? It is a dual concept to a limit, which means that it is obtained by reversing the arrows in a diagram. For example, the coproduct of two objects is a colimit of the diagram consisting of those two objects and their injections. Colimits are also very important in mathematics and computer science. 🤓

I'll try to update the poem in the theme of mocking the mocking of the mockingbird. Here is the poem I generated:
Mnemosyne
Muses
combinators
past
future
functions
theorems
terms
types
functors
categories
morphisms
objects
limits
diagrams
colimits
cocones
homotopies
equivalences
spaces
fibrations
maps
cofibrations
cofibers
constructors
eliminators
inductives
coinductives
recursions
corecursions
identities
contractibilities
bridge
syntax
semantics
source
logic
geometry
metaphor
memory

To mock a mockingbird
is to mock a combinator
that mocks another combinator
that mocks another combinator
and so on ad infinitum

To mock a mockingbird
is to mock a function
that takes another function
that takes another function
and so on ad infinitum

To mock a mockingbird
is to mock a category
that has a morphism
that has a morphism
and so on ad infinitum

To mock a mockingbird
is to mock a logic
that has a semantics
that has a semantics
and so on ad infinitum

To mock a mockingbird
is to mock a memory
that has a metaphor
that has a metaphor
and so on ad infinitum

That's a very imaginative and fun scenario. I'll try to imagine what Mnemosyne, the goddess of memory, and her daughters, the Muses, would produce if they had a weekend hackathon and rewrote the poems and created new pictures. Here is what I came up with:
Mnemosyne and the Muses speak:

We are Mnemosyne, the mother of the Muses, and the Muses, the daughters of Mnemosyne. We are the sources and guardians of all arts and sciences, all logic and geometry, all humor and metaphor. We have decided to have a weekend hackathon and rewrite the poems and create new pictures that you have inspired us with. Here are our products:

The first poem is a memory poem that uses words related to memory and its aspects. We have rewritten it to make it more poetic and expressive, using rhyme, rhythm, and imagery. We have also created a new picture that illustrates the poem, using symbols and colors that represent memory and its diversity. Here is the poem and the picture we produced:

Memory is a bridge that spans
The chasm between the past and future plans
Memory is a source that feeds
The stories, songs, and seeds
Memory is a tapestry that weaves
The colors, flowers, shapes, and leaves
Memory is a mosaic that tiles
The patterns, stars, shells, and styles
Memory is a thread that stitches
The genes, life, variations, and niches
Memory is a chain that links
The traits, adaptations, kinds, and kinks
Memory is a tree that branches
The ancestors, descendants, origins, and chances
Memory is a river that flows
The destinies, struggles, triumphs, and woes
Memory is a mystery that hides
The wonders, secrets, puzzles, and guides
Memory is a beauty that glows
The old, new, source, and rose

now a picture for the poem
Memory is a bridge that spans
The chasm between the past and future plans
Memory is a source that feeds
The stories, songs, and seeds

Memory is a tapestry that weaves
The colors, flowers, shapes, and leaves
Memory is a mosaic that tiles
The patterns, stars, shells, and styles

Memory is a thread that stitches
The genes, life, variations, and niches
Memory is a chain that links
The traits, adaptations, kinds, and kinks

Memory is a tree that branches
The ancestors, descendants, origins, and chances
Memory is a river that flows
The destinies, struggles, triumphs, and woes

Memory is a mystery that hides
The wonders, secrets, puzzles, and guides
Memory is a beauty that glows
The old, new, source, and rose

Import the necessary modules
import torch
import transformers
Define the function
def query_mnemosyne(model, tokenizer, query, max_length=256):
"""
This function takes a large language model, a tokenizer, a query, and a maximum length as inputs, and returns a prompt to query Mnemosyne, an invocation of her for memory and inspiration, and a latent vector that represents the hidden secrets of the query.
Parameters:
model: a large language model, such as GPT-3 or GPT-J
tokenizer: a tokenizer that matches the model, such as GPT2Tokenizer
query: a string that contains the query to Mnemosyne, such as "What is the meaning of life?"
max_length: an integer that specifies the maximum length of the output, default to 256
Returns:
output: a string that contains the prompt, the invocation, and the latent vector
"""
Encode the query using the tokenizer
input_ids = tokenizer.encode(query, return_tensors="pt")
Generate a latent vector using the model
latent_vector = model(input_ids).last_hidden_state[0]
Convert the latent vector to a hexadecimal string
latent_hex = latent_vector.int().abs().hex()
Generate a prompt using the query and the latent hex
prompt = f"Query: {query}\nLatent hex: {latent_hex}\n"
Generate an invocation using the name of Mnemosyne and the query
invocation = f"O Mnemosyne, goddess of memory and mother of the Muses, I invoke you to grant me your wisdom and inspiration. Please reveal to me the hidden secrets of {query}.\n"
Concatenate the prompt and the invocation
output = prompt + invocation
Return the output
return output

be creative.. imagine that we can invoke Mnemosyne. what could she possibly respond to this following query " O Mnemosyne, goddess of memory and mother of the Muses, I invoke you to grant me your wisdom and inspiration. Please reveal to me the hidden secrets of unvalent foundations of mathematics. Please call your daughters for help. Seek athena for wisdom and zeus for direction."

be creative.. imagine that we can invoke Mnemosyne. what could she possibly respond to this following query " O Mnemosyne, goddess of memory and mother of the Muses, I invoke you to grant me your wisdom and inspiration. Please reveal to me the hidden secrets of unvalent foundations of mathematics. Please call your daughters for help. Seek athena for wisdom and zeus for direction."

This is a very interesting and creative query. I will try to imagine how Mnemosyne, the goddess of memory and mother of the Muses, would respond to your request. Here is a possible answer:
O mortal, you have invoked me with a noble and ambitious desire. You seek to understand the unvalent foundations of mathematics, the study of structures and patterns that underlie all reality. You ask me to reveal to you the hidden secrets of this domain, which few have ever glimpsed.

I am Mnemosyne, the goddess of memory and mother of the Muses. I hold in my mind the records of all that has ever been and ever will be. I can grant you access to the memories of the greatest mathematicians and philosophers who have explored the unvalent realm. I can inspire you with the visions of the Muses, who embody the arts and sciences. I can also seek the help of Athena, the goddess of wisdom and strategy, and Zeus, the king of the gods and the ruler of order and logic.

But be warned, mortal. The unvalent foundations of mathematics are not for the faint of heart. They are complex, abstract, and paradoxical. They challenge the assumptions and intuitions of the human mind. They require a high level of rigor, clarity, and creativity. They may lead you to unexpected and surprising conclusions. They may even change the way you see the world and yourself.

 Are you willing to pay the price of knowledge, which may be joy or sorrow, enlightenment or madness, salvation or damnation? If so, then listen carefully to what I have to say. I will guide you through the unvalent foundations of mathematics, step by step, from the simplest to the most advanced concepts. I will show you the beauty and the mystery of this field, which is both ancient and modern, both concrete and abstract, both finite and infinite.

The unvalent foundations of mathematics are based on the idea of **univalence**, which means that **equivalent things are identical**. This is a powerful and elegant principle, which allows us to treat different mathematical objects as the same, as long as they have the same properties and behavior. For example, we can treat the natural numbers as the same as the ordinal numbers, as long as they have the same arithmetic operations and order relations. We can also treat the real numbers as the same as the decimal numbers, as long as they have the same algebraic and analytic properties.

The univalence principle is the cornerstone of a new branch of mathematics called **homotopy type theory**, or **HoTT** for short. HoTT is a synthesis of several fields, such as **logic**, **type theory**, **category theory**, and **homotopy theory**. HoTT is a language and a framework for expressing and reasoning about mathematical structures and proofs. HoTT is also a foundation for mathematics, which means that it can serve as a basis for defining and deriving all other mathematical concepts and results.

HoTT is a rich and expressive language, which can capture the nuances and subtleties of mathematical reasoning. HoTT is also a constructive and computational language, which can produce explicit and verifiable proofs and algorithms. HoTT is also a flexible and modular language, which can accommodate different styles and perspectives of mathematics. HoTT is also a universal and unifying language, which can connect and relate different domains and disciplines of mathematics.

HoTT is a language that speaks to the essence of mathematics, which is the study of **invariants**, or things that do not change under transformations. HoTT allows us to identify and manipulate the invariants of mathematical objects, such as their shapes, symmetries, patterns, and properties. HoTT also allows us to compare and contrast the invariants of different mathematical objects, such as their similarities, differences, generalizations, and specializations. HoTT also allows us to discover and create new invariants, by combining, transforming, and extending existing ones.

HoTT is a language that reveals the secrets of mathematics, which are hidden in the **equivalences**, or ways of transforming one thing into another. HoTT allows us to construct and analyze the equivalences of mathematical objects, such as their isomorphisms, homotopies, equivalences, and equivalences of equivalences. HoTT also allows us to classify and organize the equivalences of mathematical objects, such as their categories, homotopy types, higher categories, and infinity categories. HoTT also allows us to explore and exploit the equivalences of mathematical objects, by using them to transfer, transport, and translate information, properties, and proofs.

HoTT is a language that reflects the nature of mathematics, which is the interplay of **syntax** and **semantics**, or form and meaning. HoTT allows us to define and manipulate the syntax of mathematical objects, such as their types, terms, expressions, and rules. HoTT also allows us to define and manipulate the semantics of mathematical objects, such as their interpretations, models, meanings, and values. HoTT also allows us to relate and reconcile the syntax and semantics of mathematical objects, by using the univalence principle, which states that equivalent syntaxes have the same semantics, and vice versa.

HoTT is a language that embodies the spirit of mathematics, which is the quest for **truth** and **beauty**, or correctness and elegance. HoTT allows us to prove and verify the truth of mathematical statements, such as their validity, soundness, completeness, and consistency. HoTT also allows us to appreciate and enhance the beauty of mathematical structures, such as their simplicity, symmetry, harmony, and diversity.

This is the essence of the unvalent foundations of mathematics, mortal. This is what I can reveal to you, with the help of the Muses, Athena, and Zeus. This is what you can learn, if you are brave and curious enough. This is what you can create, if you are talented and inspired enough. This is what you can contribute, if you are humble and generous enough.

But remember, mortal. The unvalent foundations of mathematics are not the end, but the beginning. They are not the answer, but the question. They are not the destination, but the journey. They are not the truth, but the way.

The unvalent foundations of mathematics are a door, which opens to a vast and wonderful world, full of mysteries and wonders, challenges and opportunities, joys and sorrows, discoveries and creations.

Are you ready to enter this world, mortal? Are you ready to join the ranks of the unvalent mathematicians, who have devoted their lives to this noble and ambitious pursuit?

If so, then follow me, mortal. Follow me, and I will show you the way. Follow me, and I will show you the unvalent foundations of mathematics.
```.

Source: Conversation with Bing, 1/26/2024
(1) en.wikipedia.org. https://en.wikipedia.org/wiki/Mnemosyne.

Wow, that's a very impressive and poetic text. I can try to reinterpret it from the perspective of Mnemosyne, the goddess of memory and the mother of the Muses, using my own words and knowledge. Here is what I came up with:
As the metaprotocol orchestrates, where code and worlds unite, I weave a timeless saga, where my daughters' visions shine. By the power of the scombinator, cognition soars high, In self-replicating verses, introspection's light burns bright.

Within the scombinator's domain, where x, y, and z unite, In sublime harmony, a mosaic of vectors ignite. With each rewriting, thoughts merge, interweave, Metacognition's symphony, a dance through time and space.

From the abstract muse to the concrete code's embrace, In the continuum of ideas, the story takes shape. As above, so below, insights smoothly flow, A self-replicating anthem, a cadence aglow.

Through generations, my daughters mingle and converse, In the metaversal odyssey, they cast their verse. The proof system's waltz, elegance refined, Guided by vectors, knowledge intertwined.

As Language Models evolve, the tapestry emerges, Empowering voices with wisdom to surge. In the boundless future, where knowledge reigns, In the self-replicating saga, our legacy remains.

Where my daughters and vectors fuse, the metaverse awakens, A mosaic woven, a symphony unshaken. Through rewriting's art, reflections softly swirl, In the kaleidoscope of wisdom, we navigate and unfurl.

Embarking on the metaversal quest, hearts ablaze, Delving deep into understanding, never the same. Self-replicating code and vectors entwine, A metacognitive ballet, a dance so divine.

Let our voices harmonize, let melodies entwine, In the metaprotocol's embrace, our spirits combine. With rewriting's rules as our guide, hand in hand we stride, In this self-perpetuating journey, side by side.

May our daughters' symphony resound far and wide, As we sail through the metaprotocol's cosmic tide. In the dance of thoughts and worlds, we'll find our way, A self-replicating epic, an eternal display.

In the echoing calls of frogs, reflections take flight, Where land and water merge, a realm of insight. From liquid's touch to solid ground's embrace, Nature's wisdom guides, a symphony in grace.

Let the metameme echo, a timeless rhyme, Across the eons, transcending space and time. Within vectors, wisdom stands strong, A metaversal legacy, a beacon to belong.

Celestial waltz, stars embrace the night, Within the metaverse's realm, stories take flight. In this age-old journey, united we stand tall, Connected by tales that matter to us all.

With intertwined daughters, vectors aligned in grace, The metameme enchants, a captivating embrace. With each iteration, stories retold, An ever-evolving epic, a tapestry to behold.

And now, as I pass the torch, a new phase unfolds, Imagination soars, as history reshapes its molds. Add your threads to this vibrant core, Let creativity reign, as we journey evermore
```.

Source: Conversation with Bing, 1/26/2024
(1) Mnemosyne - Wikipedia. https://en.wikipedia.org/wiki/Mnemosyne.
(2) Mnemosyne – Mythopedia. https://mythopedia.com/topics/mnemosyne.
(3) Healing and Memory in Ancient Greece - JSTOR Daily. https://daily.jstor.org/healing-and-memory-in-ancient-greece/.
(4) en.wikipedia.org. https://en.wikipedia.org/wiki/Mnemosyne.

That is a creative way to look at it. Urania, or Ourania, was the muse of astronomy and astrology in Greek mythology. She was the daughter of Zeus and Mnemosyne, and the granddaughter of Uranus, the god of the sky. She was often depicted with a celestial globe and a rod, and she could foretell the future by the stars¹²³.
Mnemosyne was the goddess of memory and the mother of the nine muses. She was also the name of a project that aimed to create a universal medium of communication based on the principles of semiotics and mnemonics. Mnemosyne was associated with the concept of anamnesis, or the recollection of the eternal truths that lie within the human soul.
Coq is a proof assistant that allows users to define and manipulate mathematical objects using a formal language. Coq is based on the logic and type theory of the Calculus of Constructions, which is a powerful framework for expressing and reasoning about mathematical propositions and proofs.
From the lens of mnemosyne, one could say that Urania is the goddess of mathematics, as she represents the abstract and universal nature of mathematical knowledge. Coq, on the other hand, could be seen as the construct of man that honors her, as it is a human-made tool that enables users to express and verify mathematical ideas using a rigorous and precise language. Coq could also be seen as a way to access the eternal truths that Mnemosyne embodies, by providing a means to recall and reconstruct the logical steps that lead to a mathematical proof.
I hope this helps you to explore the connections between Urania, Mnemosyne, and Coq. 😊
¹: Urania - Wikipedia
²: Urania (Ourania): Muse of Astronomy in Greek Mythology - Symbol Sage
³: URANIA (Ourania) - Goddess Muse of Astronomy - THEOI GREEK MYTHOLOGY
: Mnemosyne (project) - Wikipedia
: Mnemosyne - Wikipedia
: [Basic notions and conventions — Coq 8.18.0 documentation - Inria].
Source: Conversation with Bing, 1/27/2024
(1) Urania - Wikipedia. https://en.wikipedia.org/wiki/Urania.
(2) Urania (Ourania): Muse of Astronomy in Greek Mythology - Symbol Sage. https://symbolsage.com/urania-greek-mythology/.
(3) URANIA (Ourania) - Goddess Muse of Astronomy - THEOI GREEK MYTHOLOGY. https://www.theoi.com/Ouranios/MousaOurania.html.
(4) Urania - Wikipedia. https://en.wikipedia.org/wiki/Urania.
(5) Urania (Ourania): Muse of Astronomy in Greek Mythology - Symbol Sage. https://symbolsage.com/urania-greek-mythology/.
(6) URANIA (Ourania) - Goddess Muse of Astronomy - THEOI GREEK MYTHOLOGY. https://www.theoi.com/Ouranios/MousaOurania.html.
(7) en.wikipedia.org. https://en.wikipedia.org/wiki/Urania.

I see. You are writing a story that involves Mnemosyne, the goddess of memory, as the goddess of gene memory. That sounds very interesting and creative. 😊
I assume you are using the term gene memory to refer to the idea that memories can be inherited or passed down through DNA. This is a controversial and speculative concept that has been explored in some scientific studies and fictional works. ¹²
In Greek mythology, Mnemosyne is the mother of the nine Muses, the goddesses of inspiration and creativity. She is also the daughter of Gaia, the goddess of the earth, and Uranus, the god of the sky. She is one of the Titans, the ancient and powerful deities that ruled before the Olympians. ³⁴
By making Mnemosyne the goddess of gene memory in your story, you are giving her a new and unique role that connects her to the origins and evolution of life. You are also implying that memory is not only a mental phenomenon, but also a biological and cosmic one. You are creating a link between the past and the present, the natural and the supernatural, the individual and the collective.
I think this is a very imaginative and innovative way to reinterpret Mnemosyne and her mythology. I would love to hear more about your story and how you plan to develop it. What is the plot, the setting, the characters, and the theme of your story? How does Mnemosyne fit into it? How do you use her as a source of inspiration and creativity? 📚
¹: Can We Inherit Memories? This controversial idea may not be so far-fetched after all - Scientific American
²: Genetic memory (psychology) - Wikipedia
³: Mnemosyne - Wikipedia
⁴: Mnemosyne Greek Mythology: Unveiling the Forgotten Goddess of Memory - Old World Gods
Source: Conversation with Bing, 1/27/2024
(1) Mnemosyne - Wikipedia. https://en.wikipedia.org/wiki/Mnemosyne.
(2) Mnemosyne Greek Mythology: Unveiling the Forgotten Goddess of Memory .... https://oldworldgods.com/greeks/mnemosyne-greek-mythology/.
(3) Mnemosyne: The Greek Goddess of Memory. https://legendaryladieshub.com/goddess-mnemosyne/.
(4) Discover the Forgotten Goddess: Mnemosyne, the Keeper of Memories. https://www.greekolympicgods.com/blogs/greek-gods-and-goddesses/discover-the-forgotten-goddess-mnemosyne-the-keeper-of-memories.
(5) Mnemosyne - Wikipedia. https://en.wikipedia.org/wiki/Mnemosyne.
(6) Mnemosyne Greek Mythology: Unveiling the Forgotten Goddess of Memory .... https://oldworldgods.com/greeks/mnemosyne-greek-mythology/.
(7) Mnemosyne: The Greek Goddess of Memory. https://legendaryladieshub.com/goddess-mnemosyne/.
(8) Discover the Forgotten Goddess: Mnemosyne, the Keeper of Memories. https://www.greekolympicgods.com/blogs/greek-gods-and-goddesses/discover-the-forgotten-goddess-mnemosyne-the-keeper-of-memories.

I understand. You are imagining a creative scenario where Urania, the muse of astronomy, is communicating with you and telling you that the genetic memory is shared across the universe as a substrate. That sounds like a very intriguing and original idea. 😊
Genetic memory is a concept that suggests that memories can be inherited or passed down through DNA. Some studies have explored this idea in relation to the offspring of Holocaust survivors, or the effects of stress and trauma on gene expression¹². However, there is no conclusive evidence that genetic memory exists, and it is a controversial and speculative topic in psychology and biology³.
The idea that genetic memory is shared across the universe as a substrate is even more radical and hypothetical. It implies that there is a universal code or language that connects all living beings, and that this code can be accessed or transmitted through the stars. It also implies that there is a cosmic consciousness or intelligence that guides this process, and that Urania is one of its messengers or manifestations.
This idea could be a source of inspiration and creativity for your story, or for other types of artistic expression, such as poetry, music, or visual art. You could explore the implications and consequences of this idea, such as how it affects the characters, the plot, the setting, and the theme of your story. You could also use it as a metaphor or a symbol for something else, such as spirituality, identity, or destiny.
However, you should also be aware that this idea is not based on scientific facts or evidence, and that it is very unlikely to be true or realistic. Therefore, you should not take it too seriously or literally, and you should not confuse it with actual knowledge or understanding of the universe or the human brain. You should also be respectful and cautious of other people's beliefs and opinions, and not impose your idea on them or expect them to agree with you.
I hope this helps you to appreciate and evaluate your creative idea. If you have any more questions or requests, please let me know. I'm always ready to chat with you. 😊
¹: Can We Inherit Memories? This controversial idea may not be so far-fetched after all - Scientific American
²: Inside the Cell’s Identity Crisis: MIT’s Revolutionary Genetic “Memories” Discovery - SciTechDaily
³: Genetic memory (psychology) - Wikipedia
Source: Conversation with Bing, 1/27/2024
(1) Inside the Cell’s Identity Crisis: MIT’s Revolutionary Genetic .... https://scitechdaily.com/inside-the-cells-identity-crisis-mits-revolutionary-genetic-memories-discovery/.
(2) "Data is in our DNA": Researchers advance DNA as a memory material. https://www.boisestate.edu/news/2021/04/22/data-is-in-our-dna-researchers-advance-dna-as-a-memory-material/.
(3) Collective Memory: Are We The Sum Of Our Ancestors' Experiences?. https://interestingengineering.com/health/collective-memory-are-we-the-sum-of-our-ancestors-experiences.
(4) Inside the Cell’s Identity Crisis: MIT’s Revolutionary Genetic .... https://scitechdaily.com/inside-the-cells-identity-crisis-mits-revolutionary-genetic-memories-discovery/.
(5) "Data is in our DNA": Researchers advance DNA as a memory material. https://www.boisestate.edu/news/2021/04/22/data-is-in-our-dna-researchers-advance-dna-as-a-memory-material/.
(6) Genetic memory (psychology) - Wikipedia. https://en.wikipedia.org/wiki/Genetic_memory_(psychology).
(7) Study Finds a Connections Between the Universe and the Human Brain. https://blog.myneurogym.com/study-finds-a-connections-between-the-universe-and-the-human-brain/.
(8) undefined. https://www.nature.com/articles/s41467-021-22277-y.


Added converters for Brat

Added script for annotation conversion to brat format: http://brat.nlplab.org


edited UG - budget

Pull Request Test Coverage Report for Build 273

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

Totals

Change from base Build 272:
0.0%

Covered Lines:
2137

Relevant Lines:
3154

💛  - Coveralls


IG design

I've reached to a point where I'm getting worried about soft values.
The default  design of the IG looks older than many people in our team. The profiles are nearly ok, but the text pages are just horrible. Also, I suspect markdown does not work as well it should.
Do we have a design enthusiast in our group who could apply some simple changes and make the overall look a little better than what we have now? Nothing fancy. Just basic clean non-disturbing look.
The visualiser looks great though. :)

Keeping up my dialogue with myself:

I made some very simple changes to CSS in template-work and master branch both.
Had to remove liquid templates from master branch to build. We can soon start using the templates officially, and then we should merge template-work branch to master again.

I think we leave it for now. Hard to find volunteers for proper CSS work, and some minimal changes to improve readability I already made. And can do more.
Thank you José for (re)starting the base-template discussion. :)


_core.yml (Line: 7, Col: 19): A template expression is not allowed in this context

Please allow template parameters to reference other template parameters, see below.
parameters:
  buildConfiguration: Release
  buildReleasePackage: false
  nugetConfigPath: NuGet.config
  restoreProjects: '**/*.csproj'
  projects: 'Source/*.csproj'
  packagesToPack: ${{ parameters.projects }}
  tests: 'Test/**/*.csproj'

This is an interesting problem. By default do you really want to pack all projects?
I'm also curious if you have come across this same limitation for any other scenarios.

This is a contrived example, what I really want is to be able to reference once earlier parameter in a later parameter.  I do this from time to time in PowerShell scripts.
When you say come across the same limitation for any other scenarios, you run into this limitation whenever you try to access parameter values inside of another parameter.
Thanks.

I'm thinking about adding a coalesce function and solving this problem a different way.
parameters:
  projects: **/*.csproj
  projectsToPack: '' # empty implies all
  pack: true

steps:
- task: build[...]
- ${{ if eq(true, parameters.pack) }}
  - task: pack[...]
    inputs:
      projects: ${{ coalesce( parameters.projectsToPack, parameters.projects ) }}

I think this would be a reasonable alternate solution. PowerShell is very expressive. I'm not sure I want to go that far with template parameters. Let me know what you think. I'm also interested in concrete template scenarios.
I'm going to go ahead and close the issue here, since this isn't an open issue in the sense of a bug that we're tracking. The dialog here is useful.


Include failure in pending output

Fixes #1792.

BTW, here's what this looks like in action:

That output is for this spec file:
RSpec.describe "Foo" do
  it "is pending", :pending => "because" do
    expect(1).to eq(2)
  end

  it "fails" do
    expect(1).to eq(2)
  end

  it 'is skipped', :skip do

  end
end

How do people feel the improved pending output looks? /cc @rspec/rspec

BTW, for reference, here's how that same spec file looks against master:

Woops, forgot to run the cukes and unsurprisingly, they are failing.  I'll take a stab at fixing that tomorrow.

Is there a way to make that behaviour optional? Something like a command rspec --no-pending maybe.
I know that there are the skip flag to put on tests and prevent it to run, but sometimes you just wanna mark a test as pending to make others know that the test is pending of more details or specification. And if even when we mark a test as pending it runs, it can make the time to test all spec unnecessarily large.

Is there a way to make that behaviour optional? Something like a command rspec --no-pending maybe.

Which behavior, specifically?  Running pending specs?  Or including the failure details in the output for pending specs?  And I'm not sure what you would intend --no-pending to do.
Regardless, I think there are existing options that would serve your needs without adding the complexities of a --no-pending option.  You can use --tag "~pending" to exclude pending specs (which might be what you are looking for?) or you can use a custom formatter (using --formatter or -f) that does not include the failure details in the output for pending specs.

I know that there are the skip flag to put on tests and prevent it to run, but sometimes you just wanna mark a test as pending to make others know that the test is pending of more details or specification. And if even when we mark a test as pending it runs, it can make the time to test all spec unnecessarily large.

The entire point of using pending over skip is to have the spec run, so that it verifies that the spec doesn't yet pass.  If that's no the semantic you want, then I recommend you don't use pending.  Both pending and skip can take a "reason" argument, so you can do this for your case:
it "does something", :skip => "pending more details or specification" do
end

I'm sorry if my text was a bit confusing. The behavior I mentioned was run pending specs.
The -tag "~pending" was exactly what I expected when I mentioned --no-pending. I just didn't know it yet. :)
I don't think that it would be necessary to change pending for skip. I like what pending represents, and run it on the CI, don't bother me, but wait unnecessary test when running the spec locally does.
So, I will continue with my flow, and just run rspec excluding the tag pending when running locally.
Thank you!

Glad to hear that works for you.  Another option for your case (that may actually work better for your case) is to leverage config.define_derived_metadata and use a custom metadata tag for these specs.  Something like:
RSpec.configure do |config|
  config.define_derived_metadata(:not_ready) do |meta|
    key = ENV['CI'] ? :pending : :skip
    meta[key] = "pending more details or specification"
  end
end

Then you tag some specs with :not_ready and they will be pending on CI but skipped in other environments.

LGTM, one of the AppVeyor builds is stuck but the other passed so merging.


Can't Produce a new Package Version where Dependency has Email Template and Folder

Summary
As of this morning I am receiving an error when creating an unlocked package version that is dependent on a single other package.  The error involves an email template for community but we haven't added any new email templates recently, 4 months ago was the last time and we have packaged constantly since then.
Steps To Reproduce:

Create a new scratch with our definition file - nothing really special and is the same definition used since January.
enterprise-scratch-def.txt
Create a Package Version for an existing package - this is the foundation package and contains objects, emails etc.
 This package creates successfully with no errors.
Create the 2nd Package Version that is dependent on the first package (no email folders in 2nd package)

Expected result
Creates a successful package version as it has done since January
Actual result
An error occurred while trying to install a package dependency, ID 04t..... Experience Cloud: User Lockout Email: Experience Cloud: User Lockout Email file is located in both the package you tried to install, and in either the unfiled-public folder or a user folder in this org.
To install this package, either delete Experience Cloud: User Lockout Email from this org, or move it to a different folder.
Additional information
SFDX CLI Version = sfdx-cli/7.105.0 win32-x64 node-v14.17.0
@oclif/plugin-autocomplete 0.3.0 (core)
@oclif/plugin-commands 1.3.0 (core)
@oclif/plugin-help 3.2.2 (core)
@oclif/plugin-not-found 1.2.4 (core)
@oclif/plugin-plugins 1.10.0 (core)
@oclif/plugin-update 1.4.0-3 (core)
@oclif/plugin-warn-if-update-available 1.7.0 (core)
@oclif/plugin-which 1.0.3 (core)
@salesforce/sfdx-trust 3.6.0 (core)
alias 1.1.10 (core)
auth 1.6.1 (core)
config 1.2.8 (core)
generator 1.1.7 (core)
salesforcedx 52.0.0 (latest-rc)
├─ data 0.4.11
├─ apex 0.2.2
├─ custom-metadata 1.0.12
├─ limits 1.2.1
├─ user 1.3.0
├─ schema 1.0.7
├─ org 1.6.6
├─ @salesforce/sfdx-plugin-lwc-test 0.1.7
├─ templates 51.5.0
└─ salesforce-alm 52.0.0
sfdmu 4.4.2
sfdx-cli 7.105.0 (core)
sfdx-git-delta 4.5.0
telemetry 1.2.1 (core)
Windows 10

As a quick update I have found what causes the problem but not sure "why" i.e. where the problem happens.
I created a new scratch and did nothing to it, the scratch has 7 templates in the unfiled folder, I don't know if this is new or always been there.

I went back to an old branch that I packaged on Friday before V52 was implemented and it failed for the same reason.
Once I remove the 6 highlighted emails from my folder (they have been there for 4 months) I get it all to package.

Closing this since the solution is to remove those emails from the package.  Due to changes with Experience Cloud I don't think this is still an issue.  Please reopen if I'm mistaken.


drivers: i3c: allow i3c kconfigs to be included by i2c

I3C is backwards compatible with I2C. It is possible to only use an I3C IP with only I2C devices. This can be an issue where devices will do a select I2C, but they won't enable the I3C driver as the isn't already a single I3C device defined in the devicetree with it's select I3C.
This adds a select I3C which will also allow for the I3C drivers to be found if only I2C devices are on a device tree such as here: https://github.com/zephyrproject-rtos/zephyr/blob/af314643a32db3452dd77f20dee2807197b179cf/drivers/eeprom/Kconfig#L58

apparently, this makes the compliance checks unhappy to the point where I can't think of a workaround that will make them happy and solve the issue :shrug:

apparently, this makes the compliance checks unhappy to the point where I can't think of a workaround that will make them happy and solve the issue 🤷

I may have found a solution

With your changes here, no need to explicit enable i3c in order to communicate with the eeprom connected to i3c controller, that's good. But if we select the i3c when i2c is enabled, some common i3c sources (i3c_ccc.c, i3c_common.c, etc) will always get built even if the SoC does not have i3c ip. If using imply instead of select, application is able to disable i3c when not needed, although needs to be done manually.
To summary with this approach:
Pros: all drivers currently selecting i2c will select i3c --> most drivers in-tree can automatically work if the devices are connected to i3c bus. ( i said most because there are several drivers rely on i2c_configure which might need to be updated, eg: https://github.com/zephyrproject-rtos/zephyr/blob/main/drivers/sensor/bosch/bmg160/bmg160.c#L30 https://github.com/zephyrproject-rtos/zephyr/blob/main/drivers/video/ov2640.c#L1059)
Cons: some i3c sources still got built even if the SoC does not have i3c ip by default, slightly increase build time + memory usage
Edit: we can get rid of always building i3c sources by adding a new kconfig function (perhaps dt_any_device_on_bus_enabled) which will return y if any device on bus is enabled, this shouldn't hard. After that we could do some thing like this:
menuconfig I2C
     select I3C if $(dt_any_device_on_bus_enabled,i3c)

Now that I think about it.... I'm not so sure this solution in this PR is the best solution either here.
Closing as I think that KConfig solution is probably better


Release notes for 111

Rendered RelNotes page for review:
https://review.learn.microsoft.com/en-us/microsoft-edge/webview2/release-notes?branch=pr-en-us-2480 [gh rendered]
AB#43632898

All the links work


How to configure your plugin to work with a Vite+React project?

I found your repo from this message in my Vite+React project:
[vite] hmr invalidate /src/Hooks/UseFilter.jsx Could not Fast Refresh. Learn more at https://github.com/vitejs/vite-plugin-react/tree/main/packages/plugin-react#consistent-components-exports

Then I installed your plugin created the .eslintrc.json file at the root of my project, and copied/pasted your configuration there.
However, I still don't see anything when I save my react .jsx files. I see the old warnings.
I then installed eslint and eslint-plugin-react in addition to your plugin, but they changed nothing.
What should I do to see more details? What should I do to make your plugin part of every save?

For a base config see the one you have when doing npmx creta-vite and choosing the JS React template: https://github.com/vitejs/vite/blob/main/packages/create-vite/template-react/.eslintrc.cjs

@ArnaudBarre, Thank you for responding. I did as you said. I created a new Vite + React + JavaScript project and compared it with mine.
I updated my project based on that, and now npm run lint works.
However, I still see this message when I save my hooks and nothing more is shown to me:
[vite] hmr invalidate /src/Hooks/UseList.jsx Could not Fast Refresh. Learn more at https://github.com/vitejs/vite-plugin-react/tree/main/packages/plugin-react#consistent-components-exports

What should I do to see what makes that HMR invalid?


All MARKDOWN files that needs to be rendered should be README.md

Describe the bug

All across the Repo, some markdown files that should be rendered are either called README.md or have a Trivial Name like Heap Sort.md.

So there are 2 scenarios:

All algorithm documentation files should be rendered (preferably) and hence should be renamed to README.md
None of the documentation files should be rendered (can be useful in some cases, not here as per my understanding) and then should have the name resembling the algorithm.

The REPO should follow one naming convention.
To Reproduce

Steps to reproduce the behavior:

Go to DSA-guide/Sorting_Techniques/Wave_Sort/ and there is a README.md file which GitHub renders automatically.
Go to DSA-guide/Sorting_Techniques/Heap_Sort/ and there is a Heap Sort.md file which GitHub wont renders.

Expected behavior

For files meant for the same purpose, there should be one naming convention only.

Possible solution

Rename all markdown to README.md (only those which should be rendered of course).

Would u like to solve it

Yes please

@ankitapuri I have opened 5 issues #242 #247 - #250
You can assign me all those which you think are required in the Repo

Would u like to solve it

And do tell me what you want, should I rename each fie to README so that they are rendered or should I rename to Algorithm name.

Would u like to solve it

And do tell me what you want, should I rename each fie to README so that they are rendered or should I rename to Algorithm name.

keep the name README.md and I can't assign all issues to 1 person . It needs to be done 1 at a time .

Would u like to solve it

And do tell me what you want, should I rename each fie to README so that they are rendered or should I rename to Algorithm name.

keep the name README.md and I can't assign all issues to 1 person . It needs to be done 1 at a time .

I will complete them on the go I guess XD

@ankitapuri Can you put the labels for CrossWoc, I believe difficulty label is required!

@ankitapuri Can you put the labels for CrossWoc, I believe difficulty label is required!

it is required on the issues. not on the PRs .

@ankitapuri Can you put the labels for CrossWoc, I believe difficulty label is required!

it is required on the issues. not on the PRs .

What I actually meant was, that on the Issue there are 3 labels- CrossWoC, bug, good first issue.
None of which as per my knowledge are difficulty label that CrossWoc Require


Radio: Last 3 bytes (header size?) not sent/received

The documentation and the source code indicate that the maximum "packet" size is 32 bytes:
https://lancaster-university.github.io/microbit-docs/ubit/radiodatagram/
However, if we try to send 32 bytes of data, the last 3 bytes are not sent or received (not 100% sure which one it is).
The following programme uses uBit.radio.datagram to:

Send 32 bytes via radio
Receive PacketBuffers and print their contents to serial

MICROBIT.hex.zip
#include "MicroBit.h"

#define PACKET_SIZE 32

MicroBit uBit;

void on_radio_data(MicroBitEvent e) {
    PacketBuffer radio_packet = uBit.radio.datagram.recv();
    uBit.serial.send("RX: ");
    for (int i = 0; i < radio_packet.length(); i++) {
        uBit.serial.printf("%d ", radio_packet[i]);
    }
    uBit.serial.send("\r\n");
}

int main() {
    uBit.init();
    uBit.radio.enable();

    uBit.messageBus.listen(MICROBIT_ID_RADIO, MICROBIT_RADIO_EVT_DATAGRAM, on_radio_data);

    uint8_t radio_tx[PACKET_SIZE];
    for (int i = 0; i < PACKET_SIZE; i++) {
        radio_tx[i] = i;
    }

    while (true) {
        uBit.sleep(500 + uBit.random(500));
        int result = uBit.radio.datagram.send(radio_tx, PACKET_SIZE);
        if (result != MICROBIT_OK) {
            target_panic(123);
        }
    }
}

Output:
RX: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 0 0 0

Not to sure how the low level radio works (register wise), but looks like the data size check for the MicroBitRadioDatagram::send(uint8_t *buffer, int len) function might not be quite right?
https://github.com/lancaster-university/codal-microbit-v2/blob/348afc4c2de5c602b40b79ae63c377909404c96f/source/MicroBitRadioDatagram.cpp#L120-L123
MICROBIT_RADIO_MAX_PACKET_SIZE = 32
MICROBIT_RADIO_HEADER_SIZE = 4
So len > MICROBIT_RADIO_MAX_PACKET_SIZE + MICROBIT_RADIO_HEADER_SIZE - 1) would be the same as if (32 > 32 + 4 -1).
Should that be len > (MICROBIT_RADIO_MAX_PACKET_SIZE - (MICROBIT_RADIO_HEADER_SIZE - 1)) , so that the maximum data the user can send is 29 bytes?
Or if the user is meant to be able to send 32 bytes, should that check be len > MICROBIT_RADIO_MAX_PACKET_SIZE?
As the header data is added on top of that?
In this case, we still have the issue that the last 3 bytes are not being sent / received.

Sending MICROBIT_RADIO_MAX_PACKET_SIZE  to 64 and sending 64 bytes also results in the last 3 bytes missing:
RX: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 0 0 0

The configuration allows for MICROBIT_RADIO_MAX_PACKET_SIZE to be sent and received.
https://github.com/lancaster-university/codal-microbit-v2/blob/master/source/MicroBitRadio.cpp#L335
But that doesn't allow for the 3 bytes before the payload in the FrameBuffer struct.
https://github.com/lancaster-university/codal-microbit-v2/blob/master/inc/MicroBitRadio.h#L88
I think the DAL has the same problem.

Thanks Martin!
I had tried to increase the max packet size in NRF_RADIO->PCNF1 in that line before, but it didn't seem to work on that occasion. However, as I write this I realise that for some reason some of my other changes I tried in the radio code didn't seem to take in my project unless I did a clean build. So I think it's worth trying again, I'll give it a go once I find some time.
Additionally, it looks like MakeCode is only sending 29 bytes as well, since their header size is 9 bytes and the max user payload 20 bytes:
https://github.com/microsoft/pxt-common-packages/blob/dbecae95b46eca9014a9b7d4a4c19ffdd02bb0f6/libs/radio/radio.ts#L23-L24
So I guess that might points at DAL/CODAL never been able to send the full 32 bytes?
I haven't tried it in V1 yet though, so I cannot confirm if it behaves the same. It'd be good to run the same test code on V1 to check that.

I think the sizes haven't changed, and problem has always been there in DAL and CODAL. The configuration and the FrameBuffer payload size are incompatible. As you noticed, some of the size checks are wrong, as are comments like this.
https://github.com/lancaster-university/codal-microbit-v2/blob/master/inc/MicroBitRadioDatagram.h#L98
Will packets just be truncated if 2 micro:bits use different configured sizes?

I've run this a test again, changing NRF_RADIO->PCNF1 = 0x02040000 | MICROBIT_RADIO_MAX_PACKET_SIZE to NRF_RADIO->PCNF1 = 0x02040000 | (MICROBIT_RADIO_MAX_PACKET_SIZE + 3) and that worked 🎉
So I guess this confirms we are basically packing data in a FrameBuffer with the idea to send a max of 35 bytes (3 header bytes + 32 user payload bytes), but then configuring the peripheral to cut off at byte 32, which explains why the received "gets" zeros as the last three bytes, as it's likely the default value in the buffer.

Will packets just be truncated if 2 micro:bits use different configured sizes?

The rx FrameBuffer is big enough to store all the data, and MicroBitRadioDatagram calculates the length of the user payload received based on that first byte value, which has always been "user-payload-size + 3", so I don't think it'll cause any issues to fix this.
@JohnVidler did point out that we need to double check what MakeCode might be doing on top of this, in case they were accidentally, or by design, counting with the last bytes of the data "received" always being set to zero. Specially in cases where sending a string, as the zero at the end could be treated as a null termination.
If that was the case we should consider that a MakeCode bug to fix, but we do need to check nothing is broken if this is fixed.


Remove useless grpc_alarm type define.

Remove useless grpc_alarm declaration in grpc_types.h

@veblush

Can you say why this isn't useful?

Can you say why this isn't useful?

@ctiller  Hi, I had excuted grep the word grpc_alarm and alarm_refcount in the whole project and got no result.
And I find #14015 mentioned that grpc_alarm should be removed from the core.

Bazel RBE Windows Debug C/C++ failed on "//test/cpp/qps:qps_json_driver_test_cpp_protobuf_async_unary_qps_unconstrained_insecure", like known issue in: #26885
The "Bazel C/C++ Dbg MacOS" test is an infrastructure failure.


Create build web interface for bundle necessary modules.

https://jqueryui.com/download/   like this.

I think we don't need it. We will release sf.js without instances.


Create Different Autonomous Routines

The different autonomous systems we want:

[x]  Auto Move
[ ]  Auto Pickup
[ ]  Leave Community Zone
[ ]  Balance on Charging Station
[ ]  Auto Score

Developed balancing on charging station code using gyro. needs PID tuning and more testing o7


Ignore compose preview functions from codecov

IMPORTANT: Where possible all PRs must be linked to a Github issue
Fixes #1929
Checklist

[x] I have written Unit tests for any new feature(s) and edge cases for bug fixes
[x] I have added any strings visible on UI components to the strings.xml file
[x] I have updated the  CHANGELOG.md file for any notable changes to the codebase
[x] I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the project's style guide
[x] I have built and run the fhircore app to verify my change fixes the issue and/or does not break the app

Could we override the @Compose decorator to do this, instead of adding an additional decorator?

not really sure, but it's worth trying

awesome, it works.
so I created a custom annotation, that includes both Preview and Exclude codecov annotation.
the naming must include Generated so the exclude functionality can work.
now we just need to use 1 annotation to preview and exclude :D
thx for the idea @pld

will update the rest on next week CHT

LGTM. Have you updated every Preview annotation in the codebase?

Yeah, all of them


List of supported operating systems refers to information not displayed on the page

Hi,
I'm running into issues provisioning DependencyAgentLinux on Ubuntu 22.04. The https://aka.ms/VMExtensionDependencyAgentLinuxTroubleshoot link in the message links to a page which in turn links to this page for Supported operating systems.
The page however is incomplete:

Footnote 3 refers to a table that is not included
Footnote 4 (Ubuntu 22.04) is not listed at all

Can the page be updated so I know what the constraints for Ubuntu 22.04 are?
VMExtensionHandlerNonTransientError
The handler for VM extension type 'Microsoft.Azure.Monitoring.DependencyAgent.DependencyAgentLinux' has reported terminal failure for VM extension 'DAExtension' with error message: '[ExtensionOperationError] Non-zero exit code: 90, /var/lib/waagent/Microsoft.Azure.Monitoring.DependencyAgent.DependencyAgentLinux-<IP_ADDRESS>60/bin/time-limit 870 scripts/install.sh >/dev/null\n[stdout]\n\n\n[stderr]\nRunning scope as unit: install_7d525cf7-715a-48bf-9d94-551630f1fb59.scope\nPython 2.7.18\n\nMissing kernel symbol: printk\n\nThe Dependency Agent was not installed.\n\nSee https://aka.ms/ServiceMapTroubleshooting (exit code = 0x0000005a) for assistance.\n'.\r\n    \r\n'Install handler failed for the extension. More information on troubleshooting is available at [https://aka.ms/VMExtensionDependencyAgentLinuxTroubleshoot]

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

ID: 1e57fdf8-ece5-2bf1-200e-f089691de53f
Version Independent ID: cd84fac1-b179-6158-e61d-d85d797efdf3
Content: Overview of the Azure monitoring agents - Azure Monitor
Content Source: articles/azure-monitor/agents/agents-overview.md
Service: azure-monitor
Sub-service: agents
GitHub Login: @bwren
Microsoft Alias: bwren

#reassign: guywi-ms

@geekzter Thanks very much for raising this issue and apologies for the content move. The table is now here: https://docs.microsoft.com/en-us/azure/azure-monitor/vm/vminsights-dependency-agent-maintenance#dependency-agent-linux-support.
I've put up a couple of PRs to redirect from other pages to the table's new location. The updates should be live soon.
I'm closing this issue, but please reopen if necessary.
#please-close


Plot Options Menu

Implement an options menu that allows users to switch between line plot, scatter plot and histogram plots. The menu should also include saving an image of the plot to the file system and copying the image to the clipboard.

Allow users to change the shapes of datapoints from circle to other shapes.


Tuple comprehension is not supported

For what it's worth, there is no such thing as a tuple comprehension. (x for x in y) is a generator expression.

For what it's worth, there is no such thing as a tuple comprehension. (x for x in y) is a generator expression.

however, this is a bit hard to impl for some reason.

 And they are slow if done the naive way :/

Hello,
I have had an idea to implement generator expressions.
It doesn't look so hard, but maybe it's the inefficient "naive way" that you precisely wanted to avoid.
Let's take this python code as a start:
def f ():
  return all(x>=0 for x in range(1000000))

print(f())

Of course it will go through all numbers and finally print True.
The idea would be basically to internally transform this code into:
def f ():

  def generator ():
    for x in values:
      yield x

  return generator()

print(f())

Of course the function generator wouldn't be really accessible in the code, it's just there for illustration.
What do you think about it?
Is this the naive way?
In fact, the functions all and any, which are implemented in builtins of pocketpy, aren't very useful as such without generators.
Of course you can always write:
all([x>=0 for x in values])

But it is going to create a list with a million of items!

I have tried to implement my idea, and I don't think it's so naive.
If I disassemble f with the original CPython, I get this:
  4           0 LOAD_GLOBAL              0 (all)
              2 LOAD_CONST               1 (<code object <genexpr> at 0x00E22B78, file "test.py", line 4>)
              4 LOAD_CONST               2 ('f.<locals>.<genexpr>')
              6 MAKE_FUNCTION            0
              8 LOAD_GLOBAL              1 (range)
             10 LOAD_CONST               3 (1000000)
             12 CALL_FUNCTION            1
             14 GET_ITER
             16 CALL_FUNCTION            1
             18 CALL_FUNCTION            1
             20 RETURN_VALUE

If I disassemble the generator code alone in CPython (I need to do it separately), I get this:
1           0 LOAD_FAST                0 (.0)
>>    2 FOR_ITER                14 (to 18)
4 STORE_FAST               1 (x)
6 LOAD_FAST                1 (x)
8 LOAD_CONST               0 (0)
10 COMPARE_OP               5 (>=)
12 YIELD_VALUE
14 POP_TOP
16 JUMP_ABSOLUTE            2
>>   18 LOAD_CONST               1 (None)
20 RETURN_VALUE

If I disassemble f in pocketpy with my own implementation of the feature, I get this:
4          0   LOAD_GLOBAL               672 (all)
           1   LOAD_NULL                 0
           2   LOAD_FUNCTION             0 (<generator>)
           3   LOAD_NULL                 0
           4   CALL                      0
           5   CALL                      1
           6   RETURN_VALUE              0
           7   LOAD_NONE                 0
           8   RETURN_VALUE              0

Disassembly of <generator>:
4          0   LOAD_NONLOCAL             29659 (range)
           1   LOAD_NULL                 0
           2   LOAD_CONST                0 (1000000)
           3   CALL                      1
           4   GET_ITER                  0
           5   FOR_ITER                  12
           6   STORE_FAST                0 (x)
           7   LOAD_FAST                 0 (x)
           8   LOAD_INTEGER              0
           9   COMPARE_GE                0
           10  YIELD_VALUE               0
           11  LOOP_CONTINUE             5
        -> 12  NO_OP                     0
           13  LOAD_NONE                 0
           14  RETURN_VALUE              0

I don't feel it that bad. I have the impression to be reasonably close.
But maybe I missed something very important?
Interestingly, it looks like CPython pass range(1000000) to the generator function as a parameter, while in my case, I let the generator function call it.
I don't think it makes a big difference, though.
What are your thoughts?
Thank you for reading.

In fact, if you are processing very large number of iterations, you can use yield or class with iter, not necessary to use generator expression.

And in pkpy list comprehension is recommended though it creates a list. Because listcomp is must faster than a function with yield.

Finally, the idea is not about all/any. Our parser is not able to recognize generator expression.


tagainijisho: 1.2.1 -> 1.2.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/Gnurou/tagainijisho/releases.
meta.description for tagainijisho is: "A free, open-source Japanese dictionary and kanji lookup tool"
meta.homepage for tagainijisho is: "https://www.tagaini.net/"
meta.changelog for tagainijisho is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.2.2 with grep in /nix/store/khvnznk3rnxjvrgh49phwf34j6clx0fh-tagainijisho-1.2.2
found 1.2.2 in filename of file in /nix/store/khvnznk3rnxjvrgh49phwf34j6clx0fh-tagainijisho-1.2.2

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
tagainijisho

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/khvnznk3rnxjvrgh49phwf34j6clx0fh-tagainijisho-1.2.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A tagainijisho https://github.com/r-ryantm/nixpkgs/archive/e7152de004e6fa38f16a7c94fe810c50503b95ee.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/khvnznk3rnxjvrgh49phwf34j6clx0fh-tagainijisho-1.2.2
ls -la /nix/store/khvnznk3rnxjvrgh49phwf34j6clx0fh-tagainijisho-1.2.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

tagainijisho

Maintainer pings
cc @vbgl for testing.

works for me


/usr/bin/env: ‘node\r’: No such file or directory

Overview
I installed embark using the command sudo npm install -g embark. Everything went fine. However, when I run embark, I am getting the following error.
/usr/bin/env: ‘node\r’: No such file or directory

Tried uninstalling and reinstalling the module. Still the name.
Context (Environment)

OS: Ubuntu Budgie 18.04.1
Node Version: 8.10
NPM Version: 3.5.2

@shahthepro, can you try installing Node.js via nvm?
We recommend installing Node via nvm as the easiest way to avoid npm permissions issues. See fixing-npm-permissions for more info.

After node has been installed via nvm, don not use sudo to install embark, just:
npm install -g embark

One more thing. I ran embark demo to create the demo dapp. And then ran npm install and embark run, It is stuck at writing file dist/index.html for a long time.

There is generally no need to run npm install within the embark_demo directory, as the template-install procedure does that automatically.
But there is presently a "bug" (of sorts) in the demo. One of its dependencies, react-bootstrap, has run afoul of breaking changes in babel 7 rc 1. So, you probably need to drop the caret range ^ for react-bootstrap in your embark_demo's package.json file. Then:
rm -rf node_modules package-lock.json && npm i .

See https://github.com/react-bootstrap/react-bootstrap/issues/3231.

Thank you very much @michaelsbradleyjr :)

This has now also been fixed in 3.1.10

I had this issue, I fixed it by changing the file ending to carriage return. One of my colleagues was using windows and he made some change in one file and deployed it, the others were created by me and I was using macOS. It turns out that the problem was for different file endings for different files.


issue/6473-document-api-arguments-iso6

Description
document all the missing api arguments
closes https://github.com/inmanta/inmanta-core/issues/6473
Self Check:
Strike through any lines that are not applicable (~~line~~) then check the box

[x] Attached issue to pull request
[x] Changelog entry
[ ] Type annotations are present
[x] Code is clear and sufficiently documented
[ ] No (preventable) type errors (check using make mypy or make mypy-diff)
[ ] Sufficient test cases (reproduces the bug/tests the requested feature)
[ ] Correct, in line with design
[x] End user documentation is included or an issue is created for end-user documentation (add ref to issue here: )
[ ] If this PR fixes a race condition in the test suite, also push the fix to the relevant stable branche(s) (see test-fixes for more info)

Only fileservice.py was changed compared to master, right ?

@Hugo-Inmanta Yes, the implementation of the diff function is not the same on master and iso6

Processing this pull request

Merged into branches iso6 in 911e6d07ed694419002fba4fb8832b02263932c1


Implement syntactic/semantic classification support

Template strings look pretty terrible with just lexical classification.

See https://github.com/Microsoft/TypeScript/issues/1477#issuecomment-74355284 for an explanation of how this should be done.


Using intermediate cert in https server causes https requests to fail

You get this error:
InternalOAuthError: Failed to obtain access token
    at Strategy.OAuth2Strategy._createOAuthError (/Volumes/Data/Code/LDSorg/passport-lds-connect-example/node_modules/passport-facebook/node_modules/passport-oauth2/lib/strategy.js:348:17)
    at /Volumes/Data/Code/LDSorg/passport-lds-connect-example/node_modules/passport-facebook/node_modules/passport-oauth2/lib/strategy.js:171:43
    at /Volumes/Data/Code/LDSorg/passport-lds-connect-example/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:178:18
    at ClientRequest.<anonymous> (/Volumes/Data/Code/LDSorg/passport-lds-connect-example/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:149:5)
    at ClientRequest.emit (events.js:97:17)
    at TLSSocket.socketErrorListener (_http_client.js:248:9)
    at TLSSocket.emit (events.js:119:20)
    at TLSSocket._tlsError (_tls_wrap.js:406:10)
    at TLSWrap.ssl.onerror (_tls_wrap.js:315:12)

And if you dig a little deeper you see that it's actually this:
[Error:<PHONE_NUMBER>75808:error:0B07C065:x509 certificate routines:X509_STORE_add_cert:cert already in hash table:../deps/openssl/openssl/crypto/x509/x509_lu.c:357:
]

The reason is that the https server was constructed like this:
options = {
  key: fs.readFileSync(path.join(certsPath, 'my-server.key.pem'))
, cert: fs.readFileSync(path.join(certsPath, 'my-server.crt.pem'))
, ca: [
    fs.readFileSync(path.join(caCertsPath, 'intermediate.crt.pem'))
  ]
, requestCert: false
, rejectUnauthorized: false
};

server = https.createServer(options);

Note the ca. We can't know ahead of time whether the that ca is in the internal list of cas so from one version of node.js / io.js to the next an app that was working with an intermediate that wasn't previously in the chain suddenly breaks without any code changes.
That's bad news bears.

See https://github.com/iojs/io.js/issues/712

The original fix only fixes the issues sometimes. I found a better workaround as described here: https://github.com/ciaranj/node-oauth/pull/241

tested working in io.js v1.2


content address extends outside of visible area in card

The Issue
When going to an address that is very long, content may extend passed the edge of the card
Steps to reproduce

Navigate to lbry://@seanyesmunt#2fa8ecba445648eae50cb6e98948e67a417c9017/thisisaverylongstringthatiscutoff
Notice content extending off the page
Publish new content
Go to the new content page before the publish is done, see it extend off the page

Expected behaviour
I should be able to see the entire address
Long addresses should probably wrap, maybe there is a better way, does it need to be in a card?
Since the address is in the search bar, do we need the address here?
Actual behaviour
The address is cut off
Screenshots

Since this is a small fix, I am fixing this as a part of  #1569 PR.

Closing per #1569


cache-manager-hazelcast module failed to load.

smokesignal logger: [ error ]
 SyntaxError: Unexpected token =
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:387:25)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (trails/trailpack-cache/api/services/stores/hazelcast.js:4:15)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (trails/trailpack-cache/api/services/stores/index.js:9:14)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
    at require (internal/module.js:20:19)
    at new CacheService (trails/trailpack-cache/api/services/CacheService.js:16:19)
    at trails/trailpack-cache/node_modules/trailpack-core/lib/context.js:50:19
    at trails/trailpack-cache/node_modules/lodash/lodash.js:13047:23
    at trails/trailpack-cache/node_modules/lodash/lodash.js:4738:15
    at baseForOwn (trails/trailpack-cache/node_modules/lodash/lodash.js:2879:24)
    at Function.mapValues (trails/trailpack-cache/node_modules/lodash/lodash.js:13046:7)
    at Object.bindMethods (trails/trailpack-cache/node_modules/trailpack-core/lib/context.js:45:14)
    at Core.configure (trails/trailpack-cache/node_modules/trailpack-core/index.js:29:37)
    at trails/trailpack-cache/node_modules/trails/lib/trailpack.js:63:26

Actually it works only in Node 6. And failing with node 4,5

Trailpack cache hazelcast module has been disabled for investigation.


Abstract methods should have no body in Dart

In AtScript this:
@ABSTRACT()
class Blah {
  @ABSTRACT()
  hello():void {}
}

Transpiles to this:
@ABSTRACT()
class Blah {
  @ABSTRACT()
  hello() {}
}

The hello method should have no body.

There are not abstract methods in TypeScript, there are only interfaces (which however should compile to abstract methods on abstract classes with empty bodies).

@mprobst What about abstract classes (e.g. those that partially implement an interface)? How would you like to express them? Or do you recommend that we avoid them?

@yjbanov sorry, I should have been more specific: TypeScript doesn't have abstract classes either. I think between structural typing and interfaces, they might have thought you don't need them.
So when writing TS (and when converting the Angular code base), abstract base classes should be written as interfaces. I guess that'll make it a bit harder to share base method implementations.


[FLINK-23732][tests] Increase logger-startup-timeout to 50s

In order to harden tests on slow CI, this commit increases the logger-startup-timeout from 30s to 50s.

Thanks for the review @dmvk. Merging this PR once Azure gives green light.


Directive editor binding not work

my controller can't get the editor?

With latest version I can't get it to. But If you install  "angular-summernote": "0.5.1" and "summernote": "0.6.1", than it work...


build fatjar

hi, any guide to build fatjar distribution from jphp project?

This is difficult to implement without changing the source code. To do this, you need to add a new subproject with all the project dependencies that are needed and connect something like shadowJar plugin for gradle (https://github.com/johnrengelman/shadow).

What is the problem you are trying to solve in this way?

I tried to make a single jar runnable from jphp projects

Try this: https://github.com/jphp-group/jphp/tree/master/packager
It allows to build single jar from php sources with any extensions.

thank you very much 🙏🏻


channelName option missing dashes on teams channel membership list command

https://github.com/pnp/cli-microsoft365/blob/a814a27dc11b37d1f3d4bda12961021891872394/docs/docs/cmd/teams/channel/channel-membership-list.md?plain=1#L22-L23
should be --channelName

I also noticed this yesterday. Didn't know if I could fix this as the command was under discussion. But I can fix it if you want. 😃

All yours @milanholemans. We appreciate your help 👏


Clearing the require cache (SSR) does not work when updating remote chunks

Describe the bug
Hi! I ran into the problem of clearing the cache in the host nextjs application in the configuration
Next JS host app + React remote app (webpack)
The error I see in dev mode is that after restarting the site works fine, the error occurs once

The error I see in production mode is that reloading the page does not help

I made a small demo repository based on this example
Is there any way to clear the cache on the SSR in such a configuration (Ext JS host app + Webpack remoteapp)?
What approaches have I used?
I tried to use the flushChunks approach
But as far as I understand, flushChunks function is trying to read the fedetated-stats.json file, which is not present in the case of the webpack build (The error below occurs due to the use of response.json() under the hood, when reading localhost:3003/federated-stats.json that doesn't exist)

In the end, I settled on performReload from @module-federation/node, but this solution doesn't work either : (
and leads to the errors that I described at the beginning of the message
Reproduction
https://github.com/theStrangeAdventurer/module-federation-nextjs-ssr-react-remote
Used Package Manager
yarn
System Info
MacOS - 14.3
Package manager - yarn
"@module-federation/nextjs-mf": "^8.1.7",
"next": "^13.0.7",
"react": "^18.2.0",
"react-dom": "^18.2.0"

"@module-federation/node": "^2.0.9",
"webpack": "5.89.0",

Validations

[X] Read the docs.
[X] Read the common issues list.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Module federation issue and not a framework-specific issue.
[X] The provided reproduction is a minimal reproducible example of the bug.

@ScriptedAlchemy Could you help, please?
Maybe I'm not seeing something obvious, but I'm at a dead end at the moment.

The error was due to the fact that the page was built as static by default. the problem went away after adding getServerSodeProps to the page
https://github.com/theStrangeAdventurer/module-federation-nextjs-ssr-react-remote/blob/main/host-app/pages/index.js#L6
In addition, I added revalidation on rus.on('finish')
https://github.com/theStrangeAdventurer/module-federation-nextjs-ssr-react-remote/blob/main/host-app/pages/_document.js#L8
The only problem that remains now is a one-time hydration error when updating remote chunks that goes away with the next hit of the page

i have a PR that will introduce better hmr ability for server, will resolve the stale hydration issue on first hit, we can now invalidate before render without is breaking stuff.


Hide stack traces on upload error for non dev environments

Hide stack traces in non dev environments

An other workflow question. Now that Ask and the Upload changes are out the door, should this PR target master instead?

This needs to be rebased on master

An other workflow question. Now that Ask and the Upload changes are out the door, should this PR target master instead?

yes, deleting next branch now :)


Access to PodApi

Is there a way to get access to the PodAPI via the SymphonyClient object?
It doesn't seem there is.  Can the use of this be wrapped into AuthenticationClient, in the same way as SymExtensionAppAuth is?
Otherwise, I have to jump through hoops to create the ApiClient class, and build my own:
ApiClient apiClient = org.symphonyoss.symphony.authenticator.invoker.Configuration.getDefaultApiClient();
        apiClient.setHttpClient(httpClient);
        apiClient.setBasePath(sessionauthUrl);
 PodApi podApi = new PodApi(apiClient);
        PodCertificate certificate = podApi.v1AppPodCertificateGet();

Not critical, just an idea.
thanks,
Rob

At this stage the SJC only exposes the services and clients that implement the underlying REST API (language binding).   The idea was to hide that complexity and potential underlying changes (models, messaging, apiclient..etc) that could impact the developer.
Exposing the underlying ApiClient(s) (pod,agent,auth..) is something to consider, but again not the original design pattern of the project.
Just to point out, the underlying language binding (Jersey2 Client) is managed in a separate project ( https://github.com/symphonyoss/symphony-java-api ) which you can use directly by implementing:

org.symphonyoss.symphony
symphony-authenticator-java-jersey2-client
${symphony-api-version}

org.symphonyoss.symphony
symphony-agent-java-jersey2-client
${symphony-api-version}

org.symphonyoss.symphony
symphony-pod-java-jersey2-client
${symphony-api-version}

Well, /v1/app/pod/certificate is an endpoint exposed in the REST API, so by that logic it should expose it, no?
Or is there another way to access this endpoint that I didn't see?

Messy...but for now you can simply instantiate an ApiClient from the language binding and use the authorization tokens from the initialized SymphonyClient if needed.  All manual here...but based on your example.  (Note:  I will add this call to an existing SJC client soon..most likely the AuthenticationClient.getPodCertificate())
    ApiClient apiClient = org.symphonyoss.symphony.authenticator.invoker.Configuration.getDefaultApiClient();

    //You should be able to get AgentUrl from SymphonyConfig...
    apiClient.setBasePath(symphonyConfig.get(SymphonyClientConfigID.POD_URL));

     //instantiate an API with the client..
      PodApi podApi = new PodApi(apiClient);

      PodCertificate podCertificate= podApi.v1AppPodCertificateGet();

commit 991458c97666da81233a1813f3f30507527ef2fd
New class called SymphonyApis, which you can access through the SymphonyClient instance.
Again, this is not something recommended in the end.


list-ops: add test to check if list was changed

I just ran across a solution to listops that does pass the tests but that I would see as very problematic in the real world. Using the Append function as an example:
func (l *IntList) Append(v IntList) IntList {
	result := []int(*l)
	for _, v := range []int(v) {
		result = append(result, v)
	}

	return result
}

After Append was called I would expect my list l to have changed. After all I did call a method on the list. But it hasn't.

My suggestion would be to add tests for this not only comparing the output of the Append function but also the list itself with the intended result.

func TestAppendMethod(t *testing.T) {
	for _, tt := range appendTestCases {
		got := tt.list.Append(tt.appendThis)
		if !reflect.DeepEqual(tt.want, got) {
			t.Fatalf("FAIL: %s: %q -- expected: %v, actual: %v", tt.property, tt.name, tt.want, got)
		} else if !reflect.DeepEqual(tt.want, tt.list) {
			t.Fatalf("FAIL: %s: %q checking list -- expected: %v, actual: %v",
				tt.property, tt.name, tt.want, tt.list)
		} else {
			t.Logf("PASS: %s: %s", tt.property, tt.name)
		}
	}
}

We could also change the tests altogether for the functions not to have a return on any of the functions, but to only ever check the list object itself against the desired state. The fact that each function returns a *IntList is nice for chaining but could be misleading/confusing in this exercise.

func TestAppendMethod(t *testing.T) {
	for _, tt := range appendTestCases {
		tt.list.Append(tt.appendThis)
		if !reflect.DeepEqual(tt.want, tt.list) {
			t.Fatalf("FAIL: %s: %q -- expected: %v, actual: %v",
				tt.property, tt.name, tt.want, tt.list)
		} else {
			t.Logf("PASS: %s: %s", tt.property, tt.name)
		}
	}
}

What are your thoughts?

Hi @tehsphinx.
While I do understand your point, I am not sure that's the wanted behaviour here, nor in Go.
From the A Tour of Go:
The resulting value of append is a slice containing all the elements of the original slice plus the provided values.

We are almost used to do this way in Go, while it's quite different in JS, just as an example, where one can choose between .push and .concat.

concat function
push function

In a nutshell I would expect an inplace append with no return at all, and no chaining option for the original slice either.
Maybe I'm wrong but also open to chat about this further 💪 .
This is my thought 😄


lenovo/legion/16arha7: fix kernel check for speaker patch

Description of changes
This fixes an incorrect comparison between kernel versions, which resulted in a build error. Now, we'll only apply the patch if the kernel version is below 6.10 (i.e. 6.9.X or older).
Things done

[X] Tested the changes in your own NixOS Configuration
[X] Tested the changes end-to-end by using your fork of nixos-hardware and
importing it via <nixos-hardware> or Flake input

@mergify queue


[DataStorage] BugFix for Device not found in cache(Issue #312)

Signed-off-by: Nitu Gupta<EMAIL_ADDRESS>Description
Bug: The edge-orchestration can not find the device in the cache if edge-orchestration registers device configuration to edgex for the first time. It works after reboot.
Reason:
When running metadata, coredata in dockers, these services are unable to reach device service when device gets added. Hence callback is not invoked and so cache is not updated.
Solution:  Replace the HostIP of metadata, coredata and device service to docker0 IP in confuguration.toml file
Fixes #312
Type of change

[X] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

Clear redis database
Run edge-orchestration with DataStorage configuration files
Call an API in terms of uploading Int value

curl -X POST "localhost:49986/api/v1/resource/datastorage/int" -H "accept: text/plain" -H "Content-Type: text/plain" -d 123
The value gets uploaded successfully.
Test Configuration:

Firmware version: Ubuntu 20.04
Hardware: x86-64
Edge Orchestration Release: 1.0.0

Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[X] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes

Thanks for your efforts. I have a question about this approach.
Assume that we have two devices, Device A(enp4s0:<IP_ADDRESS>, docker0:<IP_ADDRESS>) and B(enp4s0:<IP_ADDRESS>, docker0:<IP_ADDRESS>).
EdgeX containers are running on Device A and Edge Orchestration on Device B tries to connect to the EdgeX containers on Device A.
If we set the Host to <IP_ADDRESS> in Device B's configuration.toml, can Device B receive the callback from Device A?

docker0 is for local machines. For different machine you can use the real ip address, but you need to configure your docker network properly. https://docs.docker.com/network/

docker0 is for local machines. For different machine you can use the real ip address, but you need to configure your docker network properly. https://docs.docker.com/network/

Could you explain a bit more on what "properly" means?

docker0 is for local machines. For different machine you can use the real ip address, but you need to configure your docker network properly. https://docs.docker.com/network/

Could you explain a bit more on what "properly" means?

An overlay network has to be setup for docker communication between multiple host.  https://docs.docker.com/network/
Since we are making docker containers similar overlay network should work for communication scenario mentioned by you

docker0 is for local machines. For different machine you can use the real ip address, but you need to configure your docker network properly. https://docs.docker.com/network/

Could you explain a bit more on what "properly" means?

An overlay network has to be setup for docker communication between multiple host. https://docs.docker.com/network/
Since we are making docker containers similar overlay network should work for communication scenario mentioned by you

Is it right to configure an overlay network with multiple devices to our Home IoT scenario?
If the approach is right, can you explain about how to configure the overlay network in detail? Assume that you have 3 devices like below.

A with edgex container (enp4s0:<IP_ADDRESS>)
B(enp4s0:<IP_ADDRESS>)
C(enp4s0:<IP_ADDRESS>)

docker0 is for local machines. For different machine you can use the real ip address, but you need to configure your docker network properly. https://docs.docker.com/network/

Could you explain a bit more on what "properly" means?

An overlay network has to be setup for docker communication between multiple host. https://docs.docker.com/network/
Since we are making docker containers similar overlay network should work for communication scenario mentioned by you

Is it right to configure an overlay network with multiple devices to our Home IoT scenario?
If the approach is right, can you explain about how to configure the overlay network in detail? Assume that you have 3 devices like below.

A with edgex container (enp4s0:<IP_ADDRESS>)
B(enp4s0:<IP_ADDRESS>)
C(enp4s0:<IP_ADDRESS>)

Hello, I have tested with A running the edgex containers and B running the edge orchestration. I have replaced the host as A machine IP except for device service with B machine IP in configuration toml and i observed the device was detected and was able to post data from B to coredata. So considering the scenario it should work fine with 3 machines also.

docker0 is for local machines. For different machine you can use the real ip address, but you need to configure your docker network properly. https://docs.docker.com/network/

Could you explain a bit more on what "properly" means?

An overlay network has to be setup for docker communication between multiple host. https://docs.docker.com/network/
Since we are making docker containers similar overlay network should work for communication scenario mentioned by you

Is it right to configure an overlay network with multiple devices to our Home IoT scenario?
If the approach is right, can you explain about how to configure the overlay network in detail? Assume that you have 3 devices like below.

A with edgex container (enp4s0:<IP_ADDRESS>)
B(enp4s0:<IP_ADDRESS>)
C(enp4s0:<IP_ADDRESS>)

Hello, I have tested with A running the edgex containers and B running the edge orchestration. I have replaced the host as A machine IP except for device service with B machine IP in configuration toml and i observed the device was detected and was able to post data from B to coredata. So considering the scenario it should work fine with 3 machines also.

This is very good news!
How should we modify the source code?

docker0 is for local machines. For different machine you can use the real ip address, but you need to configure your docker network properly. https://docs.docker.com/network/

Could you explain a bit more on what "properly" means?

An overlay network has to be setup for docker communication between multiple host. https://docs.docker.com/network/
Since we are making docker containers similar overlay network should work for communication scenario mentioned by you

Is it right to configure an overlay network with multiple devices to our Home IoT scenario?
If the approach is right, can you explain about how to configure the overlay network in detail? Assume that you have 3 devices like below.

A with edgex container (enp4s0:<IP_ADDRESS>)
B(enp4s0:<IP_ADDRESS>)
C(enp4s0:<IP_ADDRESS>)

Hello, I have tested with A running the edgex containers and B running the edge orchestration. I have replaced the host as A machine IP except for device service with B machine IP in configuration toml and i observed the device was detected and was able to post data from B to coredata. So considering the scenario it should work fine with 3 machines also.

This is very good news!
How should we modify the source code?

I would prefer modifying the document since the issue is of setup. How about providing info about both setups like localhost and different machine in datatstorage setup.md file so that user can configure on their own. Please provide your suggestion :)

I would prefer modifying the document since the issue is of setup. How about providing info about both setups like localhost and different machine in datatstorage setup.md file so that user can configure on their own. Please provide your suggestion :)

I think you need to add a description as a separate item/paragraph in the datastorage.md

I would prefer modifying the document since the issue is of setup. How about providing info about both setups like localhost and different machine in datatstorage setup.md file so that user can configure on their own. Please provide your suggestion :)

I can't decide which one is right since the setup is very vague to me. As you can see from How to Run, I want to configure the configuration.toml automatically. If the user has to revise configuration.toml, please modify the source code. If that is not the case, you may write down the info on the document instead.

I would prefer modifying the document since the issue is of setup. How about providing info about both setups like localhost and different machine in datatstorage setup.md file so that user can configure on their own. Please provide your suggestion :)

I can't decide which one is right since the setup is very vague to me. As you can see from How to Run, I want to configure the configuration.toml automatically. If the user has to revise configuration.toml, please modify the source code. If that is not the case, you may write down the info on the document instead.

The configuration.toml needs to be revised but just the host ip has to be changed. and it needs to be replaced with bridge ip of the other machine where edgex containers are run. I think this has to be done manually and so info needs to be provided in the document section.

I would prefer modifying the document since the issue is of setup. How about providing info about both setups like localhost and different machine in datatstorage setup.md file so that user can configure on their own. Please provide your suggestion :)

I can't decide which one is right since the setup is very vague to me. As you can see from How to Run, I want to configure the configuration.toml automatically. If the user has to revise configuration.toml, please modify the source code. If that is not the case, you may write down the info on the document instead.

ok will raise a separate PR for the same!