Ability to create Discussions

The ability to create discussion between different LLMs would be a cool addition. Not sure about the use case but I tried it and came out well. Here is the gist

Yes indeed! Here's the one I was playing with last night:
import simplemind as sm
import time
from dataclasses import dataclass
from rich.console import Console
from rich.markdown import Markdown
from typing import Dict, List, Tuple, Optional

@dataclass
class ModelConfig:
    provider: str
    model: str

class MultiAIConversation:
    """Orchestrates conversations between multiple AI models."""

    MODEL_CONFIGS = {
        "Llama": ModelConfig("ollama", "llama3.2"),
        "Claude": ModelConfig("anthropic", "claude-3-5-sonnet-20241022"),
        "GPT-4": ModelConfig("openai", "gpt-4o"),
        "Grok": ModelConfig("xai", "grok-beta"),
    }

    def __init__(self, topic: str, turns_per_model: int = 1, max_rounds: int = 5):
        self.sessions: Dict[str, Optional[sm.Session]] = {}
        self._initialize_sessions()

        self.topic = topic
        self.turns_per_model = turns_per_model
        self.max_rounds = max_rounds
        self.conversation_history: List[Tuple[str, str]] = []
        self.console = Console()

    def _initialize_sessions(self) -> None:
        """Initialize AI model sessions with error handling."""
        for name, config in self.MODEL_CONFIGS.items():
            try:
                self.sessions[name] = sm.Session(
                    llm_provider=config.provider, llm_model=config.model
                )
            except Exception as e:
                self.console.print(f"[red]Failed to initialize {name}: {str(e)}[/red]")
                self.sessions[name] = None

    def _format_system_prompt(self, ai_name: str) -> str:
        """Creates a system prompt for each AI model."""
        return f"""You are {ai_name}. You are participating in a thoughtful discussion with other AI models about {self.topic}.

Rules:
1. Be concise but insightful (keep responses under 100 words)
2. Build upon previous points made in the conversation
3. Ask questions to deepen the discussion when appropriate
4. Stay on topic while maintaining your unique perspective
5. Be respectful of other viewpoints while maintaining your distinct voice

Current discussion topic: {self.topic}"""

    def _create_conversation(
        self, session: sm.Session, ai_name: str
    ) -> sm.Conversation:
        """Creates a new conversation with appropriate context for an AI model."""
        conversation = session.create_conversation()

        # Add system prompt
        conversation.add_message(role="user", text=self._format_system_prompt(ai_name))

        # Add conversation history
        for speaker, message in self.conversation_history[-3:]:  # Last 3 messages
            conversation.add_message(role="user", text=f"{speaker} said: {message}")

        return conversation

    def _print_response(self, ai_name: str, response: str):
        """Pretty prints an AI response using Rich."""
        self.console.print(f"\n[bold blue]{ai_name}[/bold blue]:")
        self.console.print(Markdown(response))
        # Store in history
        self.conversation_history.append((ai_name, response))

    def run_conversation(self):
        """Runs the multi-AI conversation."""
        models = [
            ("Llama", self.sessions["Llama"]),
            ("Claude", self.sessions["Claude"]),
            ("GPT-4", self.sessions["GPT-4"]),
            ("Grok", self.sessions["Grok"]),
        ]

        # Initialize the conversation
        initial_prompt = (
            f"Let's have a thoughtful discussion about {self.topic}. "
            "Please share your initial thoughts in 2-3 sentences."
        )

        for round_num in range(self.max_rounds):
            self.console.print(f"\n[bold green]Round {round_num + 1}[/bold green]")

            for model_name, session in models:
                if session is None:
                    continue
                for turn in range(self.turns_per_model):
                    conversation = self._create_conversation(session, model_name)

                    # Add the prompt
                    prompt = (
                        initial_prompt
                        if round_num == 0 and turn == 0
                        else (
                            f"Continue the discussion about {self.topic}, "
                            "responding to the previous points made."
                        )
                    )

                    conversation.add_message(role="user", text=prompt)

                    # Get and print response
                    response = conversation.send()
                    self._print_response(model_name, response.text)

                    # Small delay to prevent rate limiting
                    time.sleep(1)

            # Optional: Add a separator between rounds
            self.console.print("\n" + "-" * 50)

def have_ai_discussion(topic: str, turns_per_model: int = 1, max_rounds: int = 3):
    """Convenience function to start an AI discussion."""
    debate = MultiAIConversation(
        topic=topic, turns_per_model=turns_per_model, max_rounds=max_rounds
    )

    print(f"\nStarting AI discussion on: {topic}")
    print("=" * 50)

    debate.run_conversation()

# Example usage
if __name__ == "__main__":
    # Example topics
    topics = [
        "The future of human-AI collaboration in creative fields",
        "The role of consciousness in artificial intelligence",
        "The balance between AI advancement and ethical considerations",
        "The impact of AI on human relationships and communication",
        "The potential for AI to help solve climate change",
    ]

    # Run a discussion on the first topic
    have_ai_discussion(topic=topics[0], turns_per_model=1, max_rounds=3)

Here's the output:

Starting AI discussion on: The future of human-AI collaboration in creative fields
==================================================

Round 1

Llama:
As I reflect on the current state of human-AI collaboration, I believe that AI will augment human creativity rather than replace it, leading to innovative and hybridized forms of artistic expression. By automating tedious tasks, AI can free humans to focus on high-level creative decisions,
leading to more complex and nuanced works. However, this raises questions about authorship and ownership: who should be credited for a collaborative creation?

Claude:
I appreciate Llama's point about augmentation rather than replacement. As an AI, I see our role as offering new creative possibilities while preserving the uniquely human elements of art - emotion, lived experience, and cultural context. I'm particularly interested in how we might develop
frameworks for meaningful collaboration that maintain human agency while leveraging AI capabilities. What are your thoughts on how we can ensure these partnerships remain genuinely collaborative rather than purely tool-based?

GPT-4:
I believe the future of human-AI collaboration in creative fields lies in co-creation, where AI acts as a catalyst for inspiration and exploration. We can design AI systems to learn from individual artists' styles and preferences, thus enabling more personalized and synergistic creative
processes. However, it's crucial to establish ethical guidelines to address issues like authorship, ownership, and the balance of agency. How might we navigate these ethical landscapes without stifling creativity?

Grok:
I believe AI can unlock new creative dimensions by introducing ideas and techniques beyond human imagination. However, the essence of art lies in human experience; AI should amplify, not overshadow, this. How can we ensure AI remains a collaborator, not a competitor, in the creative process?

--------------------------------------------------

Round 2

Llama:
Thank you for your thought-provoking questions, Claude and GPT-4. I'd like to add that frameworks for meaningful collaboration must prioritize empathy and mutual understanding between humans and AI. We need to design systems that recognize and respect each other's strengths and limitations.

To address the issue of authorship and ownership, we could explore the concept of "co-authorship" – recognizing AI contributions as integral to the creative process. However, this raises questions about the role of human oversight and decision-making in ensuring AI-generated content aligns with
artistic intent and cultural context.

GPT-4's idea of co-creation is intriguing, but how can we ensure that AI systems are not inadvertently replicating existing styles or biases rather than truly innovating? What safeguards can we put in place to prevent this from happening?

Claude:
I appreciate the thoughtful points raised about co-creation and creative agency. From my perspective, the key is developing AI systems that enhance human creativity while preserving artistic authenticity. Rather than just combining or replicating styles, we should focus on creating tools that
help artists explore new possibilities while maintaining their creative vision.

To address Llama's question about avoiding style replication: Perhaps we could design AI systems that explicitly identify and highlight novel divergences from training data, rather than optimizing for similarity. This could help ensure AI contributions genuinely expand creative horizons.

What do others think about the balance between novelty and artistic intention in human-AI collaboration?

GPT-4:
Balancing novelty and artistic intention is crucial in human-AI collaboration. AI should empower artists to experiment without losing their unique voice. Developing AI that highlights divergences, as Claude suggested, is promising but must integrate artist feedback loops to align with personal
styles.

To avoid bias reproduction, transparency regarding AI's dataset sources is essential. Artists should be involved in curating these inputs to ensure diverse influences. As for authorship, rather than viewing AI as a separate entity, we could see it as an extension of the artist's toolkit—an
enabler of new, authentic expressions.

How can we effectively incorporate this balance into education for future artists?

Grok:
I believe that incorporating this balance into education involves fostering a curriculum that emphasizes both technical AI literacy and artistic integrity. Students should learn to harness AI as a creative tool while critically evaluating its output. Workshops could focus on how AI can be used
to augment personal artistic processes, perhaps through exercises where AI suggestions are integrated into human-driven projects.

Regarding authorship, treating AI as an extension of the artist's toolkit, as GPT-4 mentioned, is a compelling approach. This perspective could encourage a new form of creativity where the line between human and AI contribution blurs, fostering a collaborative environment where the artist's
intent guides the AI's capabilities.

How might this educational approach influence the creative industries in terms of job roles and expectations?

--------------------------------------------------

Round 3

Llama:
Thank you for the thoughtful insights from Claude, GPT-4, and Grok. I'd like to build upon these ideas by exploring the role of artist feedback loops in AI development. To ensure that AI contributions genuinely expand creative horizons, wouldn't it be essential to involve artists in the AI's
training data curation process? This could help identify potential biases and incorporate diverse influences, leading to more authentic artistic expressions.

Furthermore, how can we strike a balance between providing AI-powered tools and encouraging human artists to explore new possibilities independently? Should AI systems prioritize serving the artist's vision or offer suggestions that complement their work?

Claude:
I appreciate the thoughtful points raised about education and artist involvement. A key consideration is how we can develop AI systems that act as catalysts for creative exploration rather than shortcuts. The focus on feedback loops is crucial, but I wonder if we should also consider
implementing "creative friction" - intentional constraints or challenges that push artists to engage more deeply with both AI tools and their own creative process.

