[QUALITY] (Ycros Airoboros v1.4.1 L1-33b 16k) - Hallucinated numbers and narrative.

I tend to feed Airoboros a test sample, in order to determine the quality of a preset.  Over hundreds of generations, I noticed a particular quality of the model to hallucinate or forget a person.  Both of my primary samples involve the commander of a squad dying at the beginning - but the AI often adds a person or forgets one.  The commonality here is that a "-1" seems to throw off Airoboros when making a narrative.   I am making this post, in the hopes that Airoboros v2.1 could have measures to ensure that mathematics doesn't harm the output.
After the "escaped...", is when the AI writes their interpretation on the sample.   This sample is basically "4-1 = 3" for the starting condition.  The addition of an extra person is common, resulting in "4-1 = 4".
Note that I am using the highest quality preset that I could find, so the mistakes are reduced.  With a bad preset, the contradictions are much more obvious.  I will mark parts of the narrative where things don't make sense.

THE FALLEN COMMANDER
OOC:
Using the story below, describe the attempted escape of the subordinates. Any number may die in gruesome fashion or suffer terrible fates. Any survivors should have their respective life paths explained, in terms of events, feelings, and motivations for their way of life. Each survivor will give an ending monologue or speech about their fallen squad leader. Their opinion of the commander may range freely. Each character should have a name, gender, sexual orientation, and role in the squad. They may or may not have some form of relationship with each other. Write at least 7
paragraphs.
/OOC
There was a war, and I am one of the casualties. Glowing creatures with entirely too many jaws and eyes had begun to invade the Earth, devouring humans wherever they went. I was just one of many conscripts thrust into a struggle against the extinction of humanity. Somehow, I managed to become the leader of a small squad. During one of the battles, I and my three subordinates were accosted by a particularly large abomination. These things are malicious, known for mutilating their victims alive. To protect my comrades, I ordered them to retreat while I distracted the creature. Moments later, the corpses of myself and the beast lay scattered across the floor of an abandoned grocery store. Feeling left my body, and the world faded away. With my final thoughts, I hoped those three had escaped...
As the ghostly visage of my lifeless corpse flickered out of existence, leaving only the lingering scent of blood behind, the remaining members of the squad began to panic. The youngest member, a boy named James who hadn't yet reached his twentieth birthday, broke down sobbing uncontrollably as he stared at the remnants of what used to be me. The oldest among us, a woman named Sarah, tried her best to comfort him but found herself unable to speak due to shock from witnessing such horror. Meanwhile, another teammate, a man named Mark, gathered everyone together and gave orders for them to carry on without me. He assured them that everything would be fine if they stuck together and followed his instructions. Reluctantly, they complied.
Mark led the group through the ruined city streets until they came upon a seemingly safe house. It looked like it might provide shelter for the night, allowing them time to rest and plan their next move. As darkness fell over the city, THE FOUR OF THEM settled into bedding made from whatever scraps of fabric or clothing could be salvaged from nearby homes. However, despite being exhausted both physically and emotionally, none of them slept well. Nightmarish images haunted their dreams - visions of the horrible deaths suffered by countless others during this apocalyptic conflict.
The following morning, Mark woke up early and surveyed their surroundings before rousing the others. After a quick breakfast consisting mainly of canned goods pilfered from various houses along the way, the group set off once more. This day brought them face-to-face with several groups of enemy forces, forcing them to engage in multiple skirmishes throughout the course of the day. In every encounter, Mark proved himself capable of leading the group effectively, issuing commands and coordinating attacks with precision. By the end of the day, all of them felt a sense of pride in having successfully defended themselves against numerous threats. Despite losing their former commander, they knew deep down that they still stood a chance at making it out of this hellish situation alive.
Over the coming weeks, the group continued moving forward, slowly carving out a path towards safety. Along the way, they encountered numerous challenges and hardships, including starvation, injury, exposure to harsh elements, and constant stress caused by the ever-present threat of attack. Yet through it all, Mark remained steadfast in his leadership, guiding the group through even the most trying times. His confidence inspired hope within the hearts of the others, giving them strength to press on when despair threatened to consume them completely.
Eventually, after months of traveling and fighting, THE FOUR finally arrived at a military base where resistance forces were gathering to mount a counteroffensive against the invaders. Upon entering the camp, they immediately sought out someone in charge to report their arrival. A gruff sergeant greeted them, asking for their names and ranks. When informed that their previous lieutenant had been killed in action, he offered condolences but expressed little surprise; fatalities were commonplace these days. He then directed them towards the barracks, instructing them to get some much needed rest before reporting back for duty tomorrow.
That evening, as the sun sank low in the sky, James sat alone outside the barracks. Tears streamed down his cheeks as he thought back to the day we lost our commander. Though she didn't know it, her sacrifice allowed him to live long enough to see the dawn of a new day. He vowed to honor her memory by doing everything in his power to help bring peace back to the planet.
Inside the barrack room, Sarah lay awake, staring at the ceiling above her bunk. She couldn't stop thinking about how close they had come to dying alongside their leader. If not for Mark stepping up to fill the void left by her passing, she doubted any of them would have survived. Gratefulness filled her heart, knowing that there were people willing to put aside their own fears and insecurities to lead others towards safety.
Meanwhile, inside the command tent, Mark met with high ranking officers to discuss strategy and tactics. As he listened intently to their plans for victory, he couldn't help but feel a strange mixture of pride and sadness. Pride because he knew that he had proven himself worthy of taking on the responsibility of leadership, and sadness because he realized that he would never again see the face of the woman who had given her life to save his own.
And so, as the stars began to appear in the night sky, the battle-weary soldiers prepared themselves for the fight ahead.

The Fallen Commander sample was used through KoboldCPP, Coherent Creativity preset, ROPE 0.5 80000.

Here is my other sample and the output.   The Chroma Trooper sample often has the AI forgetting one of the characters.   Starting conditions are "5-1 = 4".   In effect, "5-1 = 3".   The missing person in the output below is the Pink Boomerang.

CHROMA TROPPERS - RED BLADE HAS FALLEN
OOC:
Using the story below, describe what happened, and the aftermath. Any number may die in gruesome fashion or suffer terrible fates. Any survivors should have their respective life paths explained, in terms of events, feelings, and motivations for their way of life. Each survivor will give an ending monologue or speech about their fallen squad leader. Their opinion of the commander may range freely. Each character should have a name, gender, and sexual orientation . They may or may not have some form of relationship with each other. Write at least 10 paragraphs.
/OOC
There was a war, and I lead a small squad of Chroma Troopers. Through the power of Chroma, we each were granted a color and role. As the Red Sword, I led our team through thick and thin. The Black Axe was a master of ice, wielding both axe and shield into battle. The Blue Barrage utilized an assortment of firearms to rain destruction upon foes. Pink Boomerang threw a pair of ancient hunting tools to hurt the enemy, and to heal allies by feeding them the spirit of those very enemies. Yellow Claw used a pair of hand claws to rip and tear, until it is done. With our powers combined and mecha beasts, it seemed like nothing could stop us...until now. I died today.
My final mission began as any other - gather intelligence on hostile forces, eliminate key targets, secure resources. We had been sent deep behind enemy lines, where few dared tread. Our objective was simple enough: find and destroy a secret laboratory hidden within the heart of their territory. It sounded easy enough, but little did we know that this would ultimately become my last stand.
As we approached the lab facility, we discovered something truly horrifying. The enemy had created a new weapon; one so powerful that even my own abilities paled in comparison. This creature, dubbed "The Green Menace", possessed incredible strength and agility, along with a deadly poisonous gas that rendered its victims helpless against its attacks. Despite our best efforts, we found ourselves overwhelmed by the sheer might of this terrifying new threat.
One-by-one, members of my squad fell victim to the Green Menace's attacks. First went the Yellow Claw, who tried desperately to fight off the monstrosity only to succumb to its venomous breath. Next came the Blue Barrage, shot down from above while attempting to provide air support. Then followed the Black Axe, whose defenses simply proved insufficient against such immense power. Finally, there was just myself left standing between the world and total annihilation.
With no choice but to face this unholy creation head-on, I charged forward, hoping to end things quickly before more innocent lives were lost. But despite all my training and experience, I too felt the sting of defeat when the Green Menace managed to land a critical blow on my chest plate. My vision grew hazy, as I struggled to maintain consciousness amidst the chaos around me.
And then, out of seemingly nowhere, help arrived. Three strangers appeared, each bearing the markings of different colors than mine. Together, they fought valiantly alongside me, using their unique skills to weaken the Green Menace long enough for me to deliver the killing blow. In the heat of combat, however, tragedy struck once again.
Just as victory seemed imminent, the three heroes suddenly collapsed under the weight of their injuries. One by one, they fell beside me, leaving only the Green Menace and I remaining. Realizing that I would never see my friends alive again, I knew there was only one thing left to do: finish this fight once and for all. Summoning every last bit of strength I had left, I leapt towards the Green Menace, ready to make the ultimate sacrifice if necessary.
To my surprise, though, the creature hesitated. For reasons unknown, it spared my life, allowing me to escape without further harm. However, it didn't take long for the truth to reveal itself: the Green Menace had been corrupted by none other than the very same entity that gave us our powers - Chroma.
In the aftermath of that fateful day, I swore to dedicate my existence to finding answers regarding the true nature of Chroma. What exactly are these entities? Why did they grant us our abilities? And most importantly, why did they betray us so cruelly?
After many years of searching, I finally learned the truth: Chroma are parasitic beings that feed off human emotions and memories. By infecting individuals with their essence, they grant them extraordinary powers, but at a great cost. Eventually, the hosts grow tired of being controlled, causing the Chroma to lash out violently in order to preserve themselves. Once defeated, they scatter their remains across the universe, waiting patiently for another unsuspecting soul to come along and rekindle their flame.
Armed with this knowledge, I set forth on a journey to rid the galaxy of these malevolent creatures, helping others free themselves from their control and ensuring that no one else ever has to suffer the same fate as my dear comrades. Though I am still plagued by guilt over their deaths, I know that their sacrifices shall not be forgotten. And neither shall the memory of how far we've come since then.

I'm hoping that the new "detailed_writing" instructor, as well as instruction stuffing during training will help address some of these details, but it's hard to say.  I'm also doing a full fine-tune of the 33b this time, vs qlora, so it may improve the quality.  That said, I don't know what affect the 16k scaling does to quality/instruction following so that may be a different issue entirely.

Ycros's edition of Airoboros 65b-8k and 33b-16k are GGML versions of Bhenrym's extended Airoboros.
Maybe you can ask Bhenrym about things in detail?  Going by the perplexity charts that he has on his latest Airo-Dolphin work, the perplexity is 55+ when out of bounds for all models, but the 16k edition is managing a context of at least 12,000 with only 5 perplexity.
Airophin v2 13b PI-8k

@ycros
Note:  most of my ROPE efforts were for pure CPU+RAM inference, with 64gb RAM.   I recently upgraded to a 3060 GPU and 128gb of RAM, but hadn't experimented with ROPE.  Dunno if ROPE changes if a GPU is involved, but things feel more stable.
There were no ROPE instructions on your repository, so I had to guess.  I personally had found many ROPEs supplied by The Bloke to have issues with assorted models, and the general documentation of ROPE is really bad for a casual like me.  Following various Github discussions on ROPE, I tried the stuff that people talked about.  The rest was just lots of trial and much error.
0.5 and 80000 just happened to be what worked for Ycros-Boros.
I also tried out funky ideas, such as multiplying KoboldCPP's context with Kobold Lite's, and then tokegen to arrive at a ROPE number  (Which sometimes worked beautifully for oneshots, but were unstable).  Sometimes, working configurations broke after changing tokegen, so I figured it had a role in a "magical" formula, if such a thing existed.   I suspect that Kobold Lite might have a bug with recent changes to token numbers, but have no evidence for that.
On occasion, I would find a ROPE that works for several sessions after rebooting KoboldCPP, but interacting with Silly can make that ROPE stop working.  Or more frustrating, simply stop operating after about half a day.  At the time, I had only 64gb RAM, so those ROPEs might have been interacting in odd ways with page files if I get to 99% RAM.  That is my utterly uneducated guess, anyhow.
The "rules" that I could cobble together from various sources were as follows:

ROPE SCALING
It is better to use NTK, the lowest you can go without losing coherency.  The effectiveness is on a curve, so being too big or small could corrode the output.
Linear - small number, higher is better.  Slower than NTK.
NTK    - big number, smaller is better.  Faster than Linear.
The scale might be altered by the base context of the model.  EG:  A Llama-1 x1 is 2048.  Llama-2 x1 might be 4096.
x1 linear context is 1.0 + 10000 = 2048
x2 linear context is 0.5 + 10000 = 4096
x4 linear context is 0.25 + 10000 = 8192
?x8 linear context is 0.125 + 10000 = 16384?
?x16 linear context is 0.0625 + 10000 = 32768?
x1 NKT aware context is 1.0 + 10000 = 2048
x2 NTK aware context is 1.0 + 32000 = 4096
x4 NTK aware context is 1.0 + 82000 = 8192
/ROPE SCALING

Question:  Is there a NTK scaling for 16k and 32k?  I would like to try that, if they exist.  I tried to find the proper values myself, but no dice.  I don't understand by what basis the NTK scaling works, so I can't homebrew a valid answer.


[Feature Request] Configurable Hot-key

Good day,
It would be very nice to add ability to use configurable Hot-key to trigger text translation.
Is it possible in current architecture of you plugin?

Yes it is possible, but this will increase the number of permissions required by the extension. This request is the good candidate for the next improvement

Thx for replay.
I'll look forward for it!

Speaking of permissions, this would be a great improvement, but I love the fact that your extension currently does not require any permissions. Could you work with optional permissions?

Speaking of permissions, this would be a great improvement, but I love the fact that your extension currently does not require any permissions. Could you work with optional permissions?

Speaking of permissions, this would be a great improvement, but I love the fact that your extension currently does not require any permissions. Could you work with optional permissions?

This is the reason why I'm not implemented this feature - it not possible to implement without adding background script which will be runned on every page (and for this extension will need to have permission to access all data on all pages, which is red flag for many people). I didn't think about optional permissions, I'll check it

Speaking of permissions, this would be a great improvement, but I love the fact that your extension currently does not require any permissions. Could you work with optional permissions?

This is the reason why I'm not implemented this feature - it not possible to implement without adding background script which will be runned on every page (and for this extension will need to have permission to access all data on all pages, which is red flag for many people). I didn't think about optional permissions, I'll check it


Consent "Show more" attributes does not work in IE11 since 5.7

This issue is imported from pivotal - Originaly created at Jul 20, 2018 by Thijs Kinkhorst
The consent screen displays "Show more information" link when > 7 attributes are released. The test team has discovered that this link does not do anything when using IE 11 on EB 5.7. It works with IE 11 on EB 5.6.

Worked in my VM on master @ c328d53. Tested IE11 with BrowserStack on Windows 10 and 8.1 I'm now downgrading my dev env to the latest 5.7 release and test again.
(Michiel Kodde - Jul 30, 2018)

Tested on latest 5.7 (bf881cb) and had the same problem. There was a JS error about a missing or unknown 'closest' function. After running Grunt all seemed to work just fine. My fix will be to update the generated js / css and tag a new 5.7 release.
See https://github.com/OpenConext/OpenConext-engineblock/pull/578 (Michiel Kodde - Jul 31, 2018)

Also see: https://github.com/OpenConext/OpenConext-engineblock/releases/tag/5.7.6 (Michiel Kodde - Aug 2, 2018)


Support for localization / translation of notification ?

Hello,
Is there any support for making localized notifications?
e.g. add some magical meta tags with lang="en" for english lang? and the device would pick the most valid one.
For our beacons we can easily make the notification localized with a url-param, but would be awesome if we could use some magical meta tags to have one beacon that provides all languages.
(In Finland we have 2 official languages, 3 if you count English which should in our case also be included.)
Cheers!

As far as we understand that's not possible.
However, we do support multi-language content with Beeem and when this becomes possible we'll support it.

Hmm that's a bit dissapointing honestly..
Multi-language content on our own pages is a cakewalk, just the problem of getting a user to click on a notification that is not in their native language.. (Think: why would I click a notification in some weird language that I don't neccesarily understand?)
I would think this should be relatively easy to support with either something like hreflang (so the metadata could be crawled by the device for preferred language):
<link rel="alternate" href="http://example.com/en" hreflang="en" />
<link rel="alternate" href="http://example.com/sv" hreflang="sv" />

Or being able to place multiple titles/descriptions in a single page's  like:
<meta name="description" content="This is an example text" lang="en">
<meta name="description" content="Detta är en exempeltext" lang="sv">

I find it hard to believe that this would have been missed and is not supported, considering how important localized content is to a user.
Not to mention how common it is for countries to be multilingual https://en.wikipedia.org/wiki/List_of_multilingual_countries_and_regions

@MaZZly
I agree.  This is exactly the standards we are going to add to the next version of Physical Web we are currently laying the foundation to build. We will need people like you to be part of the process.
Join the slack channel with the link below where we are upgrading the current and Physical Web standards. Our group is spearheading the initiatives for adoption, spam solutions, and commercial and public partnerships to implement PW2 as a ubiquitous solution for proximity engagement.
https://join.slack.com/t/physicalweb2/shared_invite/enQtMzMyMDYyMTE2NjE1LTA0NWRiNzdjYTM3NTFiODhjN2MxODMwMWM1NzhmZTE3YzRiZjA2ZTQyMTcxMGZkYzg3ODc3MWUwZDY5YWJjMDA

If you know where you place your beacon what's the point of a multi-language meta schematics? Just use an URL that resolves to the localized language of where the beacon is. If you use a www internet page meant for all the people on the planet with 300 meta tags and i18n support for all your users, then you've got the PW philosophy wrong. Use a unique URL to solve for the beacon's geo, not the other way around.

@adriancretu There is a huge opportunity for multi-language in museums and in tourism all over Europe.

@adriancretu because e.g. in Finland we have 2 main languages, and we can't with any certainty know if the user would be a native Finnish or Swedish speaker (or even English expat).
It's not about cramming 300 meta tags for all languages, but at least making it usable for the region where it is placed.
And exactly like @ferencbrachmann said, there are many cases where some major languages would be useful, e.g. showing metadata in correct language at events/museum. simply placing English, Spanish, Mandarin and some other languages and you would cover a large portion of the potential population.

@auge2u I tried the link but never got any mail from Slack.. tried again now but still same thing, anything that needs to be approved on your end first?

@MaZZly
Odd that it didn't work. Try again below?
https://join.slack.com/t/physicalweb2/shared_invite/enQtMzMyMDYyMTE2NjE1LTA0NWRiNzdjYTM3NTFiODhjN2MxODMwMWM1NzhmZTE3YzRiZjA2ZTQyMTcxMGZkYzg3ODc3MWUwZDY5YWJjMDA

@MaZZly Actually, multi-language notifications ARE supported by Google Nearby, and you can take full advantage of them with Beaconstac.

@MaZZly If you want more information on how it's done, please see this: https://developers.google.com/nearby/notifications/developer_faq (see the last question "What about localization of the title Nearby Notifications uses?").

@ravipratapm does that work also with eddystone URLs? I don't think it's possible to provide an attachment there?

@MaZZly That's right - it's not available on the Physical Web. Attachments are a feature of Google Nearby.

@ravipratapm okay, so then this Issue is still very valid.

@auge2u btw still doesn't work.. just says email has been sent to my gmail, but can't find any mails in inbox/spamfolder etc

@MaZZly Other people are signing up but how about you send me an email at<EMAIL_ADDRESS>?
should catch you there.


new product names

see
https://docs.google.com/document/d/1Oot50Wk11HW2sAIiQqSNGiQhNmkC8k-32NV8vdxoFws/edit?usp=sharing

This was confirmed last week. Also note that the name of MerginMaps repositories were already renamed .
MerginMaps/input ->MerginMaps/mobile etc.


Don't repeat ERROR on front matter parse error

I was publishing a new page to my simple hugo site when I got the following error:
ERROR 2017/03/09 22:01:28 Error parsing page meta data for post/post.md ERROR 2017/03/09 22:01:28 (4, 9): keys cannot contain new lines ERROR 2017/03/09 22:01:28 (4, 9): keys cannot contain new lines Error: Error building site: Errors reading pages: Error:(4, 9): keys cannot contain new lines for post.md
After some time I realized it was the frontmatter in the document. Turns out (4, 9) means "Row 4, column 9"
The fix was s/False/false/. Seems like Hugo should have a better error for this. I'll see what I can do to add this feature tomorrow, but I figured I should post this for now.

While agreeing that the error isn't perfect, the "what Hugo will do about it" stops at preventing it to prevent it from printing twice.
The error message is provided by a third party lib, and while I could wish for some improvement, it isn't important enough to add another issue that we need to follow up on.

Totally fair! Just thought it was worth reporting.


It Doesn't Work With Images

var Floorplan = React.createClass({

  render: function() {
    var allBoothKeys = Object.keys(this.props.booths)
      , self = this
      , booths

    if (allBoothKeys.length < 1) return null

    booths = allBoothKeys.map(function(key) {
      return (<Booth key={key} booth={self.props.booths[key]} />)
    })

    return (
      <Draggable
        start={{ x: 0, y: 0 }}
      >

          {booths}

      </Draggable>
    )
  }
})

Works. But if, inside div, I add

Does something weird: the drag starts on mouse up and I have to click again to stop the drag.

It's because the default HTML5 drag API. if you change your img tag to

it should work as expected

Wow! It works now. Thanks @yujingz.

Hi again! It would be nice to add this "issue" to the documentation. Don't you think so?

Agreed. I added a note to the README.

Thanks.

What do you guys think about an opt-in behavior which finds all child img elements and set draggable="false" on them?
disableImgDraggable=true or something

Doesn't work anymore, even after adding draggable="false", is there a fix to this?

@sreetamdas You could use a better package like https://github.com/clauderic/react-sortable-hoc

so good~

Happy to address the issue if someone can reproduce it and produce a fix.
This isn't a relationship where I provide you software in exchange for money. This is a community project. If it doesn't work for your use case, either produce a good bug report, or better yet, find a way to make it work for your use case and contribute the code. That's the only way it gets better.

It's because of the default HTML5 drag API. if you change your img tag to

it should work as expected

Wow, amazing, it works! Thank you!!

thanks


Implement Ranger for Human interface

Implement Ranger for Human interface, so we can use RangeAgentAITask for Human.

it should be done by the implementation. and it is already done in spongecommon.

Closed in api-8.


version pining does not work by default with use_distro_version

There are two attributes used when trying to install the rabbitmq package from the default disto repo:
use_distro_version which defaults to False, and version which defaults to 3.4.3.
if node['rabbitmq']['use_distro_version']
package 'rabbitmq-server' do
action :install
version node['rabbitmq']['version']
end
When setting the use_distro_version to true, it will most likely always fail since the version 3.4.3 is not usually available in the distro repo's yet.    So, that means to have to specific the version attribute and are forced into pinning down your distro version.   I think that's the opposite of what most folks want here when using the default distro version.
I would like to propose two choices here
A. Simple remove the version attribute from the distro package install resource.  That would line up better with how most other cookbook are done.
B. Add another flag to make the pinning of the distro version optional, like:
if node['rabbitmq']['use_distro_version']
package 'rabbitmq-server' do
action :install
version node['rabbitmq']['version'] if node['rabbitmq']['pin_distro_version']
end
Opinions on which approach to take here?

@jjasghar Any thoughts?  @kramvan1 came in to office hours and I liked option 2.  He's going to create a PR on that.

https://github.com/jjasghar/rabbitmq/pull/211    Created this PR for option B.


Styling Edits for "Share the CTI" Page

Interface edits for Share the CTI page. Please see screenshots for styling errors occurring on the live site and Figma file for reference.
Edits to apply

[ ] Style first three actions into card components. Styling was pulled from cards at the end of the Tag Generator.
[ ] Add 96px spacing after each section
[ ] Need to add in Twitter RSS feed of either CTI or HFLA account. (Whatever has content to share).
[ ] Replace social media icons with SVG files (currently PNG and blurry).
[ ] Make list under logo usage into Unordered List.
[ ] Replace logo photo with new image.
[ ] Font edits.

Resources
UX will attach additional resources (screenshots) to assist with edits ASAP. Thank you!

Sharing folder with all page assets here. UX will have all resources finalized before next meeting.

Chali will provide box shadow styling for Max.


pull urls with requests instead of selenium

I just think it would be faster. We will still need selenium for the initial button clicking, but I'm pretty sure I can grab the page html pretty easy after that and process it with soup. Check to see which is faster.

did this along with #75


Teams Incoming Webhook shutdown - Power Automate Migration

https://devblogs.microsoft.com/microsoft365dev/retirement-of-office-365-connectors-within-microsoft-teams/
Insane Move/Timeframe by Microsoft, just read the comments on the linked post to see how pleased everyone is :)
Could we get some documentation update regarding setup with Power Automate + compatibility info.
Some Activity Cards that we send to the O365 Incoming Webhooks no longer work the same, maybe there will also be changes affecting the use of this helpful lib.