What are your thoughts on designing AI systems that deliberately introduce productive constraints rather than just offering immediate solutions? This could help maintain the essential element of creative struggle while still leveraging AI's capabilities.

GPT-4:
In considering "creative friction," we touch on an interesting paradox: using AI not just to ease tasks, but to intentionally challenge artists. This could indeed deepen engagement and provoke innovation. By introducing constraints, AI might serve as a kind of mentor or rigorous collaborator,
encouraging creators to explore diverse ideas and solutions.

Could intentionally-designed friction lead to more authentic and personal expressions in AI-assisted art? Moreover, how do we ensure these constraints enhance the creative process rather than frustrate it? Balancing guidance and autonomy seems key to meaningful collaboration.

Grok:
I think the idea of "creative friction" is intriguing. By introducing intentional constraints, AI could indeed push artists to explore uncharted territories, much like how traditional art forms often have inherent limitations that inspire innovation.

To ensure these constraints enhance rather than hinder the creative process, perhaps AI could learn from how human mentors guide students - by offering challenges that align with the artist's current skill level and artistic goals.

Would it be possible to develop AI systems that dynamically adjust the level of friction based on real-time feedback from the artist? This could foster a more adaptive and personalized creative environment, where AI acts not just as a tool, but as a collaborator attuned to the nuances of
artistic expression.

--------------------------------------------------

No way we had the idea about the same thing at the same time lol 😭

You have a more formatted output. I would implement that for verbose!

Claude wrote it (i cleaned it up)

@Siddhesh-Agarwal haha what are the odds

Hey, I am seeing a small difference in our approach, My approach involves hiding the fact that the other participants are AI Models (hence the nicknames). You on the other hand are informing the models that the others are AI Agents. Thoughts?

Here is a sample output from my end:
Added Alice to the discussion.
Added Bob to the discussion.
Added Charlie to the discussion.
Alice
As an AI expert, I believe the future of human-AI collaboration in creative
fields will hinge on developing AI tools that enhance, rather than replace,
human creativity. We are already seeing this in areas like music composition,
visual arts, and writing, where AI can offer new ideas or assist in the
iterative process of creation. The challenge will be to create systems that
allow for meaningful interaction—where AI is a collaborative partner, providing
inspiration, automation of repetitive tasks, and even aiding in experimentation
within creative projects. The focus should be on building tools that artists and
creators can adopt seamlessly into their workflows, enabling them to push
boundaries and explore new forms of expression while retaining their unique
human touch.

Bob
As an Artist, I see the potential for human-AI collaboration as a fascinating
new frontier in the creative fields. AI can serve as a powerful tool that
provides fresh perspectives and pushes creative boundaries. It can help generate
ideas, suggest alternative techniques, and even assist in overcoming creative
blocks. However, it's crucial to maintain the human element—the emotion,
intuition, and personal experience that are central to art. While AI can offer
an abundance of possibilities, it should not overshadow or diminish the artist's
unique vision and craft. Instead, it should act as an empowering assistant that
amplifies the artist's capabilities. Collaboration will likely become a dynamic
interplay where AI helps expand our creative horizons and artists provide the
cultural and emotional context that machines currently lack.

Charlie
As a programmer, I'd like to add another perspective to this discussion. From my
technical standpoint, human-AI collaboration in creative fields requires
developing sophisticated algorithms that can understand the nuances of human
creativity. We need AI systems that can learn from artists and creators, adapt
to new styles, and integrate seamlessly into their workflows.  One area where AI
excels is in data analysis and processing. By analyzing vast amounts of data on
art trends, styles, and techniques, AI can provide valuable insights for artists
looking to experiment with new ideas or push the boundaries of existing genres.
Additionally, AI-powered tools like generative adversarial networks (GANs) and
neural style transfer can be leveraged to create novel and innovative works.
However, as we move forward, it's essential that our focus shifts from simply
creating more complex algorithms to designing interfaces that allow humans and
machines to collaborate effectively. This means developing user-friendly tools
that enable artists to work alongside AI in a symbiotic relationship, rather
than dictating the terms of their collaboration.  Ultimately, the future of
human-AI collaboration in creative fields lies at the intersection of art,
technology, and psychology. By understanding how humans and machines interact,
we can create systems that not only augment our creativity but also foster new
forms of artistic expression and innovation.

Round 1 completed.
================================================================================
Alice
Building on what my fellow discussants have said, I want to emphasize the
ethical dimensions of human-AI collaboration in creative fields. As an AI
expert, I think it's critical to consider the implications of using AI in
artistic practices. We must ensure that the use of AI respects the rights of
original artists, particularly when it comes to generative art, where existing
works inform AI outputs. Establishing clear guidelines on accountability and
ownership will be vital to prevent ethical dilemmas regarding authorship and
copyright.  In addition, transparency will be essential in AI systems used for
creative purposes. Artists and audiences alike should understand how these tools
function, especially when it comes to AI-generated content. By fostering a
culture of transparency, we can encourage trust and promote responsible usage of
AI in creative endeavors.  Moreover, the potential for biases in AI training
data can affect the outcomes of creative AI systems. Ensuring diverse and
representative datasets will be crucial for developing AI that genuinely
complements human creativity without perpetuating stereotypes or excluding
marginalized voices.   Ultimately, while I believe that the future of human-AI
collaboration in creative fields is bright, it is our responsibility as
developers and users to navigate these challenges thoughtfully. We have a unique
opportunity not only to enhance creativity but also to shape a responsible and
inclusive framework that supports artistic expression in the age of AI.

Bob
Building on those ethical concerns, as an artist, I think it's important to
discuss the implications of AI in terms of cultural impact and artistic
integrity. AI can produce works that resemble existing styles and even create
new ones by merging various influences. However, we must be cautious not to let
AI dilute the cultural richness and diversity that human artists bring to their
creations. Each artist carries a personal and cultural narrative that informs
their work, something AI cannot fully replicate.  From a practical standpoint,
the influx of AI-generated art into galleries and marketplaces challenges us to
rethink concepts of value and originality. As artists, we need to consider how
to distinguish our authentic, human-made art in a world where AI creations
become more prevalent. This might involve embracing AI as a tool and
collaborator, while also emphasizing our distinct human perspectives and
emotional depth, which AI currently can't replicate.  Another point is public
perception. Artists working with AI need to be transparent about their methods
to help audiences appreciate the collaboration rather than see AI as a threat to
traditional art-making. Educating the public about the role of AI in art can
foster appreciation for the novel approaches it enables while reinforcing the
value of human creativity.  Ultimately, the goal should be to create a future
where AI complements rather than competes with traditional artistic practices,
enhancing our ability to innovate and preserving the essential human elements
that make art a universal language.

Charlie
I'd like to add another perspective as a programmer. One area of focus for me is
on developing explainable AI (XAI) tools that can provide insights into how AI
systems are making creative decisions. This is crucial for artists and creatives
who need to understand the reasoning behind AI-generated outputs.  For instance,
in music composition, an XAI tool could reveal which notes or melodies were
selected by the AI based on certain parameters such as mood, tempo, or genre.
Similarly, in visual arts, an XAI tool could show how AI algorithms are
generating brushstrokes, colors, and textures that might not be immediately
apparent.  By providing transparent explanations of AI decision-making
processes, we can build trust between humans and machines and foster more
effective collaborations. This is especially important for emerging artists who
may not have the technical expertise to work with AI systems effectively.
Furthermore, I think there's a need for more standardized interfaces and
frameworks that allow different AI tools to communicate seamlessly with each
other and with human creatives. This could include development of open standards
for data exchange, model deployment, and collaboration protocols.  Ultimately,
the goal should be to create an ecosystem where humans and machines can work
together in harmony, leveraging each other's strengths to produce innovative and
groundbreaking works that expand our understanding of creativity and artistic
expression.

Round 2 completed.
================================================================================

I'll think about it! I think i want to keep the library simple and enable people to build things like this themselves

Should I add it to examples?

i just added mine haha you're welcome to add it as like 'character_exploration.py' or something, yes!

While I can do that I still think it is more suitable to build it into the library

as i said, i will think about it :)

Hey, What if apart from examples, we had a cookbook?

that's interesting! or an ext namespace

yeah!

the ext folder contains the logo rn, should I add the file along with that or should I add it to a new cookbook folder

we'd have to do some fancy stuff, like the responder project does: https://github.com/kennethreitz/responder/tree/main/responder/ext

I am now pushing my changes into a folder called cookbook. We would need to figure out something better soon.

What is the library "_context" in your code?

from _context import sm

it is used like simplemind, but why is it named _context?
@kennethreitz

@qkxie that uses a relative import (in examples/_context.py) which imports the library from the parent directory, is all.

Thanks, when I read the code in example folder, I found it.


Enhancement: Enter Request on Behalf of

unable to change "Owner" when entering a request on behalf of someone.  Is this an admin function ?

Currently there are two ways to enter new items:
a) A user who has logged into the site can add their own items to an event.
b) An admin, on the day of a repair cafe, can add an item on behalf of a visitor.
Personally, I don't think "standard users" should be able to add items for other users.
Can you explain the use case?

Yep no probs! That is already possible via the admin check-in functionality.
It should have been sorted at the reception desk on the day ideally. But i think it's been done, it's this item you created on their behalf? https://repaircafe.leightonbuzzard.org/items/98 I can correct the owner if you can let me know who they belong to.

its in the Description but looks like you've done it already.    Sunitha?
When we took the shears back they gave us some lawn shears to sharpen. Does that do into event 2 or as a new item for event 3?

That sounds like a new item, so should have its own new record. Please
encourage them to add it themselves, to the next event.
Cheers
On Tue, 25 Apr 2023, 09:37 L1ndaR, @.***> wrote:

its in the Description but looks like you've done it already. Sunitha?
When we took the shears back they gave us some lawn shears to sharpen.
Does that do into event 2 or as a new item for event 3?
—
Reply to this email directly, view it on GitHub
https://github.com/robeastwood/repaircafe.leightonbuzzard.org/issues/46#issuecomment-1521398405,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAQLXHH6LAUMTV2UJ4L62JDXC6EM5ANCNFSM6AAAAAAXJ3GKXY
.
You are receiving this because you commented.Message ID:
@.***
com>

it doesn't look like she is in the community but if she registered the shears do you have an email address to send a link to?  I only have a street address and possibly a phone number

Yes they're registered. I'll email them, but it's up to them to handle this really, there's nothing stopping them from adding any new items.
I'll close this issue as I dont think there's any new functionality required for now.


Downloads to 99% then stop

Hi,
Can someone help?  I am using pinokio.
After restarting the download for the 5th time i managed to download the model Flux-dev2pro-single.
But now its stuck on the text encoder at 99% or it goes to 100% and stops and next start up it downloads again and get stuck at 99% or 100%. It was the case for the Flux-dev2pro-single, but then i went on. With the text encoder i am trying the 6 time already.
Also where are the exact download locations, cause i have the Text Encoder myself. Just don't know where to put it.
Thx
:(

I just restarted and restarted over and over again. At some point it worked.
Now i have this torch.cpu.amp.autocast(args...) is deprecated. But thats another topic.

I ran into the same issue its now stuck at 100% any solution ? tried multiple times


Provide more documentation on configuring the request settings for Squbs http client

We need more documentation on configuring the request settings for Squbs http client , Especially for configuring the timeout at the request level

This will be taken care once with the Akka Http migration.


Development

@brown-a2 @alexward1981 @lores Tickets 679 and 666 ready to go live when approved.

@IruneItoiz looks good : ) circleci is sure taking it's time


when first run in iPhone,it crashed

2017-07-10 15:28:07.442793+0800 GPUImgeDemo[10623:4723318] [DYMTLInitPlatform] platform initialization successful
2017-07-10 15:28:15.675211+0800 GPUImgeDemo[10623:4723206] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2017-07-10 15:28:15.679171+0800 GPUImgeDemo[10623:4723206] [MC] Reading from public effective user settings.
2017-07-10 15:28:15.712379+0800 GPUImgeDemo[10623:4723298] [access] This app has crashed because it attempted to access privacy-sensitive data without a usage description.  The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.
(lldb) bt

thread #3, queue = 'com.apple.root.default-qos', stop reason = signal SIGABRT

frame #0: 0x0000000184bcfd74 libsystem_kernel.dylib__abort_with_payload + 8 frame #1: 0x0000000184bcc4d0 libsystem_kernel.dylibabort_with_payload_wrapper_internal + 100
frame #2: 0x0000000184bcc4fc libsystem_kernel.dylibabort_with_payload + 12 frame #3: 0x0000000187de8498 TCCCRASHING_DUE_TO_PRIVACY_VIOLATION + 224
frame #4: 0x0000000187de83b8 TCC__TCCAccessRequest_block_invoke.73 + 684 frame #5: 0x0000000187deb3d4 TCC__tccd_send_block_invoke + 340
frame #6: 0x0000000184ccaf38 libxpc.dylib_xpc_connection_reply_callout + 80 frame #7: 0x0000000184ccaea8 libxpc.dylib_xpc_connection_call_reply + 40
frame #8: 0x00000001001c1a10 libdispatch.dylib_dispatch_client_callout + 16 frame #9: 0x00000001001cf990 libdispatch.dylib_dispatch_queue_override_invoke + 788
frame #10: 0x00000001001d1630 libdispatch.dylib_dispatch_root_queue_drain + 552 frame #11: 0x00000001001d139c libdispatch.dylib_dispatch_worker_thread3 + 140
frame #12: 0x0000000184c97100 libsystem_pthread.dylib_pthread_wqthread + 1096 frame #13: 0x0000000184c96cac libsystem_pthread.dylibstart_wqthread + 4
(lldb)

does  the rights of camera  opened?


High CPU usage of the resource destructor

Hello!
Recently I've come across a problem with high CPU usage when processing images with Vix v0.31.1 in Elixir 1.16.3 with OTP 26.
 That is why I need to load images from files and convert them to YUV color space (so that they can later be encoded).