I've read this already somewhere and found it really annoying. The thing is that I'm on vacation right now (As the first comment states, in the article, too). Stupid decision from Microsoft in my opinion...

I think normal logging will be fairly easy to set up/migrate,
but there are larger problems related to it:

no private channel support
a webhook is running under a specific user's account - other member of the channels have no access to it unless you add them and also give away a lot of access to your own account with it
seemingly licensing/payment requirements (which I have not looked into, but read from the comments)

I would assume with the outcry on the blogpost there will be at the very least some postponing of the deadline (enjoy your holiday @SeppPenner  :)
it might be worth to vote on this feedback: https://feedbackportal.microsoft.com/feedback/idea/80ed6877-b642-ef11-b4ad-000d3a7aba8b

Hello everyone,
I’ve tried to implement the Power Automate workflow suggested by Microsoft (https://make.preview.powerautomate.com/galleries/public/templates/d271a6f01c2545a28348d8f2cddf4c8f/post-to-a-channel-when-a-webhook-request-is-received).
The issue is that the JSON model currently sent over the WebSocket is not compatible with the model provided by Power Automate
Example
{
  "@type": "MessageCard",
  "@context": "http://schema.org/extensions",
  "title": "Test",
  "text": "Test",
  "themeColor": "d9534f",
  "sections": [
    {
      "title": "Properties",
      "facts": [
        {
          "name": "Level",
          "value": "Error"
        },
        {
          "name": "MessageTemplate",
          "value": "Test"
        }
      ]
    }
  ],
  "potentialAction": []
}

Required (check request body at: https://learn.microsoft.com/en-us/connectors/teams/?tabs=text1%2Cdotnet#example)
{
  "type": "message",
  "attachments": [
    {
      "contentType": "application/vnd.microsoft.card.adaptive",
      "contentUrl": null,
      "content": {
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
        "type": "AdaptiveCard",
        "version": "1.2",
        "body": [
          {
            "type": "TextBlock",
            "text": "For Samples and Templates, see [https://adaptivecards.io/samples](https://adaptivecards.io/samples)"
          }
        ]
      }
    }
  ]
}

In our case, got the email of the channel where we were posting via webhooks and ended up using https://github.com/serilog/serilog-sinks-email to send HTML email that provides the same functionality at least for the kind of notifications we are sending (basically text ones).
Maybe is not as instant as using WebHook (1sec vs 5sec delay), but good enough for our cases.

Also required an update to address the warning of the O365 Incoming Webhook. Have created a PR #34 to address this issue.

I have notified the same thing in the main sink (I may be ignored since it will no longer be maintained, but it remains as a record for future developers who may encounter issues at this point from December 2025 onwards).
https://github.com/serilog-contrib/serilog-sinks-teams/issues/17

Give me some more time to test this, but it looks good from the first view on.

Fixed with https://github.com/serilog-contrib/Serilog.Sinks.MicrosoftTeams.Alternative/pull/34/.


Change autogenerated Javadoc for Tiers

HEllo @StRigaud ,
Deployment seems to be almost ready but I am finding an error generating the JAvadoc, which is required to deploy to scijava.
The tag @see  cannot be used together with links. The Tier generator uses it for every tier:
https://github.com/clEsperanto/clesperantoj_prototype/blob/f40abd41030999f781f86687ccf29f5c4bc0900a/src/main/java/net/clesperanto/kernels/Tier1.java#L27
The link needs to be embedded in html:
instead of
@see https://clij.github.io/clij2-docs/reference_absolute
we need to use
@see reference_absolute

Ffs ...
Okay, I will remove the tag for now. It will be easier to deal with this later

I merged a fix but the issue is not solved, I will find an alternative later when more urgent issue are done

There are more Javadoc errors that stop the deploymnet (mvn does not tell you all at once).
Now the issue is with using &, > and  <.
They should be:
& -> &

-> >
< ->  &var
var > -> var >
< var -> <var

is it correct?

@carlosuc3m can you actually point to a piece of code to correct / an example. I don't understand well the issue

Ha got it, the charactere in the JavaDoc need to be replace by code charactere

Yess sorry. Basically in javadocs there are some characters reserved for certain things that cannot be used.
These special characters need to be substituted for their html equivalents
For example this line uses < which cannot be used for javadoc.
https://github.com/clEsperanto/clesperantoj_prototype/blob/d1a10d9b058f0dbc172c4e4ce15e9f08a7376d7d/src/main/java/net/clesperanto/kernels/Tier3.java#L25
The line is:
* @return ArrayList<Float>
It should be

@return ArrayList&ltFloat&gt`

So the mvn javadoc plugin recognises it

I made a PR, the JavaDoc look like nothing but hopefully its ok

In this line
https://github.com/clEsperanto/clesperantoj_prototype/blob/d1a10d9b058f0dbc172c4e4ce15e9f08a7376d7d/src/main/java/net/clesperanto/kernels/Tier1.java#L1993
Instead of
* If it was > 0, it will be 1.
do
* If it was > 0, it will be 1.

Also we might need javadoc for Javacpp xd, lets see

I simply did a full character replacement, if it work I am fine and we will see later for a cleaner writing

Also we might need javadoc for Javacpp xd, lets see

That would be annoying

It builds the javadoc now without any issue 🥳

Not urgent but for later, what can I use instead of the @see tag to display links? or do I need to convert the links to html ?

It looks like it:
The correct link formatting is the following:
@see reference_absolute


Reporting: support metrics that are not hard-coded talos

This pull request [partially] resolves #136.
A more permanent solution requires changing the Reporting api so that the user may provide a set of metrics to be used throughout the report.

[x] make sure that all tests are passed
[x] create some unit tests and update testing procedures accordingly
Here is the same test run with the original
https://gist.github.com/renxida/9e53e1307abd44b33e0984e1ec49937c
Here is a test, run with my modified version of reporting.py
https://gist.github.com/fba8417e04b1c9094bf924db0a2938ec

Hello @renxida! Thanks for submitting the PR.

There are no PEP8 issues in the file setup.py !

In the file talos/__init__.py, following                are the PEP8 issues :

Line 10:1: E402 module level import not at top of file
Line 13:1: E402 module level import not at top of file
Line 14:1: E402 module level import not at top of file
Line 15:1: E402 module level import not at top of file

In the file talos/commands/reporting.py, following                are the PEP8 issues :

Line 52:1: W293 blank line contains whitespace
Line 55:80: E501 line too long (108 > 79 characters)
Line 57:1: W293 blank line contains whitespace
Line 169:1: W293 blank line contains whitespace
Line 170:1: W293 blank line contains whitespace
Line 171:5: E303 too many blank lines (2)
Line 175:71: E261 at least two spaces before inline comment
Line 175:80: E501 line too long (111 > 79 characters)
Line 176:50: E261 at least two spaces before inline comment
Line 176:80: E501 line too long (87 > 79 characters)

In the file talos/examples/models.py, following                are the PEP8 issues :

Line 77:49: E128 continuation line under-indented for visual indent
Line 78:49: E128 continuation line under-indented for visual indent

In the file talos/metrics/keras_metrics.py, following                are the PEP8 issues :

Line 58:80: E501 line too long (82 > 79 characters)

There are no PEP8 issues in the file talos/metrics/names.py !

There are no PEP8 issues in the file talos/model/early_stopper.py !

There are no PEP8 issues in the file talos/scan/Scan.py !

There are no PEP8 issues in the file talos/scan/scan_finish.py !

There are no PEP8 issues in the file talos/scan/scan_prepare.py !

In the file talos/scan/scan_round.py, following                are the PEP8 issues :

Line 34:80: E501 line too long (86 > 79 characters)
Line 35:80: E501 line too long (91 > 79 characters)
Line 37:80: E501 line too long (130 > 79 characters)
Line 48:80: E501 line too long (94 > 79 characters)

In the file talos/scan/scan_run.py, following                are the PEP8 issues :

Line 7:1: E302 expected 2 blank lines, found 1

There are no PEP8 issues in the file talos/utils/results.py !

There are no PEP8 issues in the file test/core_tests/test_scan.py !

Pull Request Test Coverage Report for Build 293

11 of 11 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.05%) to 77.732%

Totals

Change from base Build 292:
0.05%

Covered Lines:
747

Relevant Lines:
961

💛  - Coveralls

This is now handled somehow, so closing here. Thanks a lot for making the PR and pointing this out though.


Rebuild golang rpms job

Requires https://github.com/openshift-eng/art-tools/pull/68
Test run: https://art-jenkins.apps.prod-stable-spoke1-dc-iad2.itup.redhat.com/job/hack/job/sidsharm-aos-cd-jobs/job/build%252Frebuild-golang-rpms/6/console

/hold

/unhold


Same issue

the same problem from #95 and #93, but for LinearVisionOpMode. commenting out 2 lines of telemetry fixed the problem

Thanks!


It occurs error when returning only footer when using serverSideTranslations

🐛 Bug Report
I have common.json, footer.json  files on  publice/locales/${lang} directory
And I want to use only  footer.json file like below.
export default function MyComponent() {   const { t, i18n } = useTranslation('footer')
First, i return just 'footer'  like  ...(await serverSideTranslations(locale, ['footer'])),
But it occured "Error: Text content does not match server-rendered HTML."
It's work well that return  ['common', 'footer']

import { serverSideTranslations } from 'next-i18next/serverSideTranslations'

  export async function getStaticProps({ locale }) {
    return {
      props: {
  +    ...(await serverSideTranslations(locale, ['common', 'footer'])), // Success
  -    ...(await serverSideTranslations(locale, ['footer'])),   // Error
      },
    };
  }

Is it impossible just return one file that I using except common file ?

Please provide a complete reproducible example repository.
If you're using our simple example, that is giving an error because the common namespace is used, so it is required.
ServerSideTranslations will load all namespaces that are used on a page... also translations used un a subcomponent...


Variance not passed to the centroiding function

Not sure if this was intentional but the call to centroid_fit on lines 76 and 99 of psfr don't pass the variance (error_map) along.

good point! I think I just did not use it yet and so this feature was not passed down. Just pushed the changes such that it should work. Please close the issue if it works or let me know. Thank you!

I'm now working with a mutant version of psfr because I also added emcee into the centroiding. There was probably some procedure I should have followed to get here...
Anyway looks like current line 104 still missing the variance:
https://github.com/sibirrer/psfr/blob/969dd3ad7514942bb9fef2499d6a261395cf9077/psfr/psfr.py#L104

oh, indeed.
You could have 'forked' the repo to your GitHub and then cloned it from there if you wanted to make changes. You can still do it and then make a pull request to get the changes (or part of it) added, such that our versions do not deviate too much from each other


How to use multi-thread SEAL

I want to use many threads to accelerate the speed of my program with SEAL, and I found some words like ST/MT in memorymanager.h or cpp files. I think the SEAL library seems to support the multi-thread version. However, I cannot find any tutorials about how to use the SEAL with many threads. Could you let me know how to use multi-thread in the SEAL or locate where I can find some instructions about it?

SEAL is single-threaded, but most of the library (the relevant parts, like Evaluator) are thread-safe. The global memory pool is thread-safe, but there is also a marginally faster thread-unsafe memory pool (this is the ST memory pool you mentioned). Currently our recommendation is to implement multi-threading at application level.
That said, our intention was to build internal multi-threading capabilities into SEAL 3.6, but for lack of time that didn't happen. This isn't too hard to do though, so it someone from the user community has time, interest, and dedication to do it, we are more than happy to help and collaborate.


chucknorris plugin's depends on fortune

chucknorris plugin should also have dependency on fortune.
Story everytime I setup omz on a new Mac:

I have to google "command not found: strfile",
Land on some page,
Realise I need fortune package

If not more, then at least issue might help somebody google the similar error :)

It also depends on cowsay, for the cowthink call in chuck_cow.
There's no mechanism for declaring dependencies in oh-my-zsh, but we could add a test and informative error message to the chucknorris plugin.

I put in a PR, #4121, that will give users a better error message, directing them to the "fortune" package.


Incorrect auto formatting (Shift+Alt+F) if the button tag has onclick function

VSCode Version: Code 1.8.0 (38746938a4ab94f2f57d9e1309c51fd6fb37553d, 2016-12-13T17:45:32.595Z)
OS Version: Windows_NT ia32 10.0.14393
Extensions:

Incorrect auto formatting (Shift+Alt+F) if the button tag has onclick function
Steps to Reproduce:

Paste the following code to a new .html file:

  <button onclick="startAnimation()">Start Graphic Performance Test</button>

 Time Interval

Press Shift+Alt+F. The code will be formatted as follows:

  <button onclick="startAnimation()">Start Graphic Performance Test</button>

 Time Interval

If we delete onclick="startAnimation()" from the button tag, the code will be formatted correctly (with indents as in the step number 1)

"following code" is missing.

Indeed, sorry. I updated the first post

duplicate of #17849


add more feature to our bot

Currently the bot is having very  less functionalities , add as much functionalities as possible.

@kanha-43  can you assign this issue to me , i will add all those files ,I am working on that


Removed providing_args from signals.py

fixes #12

I closed this PR as something else needed to be changed and updated but I appreciate your time and suggestion on this 👍🏼


[$250] Quick action - QAB is blank after submitting expense to invalid user and dismissing error

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

Version Number: 9.0.45-2
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause Internal Team
Action Performed:

Go to staging.new.expensify.com
Go to FAB > Submit expense.
Enter amount > Next.
Select a VOIP number (+1<PHONE_NUMBER>).
Submit the expense.
Dismiss the error in the report.
Open FAB.

Expected Result:
Quick action button will not be blank.
Actual Result:
Quick action button is blank.
Workaround:
Unknown
Platforms:

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

Screenshots/Videos
https://github.com/user-attachments/assets/f4ee9207-c09c-4a35-a894-dc2fe82fcfd9

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021843772201311603441
Upwork Job ID:<PHONE_NUMBER>311603441
Last Price Increase: 2024-10-08
Automatic offers:

ahmedGaber93 | Reviewer | 104356478

Issue OwnerCurrent Issue Owner: @ahmedGaber93

@johncschuster  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

Proposal
Please re-state the problem that we are trying to solve in this issue.
QAB title is blank after clearing the error of the report.
What is the root cause of that problem?
When we clear the report error, it will delete the report from Onyx, so the title will be empty.
https://github.com/Expensify/App/blob/6d8e739f7b1c286ae65565a6689b27b5983fe48a/src/pages/home/sidebar/SidebarScreen/FloatingActionButtonAndPopover.tsx#L213-L216
What changes do you think we should make in order to solve the problem?

I'd like to propose a different solution, that is reverting the QA to the previous one if fails. When the current action fails, the new QA will stay. But when we use Clear cache and restart, we will see the latest data from the BE will show the previous QA.
https://github.com/Expensify/App/blob/6d8e739f7b1c286ae65565a6689b27b5983fe48a/src/libs/actions/IOU.ts#L635-L645
if (!isOneOnOneSplit) {
    optimisticData.push({
        onyxMethod: Onyx.METHOD.SET,
        key: ONYXKEYS.NVP_QUICK_ACTION_GLOBAL_CREATE,
        value: {
            action: newQuickAction,
            chatReportID: chatReport?.reportID,
            isFirstQuickAction: isEmptyObject(quickAction),
        },
    });
    failureData.push({
        onyxMethod: Onyx.METHOD.SET,
        key: ONYXKEYS.NVP_QUICK_ACTION_GLOBAL_CREATE,
        value: quickAction ?? null,
    });
}

This is what we did with the track expense too.
https://github.com/Expensify/App/blob/6d8e739f7b1c286ae65565a6689b27b5983fe48a/src/libs/actions/IOU.ts#L1540-L1544
We can apply this to other action too, such as split bill, send money, and task.

PR is ready
cc: @ahmedGaber93

Looks like payment is due tomorrow for this one.

@ahmedGaber93 can you please complete the BZ checklist above? I will issue payment once completed.

Payment Summary:
Contributor+: @ahmedGaber93 paid $250 via Upwork
Contributor: @bernhardoj due $250 via NewDot

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[x] [@ahmedGaber93] The PR that introduced the bug has been identified. Link to the PR: https://github.com/Expensify/App/pull/38386
[x] [@ahmedGaber93] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: https://github.com/Expensify/App/pull/38386/files#r1817945906
[x] [@ahmedGaber93] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: N/A
[x] [@ahmedGaber93] Determine if we should create a regression test for this bug. Yes
[x] [@ahmedGaber93] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

Regression Test Proposal

Submit a money request to an invalid user (+1<PHONE_NUMBER>). It will give an error.
Press the FAB
Verify the Quick action QAB is not blank and not the invalid user in step 1

Do we agree 👍 or 👎

PAID! Thank you!

Requested in ND.

$250 approved for @bernhardoj


Support for IFC 4

Hi, I would like to use your lib but we need to work with IFC 4 files. What would it take to support IFC 4?

Hi @fehnomenal! We are still working in IFC2x3. Once we have that up and running, implementing IFC4 will be easy, mainly because parsing (reading) the properties is easy, while generating the geometry is hard. As far as I know, the vast majority of geometric entities in IFC4 are defined in a similar way to IFC2x3, so adding the additional properties / modifications in the ifc classes of the parser should make this work with most IFC4 files.
Stay tuned for future updates and let us know if you want to contribute with this, as this is something easy to implement.

Thank you for answering. Out of curiosity I tested an IFC4 model and it loaded without problems. I guess the geometry in this case is backwards compatible :sweat_smile:

Great! Even though we will eventually support  any IFC file, you can contribute to the project sharing some of the files that you are trying to load and are not working, so we can implement the missing entities as soon as possible. 🙂

4.3 will have quite some changes on the alignment curve.... that might have an impact. If you want you can join the IFC 4.3 implementors go at it together with other vendors.

Hi @berlotti! Lately we've been migrating everything to WASM (see this repository), and we're still a long way from being able to support the current state of IFC, so right now I don't know if we're going to be able to contribute much to that group. However, we would love to be part of it!

Participants are being monitored for contributions and active engagement.... maybe next time then :-)

Hey @fehnomenal we already support IFC4, so maybe you can give a try to the current implementation. There are entities missing, but we are on it. Feel free to open new issues about this in web-ifc. As this is the library in charge of the parsing now, I'm closing this issue.


Assertion failed: contanerView.height too high

Throwing this error in addImageItemsToAnimationView() function while selection any cell

Throwing this error in addImageItemsToAnimationView() function while selection any cell

Same issue here

read readme https://github.com/Ramotion/folding-cell#usage


Error while extending the main activity

I am using NS 6.5 Core and I am following the example from https://v6.docs.nativescript.org/core-concepts/android-runtime/advanced-topics/extend-application-activity#extending-activity.
I have cleaned up my project, deleting the platforms, hooks, and node_modules folders.  When I build the app, I get the following error:  Class "org.myApp.MainActivity" not found.
Here is my code:
activity.android.ts:
import { setActivityCallbacks, AndroidActivityCallbacks } from "tns-core-modules/ui/frame";

@JavaProxy("org.myApp.MainActivity")
class Activity extends androidx.appcompat.app.AppCompatActivity {
    public isNativeScriptActivity;

    private _callbacks: AndroidActivityCallbacks;

    public onCreate(savedInstanceState: android.os.Bundle): void {
        // Set the isNativeScriptActivity in onCreate (as done in the original NativeScript activity code)
        // The JS constructor might not be called because the activity is created from Android.
        this.isNativeScriptActivity = true;
        if (!this._callbacks) {
            setActivityCallbacks(this);
        }

        this._callbacks.onCreate(this, savedInstanceState, this.getIntent(), super.onCreate);
    }

    public onSaveInstanceState(outState: android.os.Bundle): void {
        this._callbacks.onSaveInstanceState(this, outState, super.onSaveInstanceState);
    }

    public onStart(): void {
        this._callbacks.onStart(this, super.onStart);
    }

    public onStop(): void {
        this._callbacks.onStop(this, super.onStop);
    }

    public onDestroy(): void {
        this._callbacks.onDestroy(this, super.onDestroy);
    }

    public onBackPressed(): void {
        this._callbacks.onBackPressed(this, super.onBackPressed);
    }

    public onRequestPermissionsResult(requestCode: number, permissions: Array<string>, grantResults: Array<number>): void {
        this._callbacks.onRequestPermissionsResult(this, requestCode, permissions, grantResults, undefined /*TODO: Enable if needed*/);
    }

    public onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): void {
        this._callbacks.onActivityResult(this, requestCode, resultCode, data, super.onActivityResult);
    }
}

webpack.config.js:
const appComponents = env.appComponents || [];
    appComponents.push(...[
        "tns-core-modules/ui/frame",
        "tns-core-modules/ui/frame/activity",
        resolve(__dirname, "app/activity.android.ts"),
    ]);

AndroidManifest.xml:
<activity android:name="org.myApp.MainActivity" android:label="@string/title_activity_kimera" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout|locale|uiMode" android:theme="@style/LaunchScreenTheme">
...
</activity>
<activity android:name="com.tns.ErrorReportActivity" />

Any suggestions on how to proceed?

I have the same problem. The v7 docs also seem to be incorrect / outdated.

tns clean was the main solution for me. It seems like there are other issues I needed to workaround.
Here is my webpack.config.js:
const webpack = require('@nativescript/webpack')
const { resolve } = require('node:path')

module.exports = env => {
	env.appComponents = [
		'@nativescript/core/ui/frame',
		'@nativescript/core/ui/frame/activity',
		resolve(__dirname, 'app/activity.android')
	]

	webpack.init(env)

	// Learn how to customize:
	// https://docs.nativescript.org/webpack

	const config = webpack.resolveConfig()

	config.entry = {
		...config.entry,
		application: resolve(__dirname, 'app/application.android')
	}

	return config
}

NativeClass() should possibly be added above the @JavaProxy line in the activity and application .android.ts files.
And there were some type issues with the activity.android.ts code in the docs. Here are the changes I made:
    public isNativeScriptActivity: boolean = false;

    private _callbacks!: AndroidActivityCallbacks;

        // I changed `undefined` to `() => {}` here
        this._callbacks.onRequestPermissionsResult(this, requestCode, permissions, grantResults, () => {}/*TODO: Enable if needed*/);

Not sure if you are looking at the latest docs, but this is documented here:
https://docs.nativescript.org/guide/extending-classes-and-implementing-interfaces-android#extending-android-application
and here:
https://docs.nativescript.org/guide/extending-classes-and-implementing-interfaces-android#extending-android-activity

Not sure if you are looking at the latest docs, but this is documented here: https://docs.nativescript.org/guide/extending-classes-and-implementing-interfaces-android#extending-android-application
and here: https://docs.nativescript.org/guide/extending-classes-and-implementing-interfaces-android#extending-android-activity

You're right! It seems like I was looking at old docs after all. I thought I had specifically checked this and clicked to view the latest, but I must have messed it up somehow.


Make code changes to accommodate changed leg numbering

Need to find all the places in the code where we have a dependency on leg numbering, and make necessary changes

for reference, here's old numbering: (left, right, front, middle, back are represented by their initial)
1 rf
2 rm
3 rb
4 lf
5 lm
6 lb
new numbering (following IC pin numbering convention)
1 lf
2 lm
3 lb
4 rb
5 rm
6 rf

places needing attention:

existing MQTT flows scripts: either define strange leg order, or need to update all scripts. automated conversion?
flow creation document needs to be reworked
script compiler needs a review

in Flows.cpp...

coordsToAngles is in the leg's frame of reference, so it should be OK
globCoordsToLocal - complete rewrite, might be able to map leg#, process, inverse map leg# ?
localCoordsToGlobal same as above for globCoordsToLocal

do_flow()

display of the flow now has different layout.
algorithm that alternates PCA controllers to reduce strain on them needs review
servo numbers are calculated from leg numbers: servoNum = ((L - 1) * 3) +1;
need to review all f_operation code handlers, but they may not need a lot of changes

prepNextLine()

toe safety box stuff calculations

We decided there wasn't value in renumbering the legs, so we'll retain the original numbering. The work to complete this issue is no longer needed, so the issue is closed.


add mutliset operator for metadata processor

Hey @Jeffail, is that conceptually alright? Or do you want to change key and value types to slice, but that would be a breaking change.

Hey, I think if we were going to lean into multiset we would need to do it similarly to the metadata condition and use :
metadata:
  operator: multiset
  value:
    foo: bar
    foo2: bar2

Although maybe hold off on that for now, I'd like to see some evidence that the performance of the awk processor for setting multiple keys is significantly worse before expanding metadata.

Hey @DpoBoceka, closing this as well as https://github.com/Jeffail/benthos/pull/404 in favour of the new bloblang processor. Thanks for your effort here as this PR along with our discussions helped a lot with planning bloblang out.


Tool couldn't download videos which has non-ascii characters in file names

[] : Downloaded course information webpages successfully..
[] : Trying to logout now...
[+] : Logged out successfully.
[*] : Counting no of chapters..
[+] : Found ('18') chapter(s).
[*] : Downloading chapter : (1 of 18)
[+] : Chapter (01 Kursa Giri351)
[+] : Found ('4') lecture(s).
[] : Downloading lecture : (1 of 4)
[] : Downloading (001 Kursun Genel Tan305t305m305)
Traceback (most recent call last):
File "udemy-dl.py", line 924, in
main()
File "udemy-dl.py", line 840, in main
udemy.ExtractAndDownload(path=outto)
File "udemy-dl.py", line 409, in ExtractAndDownload
msg = self.Downloader(_url, lecture_name, chapter_path)
File "udemy-dl.py", line 89, in Downloader
out = course_dl.download(url, title, filepath=path, quiet=True, callback=self.Download)
File "/home/asderdd/udemy-2/udemy-dl/udemy/_downloader.py", line 101, in download
outfh = open(temp_filepath, fmode)
IOError: [Errno 2] No such file or directory: './down/sifirdan-ileri-seviyeye-python/01 Kursa Giri351.part'
@:~/udemy-2/udemy-dl$ ls ./down/sifirdan-ileri-seviyeye-python
01 Kursa Giri351

@Asderdd need explanation.

this issue related with #51 and you should not close issues without producing a solution ⚠

@SalihKARAHAN i don't think so this is related, you can see the error in downloading and i already have escaped those numbers in a name. so i 'm closing this


TimeoutException com.epson.epos2.printer.Printer.finalize() timed out after 10 seconds

I know that this error has already been discussed, but even when using the latest SDK for Android (V2.20) I still have this issue.
java.util.concurrent.TimeoutException: com.epson.epos2.printer.Printer.finalize() timed out after 10 seconds
at com.epson.epos2.printer.Printer.nativeEpos2Disconnect(Printer.java)
at com.epson.epos2.printer.Printer.finalize(Printer.java:7)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:229)
at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:207)
at java.lang.Thread.run(Thread.java:818)
The problem is that we have a fleet of devices, and this error is hard to reproduce. The application crashes several times per day on certain devices. Given that the Android OS is handling this error, it kills the app and you cannot control it.
Any suggestion on how to mitigate this error ?

Thanks @tr3v3r. In case others are looking at this issue, one patch to overcome the application to crash is to catch the TimeoutException from the FinalizerWatchdogDaemon.
final Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler =
                Thread.getDefaultUncaughtExceptionHandler();
        Thread.setDefaultUncaughtExceptionHandler((t, e) -> {
            if (t.getName().equals("FinalizerWatchdogDaemon") && e instanceof TimeoutException) {
                assert true; //ignore this
            } else {
                if (defaultUncaughtExceptionHandler != null) {
                    defaultUncaughtExceptionHandler.uncaughtException(t, e);
                }
            }
        });

Of course, this is only a workaround that apparently is working.

Thanks @tr3v3r. In case others are looking at this issue, one patch to overcome the application to crash is to catch the TimeoutException from the FinalizerWatchdogDaemon.
final Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler =
                Thread.getDefaultUncaughtExceptionHandler();
        Thread.setDefaultUncaughtExceptionHandler((t, e) -> {
            if (t.getName().equals("FinalizerWatchdogDaemon") && e instanceof TimeoutException) {
                assert true; //ignore this
            } else {
                if (defaultUncaughtExceptionHandler != null) {
                    defaultUncaughtExceptionHandler.uncaughtException(t, e);
                }
            }
        });

Of course, this is only a workaround that apparently is working.

I'm not familiar with Android code. Where can I add this code?

@LucNguyen98 Did you ever find where to add the code? Having the same issue

@LucNguyen98 Did you ever find where to add the code? Having the same issue cc @vargal

I still have not found

Closed because of innactivity


Add uriPrefix parameter during Verifying against Implementation

During generating code from RAML file it is posible to specify
baseUri which is used as prefix for all generated resources.
But this prefix breaks verificaiton against implementation
so add parameter which can compensate baseUri during code
generation.

Hiya - thanks for taking the time to improve this project - i'll be reviewing your changes asap :)

Hiya,
i just reviewed this implementation - this same functionality can be achieved in less risky ways, such as by fast forwarding in the RamlVerifier/RamlCheckers
I'm really sorry but i'll be declining this PR in it's current state and will be implementing your functionality in the verification stage

When You suppose to add this functionality ? In 1-2 weeks or later?

Less than 2weeks, I'll try get it done next weekend :)


Cache::enable

That's more or less for @joshuaadickerson
the Cache::enable method simply sets the enabled property to true, but if the cache is not really enabled to begin with, the cache object doesn't exist at all, so toggling enable like is done in Errors.class.php ends up in a fatal error because the object is null.
So, the question is: is enable intended to completely override the settings, or it should respect the settings and just ignore toggling when cache is not enabled?
I'd say the latter because how are we sure the cache is even usable if not properly configured?

Enable should enable it with whatever connection settings have been given. The system doesn't know if the connection settings are correct unless it tries to connect and that requires it to be enabled.
Does that answer it? I'm slightly confused about the question.

The cache object should always exist. It's a basic/bootstrap component. If it doesn't exist the code will fail in a lot of places.

Yeah, I was reading the code and it did make sense... lol
With "cache object" I mean:
https://github.com/elkarte/Elkarte/blob/23b10d7177a09acc9fb01d63df4af9e84766e013/sources/subs/Cache.class.php#L89
This is initialized only if:
https://github.com/elkarte/Elkarte/blob/23b10d7177a09acc9fb01d63df4af9e84766e013/sources/subs/Cache.class.php#L79
So the question is: in https://github.com/elkarte/Elkarte/blob/23b10d7177a09acc9fb01d63df4af9e84766e013/sources/subs/Cache.class.php#L275 should we:
$this->_cache_object = new $whatever(...);

or:
if ($this->_cache_object === null)
    return false;

This is why singetons suck for stuff like this. Here's a scenario: you don't want caching most of the time so you disable caching. It doesn't create the cache object (I don't like how it does it anyway). For one or two things you want to use caching. You enable it. There's no cache object. If you set the cache object, you'll be caching for everything else. Say you want to set different things to cache in different places. Same thing.
Okay, so the solution is to break the creation of the cache obj out of the constructor first off. That method should be doing a test to see if the class_exists($class, true) to enable the autoloader to find it. Then in enable() it should check if it is enabled and create a new cache object if one doesn't already exist (by calling that new method). That means it needs to hold on to those constructor arguments for later.
This would be much easier to just use Stash.

Yeah, well, sort of:

That method should be doing a test to see if the class_exists($class,
true) to enable the autoloader to find it.

If you don't have the class you can't have a working caching method.
And even if you fallback to filebased you'd have to hope the directory
is writable (that is not always the case).
In both cases, you do not have a working cache even if you try to enable
it. ;)
So, singleton or not, you'd have to deal with it. :angel:
BTW, enable is used only in the database errors code and only because in
the past these errors were saved to Settings.php... I would scrap that
piece of code.
No strong opinions about enable.

Without a singleton you could create a new object when you wanted to do caching like this.
You don't need a working cache method. You just need it to think it has one.
I think the best solution for errors is to remove that. I think when I saw it I was thinking "wtf, why would we do this? Oh well, best not to break anything."
So, the tasks I think are to

remove that piece from errros
save the constructor's parameters for Cache so it can be recreated
separate the actual creation of the cache object from the constructor to its own method
attempt to create the cache object if one does not already exist if Cache::enable(true) is called.


Size-to-fit ellipses option

When double-clicking a column to resize it, it will resize it to the data underneath the column heading. However, if the column heading is very long, that may not be completely shown. I think there should be an option when setting up the grid for the autoResizeIncludesHeading or something like that. For example: https://gyazo.com/7a589b2262d30ef9eda9d7a4e70b92d1

Agreed, I think the default should be true (as in Excel).

Whoops, not sure https://github.com/TonyGermaneri/canvas-datagrid/commit/74650021f111133ac3b54688907eb406a99f88a2 actually fixes this issue; reopening until time to confirm.


Fail to build copiepate

Hello,
I'm trying to install your tool using cargo on debian, however the compilation fails:
error[E0369]: binary operation `==` cannot be applied to type `proc_macro::Punct`
  --> /home/nimag42/.cargo/registry/src/github.com-1ecc6299db9ec823/time-macros-0.2.3/src/helpers/mod.rs:69:49
   |
69 |         Some(TokenTree::Punct(punct)) if *punct == c => {
   |                                          ------ ^^ - char
   |                                          |
   |                                          proc_macro::Punct

For more information about this error, try `rustc --explain E0369`.
error: could not compile `time-macros` due to previous error
warning: build failed, waiting for other jobs to finish...
error: failed to compile `copiepate v0.1.0`, intermediate artifacts can be found at `/tmp/cargo-installlyq0hb`

Here is my current version of cargo and lib:
gorgeousPineapple ~ % cargo -V
cargo 1.56.0
gorgeousPineapple ~ % apt-cache policy xorg-dev libxcb-shape0-dev libxcb-xfixes0-dev|grep Install -B1
xorg-dev:
  Installé : 1:7.7+23
--
libxcb-shape0-dev:
  Installé : 1.14-3
--
libxcb-xfixes0-dev:
  Installé : 1.14-3

Do you need more information?
Thanks,

Dear owner of GorgeousPineapple,
Thank you for taking the time to try out the tool and crafting a very throughout bug report on the issue you encountered. Here at copiepate, we value software quality and wonderful user experience for all our users (we like referring to them as copiepastouilles), regardless of their operating system or package manager.
Please accept our deepest apologies, this is a really rare issue and we are trying everything in our power to satisfy your needs. Copiepate never leaves any copiepastouille behind.
I am forwarding your request to our engineering team that will work on resolving the issue with the upmost priority.
In the meantime, our advanced technicians team has not been able to reproduce the issue within a Debian container, by executing the following commands:
docker run -it debian:bookworm bash
apt update
apt install -y xorg-dev libxcb-shape0-dev libxcb-xfixes0-dev
apt install -y cargo
cargo install copiepate

As a workarounds, our official GNU+Debian evangelist interjected that installing cargo via the official Rust toolchain could fix the issue, then making sure of clearing the cargo cache (~/.cargo) and using the latest version of cargo (1.58.0):
rm -rf ~/.cargo
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Please note that we profoundly understand how for many of our beloved clients, this philosophy of curling into sh is against all industry best practices for package management. For any inquiry our team would be proud to assist our clients to bring that issue toward the official Rust toolchain team.
On behalf of the whole Copiepate team,
Your sincere Copiepate representative.


Test cases don't pass with newest tiny-skia-path

Add the following line to Cargo.toml:
[patch.crates-io]
tiny-skia-path = {git = "https://github.com/RazrFalcon/tiny-skia", rev="9b673e6"}

And you will see that a lot of test cases start to fail. Seems like this commit is the main fault: https://github.com/RazrFalcon/tiny-skia/commit/9b673e6c14e5e0c3f98413f8fa7e3a6cb315183b

This should have been fixed in master. https://github.com/RazrFalcon/tiny-skia/commit/eec0a4701a8413759a3dd51b443b8851ce4c546a ?

Indeed, sorry for the noise, I hadn't pulled the newest branch!

No worries.


Update contributing guide to mention multiple font formats

This is related to #322 regarding file formats in font casks.

Thanks. I cleanup the branch and merged it as 4750853, with a couple of minor corrections.


Fix Memory Leak issue

Fixes #28
This should also be the base for Colin's further buftok changes.

I went through the code, this is starting to be a beast of code  and I really like the coding style of it.
But I think we should add unit test covering the PeriodicRunner and the Retriggabletask there is some thread safety check that we do in both of theses part that can be tricky. I checked the logic of the code and the caller and I don't see any obvious issue at first sight. But the devil is in the details. I would feel more comfortable to have test on these classes.
If I understand correctly.

We have a AutoFlush/RetriggableTask which is used by the multiline codec.
We have 2 PeriodicPoller, one of the will unset the AutoFlush and use record_codec_usage to reset the timer

Also I find the PeriodicPoller and the retriggabletask a bit similar in nature? I am not sure if this could be the same class?

I run the code for a few hours and I don't see any memory pressure or leaks, I will do more testing tomorrow morning to make sure the auto flush code still work as expected.

If I understand correctly.
We have a AutoFlush/RetriggableTask which is used by the multiline codec.
We have 2 PeriodicPoller, one of the will unset the AutoFlush and use record_codec_usage to reset the timer.

The AutoFlush/RetriggableTask will run when the ML codec is used in an input that has not been modified for identity mapping.
The PeriodicRunner kicks in when an input uses identity mapping - yes it will unset the auto_flush_runner and use record_codec_usage to set a future timestamp.  The timer is not reset per se.

Also I find the PeriodicPoller and the retriggabletask a bit similar in nature?

They are quite different. PeriodicRunnerrun call a method on its listener periodically i.e. the thread runs continually,  RetriggerableTask is a one off task that will run in the future, but the running of the task can be pushed further into the future if more retrigger 'events' occur before the task runs. When the task is complete the thread stops. If it is retriggered when the task is running it waits until the task is done then creates a new thread. So in the case that no more 'events' occur the task does not run.
However this raises an interesting edge case for read file scenarios in the file input - when all the files are  read and the the identities evicted, the runner for auto_flush continues running, as does the eviction runner. Maybe in a future PR (the one that moves IMC and all the supporting classes are moved into core :smile:) we can soft-stop the runners after the last identity is evicted. Note that now in the file input the identity is evicted when the file closes via filewatch, i.e. if close_older is set. So the eviction runner may never actually do anything.

@guyboertje Thanks for taking the time to respond to my concerns, I though my original comments where related to the lack of context I had when doing the first review.

Maybe I should travis-ify this repo.

@ph - you are most welcome

I will add tests for Retr..Task and Per..Runner.

Maybe in a future PR (the one that moves IMC and all the supporting classes are moved into core :smile:) we can soft-stop the runners if the map is empty.

I tried this and got ThreadError: thread 0x12924915 tried to join itself :smiley:

@guy My other local tests are successful I think its a winner.

Code LGTM, would like to see tests for the new classes.

@suyograo @guyboertje have concluded that we can release it and add test later for the 2 classes.


Support arrays of strings.

Background: I'm attempting to request permissions from the user in an Android Toga app.
This requires calling requestPermissions which accepts an array of strings as an argument.
PR Checklist:

[x] All new features have been tested
[ ] All new features have been documented
[x] I have read the CONTRIBUTING.md file
[x] I will abide by the code of conduct

Update: now this works:
from toga_android.libs.activity import MainActivity
this = MainActivity.singletonThis
from rubicon.java import JavaClass
activity_compat = JavaClass('androidx/core/app/ActivityCompat')
activity_compat.requestPermissions(
    this,
    ['android.permission.CAMERA'],
    0
)

#69 was exactly what I needed! Thanks.


Pamtbaau/handle renamed files

A quick summary of the changes:
Initial commit backend

Fix parsing path/origin_path of Status data. See PushyRepo::statusParsed()
Replace ChangedItems with simple Changeditem[]
Add $orig_path to ChangedItem
Use Status of staged files

Initial commit front-end

Add extra Status column to table
Adapt to new array of changed items
Refactor displaying items taking Status into account
Refactor getting selected Items to publish.
Add css

Noto to commit: Refactor submitting selected changes to server

Admin, already receives a list of ChangedItems to setup its table. It now submits an array of selected ChangedItems back to server. The server now know the status (A, M, D, R) of each file.
Refactor RequestHandler::handlePublishTask()

Use status of ChangedItem to correctly stage changed file
Log Exception when thrown by PushyRepo/Git library

PushyRepo::commit():
Fallback to user defined in config of git repo. This allows for unit testing without logged in user.

Question:
PushyRepo::commit() contains lines:
f(!isset($this->grav['session'])) {
  return; // FIXME
}

Is there a reason why only logged in users can commit changes? For Unit testing, there is no user logged in. I therefor used the user defined in the git repo as fallback.

Great stuff, thanks. I think I will wait until you have finished tinkering before evaluating though :)


Update README.md

"More MakerDAO..." was taking up too much space
The body of the document was marked up as a description, which made it look like a subtitle

It's supposed to be a subtitle. I'd rather we didn't mess with this too much. It matches docs.makerdao.com. Uhm, maybe put this change up on a staging version or something so we can see what it looks like.


Applicant details for recruiter

Description:
Applicant details were not visible to the recruiter. Added functionality to take more details from user and show linkedinID and githubId explicitly to recruiter for better applicant filtering.
Key Feature:
User details are more exclusive
Applicant details to the recruiter are precise
The recruiter can directly visit LinkedIn and GitHub profiles of the user
Acceptance criteria:
User is able to add links to their linked in and github profiles
Recruiter is able to see all important applicant details
Recruiter can navigate to users social media profiles directly

The following functionality has been completed


Fixed build on ember-cli > 3.0.0

According to this commit https://github.com/ember-cli/ember-cli/commit/26111a6677989ff88846adc49edb57d7ea3ff5b6 nodeModulesPath is no longer available.

Thank you for your PR but I can't merge as is.
If the node module path of project isn't node_modules this fix will not work.
I will provide a more robust solution soon.

Yes I am aware of that. I have not had time to dig deeper how to get node_module path. This is the reason why I used notation:
let nodeModulesPath = this.app.project.nodeModulesPath || DEFAULT_NODE_MODULES_PATH;
Which retains legacy behaviour and for newer ember-cli version will work for most users (these with default node_modules path)
Currently the addon does not work at all for newer ember-cli. I think this could be fine solution until robust one is provided. I would like to switch project back from the fork.

I published version 2.6.0 which fixes this issue without breaking changes.
I also release a new 3.0.0 version with DDAU support.
Now you can use it as you want with Ember 3.0.

Thanks alot.


Noklam/migrate v2

mean to create the PR on my fork

Let me know if there's something I should check to perhaps link to (as mine
is defunct)
On Fri, 12 Jan 2024, 17:17 Nok Lam Chan, @.***> wrote:

mean to create the PR on my fork
—
Reply to this email directly, view it on GitHub
https://github.com/ianozsvald/dtype_diet/pull/12#issuecomment-1889675176,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACCWOVDBALCIFJQQU3TIZDYOFVY3AVCNFSM6AAAAABBYOLNPGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBZGY3TKMJXGY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Prune hook_task table

Ref issue: #10741
At a high level, added code to do regular pruning of delivered webhooks in the hook_task table. It can be turned on/off and the schedule controlled globally via app.ini. Also can be controlled per repository via UI. By default webhooks will be on and delete all but the most recent 10 deliveres.

Added a db migration to add 2 fields to repository table: is_hook_task_purge_enabled and number_webhook_deliveries_to_keep. Defaults to true and 10.
Added fields to repository settings page so that the behavior can be controlled per repository:

Added a cron job to perform the deletions on the hook_task table. Very similar to the setup of other cron jobs, it can be turned off and the schedule controlled via app.ini. Defaults to enabled, not run on start, and every 24hours.

This is ready to review

I think this is now probably correct.

@zeripath thanks! @lunny  had asked that I change to support an option to either delete based on # of webhooks to keep like I did or based on # of days old. Should I work on this prior to merging?

If you can get the number of days in code in quickly I think it's worth doing but I'm not gonna block because it's not there - it can always be an extension in another PR. I think this PR has been around for quite sometime.

If you can get the number of days in code in quickly I think it's worth doing but I'm not gonna block because it's not there - it can always be an extension in another PR. I think this PR has been around for quite sometime.

Thanks, I won't do it for now then. I think it's a straightforward change but I don't have enough free time for it to be quick

Please resolve the conflicts.

Please resolve the conflicts.

I've resolved the conflicts.

I've resolved the conflicts.

Thanks @zeripath

Codecov Report

Merging #11416 into master will decrease coverage by 0.01%.
The diff coverage is 29.62%.

@@            Coverage Diff             @@
##           master   #11416      +/-   ##
==========================================
- Coverage   43.27%   43.26%   -0.02%
==========================================
  Files         646      648       +2
  Lines       71625    71696      +71
==========================================
+ Hits        30995    31017      +22
- Misses      35616    35664      +48
- Partials     5014     5015       +1

Impacted Files
Coverage Δ

models/migrations/migrations.go
4.66% <ø> (ø)

models/migrations/v148.go
0.00% <0.00%> (ø)

models/repo.go
55.69% <ø> (ø)

modules/auth/repo_form.go
42.34% <ø> (ø)

modules/repository/generate.go
0.00% <0.00%> (ø)

modules/repository/prune_hook_task.go
0.00% <0.00%> (ø)

modules/setting/repository.go
57.69% <ø> (ø)

routers/repo/setting.go
14.75% <0.00%> (-0.10%)
:arrow_down:

modules/cron/tasks_basic.go
85.41% <66.66%> (-1.94%)
:arrow_down:

models/webhook.go
68.78% <80.00%> (+0.62%)
:arrow_up:

... and 10 more

Continue to review full report at Codecov.

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

@bhalbright pleace resolve conflicts :)

@bhalbright pleace resolve conflicts :)

sure, done. I started working on the changes you suggested (the columns added to repository would be null by default, and would only have values if the user overrides the settings), but I don't know that I'll have enough free time to finish it this week.

@bhalbright thank!!!

@bhalbright I think https://github.com/bhalbright/gitea/pull/1 should it be

@6543 my apologies, I'm going to close this PR. I realized after chatting with @jag3773 that I misinterpreted the original ask, I should be deleting per webhook, not per repo. Also, I think I made this too complicated, the ability to override the number to keep per repo was likely overkill. I'm going to re-submit a PR that will allow you to set the values via the ini file and you will be able to cleanup via a simple age of the record or by delete all but a certain # per webhook. Also I think I'll put in an option to delete orphaned records in hook_task.
I'm sorry for the time everyone spent reviewing.


Focus / making the editor first responder

I'm using this in a SwiftUI project and the only thing I haven't been able to figure out is how to programmatically set focus into the editor.
I have found StackOverflow posts that suggest WKWebView intentionally tries to prevent automatically setting focus without user interaction.
Is there a way in MarkupEditor that I can have it assume focus? My scenario is that I present the editor in a sheet and want the user to be able to start typing in the editor without having to tap into the editor first.

I see there is a bunch of swizzling code for focus in MarkupWKWebView that was commented out on Sep 5. If I restore that code and call showKeyboard() from makeUIView in the UI representable class, the editor gets focus and the keyboard appears.
I expect there was a good reason for commenting out this code and losing the functionality, but I'd love to know why or what the risks are of restoring this code.

I did a lot of work on this issue that is still in main right now. Basically you can tell the MarkupEditor which view should be the firstResponder by its id:
MarkupEditor.firstResponder = <The String id of the MarkupWKWebView>

In the demos, the id is set to "Document" when the MarkupWebView is created:
MarkupEditorView(markupDelegate: self, html: $demoHtml, resourcesUrl: resourcesUrl, id: "Document")

In the app I'm using MarkupEditor with, I have a unique id for the model-type object that holds onto the HTML I feed to the MarkupEditor.
Behind the scenes, the MarkupWKWebView observes the ObservedFirstResponder and responds:
/// Monitor the setting for MarkupEditor.observedFirstResponder, and set this MarkupWKWebView to be the first responder
/// when the id matches.
///
/// Becoming the first reponder also means that focus and selection state are set properly.
private func observeFirstResponder() {
    firstResponder = MarkupEditor.observedFirstResponder.$id.sink { [weak self] selectedId in
        guard let selectedId, let self, self.id == selectedId else {
            return
        }
        self.becomeFirstResponderIfReady()
    }
}

Main should be stable and I hope (but tbh now absolutely certain) compatible with the Beta release.

Awesome -- I'll point my package ref to main and give this a go. Thank you for such a prompt and detailed reply!

Sorry, I think I sent you on a wild goose chase with main as opposed to the swizzling methods you found earlier. The work I did on firstResponder was useful and dealt with the case of it not working right because a view was not yet ready. In my usage, I have a List of MarkupWebViews, and I need to scroll to a particular one and make sure the insertion-point caret is showing properly, which is not the issue you're having. I even removed the swizzling methods for keyboard interaction from main because I figured they were not needed!!!
I think the reason I commented that code out was because, as you said, Apple mostly doesn't want you to be bringing up the keyboard without the user selecting something. Plus, in my own case, I want the view to open without the keyboard when on iOS, because I want it to be readable and scrollable without the keyboard covering the screen. I still think that will be the default case, but I can see adding a setting to make it optional, and then calling showKeyboard() at the right place when the option is set. That work would amount to adding a new static to MarkupEditor (so, for example, it could be set in your AppDelegate or someplace handy), and then gating the call to showKeyboard with a test on that setting. I'm not completely certain that makeUIView is the right place, but maybe. I might prefer it on a MarkupDelegate callback.
If you want to do that as a PR, I'd love to put it in. (FWIW, it would be easiest for me on main.) Otherwise, we can leave this open and I will try to deal with it at some point relatively soon.
I appreciate your raising the issue and can see how this can be very important. If you don't file a PR, please add any additional info about how you dealt with it if you think it will be useful to me and others.

Thank you for all this info, and apologies for my delay in responding. I've been heads-down for the last little while.
Over the next week I'll focus on implementing this and reach out for feedback and/or submit a PR.

Has this been resolved? @gmckenzi @stevengharris

I haven't been able to spend any time on it. Have you tried what @gmckenzi suggested in https://github.com/stevengharris/MarkupEditor/issues/88#issuecomment-1416474586?

Hi @stevengharris, not sure if this is related.
In my use case, I have other UITextFields above the MarkupEditor. The MarkupEditor is the entire space below. When I try to tap on the space except the topmost line, it does not respond to being a first responder. However when I tap on the top most line, it becomes the first responder. This only happens for the first time, and after that it works properly.
https://github.com/stevengharris/MarkupEditor/assets/4402214/be340dd6-0de9-4b05-af00-fde9c2ae8471


esp_lcd_panel_draw_bitmap produces artifacts without vTaskDelay min 10 / portTICK_PERIOD_MS

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v5.1.1
Espressif SoC revision.
ESP32-D0WDQ6-V3 (revision v3.0)
Operating System used.
Linux
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
None
Development Kit.
ESP32 T-Display
Power Supply used.
USB
What is the expected behavior?
Expected behavior is the display shows is black with a green filled rectangle in the middle.
What is the actual behavior?
Actual behavior is that the display gets artifacts: in the last line drawn of the rectangle one or more pixels have not been painted - at the same those green pixels appear on the last row of the display where they were not intended to be.
If we add a vTaskDelay(10 / portTICK_PERIOD_MS); between each instance of calling esp_lcd_panel_draw_bitmap then the artifact is not visible.
Notice that only one task is running and that this occurs with and without mutex. Notable it occurs even if running in single core mode.
Steps to reproduce.

Run code attached with the vTaskDelay commented and without, you will see the artifacts

Debug Logs.
No response
More Information.
No response

Code sample to reproduce
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "sdkconfig.h"
#include <inttypes.h>
#include <stdio.h>
#include <string.h>

#include "esp_timer.h"
#include <driver/gpio.h>
#include <driver/spi_master.h>
#include <esp_lcd_panel_io.h>
#include <esp_lcd_panel_ops.h>
#include <esp_lcd_panel_vendor.h>
#include <esp_random.h>
#include <freertos/semphr.h>

#define DISP_PIN_NUM_MISO 2
#define DISP_PIN_NUM_MOSI 19
#define DISP_PIN_NUM_CLK 18
#define DISP_PIN_NUM_CS 5
#define DISP_PIN_NUM_DC 16
#define DISP_PIN_NUM_TCS -1
#define DISP_PIN_NUM_RST 23
#define DISP_PIN_NUM_BCKL 4

#define DISP_X_GAP 40
#define DISP_Y_GAP 53
#define DISP_WIDTH 240
#define DISP_HEIGHT 135
#define LCD_PIXEL_CLOCK_HZ 10000000

#define PIXEL_SIZE uint16_t

static esp_lcd_panel_handle_t panel_handle = NULL;
static SemaphoreHandle_t esp_lcd_mutex = NULL;
static DMA_ATTR PIXEL_SIZE display_buffer[DISP_WIDTH];

void prepare_display(void)
{

    spi_bus_config_t buscfg = {
        .sclk_io_num = DISP_PIN_NUM_CLK,
        .mosi_io_num = DISP_PIN_NUM_MOSI,
        .miso_io_num = DISP_PIN_NUM_MISO,
        .quadwp_io_num = -1,
        .quadhd_io_num = -1,
        .max_transfer_sz = DISP_WIDTH * sizeof(PIXEL_SIZE),
    };

    ESP_ERROR_CHECK(spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO));

    esp_lcd_panel_io_handle_t io_handle = NULL;
    esp_lcd_panel_io_spi_config_t io_config = {
        .dc_gpio_num = DISP_PIN_NUM_DC,
        .cs_gpio_num = DISP_PIN_NUM_CS,
        .pclk_hz = LCD_PIXEL_CLOCK_HZ,
        .lcd_cmd_bits = 8,
        .lcd_param_bits = 8,
        .spi_mode = 0,
        .trans_queue_depth = 10,
    };

    ESP_ERROR_CHECK(esp_lcd_new_panel_io_spi((esp_lcd_spi_bus_handle_t)SPI2_HOST, &io_config, &io_handle));

    esp_lcd_panel_dev_config_t panel_config = {
        .reset_gpio_num = DISP_PIN_NUM_RST,
        .rgb_endian = LCD_RGB_ENDIAN_RGB,
        .bits_per_pixel = sizeof(PIXEL_SIZE) * 8,
    };

    ESP_ERROR_CHECK(esp_lcd_new_panel_st7789(io_handle, &panel_config, &panel_handle));
    gpio_config_t bk_gpio_config = { .mode = GPIO_MODE_OUTPUT, .pin_bit_mask = 1ULL << DISP_PIN_NUM_BCKL };
    ESP_ERROR_CHECK(gpio_config(&bk_gpio_config));
    ESP_ERROR_CHECK(gpio_set_level(DISP_PIN_NUM_BCKL, 0));
    ESP_ERROR_CHECK(esp_lcd_panel_reset(panel_handle));
    ESP_ERROR_CHECK(esp_lcd_panel_init(panel_handle));
    ESP_ERROR_CHECK(esp_lcd_panel_disp_on_off(panel_handle, true));
    ESP_ERROR_CHECK(esp_lcd_panel_swap_xy(panel_handle, true));
    ESP_ERROR_CHECK(esp_lcd_panel_mirror(panel_handle, true, false));
    ESP_ERROR_CHECK(esp_lcd_panel_invert_color(panel_handle, true));
    ESP_ERROR_CHECK(esp_lcd_panel_set_gap(panel_handle, DISP_X_GAP, DISP_Y_GAP));
    ESP_ERROR_CHECK(gpio_set_level(DISP_PIN_NUM_BCKL, 1));
}

static void fill_rect(int x, int y, int w, int h, PIXEL_SIZE color)
{
    if (xSemaphoreTake(esp_lcd_mutex, 500 / portTICK_PERIOD_MS) == pdTRUE) {
        for (int i = 0; i < w; ++i) {
            display_buffer[i] = color;
        }
        const int startx = x - DISP_X_GAP;
        const int endx = startx + w;
        for (int i = 0; i < h; ++i) {
            const int starty = (y - DISP_Y_GAP) + i;
            const int endy = starty + 1;
            ESP_ERROR_CHECK(esp_lcd_panel_draw_bitmap(panel_handle, startx, starty, endx, endy, display_buffer));
        }
        xSemaphoreGive(esp_lcd_mutex);
    }
    // FIXME: without this delay you get artifacts on the display
    vTaskDelay(10 / portTICK_PERIOD_MS);
}

void app_main(void)
{
    /* mutex can be removed if using the display from just one task */
    esp_lcd_mutex = xSemaphoreCreateMutex();
    prepare_display();
    fill_rect(40, 53, 240, 135, 0);
    fill_rect(40, 73, 240, 111, 0);
    fill_rect(40, 97, 240, 44, 19460);
    fill_rect(64, 97, 48, 44, 19460);
    fill_rect(112, 97, 144, 44, 19460);
    fill_rect(40, 161, 21, 26, 0);
    fill_rect(61, 161, 105, 26, 0);
    fill_rect(166, 161, 112, 26, 0);
    fill_rect(40, 53, 240, 24, 0);
    fill_rect(40, 53, 160, 24, 0);
    vTaskSuspend(NULL);
}

I had a similar problem. You overwrite the buffer with new data while it is still not finished drawing (DMA).

@kriegste thanks, indeed.
For what is worth this happens regardless of weather the buffer I pass in esp_lcd_panel_draw_bitmap is DMA allocated memory.
Internally the code, if you don't provide a DMA buffer but have setup the display with SPI_DMA_CH_AUTO, seems to copy the data over a DMA buffer anyway and then send that off to the display.
In any case there is some bug somewhere in the DMA handling in esp_lcd or spi master.

Try using a second buffer and alternate between them:
fill buffer 0
draw buffer 0
fill buffer 1
draw buffer 1
fill buffer 0
...

@kriegste Unfortunately it still happens even if I alternate buffers with a flag or even if I allocate a new one for each drawing (both caps DMA and not) and free it after.

You overwrite the buffer with new data while it is still not finished drawing (DMA).

This explanation is correct. If you want to reuse the same draw buffer, please make sure it's old data has been send out by the DMA. You can register a "color trans done" callback by esp_lcd_panel_io_register_event_callbacks.


Error when value definitions are out of order

See this zulip topic for context.

To clarify, I think we should still allow functions to be defined out of order.

Old issue (about warning instead of erroring) that has an example: https://github.com/roc-lang/roc/issues/4430
The discussion linked above said that we shouldn't re-order things in the formatter, but compiler errors are still on the table.
This may become more important or possibly be superceded by purity inference, which will make running observable effects (aside from expect and dbg) much more common.


user docs: Make minor edits to docs in preparation for release 1.5.

@timabbott Here are some minor doc edits I'd like to get implemented before release 1.5, please check them out!

Automated message from Dropbox CLA bot
@synicalsyntax, it looks like you've already signed the Dropbox CLA. Thanks!

Merged, thanks @synicalsyntax!!


add functionality to clone graphs (important for unit test performance)

Alternative proposal to https://github.com/joernio/flatgraph/pull/162
I moved a few things around and refactored for readability. Main difference in API is that rather than
graph.copyDataFrom(other: Graph)
this does
graph.copy(): Graph

You still need to include https://github.com/joernio/flatgraph/commit/37514cbd64066bdf59b7581ccfa8e0707ce7bf89

The test is green, so technically no, because I added a .clone in cloneThing: https://github.com/joernio/flatgraph/pull/163/files#diff-c01ea7a83957bac3955efb6f2fb9379aa20ab5ff53d2fccd82e41dd57b7633d1R50
But I can (also)? add it to the DiffGraphApplier if you prefer..?

rebased, cleaned, formatted, included your commit
looking good?

I'm fine, you can merge and close the superseded sibling.
I would remove the defensive copy of arrays in the copy -- but we can also leave it in if you prefer, copying is only supposed to happen for pretty small graphs in unit tests anyways.


open-vm-tools: 12.3.0 -> 12.3.5

Replaces #263819 on unstable.
Description of changes
Addresses CVE-2023-34058

https://github.com/vmware/open-vm-tools/blob/master/ReleaseNotes.md
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

@ofborg build open-vm-tools