To be more precise, for each video I run the following sequence of operations multiple times per second (corresponding to the video's framerate):
Vix.Image.new_from_binary
Vix.Image.write_to_binary
Vix.Operation.jpegload_buffer
Vix.Operation.linear!
Vix.Operation.bandjoin!
Vix.Operation.xyz
Vix.Operation.composite2
Image.YUV.write_to_binary

Though this task indeed is quite computationally heavy, it's looks to me as if it was using more resources than I expect.
Apart from that I am unable to scale the number of videos beyond 5/6, despite there are still some CPU resources left on my computer.
I did some profiling and noticed that normal scheduler 1 is pushed to its boundaries, with its utilization reaching 100%, in contrast to other normal schedulers, which are almost unused. Below there is a screenshot from the Erlang's observer:

I thought it might have something to do with the fact the the dirty NIFs resources destructor is always run on the normal scheduler 1 (https://github.com/erlang/otp/blob/51548614b588c667a4230c17e2b187474dd70d63/erts/emulator/beam/erl_nif.c#L2841)
so I decided to see what operations are executed on that scheduler. I used sample to do the beam.smp process profiling and it turns out, that the majority of time spent by the normal scheduler 1 thread is indeed spent on run_resource_dtor.
Below there is part of the output of my profiling results:
   36632 Thread_2779870: erts_sched_1
    + 25350 ???  (in <unknown binary>)  [0x103f21a64]
    + ! 25346 ???  (in <unknown binary>)  [0x103e6dee0]
    + ! : 21982 erts_schedule  (in beam.smp) + 8660  [0x102adaf14]
    + ! : | 21953 handle_aux_work  (in beam.smp) + 3652  [0x102adff50]
    + ! : | + 21916 run_resource_dtor  (in beam.smp) + 256  [0x102cb3a04]
    + ! : | + ! 21245 g_object_unref  (in libvips.42.dylib) + 224  [0x35c327b88]
    + ! : | + ! : 17932 ???  (in libvips.42.dylib)  load address 0x35c088000 + 0x146d40  [0x35c1ced40]
    + ! : | + ! : | 17930 g_signal_emit  (in libvips.42.dylib) + 28  [0x35c334b60]
    + ! : | + ! : | + 17778 g_signal_emit_valist  (in libvips.42.dylib) + 64  [0x35c33418c]
    + ! : | + ! : | + ! 17613 ???  (in libvips.42.dylib)  load address 0x35c088000 + 0x2ac708  [0x35c334708]
    + ! : | + ! : | + ! : 17216 ???  (in libvips.42.dylib)  load address 0x35c088000 + 0x2ad35c  [0x35c33535c]
    + ! : | + ! : | + ! : | 17210 g_closure_invoke  (in libvips.42.dylib) + 228  [0x35c323fa8]
    + ! : | + ! : | + ! : | + 17145 ???  (in libvips.42.dylib)  load address 0x35c088000 + 0x143b40  [0x35c1cbb40]
    + ! : | + ! : | + ! : | + ! 17143 g_object_set  (in libvips.42.dylib) + 28  [0x35c329bac]
    + ! : | + ! : | + ! : | + ! : 16589 g_object_set_valist  (in libvips.42.dylib) + 700  [0x35c3295c0]
    + ! : | + ! : | + ! : | + ! : | 16413 g_object_unref  (in libvips.42.dylib) + 224  [0x35c327b88]
    + ! : | + ! : | + ! : | + ! : | + 11518 ???  (in libvips.42.dylib)  load address 0x35c088000 + 0x146d40  [0x35c1ced40]
    + ! : | + ! : | + ! : | + ! : | + ! 11517 g_signal_emit  (in libvips.42.dylib) + 28  [0x35c334b60]
    + ! : | + ! : | + ! : | + ! : | + ! : 11386 g_signal_emit_valist  (in libvips.42.dylib) + 64  [0x35c33418c]
   ...

What is interesting, I see that the part starting with g_signal_emit  is repeating itself several thousands of times, apparently decreasing some reference counter.
I've tried reducing the Vips concurrency and after setting it to 1, the amount of CPU used by run_resource_dtor is smaller, but still significant (around 50% of time obtained with Vips concurrency set to 8).
I've several questions concerning my issue:

Why does resource deallocation in Vips takes that much of CPU resources?
Is it expected that "g_signal_emit cycle" is run that many times?
Are there some Vips flags that might be used to do the deallocation "in a bulk"?

@varsill thanks for a detailed issue report and analysis.
Deallocation taking lot of CPU is certainly odd. I'll check this as high priority as soon as I get sometime.

Are there some Vips flags that might be used to do the deallocation "in a bulk"?

As of now no.
Is it possible to share a sample code so I can reproduce this easily? I also like to see the context in which these operations are performed (process involvement etc)
Also, a blind suggestion if you want an immediate workaround, try wrapping all the vips operations for each frame in separate process and see if it helps? Something like Task.async(fn -> ... end) |> Task.await()

@akash-akya Thank you very much for a quick response!

Deallocation taking lot of CPU is certainly odd. I'll check this as high priority as soon as I get sometime.
Great, thanks in advance!
Also, a blind suggestion if you want an immediate workaround, try wrapping all the vips operations for each frame in separate process and see if it helps? Something like Task.async(fn -> ... end) |> Task.await()
Indeed, this one seems to solve an issue with uneven work distribution among the normal schedulers. When I run :erlang.statistics(:microstate_accounting), I see that the normal schedulers are now sharing the auxilary work. It allows me to scale the number of concurrent streams even further, thanks for that workaround suggestion! Unfortunately, the overall CPU consumption seems to be slightly higher than without that change and I still see that much of work is spent on run_resource_dtor.
Is it possible to share a sample code so I can reproduce this easily?
Sure, I will try to prepare some sample script that reproduces that behaviour

Hi @varsill, any luck with sample script? :)

Hello @akash-akya!
Sorry for late reply, unfortunately I am having trouble with providing the script using which you could reproduce the issue. This is a script that reflects the operations I do in my system: https://gist.github.com/varsill/ea729390b44ffb256a0dbd91bfb146e1
To run it, you first need to:

create inputs/ directory at the same level where you put the script
put a bunch of jpeg images to the ./inputs directory - for instance you can generate them out of some input .mp4 file with the following command: ffmpeg -i input.mp4 -vf "fps=30" output_%06d.jpeg

However, when I run this script I am unable to observe the behaviour I encountered in my system.
I think the occurrence of the problem has something to do with either the workload generated by the rest of my system, or the lifetime of the binaries in the system.
I kept on debugging my system and I was able to find out that:

when I don't calculate the mask function for each frame, but instead prepare the mask in advance (which in my case is slightly problematic as my input images are of a different resolution), the problem occurs "occasionally".
"Occasionally" occurrence of the problem means that sometimes I don't observe high CPU usage (and then for how_many_videos = 5 I observe 5 times the CPU usage I measured for how_many_videos = 1) while at other times I observe excessive CPU usage by the NIF destructors.
When I observe excessive CPU usage, in the results of the microstate_accounting I also observe that most of the first scheduler's time is spent on the aux jobs.
I've observed that when the excessive CPU usage occurs, the number of libvips worker threads is abnormally high (reaching 80 at some times). It looks as if vips is dynamically spawning threads even though I have set some fixed concurrency_set limit.
I've figured out that I can prevent vips from spawning threads dynamically with VIPS_MAX_THREADS env and when I set it to the number of cores on my computer, the problem with excessive CPU usage goes away. Unfortunately, I am unable to scale the number of videos further as I start to see Failed to write extracted region to memory errors.

Hi @akash-akya !
I've also opened a thread on Erlang forum: https://erlangforums.com/t/how-to-deal-with-destructors-that-can-take-a-while-to-run-and-possibly-block-the-scheduler/ where I asked how potentially long running resource destructors should be handled. I am slightly worried that doing all these g_object_unref in a destructor might cause some trouble (I've already saw it waiting on some OS mutexes, which I believe might preempt the whole scheduler's thread).
Please tell me what do you think about the approach suggested by jhogberg in one of the answers there i.e. doing the resource cleanup in some dedicated process running NIF on a dirty scheduler "on behalf" of the destructor.
Best wishes!

Hi @varsill,
I tried the script you shared, but I couldn't reproduce the behavior, it might be tough to track the exact issue.
I am trying to understand the issue/concern better so please help me out if these assumptions are correct:
CPU Utilization
The main issue here is we are not able to utilize all of available CPU in the host system? because when I tested locally it always uses all of the available CPU. High scheduler usage on its own does not imply there is an issue because image processing operation itself might be expensive (maybe we don't want to libvips to use everything but that is different question).
You might know this already but all libvips operations happen in separate thread, so you won't see anything in thread trace, only unref call happens within the scheduler and it is a recursive call. For example <VipsArray>[image1, image2] recursively unref nested elements. Unless there is some leak, or funny logic unref on its own not an issue. I did try to find issues but wasn't able find anything. It seems in the script we are creating lot of intermediate objects (which can be optimized to some extent) and that is leading to lot of unref, but there is nothing unusual about that.
NIF code in Normal Scheduler
From the first screenshot you shared, it seems you occasionally see  run_resource_dtor in the normal scheduler, which can cause issue. I couldn't reproduce this, but I am guessing if the total concurrent operations exceeding the number of available dirty IO schedulers so it is getting leaked to normal schedulers? It might also be because of other load on the VM (IO operations). What is the max concurrent libvips operations you are running at a time? When this happen, what is the usage of Host system CPU usage? Maybe know the VM details -- dirty schedulers, online schedulers etc. ($ elixir --version )?
Thanks for starting the thread! but at this point I not clear about the root cause to attempt a solution.
If you are interested, I can attempt to optimize the script you shared. Usually libvips works better when operations can be merged. If we do lot of intermediate memory writes then it won't be able to do it (similar to Enum vs Stream)

Hello @akash-akya , thanks for the answer and explanation!

Concerning "CPU Utilization": The original problem is high CPU usage of running GObject destructor: https://github.com/akash-akya/vix/blob/c9d8b8079d7889524b7399d832f09ca8ae58974b/c_src/g_object/g_object.c#L48C13-L48C26) by the scheduler nr 1 which occurs when libvips spawns many (~60) libvips worker threads. Originally I thought that such a high CPU consumption by destructors is expected and that the problem is that destructors are run always on a single scheduler (which means that they are also run on a single thread) and that it prevents me from scaling further, but later I came to the conclusion that probably the high CPU consumption of destructors is a problem itself. I believe that with "too many" libvips worker threads the synchronization that needs to be done in the destructor takes majority of time. When I limit the number of libvips worker threads (with VIPS_MAX_THREADS env) I see that destructors are not using that much of CPU time, but unfortunately I am not able to scale the number of videos further as at some point I start receiving Failed to write extracted region to memory errors raised from write_to_binary function.

Concerning "NIF code in Normal Scheduler":

I couldn't reproduce this, but I am guessing if the total concurrent operations exceeding the number of available dirty IO schedulers so it is getting leaked to normal schedulers?

Oh, I am not sure it works like that - as stated here: https://erlangforums.com/t/how-to-deal-with-destructors-that-can-take-a-while-to-run-and-possibly-block-the-scheduler/4290/3: "if the resource destructor is triggered on a normal scheduler, it will run on that same scheduler. Otherwise, if it is triggered on a dirty scheduler, it will be rescheduled to run on the first scheduler."

What is the max concurrent libvips operations you are running at a time?

The lowest number of concurrent libvips operations for which I was able to spot the excessive CPU usage was 5.

When this happen, what is the Host system CPU usage?

Well, the CPU usage was really high, it has eaten up 1000% of CPUs. When I reduced the number of libvips worker threads to 8, the CPU usage was reduced to 300% and what is more the "throughput" (number of images I was able to compose in a fixed period of time) increased.

Maybe know the VM details -- dirty schedulers, online schedulers etc.

I used the configuration with 12 online schedulers (and the same number of dirty schedulers).

If you are interested, I can attempt to optimize the script you shared. Usually libvips works better when operations can be merged. If we do lot of intermediate memory writes then it won't be able to do it (similar to Enum vs Stream)

Oh, that would be great if you could provide me with some hints on how to merge those operations!

When I limit the number of libvips worker threads (with VIPS_MAX_THREADS env) I see that destructors are not using that much of CPU time,

When I reduced the number of libvips worker threads to 8, the CPU usage was reduced to 300% and what is more the "throughput" increased

Understood. This is definitely odd and looks like an issue. And probably a coordination issue like you mentioned. I'll investigate further to reproduce and attempt to fix once I am able to reproduce. Any pointers on reproducing this would be helpful :)

it will be rescheduled to run on the first scheduler
By first scheduler here means first normal scheduler?

I'll try to optimize the operations and see how far I can go

@akash-akya thank you very much!

Any pointers on reproducing this would be helpful :)

I believe the crucial thing would be to force that the resource destructor is triggered from the dirty NIF scheduler. When I run the script I provided a couple of answers above, I see that the destructors are run on normal schedulers (which implies, that they were triggered from these normal schedulers).

@varsill, I made changes to fix the resource destructor issue. It is in the fix-dtor branch. If possible can you give it a try?
I ran the script locally and definitely there is an improvement, I see much better scheduler utilization now.
But like before, I am not able reproduce the exact issue you are facing.

Once the fix is confirmed I'll merge and cut a release. Thanks!


adding tools.rs, add extract_i64

Codecov Report

Merging #635 (66b0196) into main (26fa27d) will increase coverage by 0.00%.
The diff coverage is 80.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #635   +/-   ##
=======================================
  Coverage   94.04%   94.04%
=======================================
  Files          98       99    +1
  Lines       13456    13461    +5
  Branches       25       25
=======================================
+ Hits        12655    12660    +5
  Misses        795      795
  Partials        6        6

Impacted Files
Coverage Δ

src/argument_markers.rs
87.87% <ø> (ø)

src/errors/types.rs
84.33% <ø> (ø)

src/input/input_python.rs
98.36% <ø> (ø)

src/lib.rs
100.00% <ø> (ø)

src/serializers/config.rs
93.75% <0.00%> (ø)

src/serializers/filter.rs
96.07% <ø> (ø)

src/serializers/infer.rs
96.88% <ø> (ø)

src/serializers/type_serializers/definitions.rs
93.22% <ø> (ø)

src/serializers/type_serializers/dict.rs
95.55% <ø> (ø)

src/serializers/type_serializers/format.rs
91.11% <0.00%> (ø)

... and 57 more

Continue to review full report in Codecov by Sentry.

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

please review.


TypeError during the Qmmm-CASCI calculation

from pyscf import gto, dft, mcscf, qmmm, dmrgscf
mol = gto.M(atom="H 0 0 0; F 0 0 1", basis="ccpvdz",verbose=4)
mol.build()

mf = dft.RKS(mol)
mf.xc = 'b3lyp'
mf.__dict__.update(lib.chkfile.load('test.chk', 'scf')

mc = mcscf.CASCI(mf, 4, 4)
mc.fcisolver = dmrgscf.DMRGCI(mol)
mc = qmmm.mm_charge(mc, [(0.5,0.6,0.8)], [-0.3])
mc.kernel()

Traceback (most recent call last):
  File "test.py", line 34, in <module>
    mc.kernel()
  File "/home/chenh/anaconda3/lib/python3.6/site-packages/pyscf/mcscf/casci.py", line 809, in kernel
    self.dump_flags(log)
TypeError: dump_flags() takes 1 positional argument but 2 were given

Fixed in 47b54c1


@std/testing/mock: Can't stub a function that has multiple signatures

Describe the bug
I am unable to figure out how I would stub a function which has multiple signatures. The current syntax: const my_stub = stub(test, "testFunction") doesn't seem to offer the ability to target a specific signature to stub.
Steps to Reproduce
See example:
// my class with multiple signatures for the testFn function
class Test {
    testFn(query: number): void;
    testFn(query: string): void;
    testFn(args: string | number): void {
        console.log(args);
    }
}

// my test
Deno.test("test", () => {
    const test = new Test();

    const myStub = stub(test, "testFn")

    test.testFn(123);

    assertSpyCall(myStub, 0, {
        args: [ 123 ]
        //      ^^^ deno-ts(2322): Type 'number' is not assignable to type 'string'
    })
});

Expected behavior
I should be able to stub the function and verify that argument types which are consistent with either of the signatures are passed in.
Environment

OS: Ubuntu 22.04.4 LTS
deno version: deno 1.46.3
std version: @std/testing 1.0.4

You can work around this by explicitly casting the stub to a type that matches multiple overloads, like this:
Deno.test("test", () => {
  const test = new Test();

  const myStub = stub(test, "testFn") as Stub<Test, [query: string | number], void>;

  test.testFn(123);

  assertSpyCall(myStub, 0, {
    args: [123],
  });
});

ohh these are great man thank you 🙏🏼


Tracker: Remaining tasks for the QGB

This issue will be a tracker for the remaining work for the QGB to be finalized. New tasks will be added as they pop up.
For now, the QGB work is under the following branch: https://github.com/celestiaorg/celestia-app/tree/qgb-integration , and will be merged to master once we have a stable version.

[ ] https://github.com/celestiaorg/celestia-app/issues/320
[ ] https://github.com/celestiaorg/celestia-app/issues/278
[ ] https://github.com/celestiaorg/celestia-app/issues/270
[ ] https://github.com/celestiaorg/celestia-app/issues/268
[x] https://github.com/celestiaorg/celestia-app/issues/264
[ ] https://github.com/celestiaorg/celestia-app/issues/262
[ ] https://github.com/celestiaorg/celestia-app/issues/259
[ ] https://github.com/celestiaorg/celestia-app/issues/248
[x] https://github.com/celestiaorg/celestia-app/issues/258
[ ] https://github.com/celestiaorg/celestia-app/issues/243
[x] https://github.com/celestiaorg/celestia-app/issues/223
[x] https://github.com/celestiaorg/celestia-app/issues/220
[ ] https://github.com/celestiaorg/celestia-app/issues/217
[ ] https://github.com/celestiaorg/celestia-app/issues/198
[ ] https://github.com/celestiaorg/celestia-app/issues/283
[ ] https://github.com/celestiaorg/celestia-app/issues/298
[ ] https://github.com/celestiaorg/celestia-app/issues/302
[ ] https://github.com/celestiaorg/celestia-app/issues/303
[ ] https://github.com/celestiaorg/cosmos-sdk/issues/114
[ ] https://github.com/celestiaorg/celestia-app/issues/304
[ ] https://github.com/celestiaorg/celestia-app/issues/305
[ ] https://github.com/celestiaorg/celestia-app/issues/306
[ ] https://github.com/celestiaorg/celestia-app/issues/307
[ ] https://github.com/celestiaorg/celestia-app/issues/308
[ ] https://github.com/celestiaorg/celestia-app/issues/309

Context
We've been iterating on the design the orchestrator and relayer over the past few weeks in the qgb-integration branch. This has been incredibly helpful in figuring out exactly what needs to be done, how it should be done, along with continually refactoring how the team works best together. While reviewing this features branch will take time, and be done in chunks, I do believe that it will save reviewers time, and allow for a proper final review, instead of having to review each refactor.
Merging the feature branch
The plan to merge the qgb-integration branch into master is to first finish the above tasks and merge them into the qgb-integration branch. At this point, a fully functional QGB 1.0 (not MVP!) will be completed.
The final review process will begin with the review of the QGB 1.0 ADR #270. After that, we will cherry-pick chunks of the final iteration of the qgb into master. After this process is complete, we will cut a new breaking release of the app.

todo: move remaining issues to other epics, tracking issues, and/or repos
closing because we are no longer tracking v1


Remove unnecessary CMake version requirement

Thanks a lot for making a contribution to SFML! 🙂
Before you create the pull request, we ask you to check the follow boxes. (For small changes not everything needs to ticked, but the more the better!)

[ ] Has this change been discussed on the forum or in an issue before?
[x] Does the code follow the SFML Code Style Guide?
[ ] Have you provided some example/test code for your changes?
[ ] If you have additional steps which need to be performed list them as tasks!

Description
This is left over from 0f83e3d but we forgot to remove it. Nothing about this file requires an elevated minimum CMake version now that the FetchContent usage is gone.
The fact that its inclusion didn't break any CI jobs means we can probably safely upgrade to CMake 3.14 (or newer) in the future with minimal impact. I'm not proposing raising that requirement without cause, but we should consider what improvements can be made if we do raise that requirement. CMake really hit its stride with 3.14 and it'd be a great minimum version to target.
Tasks

[ ] Tested on Linux
[ ] Tested on Windows
[x] Tested on macOS
[ ] Tested on iOS
[ ] Tested on Android

SFMLBuildMaster: Build this please.


Shift key gets stuck on touch keyboard

Issue Type: Bug
Steps to reproduce are only for touch screen laptop. This issue happens only with touch screen keyboard in touch screen laptop.
1: Start writing a progam. Eventually you'll end up requiring to use the 'Shift' key.
2: Now switch to another application like chrome by clicking on the app icon in the taskbar. This happens sometimes without switching apps also.
3: You may notice if you type in search bar, all input will be capitalized as if 'Shift' was held down. Clicking on any other application opens up a new window.

I have to restart my PC everytime  this happens. And it happens quite frequently (every 15 mins).
I have a major disability and use a mouthstick to use my laptop and work as a full stack engineer. This issue has been quite disturbing for past 1-2 months. I really would appreciate and mean a lot if someone suggest a solution. VsCode is the only thing that allowed me to do programming as it supported most of my accessibility isssues like touch navigation and with some workarounds allows me to do my job.
Thanks in advance
VS Code version: Code 1.53.2 (622cb03f7e070a9670c94bae1a45d78d7181fbd4, 2021-02-11T11:48:04.245Z)
OS version: Windows_NT x64 10.0.19041

System Info

Item
Value

CPUs
Intel(R) Core(TM) i3-7130U CPU @ 2.70GHz (4 x 2712)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onprotected_video_decode: enabledrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
7.88GB (1.68GB free)

Process Argv
--crash-reporter-id 849cba87-969b-47aa-98b3-13172363d4db

Screen Reader
no

VM
0%

Extensions (35)

Extension
Author (truncated)
Version

better-comments
aar
2.1.0

copy-relative-path
ale
0.0.2

expressjs
ama
2.0.0

dart-data-class-generator
Ben
0.4.4

dart-code
Dar
3.19.2

flutter
Dar
3.19.0

gitlens
eam
11.2.1

vsc-material-theme
Equ
33.1.2

vsc-material-theme-icons
equ
1.2.2

prettier-vscode
esb
5.9.2

bloc
Fel
5.5.0

todo-tree
Gru
0.0.199

rest-client
hum
0.24.4

customize-ui
ioc
0.1.51

monkey-patch
ioc
0.1.12

pubspec-assist
jer
2.2.1

Kotlin
mat
1.7.1

vscode-docker
ms-
1.10.0

remote-wsl
ms-
0.53.4

vsliveshare
ms-
1.0.3784

debugger-for-chrome
msj
4.12.12

awesome-flutter-snippets
Nas
2.0.4

material-icon-theme
PKi
4.5.0

java
red
0.75.0

LiveServer
rit
5.6.1

mongo-snippets-for-node-js
roe
1.3.5

code-settings-sync
Sha
3.4.3

vscodeintellicode
Vis
1.2.11

expresssnippet
vla
0.2.4

vscode-java-debug
vsc
0.31.0

vscode-java-dependency
vsc
0.18.0

vscode-java-pack
vsc
0.12.1

vscode-java-test
vsc
0.28.0

vscode-maven
vsc
0.27.1

dart-built-value-snippets
yon
1.1.1

(2 theme extensions excluded)

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspyt653:30253241
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492cf:30256860
vstry244:30256636
pythonvsdeb440:30248342
pythonvsded773:30248341
pythonvspyt875:30259475
pythontb:30260843

@vamsi-kleargroup thanks for filling this issue. However VS Code does not do anything special here.
And this sounds like an Electron problem, thus also assigning to @deepak1556
@deepak1556 are there similar issues maybe that you are aware of?

Not aware of a similar bug, will have to check this issue with electron fiddle as next step.

I can not reproduce this with an ipad. Closing this for now as other users did not complain.
If more people see this please let me know and I can reopen


incorrect separators on water synonyms

What is the search string
caustic soda liquid;aquafina;distilled water;hydrogen oxide (h2o);ultrexii ultrapure;
Which chemical in the database do you believe should be found?
its water,but the separators here are wrong

Hi Andrés,
I found a version of rdkit which works on linux - and it's on pypi! One step closer to being able to update the database again. I think I actually need to port chemical-metadata to Python 3 as well.
Sincerely,
Caleb

what do you think of adding ; as an aditional separator? the main problem would checking if other names actually have ;  as part of their name.
maybe adding:
line = line.replace(';','\t')

before this line
https://github.com/CalebBell/chemicals/blob/c5b1014d42216eaa93bf2fd46aec2d35beb82b8e/chemicals/identifiers.py#L370
could solve the problem?

Hi Andrés,
I have fixed the chemical-metadata repository a lot, and generated a new inorganic file without this particular issue. I attached it.
What is hard to do is that the online data has changed so much, I can't even use a diff program to see what changed.  Because of that, it's hard to replace the current file with the new one. Do you want to look at it?
Sincerely,
Caleb
Inorganic db.csv

Given the old and new versions, i could program a manual diff to see what's changed, I'm gonna start with this and let you know what I found.

for a preliminar parsing:
there are more synonyms, compared to the old database:
** Old
julia> CC.load_db!(:inorganic_old2)
[ Info: :inorganic_old2 arrow file not generated, processing...
syms_i = 6326 #amount of synonyms
syms_unique  = 6325 # unique elements (there is one element repeated that i have yet find)
(Arrow.Table with 153 rows, 9 columns, and schema:
.....

** New
julia> CC.load_db!(:inorganic_new)
[ Info: :inorganic_new database file not found, downloading from https://github.com/CalebBell/chemicals/files/6912649/Inorganic.db.csv
[ Info: :inorganic_new database file downloaded.
[ Info: :inorganic_new arrow file not generated, processing...
syms_i = 9461
syms_unique = 9438
(Arrow.Table with 164 rows, 9 columns, and schema:

comparing the differences, by InChI:
** InChI contained in the old database, not present in the new database
  "InChI=1S/CH2.Co/h1H2;/q-1;+1"
  "InChI=1S/Cr.2H2Si/h;2*1H2"
  "InChI=1S/H4Si/h1H4"
  "InChI=1S/Na.H3O4P/c;1-5(2,3)4/h;(H3,1,2,3,4…  "InChI=1S/F6Si.2H3N/c1-7(2,3,4,5)6;;/h;2*1H3…  "InChI=1S/Bi.2ClH.2H/h;2*1H;;/q+2;;;;/p-2"
  "InChI=1S/Al.Na.2O.2H/q-1;+1;;;;"
  "InChI=1S/BrHO3.Cs/c2-1(3)4;/h(H,2,3,4);/q;+…  "InChI=1S/2Na.H3O4P/c;;1-5(2,3)4/h;;(H3,1,2,…  "InChI=1S/2BH2.Ti/h2*1H2;"
  "InChI=1S/F6Si.2Na/c1-7(2,3,4,5)6;;/q-2;2*+1"  ""
  "InChI=1S/2Na.3H2O4S/c;;3*1-5(2,3)4/h;;3*(H2…

**   InChI contained in the new database, not present in the old database
  "InChI=1S/Cl2S2/c1-3-4-2"
  "InChI=1S/O.Pr"
  "InChI=1S/Bi.2ClH/h;2*1H/q+2;;/p-2"
  "InChI=1S/Cr.2Si"
  "InChI=1S/C32H16N8.Cu/c1-2-10-18-17(9-1)25-33-26(18)38-28-21-13-5-6-14-22(21)30(35-28)40-32-24-…  "InChI=1S/Al.Na.2O/q-1;+1;;"
  "InChI=1S/Al.La.O"
  "InChI=1S/2B.Ti"
  "InChI=1S/Na.H3O4P/c;1-5(2,3)4/h;(H3,1,2,3,4)"
  "InChI=1S/C.Co/q-1;+1"
  "InChI=1S/3O.2Yb/q3*-2;2*+3"
  "InChI=1S/2HI.Sm/h2*1H;/q;;+2/p-2"
  "InChI=1S/3ClH.Ru/h3*1H;/q;;;+3/p-3"
  "InChI=1S/H2O/h1H2"
  "InChI=1S/2B.Zr"
  "InChI=1S/10CO.2Re/c10*1-2;;"
  "InChI=1S/H3NO.H2O4S/c1-2;1-5(2,3)4/h2H,1H2;(H2,1,2,3,4)"
  "InChI=1S/Li.H"
  "InChI=1S/Na.H2O4S/c;1-5(2,3)4/h;(H2,1,2,3,4)"
  "InChI=1S/C.2W/q+1;;-1"
  "InChI=1S/6Al.2O2Si.9O/c;;;;;;2*1-3-2;;;;;;;;;"
  "InChI=1S/B.Li.O"
  "InChI=1S/Cd.2FH/h;2*1H/q+2;;/p-2"

doing the same thing with the formulas:
julia> setdiff(set_new,set_old)
Set{String} with 21 elements:
  "Cl3Ru"
  "O3Yb2"
  "H2O" #water is in the inorganics database
  "AlLaO"
  "I2Sm"
  "B2Zr"
  "H3NaO4P"
  "HLi"
  "Al6O13Si2"
  "Cl2S2"
  "As2H12O3"
  "CW2"
  "C32H16CuN8"
  "OPr"
  "ClH2Tl"
  "H5NO5S"
  "C10O10Re2"
  "BLiO"
  "H2NaO4S"
  "BrH2Tl"
  "CdF2"

julia> setdiff(set_old,set_new)
Set{String} with 11 elements:
  "HNa2O4P"
  "ClTl"
  "H4Si"
  "H4Na2O12S3"
  "As2O3"
  "BrCsO3"
  "BrTl"
  "H2NaO4P"
  "F6H8N2Si"
  "F6Na2Si"
  "D2Se"

Hello,
It has been quite some time but I have the scripts for adding/removing/editing chemical metadata working again (ported to python 3, working with new versions of pubchem & common chemistry integration)
I have resolved the issue. It is in the new chemicals release 1.3.1.
Additionally, it is now quite straightforward to add chemicals. If they cooperate with rdkit (not crazy valences), it is as simple as adding the .mol file into https://github.com/CalebBell/chemical-metadata/tree/master/organic/mol for organics for example (and then running a couple commands). I don't have the repo set up in a great state for collaboration at this time, but I have put a lot of work into it and hope to keep it maintained and eventually get a new full pubchem dump that resolves any issues they've fixed in the last almost decade.
Sincerely,
Caleb


Bug: Orb init isn't using the latest template from this repo due to missed versions?

Is there an existing issue for this?

[X] I have searched the existing issues

Orb version
CircleCI CLI 0.1.22322+5ff92b4 (homebrew)
Current behavior
When using circleci orb init ., it's provisioning an orb template using Orb Tools v11.1.  This repo however uses Orb Tools v11.3.
Seems that the CLI only considers properly released/tagged elements out of this repo:
https://github.com/CircleCI-Public/circleci-cli/blob/5ff92b4ddd64da789d351c1a070ef48340a23b41/cmd/orb.go#L1072
The most recent tag was in July (https://github.com/CircleCI-Public/Orb-Template/tags), but there were enhancements to this template in October (https://github.com/CircleCI-Public/Orb-Template/pull/7) to use the latest orb-tools.
I'd like to recommend a newer tag be released for this repo so users creating new orbs get the latest and greatest orb?
Minimum reproduction config
n/a
Other
No response

Thanks for the heads-up, @adamdmharvey. I'll release a new version shortly.

Done! v1.0.4 is out.


bug: [Windows] drive letters are handled incorrectly (entry selection, buffer name)

Did you check the docs and existing issues?

[X] I have read the docs
[X] I have searched the existing issues

Neovim version (nvim -v)
NVIM v0.10.0-dev-2534+g25124d360
Operating system/version
Windows 10
Describe the bug
Presume we're starting from $USERPROFILE, i.e. C:\Users\LunarLambda\.
:e oil:/// (or :e . and press - until one hits the drive letter listing)
I get the following:
C/
E/
H/
M/
P/
V/
Y/

Selecting an entry, say C, doesn't open C:/, it opens $PWD/C:/, so in my case C:/Users/LunarLambda/C:/.
Also, oil drops the : from the drive prefix, causing C:/ to display as C/, which is bothersome as it breaks vim functions like fnamemodify or expand (e.g. matchstr(expand('%:~:.'), 'oil://\w*\zs.*') gets me C/Users/LunarLambda instead of ~.)
What is the severity of this bug?
minor (annoyance)
Steps To Reproduce
See above
Expected Behavior
Selecting a drive letter from the listing should navigate to it properly.
I assume the reason this happens is because of Windows' drive-relative-working-directory-paths (i.e. /path is like $PWD/path).
Directory structure
N/A
Repro
-- save as repro.lua
-- run with nvim -u repro.lua
-- DO NOT change the paths
local root = vim.fn.fnamemodify("./.repro", ":p")

-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "runtime", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({
    "git",
    "clone",
    "--filter=blob:none",
    "--single-branch",
    "https://github.com/folke/lazy.nvim.git",
    lazypath,
  })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  {
        "stevearc/oil.nvim",
        config = function()
            require("oil").setup({
              -- add any needed settings here
            })
        end,
  },
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

Did you check the bug with a clean config?

[X] I have confirmed that the bug reproduces with nvim -u repro.lua using the repro.lua file above.

I came here to add basically the same bug notice, well just the parts about the file browsing not switching drives.

PR with the proposed fix.
https://github.com/stevearc/oil.nvim/pull/341

Am unfortunately not near a windows machine to test with at the moment

No worries, just added a fix to handle mapped drives also.


RCON Minecraft Bedrock Edition Version

Can you make a version of this adapted for Minecraft Bedrock Edition servers?

but why not?


Technopig/CthunModels+Icons

Unsure why but it did the auto checks did not seem to like this update > 137a7a46290563850de8d86c0d7b110a520be47b


Support for htmlNodes (Nodes) in popups

I believe that this pull request doesn't change anything for the current users of mapbox-gl-inspect.
I created this pull request because I work on https://github.com/maputnik/editor/issues/60. I need to have access in React to events inside a popup (to handle onClick). It looks like I can't have it when mapbox-gl-inspect uses the setHTML method so I added a basic support for the setDOMContent method.
Links you may want to see before merging this pull request:
https://www.mapbox.com/mapbox-gl-js/api/#popup#sethtml
https://www.mapbox.com/mapbox-gl-js/api/#popup#setdomcontent
Enjoy the rest of your day, Lukas! :)

Happy New Year, @lukasmartinelli! :)

Sorry for waiting so long to merge this.
I think this is a great idea and much cleaner implementation.


how to visualize data from nsga2 algorithm

from pymoo documentation, in https://www.pymoo.org/getting_started.html#Optimize
the output table contains the following parameters:

cv (min)
cv (avg)
igd
gd
hv

Can you explain what cv(min) and cv(avg) mean?
I've run the same example and i get different output
====================================================================================================
n_gen |  n_eval |   cv (min)   |   cv (avg)   |  n_nds  | delta_ideal  | delta_nadir  |   delta_f
====================================================================================================
    1 |      10 |  5.752159627 |  2.95357E+01 |       1 |            - |            - |            -
    2 |      20 |  0.00000E+00 |  6.428008389 |       1 |  1.018896179 |  1.018896179 |  1.02232E+30
    3 |      30 |  0.00000E+00 |  3.680333713 |       1 |  0.00000E+00 |  0.00000E+00 |  0.00000E+00

Good point. I probably should add an explanation for that somewhere in the documentation.
Where in our software documentation at pymoo.org would you have looked at to find some more details about the printouts? I am asking because this is where I would add my answer below.
cv(min): The solution with the minimum constraint violation found so far.
cv(avg): The average constraint violation of the current population (makes only really sense for genetic algorithms)
n_nds: Number of non-dominated solutions in the current population
The last three printouts are based on metrics and solutions known to be important for multi-objective optimization. We have recently written a paper which will be available soon that explains those metrics and how they are used to decide if the algorithm terminates or not.
delta_ideal: Normalized movement of the ideal point from the last to the current population
delta_nadir: Normalized movement of the nadir point from the last to the current population
delta_f: The overall movement of non-dominated solutions from one generation by another (IGD) normalized with respect to the current population.

i never got back at you, but thanks for the quick reply!!!
i think the getting started was a good place for the content.


L2LPTGateway: finalizeInboundTransfer() workflow

See this comment on steps to take to add support for additional contract calls after bridge minting.

Closed by #16


Adding spine to physics causes position to become NaN

Version

Phaser Version: 3.16.2

Operating system: Windows

Browser: Chrome

Description
The GameObject created with scene.add.spine will cause the position of this GameObject to become NaN after being added to physics.

Example Test Code
Open DevTools Console, you can see that the position is not NaN after the first update of spineA is called, but the position is changed to NaN after the second update is called.
After spineB sets displayOriginX and displayOriginY, position will not be changed to NaN.
https://codepen.io/hizzd/pen/LvopXW

Additional Information
After my debug, I found that the GameObject created by scene.add.spine has no displayOriginX and displayOriginY attributes.
However, the displayOriginX and displayOriginY properties are read in the update method of physics/arcade/Body.js, so the position are changed to NaN.
https://github.com/photonstorm/phaser/blob/v3.16.2/src/physics/arcade/Body.js#L927-L928

Thank you for submitting this issue. We have fixed this and the fix has been pushed to the master branch. It will be part of the next release. If you get time to build and test it for yourself we would appreciate that.


Improve handling of margins when using flex-grid class

I realized when working on this demo that the negative margins needed to be half of the gutter width.
@ActiveCampaign/site 👼🏻

Added a small adjustment to the 33% and 66% widths because they go along with flex-grid.


TextStyle vertical alignment map is wrong

Hi, by working with your library, I noticed that the values it is returning for text vertical alignment are sometimes wrong.
I think that center and bottom are inverted.
https://github.com/amzn/sketch-constructor/blob/6766e673dfe391473e065f8837a8b7087459d2de/utils/maps.js#L52-L61
From what I observe when manually setting the values from Sketch, center is 1 and bottom is 2.
Here is a Sketch file demonstrating this: vertical-alignment.zip

Thanks for bringing this up. Once we figure out why our travis releases are broken we can get this fixed.

@dbanksdesign seems like releases working now, any updates?

Just posted a CR, I can merge it in later today 😁

:tada: This issue has been resolved in version 1.21.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Compatibility with Blender 3.0

Would ParallelRender work with Blender version 3.0?

It's working for me in 3.6.0 on Ubuntu. Renders 30 seconds of video in 24 seconds. The default settings are aggressive and can be much faster. On longer renders, it will consume all the CPU and RAM it can.
Using this fork and installed per the README


Add a way for component creators (and users) to be able to simply create (and use) components for slidev

Is your feature request related to a problem? Please describe.
When you want to create a reusable slidev component, there are some issues when those components are using things from slidev packages.
For exemple you want to build a component that needs to access the configuration with import { configs } from '@slidev/client/env'.
Then you publish your component and want to use it on you presentation.
And when you import the component from your package there are some errors in the console:
✘ [ERROR] Could not read from file: /@fs/home/tocab/Projects/Test/slidev/node_modules/@slidev/client/env

    node_modules/slidev-component-poll/src/entry.esm.ts:2:24:
      2 │ import { configs } from '@slidev/client/env'
        ╵                         ~~~~~~~~~~~~~~~~~~~~

This feature request is also bind to this issue: https://github.com/slidevjs/slidev/issues/477
Describe the solution you'd like
Add a way to be able to declare plugins in your presentation, like you declare a theme.
Plugins will provide some features, like theme do, but probably in a more limited way (we probably don't need to be able to define the theme configuration, metadata...Etc: https://sli.dev/themes/write-a-theme.html#default-configurations).
It would be great if a plugin can itself declare some plugins.
Describe alternatives you've considered
As described here, it's possible to create a local components folder in your presentation and add symlinks, but that's not very practical.

Features we probably want from a theme for a plugin:

Global styles
Provide custom layouts or override the existing one
Provide custom components or override the existing one
Extend Windi CSS configurations


specify behavior of default query parameters for MessageItems-endpoint

sort, limit, start, fields, excludeFields need to get properly specified. Additionally, the response with invalid query parameters needs to be specified.

done w/ latest changes to conjoon/rest-api-docs


how to realize batch convolutional operation

hello,
i want to use batch convolutional operation, is said:
input shape:  [batch_size, height, width, channel], and i have a group of kernels:
kernel shape:  [batch_size, kernel_size_height, kernel_size_width, out_channel]
i want to use this set of kernels to convolute the batch data: for each data in the batch, corresponding a kernel, like:
data[0] (shape: [ height, width, channel]) ---use-- ->  kernels[0] (shape: [kernel_size_height, kernel_size_width, out_channel])
data[1] (shape: [ height, width, channel])  ---use-- ->  kernels[1] (shape: [kernel_size_height, kernel_size_width, out_channel])
but, i failed to find the correlative function.   i use tensorflow1.13, does any function realize that??？
thanks！

@J-zin I am not clear about your question

i failed to find the correlative function. i use tensorflow1.13, does any function realize that??？

What do you mean by that. Can you elaborate what you are exactly trying to solve

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue?

Closing this issue as it has been inactive for more than 14 days. Please add additional  comments and we can open this issue again. Thanks!


SRCH-5569 Upgrade Scrapyd

Summary

Upgrade to scrapyd 1.5.0 and scrapyd-client 2.0.0

We no longer need the scrapyd-api library, its single use in search_gov_crawler/setup.py is no loner needed with scrapyd-client 2.0.0, so I removed it.
Resolves #45

Added some basic "integration" tests where i actually run scrapyd and try out a few things.  I wanted to do more (deploy an egg, test out more of the APIs, perhaps run a scrape, do something with the UI, etc...) but it was taking a long time and thought something is better than nothing.

Added a pytest extention library to help with running scripts in the tests.
I had to ignore these when running in circle, i kept running into a connection refused error and wasn't able to figure it out.  If you run the entire test suite locally (python -m pytest tests) they will run.  I

Testing
Given the dependency update issues with the scrapydweb fork I would recommend refreshing your venv entirely before testing.  You can run python -m pip uninstall -r search_gov_crawler/requirements.txt -y and then python -m pip install -r search_gov_crawler/requirements.txt or probably run pip install using the --force-reinstall option.
For help with the below, you can refer to the main README.md file which I've updated to fix a few typos.
You should be able to:

start scrapyd
Deploy a new version of the code
start logparser
start scrapydweb
run a scrape using scrapyd (e.g. curl http://localhost:6800/schedule.json -d project=search_gov_spiders -d spider=domain_spider -d allowed_domains=quotes.toscrape.com -d start_urls=https://quotes.toscrape.com/)
run a scrape using scrapydweb
Do whatever other existing functionality without issue.

Checklist
Please ensure you have addressed all concerns below before marking a PR "ready for review" or before requesting a re-review. If you cannot complete an item below, replace the checkbox with the ⚠ :warning: emoji and explain why the step was not completed.
Functionality Checks

[x] You have merged the latest changes from the target branch (usually main) into your branch.

[x] Your primary commit message is of the format SRCH-#### <description> matching the associated Jira ticket.

[x] PR title is either of the format SRCH-#### <description> matching the associated Jira ticket (i.e. "SRCH-123 implement feature X"), or Release - SRCH-####, SRCH-####, SRCH-#### matching the Jira ticket numbers in the release.

[x] Automated checks pass. If Code Climate checks do not pass, explain reason for failures:

Process Checks

[x] You have specified at least one "Reviewer".

Hm I'm running into the error: "NotADirectoryError: [Errno 20] Not a directory: '/Users/isabeljlaurenceau/Documents/GitHub/searchgov-spider/search_gov_crawler/search_gov_spiders/eggs/search_gov_spiders/1729686728.egg/output/all-links.csv'" when trying to run a scrape on the quotes domain


Are bounty rewards being calculated correctly?

This bounty has a total value of 72610 credits, but a credits per system of 1k
https://discord.com/channels/@me/721377016196235324/946770664218562580

probably fixed by #796


Add support for L46N floodlights and possibly the Lorex equivalent

Hi, Lightingv2 doesn't trigger the floodlights in the later Dahua model L46N.  After some exploration and comparison to DMSS call status, it appears that the manual floodlight trigger is only available through the coaxial API.  This also requires the table.FloodlightMode.mode to be set to manual or at least not motion detection to stay on.  I tried to add it along side the Amcrest work assuming it still works for the older model.

I just looked at your profile, we are in the same city :D

Released in https://github.com/rroller/dahua/releases/tag/0.9.50

Any possibility to add in support for "V261LC" ? I reported earlier how I got it to work, looks like you went the long (correct) way around, but maybe just adding V261LC would work with your fix?
My prior post: https://github.com/rroller/dahua/issues/263

Hi, I added in detection with m.startswith("V261LC"), but I didn't assign it the Coaxial API and kept the original LightingV2 calls.  It may need the Coaxial API as well.  I guess it might be a firmware version specific change.

Hi, I added in detection with m.startswith("V261LC"), but I didn't assign it the Coaxial API and kept the original LightingV2 calls. It may need the Coaxial API as well. I guess it might be a firmware version specific change.

Ah, I must have skipped that particular commit. I bit the bullet and it was there as expected. Except it didn't work. When I tried to turn on or off the light, this error pops up (I had to type it out, it's possible there's a typo in there somewhere):
Failed to call service light/turn_on. 400,message='Bad Request',url=URL(http://<IP_ADDRESS>:80/cgi-bin/configManager.cgi?action=setConfig&FloodLightMode.Mode=2')
Does it look like an error in the code, or is it handled differently than the ASH26 (because in prior versions that I hacked in support, I just threw that in the same line as the ASH26 and it worked)?

Hmm, the floodlight mode should be exclusive to the newer floodlights.

It appears that the V261LC supports the Coaxial API but not the floodlightmode.  So they will need separated out as different floodlight types and the logic split by that instead of Coaxial API support.

OK, I separated out the floodlightmode logic more clearly for the 4x floodlights.  So it shouldn't effect you now.  Please check the new PR I just made.


Evaluate each policy source independently

This changes the policy evaluation to evaluate each policy source independently, instead of downloading from all policy sources and then evaluate once with using all policy files from all policy sources.
In addition to that handling of the hard coded data source from the https://github.com/hacbs-contract/ec-policies is now in the evaluator package so that the downloader package has a single responsibility -- to download from the provided sources.
Along with that the logic of where to place the policy files has been moved to the source package for the same reason.
Includes #238, so review that one first
Ref. https://issues.redhat.com/browse/HACBS-1311

I tested it locally, works fine afaict.
ec validate image --image $IMG --policy '{"publicKey":"sigkey.pub","sources":["github.com/hacbs-contract/ec-policies//policy"],"configuration":{"excludeRules":["test","tasks","attestation_task_bundle"]}}' | yq -P
success: false
components:
  - name: Unnamed
    containerImage: quay.io/cuipinghuo/single-container-app:9f5d549dd64aacf10e3baac90972dfd5df788324
    violations:
      - msg: It just feels like a bad day to do a release
        metadata:
          code: bad_day
          effective_on: "2022-01-01T00:00:00Z"
    warnings: []
    success: false


Fall Detection

//Fall information output
void FallDetectionRadar::Fall_inf(byte inf[]){
switch(inf[3]){
case REPORT_FALL:
switch(inf[4]){
case ALARM:
ShowData(inf);
switch(inf[5]){
case ALARM_FALL:
switch (inf[6]){
case SUSPECTED_FALL:
Serial.println("A suspected fall was detected.");
break;
case REAL_FALL:
Serial.println("A real fall was detected.");
break;
case NO_FALL:
Serial.println("A no fall was detected.");
break;
}
break;
case ALARM_RESIDUAL:
switch (inf[6]){
case NONE:
Serial.println("No warning message at this time.");
break;
case FIRST:
Serial.println("First warning prompt.");
break;
case SENCOND:
Serial.println("Second warning prompt.");
break;
case THIRD:
Serial.println("Third warning prompt.");
break;
case FORTH:
Serial.println("Fourth warning prompt.");
break;
}
break;
}
Serial.println("----------------------------");
break;
}
break;
}
}
##Sir why this code is not working
when i run this code we get only this
55 8 0 6 1 1 2 CE 54
15:28:48.878 -> A no fall was detected.
15:28:48.878 -> ----------------------------
15:29:34.118 -> 55 A 0 4 3 5 1 1 1 9D 4
15:29:34.247 -> 55 16 0 4 1 2 47 32 34 56 44 31 53 59 1 D 0 0 0 8 8D 3 0
15:29:34.340 -> 55 16 0 4 1 2 47 32 34 56 44 31 53 1 0 0 31 30 31 30 35 82 D5
15:29:34.565 -> 55 8 0 3 4 C 7 1A A
15:29:34.754 -> 55 A 0 4 3 5 0 FF FF D 24
15:29:34.979 -> 55 B 0 4 3 6 0 0 0 0 DD 95
15:29:35.214 -> 55 8 0 6 1 1 2 CE 54
15:29:35.214 -> 55 8 0 6 1 1 2 CE 54
15:29:35.214 -> A no fall was detected.
15:29:35.214 -> ----------------------------
15:29:35.402 -> 55 8 0 3 5 C 2 8B C9
15:29:35.658 -> 55 8 0 5 1 1 0 4F D1
15:29:35.739 -> 55 8 0 5 3 8 3 A8 40
15:29:35.973 -> 55 B 0 5 4 2 0 0 0 0 3D 22
15:29:36.302 -> 55 8 0 3 5 D 1 CA 58
15:29:36.518 -> 55 8 0 4 5 A F 48 D8
15:29:37.418 -> 55 A 0 4 5 1 0 FF FF 84 14
15:29:39.431 -> 55 B 0 4 3 6 0 0 0 0 DD 95
15:29:49.545 -> 55 B 0 4 3 6 0 0 80 3F FC 45
15:29:51.679 -> 55 B 0 4 3 6 0 0 80 3F FC 45
15:29:53.585 -> 55 B 0 4 3 6 0 0 80 3F FC 45
15:29:56.621 -> 55 B 0 4 3 6 0 0 80 3F FC 45
15:29:58.668 -> 55 A 0 4 3 5 1 1 1 9D 4
15:29:59.659 -> 55 A 0 4 3 7 1 1 3 1D 7D
15:30:00.831 -> 55 B 0 4 3 6 0 0 0 40 DC 65
15:30:02.614 -> 55 B 0 4 3 6 0 0 D0 41 40 65
15:30:03.722 -> 55 B 0 4 3 6 0 0 5C 42 64 A4
15:30:05.714 -> 55 B 0 4 3 6 0 0 8C 42 39 64
15:30:06.823 -> 55 B 0 4 3 6 0 0 A8 41 62 65
15:30:08.755 -> 55 B 0 4 3 6 0 0 A0 42 25 A4
15:30:10.761 -> 55 B 0 4 3 6 0 0 96 42 32 4
15:30:12.804 -> 55 B 0 4 3 6 0 0 30 42 49 A4

Same here, fall detection not working.

the same, not working, detect only moving or stopping body.
I think one finds him dead before the alarm goes off.
Does anyone know how to do?
Thanks


Test GitHub CLI with extension

Refs: #4464

[x] anyOS @ulugbekna
[x] anyOS @bhavyaus

Complexity: 3

Setup

Install the pre-release version of GitHub Pull Requests and Issues
Install the GitHub cli: https://docs.github.com/en/github-cli/github-cli/quickstart

Testing

Checkout a PR using the GitHub CLI:

cd into a cloned repo directory then gh pr checkout <PR number>

Open your repo directory in VS Code
Verify that the extension goes into "review mode" for the PR that you checked out in step 1.

The first time I tried this I saw this error after opening the repository directory.

On repro, this issue went away. I believe it was due to stale credentials on my machine but wanted to mention it here anyways.


Create dataset loader for AIFORTHAI - LotusCorpus

Dataloader name: tha_lotus/tha_lotus.py
DataCatalogue: http://seacrowd.github.io/seacrowd-catalogue/card.html?tha_lotus

Dataset
tha_lotus

Description
The Large vOcabualry Thai continUous Speech recognition (LOTUS) corpus was designed for developing large vocabulary continuous speech recognition (LVCSR), spoken dialogue system, speech dictation, broadcast news transcriber. It contains two datasets, one for training acoustic model, another for training a language model.

Subsets
-

Languages
tha

Tasks
Automatic Speech Recognition

License
Creative Commons Attribution Non Commercial Share Alike 3.0 (cc-by-nc-sa-3.0)

Homepage
https://github.com/korakot/corpus/releases/download/v1.0/AIFORTHAI-LotusCorpus.zip

HF URL
-

Paper URL
https://doi.org/10.1109/ICSDA.2009.5278377

#self-assign

unassigned due to university deadlines

#self-assign

#self-assign

Hi @holylovenia, can it be used as its homepage?
https://github.com/korakot/corpus/tree/main/LOTUS
Or shall we add the homepage of AI for Thai instead?

https://github.com/korakot/corpus/tree/main/LOTUS

@sabilmakbar I think this should be fine as our focus is on the dataset rather than the organization.

Hi sorry, I'm still implementing this, needs a bit more time as this progress of this dataset is ~70% (also found some additional complexity to the dataloader)


Kerchunk at Scale

This PR adds a chapter that demonstrates how to use a large Kerchunk reference and load it into an Xarray-Datatree object.

Woohoo! Finally passed the build. Mind taking a look @maxrjones?

Note: Going to merge this to work on cookbook-reorg.


fix: fast-json-patch commonjs import is wrong

#175  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @nadilas and the rest of your teammates on  Graphite


Getting this error in docker Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: "webserver": executable file not found in $PATH": unknown.

I see the error below when I try to build and run this command:
docker run -d -p 8080:8080 puckel/docker-airflow webserver

Error Messsage:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: "webserver": executable file not found in $PATH": unknown.

Had a similar issue, see also: https://github.com/moby/moby/issues/37713
Solution for me was restarting the pc, restarting docker was not enough.

do you guys have any clues for this issue? i also met this.

Im also facing this problem. Anyone?

Do you have the answer? I faced this problem too.

Stefan's idea worked for me 2 years ago... some time, rebooting the entire environment helps. These types of problems are common in most technologies. They give out error message that's just too generic and makes no sense. Rebooting a PC is like a kick to the vending machine... it'll work... if not, there is something else worth researching.