⚡ Lightning Comments

I would like to propose an alternative for cross-app comments that integrates the feature we all love - BOOSTS!⚡
Issues with podcast:social
Whilst the current <podcast:social> tag is workable, in my view there are some fundamental issues:

There are too many platforms given as options - This choice leads to confusion on how the tag works and makes the implementation much more work for developers.
The account requirement leads to bad UX - As a podcast app user I really don't want to have to login to different social accounts just to comment.
There is no link to value for value - The value block is one of the most exciting features of Podcasting 2.0 and is already seeing many messages sent every day. Any spec that doesn't integrate boost messages is a huge missed opportunity.
There is no protection against spam or bots - One of the biggest problems with social media today is spam and bots - just look at Twitter. Podcasts have been a sanctuary where this doesn't exist. Let's keep it that way and include spam protection from the start.

⚡ Lightning Comments
A cross-app <lightningcomments> specification that could be added to the Podcasting 2.0 namespace.
By tying comments to Lightning payments, any app can post a comment or reply without needing the user to create an account. Optional user info can be parsed from the TLV record just as we do things for the podcast:value tag.
Comments can come from any app - but the host still has full control.
There are 2 components to this proposed spec:
1. Comments Tag <lightningcomments>
Tells the app where to load the comments JSON. The JSON will contain the comments data along with instructions on how to post a comment.
<lightningcomments url="https://api.fountain.fm/v1/comments?feed=920666&episode=6788136469" />

Importantly:

The tag is so simple it can be easily posted into shownotes until hosts add support.
Fountain is currently using PodcastIndex IDs in the URL to make it easy for other apps to dynamically generate, but this may not be the case for other hosts.

2. Comments JSON (returned from url in tag)
Defines the JSON format that any lightningcomments host should conform to:
{
  // how to post a comment
  "_post": {
    "type": "lightning",
    "method": "keysend",
    "minimum": 1,
    "address": "03bc290b26637eb8f25de69fca83c85c014796aa03d90bf0d4c03c18947e12127d",
    "tlv": {
      // required comment tlv record
      333333: {
        // the host field allows each comments host to provide their own data which is passed along through the tlv, apps should not modify.
        "host": {
          "_show_id": "",
          "_feed_id": "",
          "_episode_id": "",
          "_episode_title": ""
        },
        // the comment field should be consistent between hosts, apps should set.
        "comment": {
          "payment": 1, // payment value (required)
          "message": "", // comment message (required)
          "parent": "", // id of parent comment (optional if reply)
          "sender": {
            "app": "", // name of app sending comment (optional)
            "id": "", // unique id of user sending comment (optional)
            "name": "" // name of user sending comment (optional)
          },
        }
      }
      // ...optional tlv records
    }
  },

  // the existing comments data
  "data": {
    "comments": [
      // a route comment
      {
        "id": "75X5adm5VCsnolxzPJFN",
        "message": "",
        "sender": {
          "app": "",
          "id": "",
          "name": "",
        },
        "depth": 0,
        "payment": 1,
        "created": "2022-01-20T18:18:00.000-0100",
        "parent": null,
        "children": [
          "CGGDl8Hy3DNmCSAqAUSQ"
        ]
      },
      // a reply to the route comment (75X5adm5VCsnolxzPJFN)
      {
        "id": "CGGDl8Hy3DNmCSAqAUSQ",
        "message": "",
        "sender": {
          "app": "",
          "id": "",
          "name": "",
        },
        "depth": 1,
        "payment": 1,
        "created": "2022-01-20T18:18:00.000-0100",
        "parent": "75X5adm5VCsnolxzPJFN",
        "children": [
          "u5u27ntCCYP2AulIClmB"
        ]
      },
      // a reply to the reply (CGGDl8Hy3DNmCSAqAUSQ)
      {
        "id": "u5u27ntCCYP2AulIClmB",
        "message": "",
        "sender": {
          "app": "",
          "id": "",
          "name": ""
        },
        "depth": 2,
        "payment": 1,
        "created": "2022-01-20T18:18:00.000-0100",
        "parent": "CGGDl8Hy3DNmCSAqAUSQ",
        "children": []
      }
    ]
}

Although the existing comments data is a list, the parent and children properties will allow apps to render nested comments.
Working Demo

iOS TestFlight beta - https://testflight.apple.com/join/Bck8Lm3D
Web Demo (read only) - https://play.fountain.fm/episode/6788136469?beta=comments
URL for Comments JSON - https://api.fountain.fm/v1/comments?feed=920666&episode=6788136469

You can see that:

Any boosts sent from the Fountain beta app will show up as comments.
If you send a keysend payment using the data in the Comments JSON it will also show up.
Fountain is honouring the value block and sending the comment payment to each split.
For non-value enabled shows Fountain charges 1 sat for the comment.

Questions
Should users have to pay for comments?
A payment is required to comment, but because the payment value can be very small (1 satoshi), apps can very easily cover the cost for users if they choose. The payment requirement brings an incredible benefit of spam protection and also incentivises better quality comments.
Will the Lightning TLV record have enough space for comments?
The TLV record is limited in size but will still be enough for multi-paragraph comments. No essays but limiting response length in this way is not nessessarily a bad thing.
What about the existing 7629169 TLV record?
We could definitely combine the TLV records - but I think in the short term it's easier to define a new record and let apps / hosting providers decide whether to include boosts from the 7629169 record in the comments JSON. This separates concerns until we have fully aggreed on the spec. It also leaves open the ability for apps to send private boosts.
The comments are stored on a central server - is this decentralised?
The comments are hosted on a central server yes, but the specification is still decentralised because you can switch comments hosts whenever you want - just like you can switch podcast hosts. As the JSON format is the same you can bring your comments with you to a new host or self-host them. The posting of comments is still decentralised because anyone can post a comment from any platform by sending a Lightning payment.
Next Steps
Please give a thumbs up on the issue if you think like the idea - otherwise I would love to open a discussion!

What about user privacy in this context?
When comments are done on the podcasters wordpress page with captcha and so on i can post one comment as "max"  the next as "john" and they can not be linked if i used a different ip they also can't tell if john on one podcast is the same john that posted a comment on another podcasts page.
Can we keep this non linkability up with your new system?

What about user privacy in this context?
When comments are done on the podcasters wordpress page with captcha and so on i can post one comment as "max" the next as "john" and they can not be linked if i used a different ip they also can't tell if john on one podcast is the same john that posted a comment on another podcasts page.
Can we keep this non linkability up with your new system?

It would up up to apps to set privacy policy - same as with the <podcast:value> tag. Some apps send an id / name / username - some apps are anonymous.

This is a cool idea!  I common structure for how to locate and surface comments generated via lightning is needed.
One note about the idea specifically: the podcaster will not want to put a url to fountain (an app) in their podcast feed.  They'd want to point to the system that can can surface the transactions received, ie it should come from something like helipad for those with umbrel wallets.  Or maybe in your example you meant fountain owns/manages a podcaster's wallet?  It is a question for how you would do this for a wallet without custom software like helipad though.
One suggestion about the idea from a high level - you may want to consider implementing "lightningcomments" as a new protocol on the existing socialInteract tag, since you are effectively creating another protocol here.
i.e.
<podcast:socialInteract platform="helipad" protocol="lightningcomments">
  https://helipad.example.com/v1/comments?feed=920666&episode=6788136469
</podcast:socialInteract>

This way:

keeps lightning-specific terminology out of a tag name of the podcast namespace: a namespace about podcasting, not about lightning
builds on the foresight of the Castopod guys, allowing a url per-platform per episode - they can be rendered together in the app's ui, just not reply-able across platforms - which may actually be desired for apps wanting to give lightning-based comments more prominence
is non-exclusive, and therefore does not shut out the larger universe of podcasters/users potentially interested in comments (vs the smaller subset of podcasting interested in lightning-based micropayments)
would be a nice way to introduce users to lightning comments, as a layered add-on to easier to swallow twitter/fediverse-based comments, instead of making it the only way.  i.e. "I see this special form of comment in this episode's comments, how can I participate", instead of the more gatekeepery "you must use a lightning-based app to comment at all"
And even then, podcasters excited about promoting lightning exclusively can still specify lightingcomments only for a given episode by defining a single element for that protocol as the sole socialInteract element

Oh and:

As a podcast app user I really don't want to have to login to different social accounts just to comment.

With ActivityPub at least, a good app will provide a transparent id on their domain, so no log in at all from the user's pov.
Hope that helps!

@johnspurlock thanks so much for the detailed feedback!

the podcaster will not want to put a url to fountain (an app) in their podcast feed.

Yes definitely agree. The Fountain url is just an example and I envision each podcast having a different comments url based on their choice. So you could have a Fountain url, another app url,  a hosting platform url, a helipad url (if that's possible).

you may want to consider implementing "lightningcomments" as a new protocol on the existing socialInteract tag

Yes agree this could be a great way to do it. I thought about proposing it this way but wanted to leave the option of having it separate. But all your points make a lot of sense. I especially love the idea of a url per-platform per episode and gradually (but optionally) introducing users to Lightning.

Since Oscar built the API, and since I support this idea in principle, I have implemented this specification within Podnews pages.
If you go and listen to the Podnews episode called "Google's new dubbing tool" and send a boostagram, the text of that boostagram will appear in the comments section towards the bottom of: https://podnews.net/update/google-dub

The comments are updated every ten minutes; that's not a technical issue with this specification, but just how long the JSON will cache for at the CDN, to save Oscar's systems being hit every page load. The work I've had to do for this is minimal; I wrote a proxy for the comments API on Fountain (five lines of PHP, plus caching and CORS); a piece of JavaScript to asynchronously call this API and lay out the results (fourteen lines); and added an additional column in the database schema to store the Podcast Index episode ID. It'll take ten minutes more to add a tool to pull the episode ID out of Podcast Index.
I should note: I am very happy to give someone a value share in order for them to run an API for comments like this. There is a business model in operating comments like this and an API on the other end. (Indeed, some API operators might wish to add moderation tools.)
A suggestion to make it easier for developers and avoid a central point of failure
The current comments JSON lives at a URL like:
https://api.fountain.fm/v1/comments?feed=227573&episode=7130637071
Both the feedID and the episodeID are both proprietary pieces of data from Podcast Index, requiring API calls and relying on a central database. I believe that where alternatives exist we shouldn't back ourselves into a proprietary corner, no matter how nice Dave and Adam are.
I'd therefore suggest
https://api.fountain.fm/v1/comments?feedUrl=https%3A%2F%2Fpodnews.net%2Frss&guid=https%3A%2F%2Fpodnews.net%2Fupdate%2Fgoogle-dub
I do, though, recognise that boosts all currently rely on PodcastIndex IDs currently, so perhaps right now this isn't a concern; but just a suggestion.

Nice James - one step closer to making this hidden lightning comment data available for display in 3rd-party apps!
Just added two PRs to formally add fountain as a platform, and lightningcomments as a protocol to podcast:socialInteract, so we can get this into phase 5.

PR to add to the known platforms/protocols list: https://github.com/Podcastindex-org/podcast-namespace/pull/349
PR to add these to the spec doc, and usage example: https://github.com/Podcastindex-org/podcast-namespace/pull/350

Can you add the following tag to the podnews rss feed, under the item with guid https://podnews.net/update/google-dub:
<podcast:socialInteract priority="1" platform="fountain" protocol="lightningcomments" accountId="033868c219bdb51a33560d854d500fe7d3898a1ad9e05dd89d0007e11313588500" pubDate="2021-04-14T10:25:42Z">https://api.fountain.fm/v1/comments?feed=227573&episode=7130637071</podcast:socialInteract>

or for extra credit:
<podcast:socialInteract priority="1" platform="fountain" protocol="lightningcomments" accountId="033868c219bdb51a33560d854d500fe7d3898a1ad9e05dd89d0007e11313588500">https://api.fountain.fm/v1/comments?feed=227573&episode=7130637071</podcast:socialInteract>
<podcast:socialInteract priority="2" platform="twitter" protocol="twitter" accountId="@Podnews">https://twitter.com/Podnews/status/1502242577122304005</podcast:socialInteract>

To provide the complete structured data for that episode, including your corresponding tweet.  Didn't you used to provide this?
I could probably even add adapters to threadcap for Twitter and this new lightningcomments json format, so existing callers could just point it at any of the three: ActivityPub, Twitter, lightningcomments and get a normalized format for easy rendering.

Thanks, @johnspurlock -
<podcast:socialInteract priority="1" platform="fountain" protocol="lightningcomments" accountId="033868c219bdb51a33560d854d500fe7d3898a1ad9e05dd89d0007e11313588500" pubDate="2021-04-14T10:25:42Z">https://api.fountain.fm/v1/comments?feed=227573&episode=7130637071</podcast:socialInteract>

I'm going to not publish a pubDate - it's programmatically difficult to get as far as I can see, and it appears optional in the spec.
Both @MerryOscar and @johnspurlock - It's sub-optimal to have to publish the RSS feed once in order to submit it to PodcastIndex, then to get the proprietary PodcastIndex episode ID from PodcastIndex once it's updated, and then publish the RSS feed again once I've found it. I need to fiddle with a lot of caching and double the notifications in order to achieve this. I would much rather use the episode GUID, which is set at publish time. Please can we consider how this is done?
The Twitter socialInteract - I need to see if I can programmatically get the ID of the tweet that's sent. At least, though, I can send the tweet as part of the publication process and get an instant response, which I can't rely on from PodcastIndex.

100% behind using the (trimmed) item guid content value to identify episodes across our various systems, instead of PI episode ids.
Best (what you have above): https://api.fountain.fm/v1/comments?feedUrl=https%3A%2F%2Fpodnews.net%2Frss&guid=https%3A%2F%2Fpodnews.net%2Fupdate%2Fgoogle-dub
Supported alternative (podcastId known ahead of time): https://api.fountain.fm/v1/comments?podcastId=227573&guid=https%3A%2F%2Fpodnews.net%2Fupdate%2Fgoogle-dub
Maybe we should pester @daveajones to provide a brand new episodes-by-feed-id-and-item-guid endpoint (or maybe an optional new param to the existing episodes-by-feed-id endpoint?).  Right now you can kind of do this by enumerating all episodes for the feed-id, but his DB would do a more efficient job of it given an item guid

(As an aside: you'll see a return of the SocialInteract for Twitter as of today; I've rewritten the tweet service to capture the tweetID. I've also added it to the /google-dub episode.)

It's sub-optimal to have to publish the RSS feed once in order to submit it to PodcastIndex, then to get the proprietary PodcastIndex episode ID from PodcastIndex once it's updated, and then publish the RSS feed again once I've found it. I need to fiddle with a lot of caching and double the notifications in order to achieve this. I would much rather use the episode GUID, which is set at publish time. Please can we consider how this is done?

@jamescridland yes I agree this is sub-optimal.
I think it's important to note that because it is only a url that is specified in the spec, any Lightning Comments host can return the url in whatever form they want. Some hosts could use a combination of the feedUrl and the GUID, some hosts could use their own internal IDs.
For this Fountain demo we're using our internal showID + the PodcastIndex episode itemID. The reason for this is PodcastIndex have the GET /episodes/byid endpoint which makes things very easy.
@jamescridland - I'll update our comments load endpoint so that it accepts a Fountain showID and episode guid so you don't have the extra step of waiting for the PodcastIndex itemID - will let you know when this is done.

Proposed the lookup by guid change in #352

Added experimental support for this new lightningcomments protocol (and also twitter!) to the latest threadcap library
https://podcastindex.social/web/@js/107967439891619300

I'm not seeing how this is different from publishing "public" Boostagrams anyway.
I see Boostagrams as a "response" that can be highlighted in a "comment" stream, similar to "superchats" on Twitch and YouTube Live.
However, I don't see Boostagrams as something intended to spark conversation with other listeners like comments often are.
I think, if anything, there should be a simple toggle in a feed that gives the app permission to surface the "public" Boostagrams. If it's allowed, then only those Boostagrams where the sender opts-in to having their response published will be visible. And if the tag is set to not allow, then no boostagrams will be displayed. Maybe there could be an in-between option that can let a podcaster show off the amount(s) and number of boosters, but not the individual boostagrams or their senders.
My position is that podcaster control and audience privacy should come before anything else.


Try to add my name

ggwp <3

Hello @  The contributors.md file has been deprecated in recent PRs, you however can add your name here https://github.com/HacktoberfestinAba/HacktoberfestinAba.github.io/blob/master/CONTRIBUTING.md
You can git pull the repo to sync the updates and send in a new PR/ Re-Open this PR


CommonsApplication migrate to kotlin & some lint fixes

From comment
What changes did you make and why?

Migrate application class to kotlin
some lint fixes

Tests performed (required)
tested betaDebug & prodDebug on Oneplus 9RT 5G , Android 14

CI failing due to some unit test. Will fix it

I did a few uploads and tried most activities of the app with this branch. It works as usual. :-)

Actually just one test failing due to lateinit instance property in application class, not being initialised while other tests do use that property and works fine :( . I'm a little rusty on testing, I will figure out what's causing this.

This test was causing the issue ThanksClientTest
https://github.com/commons-app/apps-android-commons/blob/f1205c19be7dccefc2b65f4d4c95bfb36c06c23c/app/src/test/kotlin/fr/free/nrw/commons/actions/ThanksClientTest.kt#L42
when()  started raising error that it needs a call to a method on mocked instance. Now, in this case we were calling instance on static, CommonsApplication.getInstance()  was working fine when the class was in java but not when converted to kotlin. I'm guessing it's due to how to kotlin generate java impl internally such as it by default make properties final (I tried using open keyword` though).
Most likely this is library issue. Also, from my research on stackoverflow mocking statics is discouraged. Also I found out mockito mockk supports kotlin by design didn't try it though.
So, at the end I refactored the function to take application as an argument rather calling it inside.

Thanks! Would you mind fixing the conflict?

Done

Waiting for this one #5887

Now that we have #5887 , this one's finally good to go. Give it a look whenever you can. I will have #5698 solution up after this.

Thanks a lot! :-)


info.changes always returns 2

Hello, i am updating table with .prepare() and .run().
' info.changes ' always returns 2. Anyone know why this is happening? As far as i know 2 rows are updated. But it's happening always. When i spam the update function ten times. If i update table with the same values, changes still returns 2.
@Injectable()
export class BooksService {
//snip
  updateBookById(book_id: number, booksDto: object): object {

    if (Object.keys(booksDto).length === 0) {
      return { status: 404, error: `Parameters are empty.` };
    }

    let selectBook = db
      .prepare("SELECT * FROM books WHERE rowid = ?").get(book_id);

    if (selectBook === undefined) {
      return { status: 404, error: `There is no book with ${book_id} id number.` };
    }

    let dynamicQuery = "UPDATE books SET ";
    for (let booksDtoKey in booksDto) {
      dynamicQuery += `${booksDtoKey}=@${booksDtoKey},`;
    }
    dynamicQuery = dynamicQuery.slice(0, -1) + " WHERE @rowid";
    Object.assign(booksDto,{'rowid': book_id})

    let result = db
      .prepare(dynamicQuery).run(booksDto)

    console.log(result.changes);
    return result.changes === 1 ? { status: 200, error: `Book number ${book_id} has been updated.` } : { status: 404, error: `Update failed.` }
  }
//snip
}

Result of dynamicQuery variable:
UPDATE books SET book_name=@book_name,page_number=@page_number,book_author=@book_author,publish_date=@publish_date WHERE @rowid
booksDto object:
{
  book_name: 'Update Test3',
  page_number: 33,
  book_author: 'Update Test',
  publish_date: '123',
  rowid: 2
}

Before Update;
{
  book_name: 'Update Test3',
  page_number: 33,
  book_author: 'Update Test',
  publish_date: '123',
  rowid: 2
}

//result.changes: 2

After Update
{
  book_name: 'Update Test34',
  page_number: 334,
  book_author: 'Update Test4',
  publish_date: '1234',
  rowid: 2
}

//result.changes: 2

Update is working. It changes the data as i expected. But result.changes always returns 2

Nvm. Found the solution.
 dynamicQuery = dynamicQuery.slice(0, -1) + " WHERE @rowid";
Query was wrong. Correct query is;
 dynamicQuery = dynamicQuery.slice(0, -1) + " WHERE rowid=@rowid";


:star: Improvment in achievement page

fixes #287
Card overlapping on button show more , corrected.
Chevron Icons added instead of span.
Toggle improved.
Removed span code.
Before -

After -

Smaller icons for it and icon colour should be white when it drops down.

Done @anushbhatia .

not completely center aligned

Done @anushbhatia

I think what I did in this PR was of "hard difficulty level" as it was tough to handle buttons through JS. Could you please upgrade the level of this PR @anushbhatia ?

Sure, have a talk with @anushbhatia regarding this


fix for swift3 variadic params

Two downsides to the approach I went with:

Its a breaking change, but that's understandable, given this is a source change
In the print output, the items may be printed as an array, instead of a variadic list. Not sure how to get around that, I looked at function currying and partially applying the print function, but it didn't lead anywhere

Wow, fast! Thanks! Looks fine to me! About that problem with printing array, would it work that instead of using array, make the items parameter the last one in tuple, so it can accept variadic parameter?

Oh that might! Let me try it

Yeah, that worked @sunshinejr. Awesome insight!
If this looks good to you, then I think it's ready to merge 😄

          1 Error

:no_entry_sign:
Any changes to library code need a summary in the Changelog.

SwiftLint found issues
Errors

File
Line
Reason

Endpoint.swift
97
Force tries should be avoided.

  Generated by :no_entry_sign: danger

💯


Improve overall typing and add initial support for Go To Declaration on x-data derived properties

A couple of improvements:

Added typing support for $el and $root
Added typing support for events from x-on: and @
Improved intellisense for x-data derived properties
Added initial support for Go To Declaration for x-data derived properties

Wow! Somehow I missed this until just now. Looks amazing. I'm going to do a little testing before I merge, but thanks!

@joao-pedro-braz it looks like createExpressionFromText can fail and trigger an error in the IDE if the expression isn't parsable. I've come up with a short-term solution for Laravel's Blade syntax but this could be a larger issue. Any ideas?


wrong numbers after remap numpad keys in browsers

Microsoft PowerToys version
0.81.0
Installation method
PowerToys auto-update
Running as admin
None
Area(s) with issue?
Keyboard Manager
Steps to reproduce
Hi, I remapped numpad keys from English numeral<PHONE_NUMBER>) to Persian numerals<PHONE_NUMBER>). I don't have any problem in Notepad but when I use them in browsers like chrome or firefox, I have problem. It show another number.
✔ Expected Behavior
when I click (2) in numpad, I want (۲), or (۵) instead (5).
❌ Actual Behavior
It shows another numbers like ۸ or ۹ or ... (It shows ALL Numbers everytime)
Other Software
No response

I have some problems with "remap a key" but only for browsers not Text softwares like Notepad or Word. I don't have these problems by "remap a shortcut" feature. I found there is "Target app" feature with "All apps" for default.
Is it impossible to add this for "remap a key"?

Could you:

Provide a screenshot of your remapping

Retitle this to something like:

Keyboard manager: remapping numpad digits inserts wrong digits in browsers

I did this remap for all numpad numbers. I don't have this problem with Text editors like Notepad Or Word. but when I want to use it for browsers, I need to press CTRL key. without it, it shows random numbers. for example:
I remapped (5) to (۵) but when I press it, it shows (۶) or (۲) or (۸) or (۳).
if I press again and again without type another keys, It shows:<PHONE_NUMBER>۸۹............

Is there any news about this problem?


[dvsim] Add python workaround for shutil

Follow-up for #14379.
Prior to Python 3.9, shutil may run into an error when passing in Path objects (see https://bugs.python.org/issue32689). While this has been fixed in Python 3.9, string casts are added so that this also works with older versions.
Signed-off-by: Michael Schaffner<EMAIL_ADDRESS>

Merging, since this does not affect the FPGA.


The visually implied heading of the dialog in the Datagrid Detail Pane is not implemented with a  h1 - h6 element

Describe the bug
The visually implied heading of the dialog in the Datagrid Detail Pane is not implemented with an h1 - h6 element
[Test URL]
https://clarity.design/documentation/datagrid/detail-pane
[WCAG 2.1 Guideline]
Success Criterion 1.3.1 Info and Relationships
(Level A)
https://www.w3.org/TR/WCAG21/#info-and-relationships
[OS]
any
[User Agents/Assistive Technologies]
any
[Component]
Datagrid Detail Pane
[Description]
The visually implied heading of the dialog in the Datagrid Detail Pane is not implemented with an h1 - h6 element.
See the relevant HTML below.
div clrfocusonviewinit="" class="datagrid-detail-header-title" id="clr-id-12-title" style=""
[User Impact]
Blind users will not be able to use their screen reader software to understand that this content is a heading and what level it represents in the overall document outline
[Recommendation]
Provide a way for the Clarity consumer to implement the datagrid-detail-header-title with a h1-h6 tag.
How to reproduce
[Steps to Reproduce]

Activate one of the .datagrid-detail-caret-button buttons like the one below

button type="button" aria-haspopup="dialog" class="datagrid-detail-caret-button is-open" aria-label="Close" aria-expanded="true" aria-controls="clr-id-12"

Read the datagrid-detail-header-title with a screen reader and observe that it is not identified as a heading and that its heading level is also not announced.

Expected behavior
Blind users should be able to use their screen reader software to understand that this content is a heading and what level it represents in the overall document outline

The demo can just project an h1 or whatever element necessary into the header.

Actually,  it doesn't make sense for a dialog's heading to be an h1 because it is not the beginning of the document's outline. As long as the Clarity consumer can implement the datagrid-detail-header-title with a h2-h6 tag this is not an issue and it will be up to them to make the right choice for the document's outline.

We should fix the demo. The use of CSS classes with "header" in the name, as seen below,  is usually an indication that the developer is trying to create a non-semantic but visually implied header.
div clrfocusonviewinit="" class="datagrid-detail-header-title" id="clr-id-1-title" style=""
datagrid-detail-header {
-webkit-box-flex: 0;
flex: 0 0 auto;
font-size: .9rem;
line-height: 1.68rem;
padding-left: 1.2rem;
margin-top: 0;
display: -webkit-box;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
flex-direction: row;
}
.datagrid-detail-header .datagrid-detail-header-title {
-webkit-box-flex: 1;
flex: 1 1 auto;
padding-top: .8rem;
}


SQLite column explicit NULL creates Unknown Type Error

Version
1.15.0
What happened?
In SQLite, when a column is designated with an explicit NULL modifier, such as id INTEGER NULL or id TEXT NULL then an error occurs, such as unknown SQLite type: integernull or unknown SQLite type: textnull
Relevant log output
sqlc generate failed.

2022/08/23 14:29:37 unknown SQLite type: integernull
2022/08/23 14:29:37 unknown SQLite type: integernull

Database schema
-- Example queries for sqlc
CREATE TABLE test
(
    id INTEGER NULL
);

SQL queries
-- name: TestList :many
SELECT * FROM test;

Configuration
{
  "version": "1",
  "packages": [
    {
      "path": "db",
      "engine": "sqlite",
      "schema": "query.sql",
      "queries": "query.sql"
    }
  ]
}

Playground URL
https://play.sqlc.dev/p/01df25ecce97214ab8073d8e4ac7c2487d9d11ed995c682b32913b1e09a8855f
What operating system are you using?
Linux
What database engines are you using?
SQLite
What type of code are you generating?
Go

A workaround is to remove the explicit NULL and the column will implicitly accept NULL values.
I would be happy to offer a PR if someone could point me in the right direction.

@caleblloyd I believe this is an issues with our SQLite parser. It's parsing the column type as integernull instead of a null integer.

@kyleconroy @caleblloyd It's very difficult say this is bug of SQLite parser. I know NULL constraint is accepted by SQLite3 binary, but in the spec, NULL constraint is not valid syntax for column-constraint.
See https://www.sqlite.org/syntax/column-constraint.html
In my understanding, current SQLite parser is based on spec (check original repo: https://github.com/bkiers/sqlite-parser), not SQLite3 implementation.
So this is expected behavior of current SQLite parser.

Should this be a parser error then?

Yes, it should be parser error based on the spec.
For my personal use, I don't use NULL constraints because it's default behavior.
But if someone want to update SQLite parser to match SQLite's  implement, I have no objection.


make sure bgapi can invoke callback even if not jobid parameter

Cool, I would also remove the if(jobid) check in the sendApiCommand function since now it is guaranteed to be defined.

Greate, i agree that


127891

          <samp>

Azure Pipelines successfully started running 1 pipeline(s).

Originally posted by @azure-pipelines[bot] in https://github.com/microsoft/winget-pkgs/issues/127891#issuecomment-1824769308

Duplicate of #128404


show-whitespace causes lines to wrap

When RefinedGithub is enable, diffs and other views are doing line wrapping on code. I would like to disable this behavior. I searched around the open/closed PRs, as well as through the options for "wrap" but couldn't find this option.
Thanks!

Where are you seeing the code wrapping? Post a link and/or screenshot as requested by the template

Disabled:

Enabled:

Oddly, the text file seems to always wrap.
This is also on Github Enterprise; version 2.19.6

Post a link and/or screenshot as requested by the template

The template for "Feature request" doesn't ask for that, fyi.

Thanks for the screenshots, but without a URL now I have to recreate your condition, making it harder for us to find the issue.

The template for "Feature request" doesn't ask for that, fyi.
It does ask for a URL:

Include a full URL where the feature should appear.

It happens under a PR diff view, something like http://our-ghe.com/org/repo/pull/295/files

Here: https://github.com/sindresorhus/refined-github/commit/4cb59bea8b78a2d3b8ea4fa888df5e70ca286ff4
It looks like it's due to show-whitespace

The wrapping is because of https://github.com/sindresorhus/refined-github/blob/f13db9b420cc351680b15fc86344ad099bd4f96a/source/features/show-whitespace.css#L3 which was added in #3292, to fix another wrapping issue #2991.

It looks like GitHub wraps some file type while it doesn't wrap others. Is this easily detectable? Perhaps that white-space only needs to be applied to some filetypes.

Seems like there's a div in the chain that adds .soft-wrap which adds this for files which GH thinks should be wrapped.

I'm thinking this should be easy fix, haven't tested, might be wrong.
[rgh-observing-whitespace] {
	// other props
}

.soft-wrap [rgh-observing-whitespace] {
	white-space: break-spaces;
}

GitHub is likely wrapping files that it thinks don't have code in them, again, I might be wrong.


Provide Docker image with everything that we will use during workshop

So that we eat our medicine and offer a reproducible environment independent of the operating system. This does not have to be the default but it would be great to offer this as option for those who want to try Docker and don't want to pull quite a list of packages into their system environment.
The install instructions could then show how to install Docker (see #92) and how to use our image.

totally agree, we should provide a container image.
But we should perhaps also make it even clearer that installing into system environment isn't necessary if conda environments are used. Actually, we should provide a requirements.txt file as well...

100% agree. I just re-discovered an issue on this: #87.

I still think this is a good idea but it hasn't happened and we rather went for Conda. We can always add this in future.


Stuck at Level 46

My TeamSpeak identity is at level 46 and the estimated time for level 47 just stay at about 16h 45min +/-10min

It is normal that the expected time for the next level stays the same. There is no progress in this sense. It is like playing the lottery: having lost many times before does not make it more likely to win the next time.


Simulation-related changes required for M4.5.7

To be merged in ONLY IF datasets 135 and 157 have been published to the portal.
Description
Updated the SPARC API so that it can address the needs of M4.5.7. This meant removing the /simulation endpoint and replacing it with a new /start_simulation and /check_simulation endpoints. This was needed to account for simulation that take quite some time to run. The previous /simulation endpoint would try to start and check a simulation in one go, but if the simulation was too long then the API would time out. Now, we can start the simulation and check for its progress until it has completed or errored. The tests have been changed accordingly.
Also updated the /sim/dataset/<id_> endpoint to make it optional to output debug information (see inject_template_data()) which doesn't apply to simulation datasets. The default behaviour hasn't changed, but now if you have something like /sim/dataset/135/nodebug then we won't get that warning from inject_template_data().
Type of change
Delete those that don't apply.

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have added unit tests that prove my fix is effective or that my feature works

@agarny is this PR still a draft?
I could use some help on how I should test the PR.
I tried running the osparc tests and passed all except:
test_osparc_successful_simulation
and
test_osparc_successful_simulation

I hadn't even noticed that it had been qualified as a draft, but no it's not a draft anymore. As for the failing tests, sorry about that, let me have a quick look.

By the way, @Tehsurfer, you mentioned test test_osparc_successful_simulation twice...?

To run just the oSPARC tests:
$ pytest tests/test_osparc.py
================================================= test session starts ==================================================
platform darwin -- Python 3.9.15, pytest-5.4.3, py-1.10.0, pluggy-0.13.1
rootdir: /Users/Alan/Work/Programming/SPARCAPI
collected 14 items

tests/test_osparc.py ..............                                                                              [100%]

=================================================== warnings summary ===================================================
/Users/Alan/venv/SPARCAPI/lib/python3.9/site-packages/future/standard_library/__init__.py:65
  /Users/Alan/venv/SPARCAPI/lib/python3.9/site-packages/future/standard_library/__init__.py:65: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
    import imp

-- Docs: https://docs.pytest.org/en/latest/warnings.html
============================================ 14 passed, 1 warning in 32.22s ============================================

So, all good indeed...

@Tehsurfer, what kind of error message are you getting? FWIW, I have just modified test_osparc_successful_simulation to make it fail and that's exactly what happened when rerunning the test:
$ pytest tests/test_osparc.py
================================================= test session starts ==================================================
platform darwin -- Python 3.9.15, pytest-5.4.3, py-1.10.0, pluggy-0.13.1
rootdir: /Users/Alan/Work/Programming/SPARCAPI
collected 14 items

tests/test_osparc.py ............F.                                                                              [100%]

======================================================= FAILURES =======================================================
__________________________________________ test_osparc_successful_simulation ___________________________________________

client = <FlaskClient <Flask 'app.main'>>

    def test_osparc_successful_simulation(client):
        data = {
            "opencor": {
                "model_url": "https://models.physiomeproject.org/e/611/HumanSAN_Fabbri_Fantini_Wilders_Severi_2017.cellml",
                "json_config": {
                    "simulation": {
                        "Ending point": 0.003,
                        "Point interval": 0.001,
                    },
                    "output": ["Membrane/V"]
                }
            },
            "solver": {
                "name": "simcore/services/comp/opencor",
                "version": "1.0.3"
            }
        }
        res = {
            "status": "ok",
            "results": {
                "environment/time": [0.0, 0.1, 0.002, 0.003],
                "Membrane/V": [-47.787168, -47.74547155339473, -47.72515226841376, -47.71370033208329]
            }
        }
        r = client.post("/start_simulation", json=data)
        assert r.status_code == 200
        check_simulation_data = json.loads(r.data)["data"]
        while True:
            r = client.post("/check_simulation", json=check_simulation_data)
            assert r.status_code == 200
            json_data = json.loads(r.data)
            assert json_data["status"] == "ok"
            if "results" in json_data:
>               assert json.dumps(json_data, sort_keys=True) == json.dumps(res, sort_keys=True)
E               assert '{"results": ...tatus": "ok"}' == '{"results": ...tatus": "ok"}'
E                 Skipping 119 identical leading characters in diff, use -v to show
E                 - : [0.0, 0.1, 0.002, 0.003]}, "status": "ok"}
E                 + : [0.0, 0.001, 0.002, 0.003]}, "status": "ok"}
E                 ?           ++

tests/test_osparc.py:142: AssertionError
=================================================== warnings summary ===================================================
/Users/Alan/venv/SPARCAPI/lib/python3.9/site-packages/future/standard_library/__init__.py:65
  /Users/Alan/venv/SPARCAPI/lib/python3.9/site-packages/future/standard_library/__init__.py:65: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
    import imp

-- Docs: https://docs.pytest.org/en/latest/warnings.html
=============================================== short test summary info ================================================
FAILED tests/test_osparc.py::test_osparc_successful_simulation - assert '{"results": ...tatus": "ok"}' == '{"results"...
======================================= 1 failed, 13 passed, 1 warning in 29.90s =======================================

So, yes, I really can't see what might be wrong for you.

@alan-wu and @Tehsurfer, I have just updated this PR to be in sync with the master branch and also fixed a small issue with test_simulation_ui_file in our API tests since it relies on a file in dataset 135 that has been updated.

@agarny yeah I get the error:
with open(n, 'rb') as f:
E                   PermissionError: [Errno 13] Permission denied: 'C:\\Users\\jkho021\\AppData\\Local\\Temp\\tmp21eblmpe'

Which my guess is comes from this line?
temp_input_file = tempfile.NamedTemporaryFile(mode="w+")
not to sure

Still a Windows-related issue to me, not to mention that it's already used in v1.9.0 of the SPARC API (see here).

Ok I'll try testing by sending requests from here:
https://github.com/nih-sparc/sparc-app/pull/568

@agarny Yeah I managed to fix that permission error by changing
temp_config_file = tempfile.NamedTemporaryFile(mode="w+")
to
temp_config_file = tempfile.NamedTemporaryFile(mode="w+", delete=False)
But now I am getting this error:
        assert r.status_code == 200
>       check_simulation_data = json.loads(r.data)["data"]
E       KeyError: 'data'

I am not sure we want delete=False. Temporary files should be just that: temporary, which means that they should be deleted once not needed anymore. But, maybe it was just for you to test things?
As for the data key issue, I am not sure why it would complain about it since it works fine for me...!?

Ok I figured it out, needed Osparc keys and the tempfile.NamedTemporaryFile(mode="w+", delete=False) and now working


traefik.frontend.passHostHeader: "false ERROR

traefik versinon 1.6.4
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: wx-dev
namespace: im-dev
annotations:
kubernetes.io/ingress.class: traefik
#traefik.frontend.rule.type: PathPrefixStrip
#traefik.ingress.kubernetes.io/rule-type: PathPrefixStrip
traefik.frontend.passHostHeader: "false"
spec:
rules:

host: wx-prod.icsoc.net
http:
paths:

path: /
backend:
serviceName: im-proxy
servicePort: 80
path: /test
backend:
serviceName: im-background
servicePort: 8080

run:
[root@iz2ze8cubkhkct1fb02u9zz ~]# curl http://wx-prod.icsoc.net/test/1.txt
wxtest
error:
curl http://wx-prod.icsoc.net/1.txt
404 page not found
What is wrong with the configuration

Hi! I'm Træfiker :robot: the bot in charge of communication regulation.
Thanks for your interest in Træfik!
We dedicate the issue tracker to bug reports and feature requests only.
If you have questions and need community support, you can join our Slack workspace and reach out to us on the #support channel.
Another option is to use Stack Overflow and tag your question traefik.
Of course, double checking Træfik's documentation is always a good idea :sweat_smile:


Recycler prediction sometimes is fucked, recycles wrenches instead of unwrencing them.

Description
There is also no option to rightclick and unwrench if rom context menu.
Really annoying when trying to deal with emagged grinders which leads to mass round removal.

Just turn off the thing before unwrenching it.

 Different people using wrench can have different results on same recycler but one thing thats consistent is if you can't unwrench it once you can't unwrench it ever... alas there was no option to turn it off in the scenario that happened as it was not the usual emag recycler then let people suicide one right next to OFF lever/button.
Thought they do not use power just like blast doors and conveyors though, so turning APC is news to me.

Sometimes you unwrench every time, sometimes you recycle every time. Different people using wrench can have different results on same recycler but one thing thats consistent is if you can't unwrench it once you can't unwrench it ever... alas there was no option to turn it off in the scenario that happened as it was not the usual emag recycler then let people suicide one right next to OFF lever/button.

If you're saying unwrenching has a chance of eating the wrench then yeah it sounds like a mispredict

Chance seems to be tied to mob as I was able to unwrench it as another mob good while later while still being turned on. Previous one got gibbed by it cause I was walking to avoid slipping on oil spill and forgot about it. x)
Borgs I think always unwrench instead of recycling.

its not a mispredict or chance, if the recycler is running it will eat your tool

its not a mispredict or chance, if the recycler is running it will eat your tool

Then why sometimes you can unwrench running recycler just fine and other times not?

powered != running
also it may be abritrary system event handling order at play

So you are saying we might have some kind of APE pre-power rework shit going on, eh? I see, I see...


Path Aliases working on routes, not static files

I was hoping to not have to open an issue here but I've spent a lot of time trying to figure this one out. Hoping someone can help.
My setup looks like this:
{
  "rules": [
    {
      "pathname": "/admin",
      "dest": "admin.go-staging.pointhacks.com"
    },
    {
      "pathname": "/admin/**",
      "dest": "admin.go-staging.pointhacks.com"
    },
    {
      "pathname": "/analytics",
      "dest": "analytics.go-staging.pointhacks.com"
    },
    {
      "pathname": "/analytics/**",
      "dest": "analytics.go-staging.pointhacks.com"
    },
    {
      "dest": "redirect.go-staging.pointhacks.com"
    }
  ]
}

Basically, anything to /admin should go to the admin app, same for /analytics and everything else to the redirect app.
The admin app loads: https://go-staging.pointhacks.com/admin/
But none of the assets load along with it. I thought it could be part of the app setup but when I inspect the static file requests, e.g. https://go-staging.pointhacks.com/admin/css/style.css is actually hitting the default domain (the redirect site) redirect.go-staging.pointhacks.com.
Interestingly, this hits the admin app with a 404:
https://go-staging.pointhacks.com/admin/css/style
But this doesn't:
https://go-staging.pointhacks.com/admin/css/style.css
Whilst I think it could be something to do with the app, my concern is that the proxy is throwing the request down the chain when simply adding .css.
Any thoughts would be super appreciated. Hopefully we solve this for anyone else who has the same problem.

Ok fixed this on my side. It turns out to be a problem within the admin app where the asset wasn't available. However, I'm quite unsure why the Path Alias rules would skip out out /admin and down to the fallback.
Perhaps if someone else comes across this issue I could help debug!


Add head support

Add support for filtering of diff output by first n lines of text

added in v0.3.0


MS Paint Fractrals

Made with ms paint, lol
#1

Lorem Ipsum

Lorem
Ipsum

is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

referencing #1


Update Employee

Update Employee
User Story
AS A business owner
I WANT to be able to view and manage the departments, roles, and employees in my company
SO THAT I can organize and plan my business
Acceptance Criteria
GIVEN a command-line application that accepts user input
WHEN I choose to update an employee role
THEN I am prompted to select an employee to update and their new role and this information is updated in the database

This has been completed


Port ResourceAuthorization to Asp.Net 5

Any plans to migrate Owin.ResourceAuthorization to Asp.Net 5? I badly need it on my current project.

No -- you should be using the new policy- and resource-based authorization framework from Microsoft.

Oh... I completely missed that. Thanks


⚠ Bofrost.at has degraded performance

In 4c5daff, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1295 ms

Resolved: Bofrost.at performance has improved in 5d22787.


Fixes issue with file size calculation for existing logs

Issue arises with existing log files at startup

Because the existing bytes are not accounted for, log rolling does not occur at the correct time

Existing code can lead to logging being suspended indefinitely without manual intervention if thresholds are exceeded and no rolled log files can be deleted

Corner case more evident when other data not rolled by ATS is present in the logging directory

Cherry-picked to v9.2.x


Fixes ResolveNamed signature

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

5 of 5 (100.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 96.129%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
298

Relevant Lines:
310

💛  - Coveralls


some confusions about computing p_m

Hi:
I am reading your paper and your source codes, there are some confusions:

In the paper, p_m = max(p-m, 0), however, in your implementation, p_m = p + 0.05. Are there some insights? Thanks~

see https://github.com/Alibaba-MIIL/ASL/issues/10


Documentation domain is offline… :|

Your website is gone: http://getsingularity.com/
:|

Looking into it, thanks for the report.


In [AK]MS implementations, what is in export? / Connection record format and storage

The BC Gov team is working through some performance challenges in deploying two Aries agents messaging in a high volume scenario (millions of credential issuances in as short a period as possible - e.g. hours).  The addition of the tracking of Aries message protocol state significantly impacts performance. We're working through some tech spikes to understand the issue and potential fixes. In the course of that we have encountered what we think is an RFC issue that should be addressed by the community - the storage, format and portability of connection records and we wanted to get community feedback on how to move forward.
We think that for agent portability reasons, the "secrets" storage entities (ledger objects, DIDs, keys, credentials) plus connection records need to be part of the storage export can subsequently be imported into another agent.  We don't think other non-secrets data should be exported - notably, protocol state records.
If that is the case:

all agent implementations should use the same data format for connection records
an agent storage export should include connection records
General non-secrets data should be considered "implementation specific" and should NOT be included in an agent export.

Currently, all implementations of Aries of which we are aware are using non-secrets storage for both connection state (e.g. the state of a connection following the execution of the connection protocol) and protocol state (the state of any messaging protocol).  We think that is going to create problems.
We are thinking:

We need to spend some community time defining a connection record data model.
We should move connection records into a place easily picked up by the export routine.

Perhaps into "secrets" storage
Perhaps there should be a third category of storage that is "portable non-secrets" data

We should formalize the records that will go into the export.

Note - we see export/import as only for portability purposes. Backup and restore should be implementation specific, cover all stored data and support restore only to same the agent type.

connections also seem special to me.
by “use the same data format for connection records”, did you mean specifically when exported? Of course, many implementations might always use that format but, of course, the most important moment is during export/import.
i prefer to keep secrets segregated.

It's clear that import/export-related RFCs are needed, and the questions raised in this issue will be addressed when those are created.
Closing this issue.


Fix crowbar_register for s390x

+1

:+1: if gating passes

@dirkmueller needs rebase ("automatic merge failed")

gating failure is unrelated so far.

+1


Migrate to kubebuilder

This is an umbrella issue for kubebuilder migration discussion and progress tracking.

Closed by #102


Add support and upgrade to lucille 0.0.3

Of note, this PR introduces a regression.
We no longer use per-field analyzers in QueryAnalyzer.
I've created a followup issue for fixing this: https://github.com/cozydev-pink/protosearch/issues/257

Sam and I talked a bit about this per-field analyzer regression business.
In short, it's not possible with the current/new traverseQ function.
Because you can't actually do anything with a Field query in the traverseQ function, you can only touch the TermQuery "leaf" nodes. And what you actually need to do is use the Field query's field name to find the right analyzer, and then start using that analyzer.
If we want to do something "per-field" then i guess we need a more powerful function than traverseQ
it's kind of a can of worms.
If you give me a Query => Query function to apply to some Query
What do I do when I hit a Query.And? do I apply it to the subqueries, or do I apply it to the Query.And itself? or like, both maybe?
I think maybe we need something like:
query.traverseByField {
  case "author" => lowercase
  case "body" => lowercaseAndSplitWhitespace
}

And of course a mapByField would be nice too.
Oh well, more fun for the future.


Is there a Landscape setting/style?

Just wondering if there is a style to switch a page to landscape mode and then back to portrait mode?

<style>
  .phb{
    width : 210mm;
    height : 296.8mm;
  }
</style>

Set the width and height to whatever dimension you want.
For a specific page
<style>
  .phb #p3{
    width : 210mm;
    height : 296.8mm;
  }
</style>

thanks got the following to work.
.phb#p2 {
width : 296.8mm;
height : 210mm;
}


How can I use only the images in the video without any prompts?  TypeError: 'numpy.float64' object is not iterable

{
"batch_name":"Example_DGSpitzer",
"n_batch": 1,
"prompts":[],
"width":576,
"height":832,
"bit_depth_output":8,
"seed":3521683325,
"seed_behavior":"iter",
"sampler":"dpmpp_2s_a",
"steps":50,
"scale":7,
"ddim_eta":0.0,
"filename_format":"{timestring}{index}{prompt}.png",
"use_init":true,
"init_image":"https://cdn.pixabay.com/photo/2022/07/30/13/10/green-longhorn-beetle-7353749_1280.jpg",
"strength":0.0,
"use_mask":true,
"use_alpha_as_mask":false,
"invert_mask":false,
"mask_file":"https://www.filterforge.com/wiki/images/archive/b/b7/20080927223728!Polygonal_gradient_thumb.jpg",
"mask_brightness_adjust":1.0,
"mask_contrast_adjust":1.0,
"overlay_mask":true,
"mask_overlay_blur":5,
"mean_scale":0,
"var_scale":0,
"exposure_scale":1,
"exposure_target":0.5,
"colormatch_scale":1,
"colormatch_image":"https://www.saasdesign.io/wp-content/uploads/2021/02/palette-3-min-980x588.png",
"colormatch_n_colors":4,
"ignore_sat_weight":0,
"clip_name":"ViT-L/14",
"clip_scale":1,
"aesthetics_scale":0,
"cutn":1,
"cut_pow":0.0001,
"init_mse_scale":0,
"init_mse_image":"https://cdn.pixabay.com/photo/2022/07/30/13/10/green-longhorn-beetle-7353749_1280.jpg",
"blue_scale":1,
"gradient_wrt":"x0_pred",
"gradient_add_to":"both",
"decode_method":"linear",
"grad_threshold_type":"dynamic",
"clamp_grad_threshold":0.2,
"clamp_start":0.2,
"clamp_stop":0.01,
"cond_uncond_sync":true,
"animation_prompts":{
},
"animation_mode":"Video Input",
"max_frames":100,
"diffusion_cadence":"2",
"border":"warp",
"angle":"0:(0)",
"zoom":"0:(1.04)",
"translation_x":"0:(5sin(23.14*t/10))",
"translation_y":"0:(0.5)",
"translation_z":"0:(0.5)",
"rotation_3d_x":"0:(0)",
"rotation_3d_y":"0:(0)",
"rotation_3d_z":"0:(0)",
"flip_2d_perspective":false,
"perspective_flip_theta":"0:(0)",
"perspective_flip_phi":"0:(t%15)",
"perspective_flip_gamma":"0:(0)",
"perspective_flip_fv":"0:(53)",
"noise_schedule":"0:(0.02)",
"strength_schedule":"0:(0.55),49:(0.1),51:(0.65)",
"contrast_schedule":"0:(1.0)",
"color_coherence":"Match Frame 0 LAB",
"use_depth_warping":true,
"midas_weight":0.3,
"near_plane":200,
"far_plane":10000,
"fov":40,
"padding_mode":"border",
"sampling_mode":"bicubic",
"save_depth_maps":false,
"video_init_path":"./input/2.mp4",
"extract_nth_frame":1,
"overwrite_extracted_frames":true,
"use_mask_video":false,
"video_mask_path":"",
"interpolate_key_frames":false,
"interpolate_x_frames":4,
"resume_from_timestring":false,
"resume_timestring":"20220829210106",
"fps":24
}
(dsd) E:\tools\DeforumStableDiffusionLocal-main>python run.py --enable_animation_mode --settings "./examples/runSettings_AnimationExtra.txt"
models_path: E:\tools\DeforumStableDiffusionLocal-main\models
output_path: E:\tools\DeforumStableDiffusionLocal-main\output
configs\v1-inference.yaml exists
config_path: E:\tools\DeforumStableDiffusionLocal-main\configs\v1-inference.yaml
ckpt_path: E:\tools\DeforumStableDiffusionLocal-main\models\v1-5-pruned-emaonly.ckpt
..loading model
LatentDiffusion: Running in eps-prediction mode
Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is 768 and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is 768 and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is 768 and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is 768 and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is 768 and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is 768 and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is 768 and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is 768 and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is 768 and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is 768 and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is 768 and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is 768 and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is 768 and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is 768 and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is 768 and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is None and using 8 heads.
Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is 768 and using 8 heads.
DiffusionWrapper has 859.52 M params.
making attention of type 'vanilla-xformers' with 512 in_channels
building MemoryEfficientAttnBlock with 512 in_channels...
Working with z of shape (1, 4, 32, 32) = 4096 dimensions.
making attention of type 'vanilla-xformers' with 512 in_channels
building MemoryEfficientAttnBlock with 512 in_channels...
Exporting Video Frames (1 every 1) frames to E:\tools\DeforumStableDiffusionLocal-main\output\2023-02\Example_DGSpitzer\inputframes...
Converted 25 frames
Loading 25 input frames from E:\tools\DeforumStableDiffusionLocal-main\output\2023-02\Example_DGSpitzer\inputframes and saving video frames to E:\tools\DeforumStableDiffusionLocal-main\output\2023-02\Example_DGSpitzer
Saving animation frames to E:\tools\DeforumStableDiffusionLocal-main\output\2023-02\Example_DGSpitzer
Rendering animation frame 0 of 25
nan<PHONE_NUMBER>
Using video init frame E:\tools\DeforumStableDiffusionLocal-main\output\2023-02\Example_DGSpitzer\inputframes\00001.jpg
Global seed set to<PHONE_NUMBER>
d:\Users\zoyi\anaconda3\envs\dsd\lib\site-packages\sklearn\cluster_kmeans.py:870: FutureWarning: The default value of n_init will change from 10 to 'auto' in 1.4. Set the value of n_init explicitly to suppress the warning
warnings.warn(
<PIL.Image.Image image mode=RGB size=266x68 at 0x24D0125A020>
d:\Users\zoyi\anaconda3\envs\dsd\lib\site-packages\sklearn\cluster_kmeans.py:870: FutureWarning: The default value of n_init will change from 10 to 'auto' in 1.4. Set the value of n_init explicitly to suppress the warning
warnings.warn(
Traceback (most recent call last):
File "E:\tools\DeforumStableDiffusionLocal-main\run.py", line 488, in
main()
File "E:\tools\DeforumStableDiffusionLocal-main\run.py", line 406, in main
render_input_video(args, anim_args, animation_prompts, root)
File "E:\tools\DeforumStableDiffusionLocal-main\deforum-stable-diffusion\helpers\render.py", line 485, in render_input_video
render_animation(args, anim_args, animation_prompts, root)
File "E:\tools\DeforumStableDiffusionLocal-main\deforum-stable-diffusion\helpers\render.py", line 430, in render_animation
sample, image = generate(args, root, frame_idx, return_latent=False, return_sample=True)
File "E:\tools\DeforumStableDiffusionLocal-main\deforum-stable-diffusion\helpers\generate.py", line 144, in generate
clip_loss_fn = make_clip_loss_fn(root, args)
File "E:\tools\DeforumStableDiffusionLocal-main\deforum-stable-diffusion\helpers\conditioning.py", line 74, in make_clip_loss_fn
target_embeds, weights = parse_clip_prompts(args.clip_prompt)
File "E:\tools\DeforumStableDiffusionLocal-main\deforum-stable-diffusion\helpers\conditioning.py", line 59, in parse_clip_prompts
for prompt in clip_prompt:
TypeError: 'numpy.float64' object is not iterable

You can use this format below to keep your prompt empty (normally recommended at least type in some words to describe the image though)
"animation_prompts":{
"0":""
},


Fix issue with PPP

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@d0c6158). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #262   +/-   ##
=========================================
  Coverage          ?   74.10%
  Complexity        ?      975
=========================================
  Files             ?      145
  Lines             ?     3074
  Branches          ?      368
=========================================
  Hits              ?     2278
  Misses            ?      673
  Partials          ?      123

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Type error: length undefined

TypeError: Cannot read property 'length' of undefined
at a.Authenticate (/home/siddhant/PROJECT/adventureworks-moltin/node_modules/moltin/dist/moltin.nodejs.min.js:2:2213)
at Promise (/home/siddhant/PROJECT/adventureworks-moltin/promisify-moltin.js:30:20)
at new Promise ()
at Object.Create (/home/siddhant/PROJECT/adventureworks-moltin/promisify-moltin.js:29:16)
at Rx.Observable.defer (/home/siddhant/PROJECT/adventureworks-moltin/categories.js:22:73)
at tryCatcher (/home/siddhant/PROJECT/adventureworks-moltin/node_modules/rx/dist/rx.js:63:31)
at Defer.subscribeCore (/home/siddhant/PROJECT/adventureworks-moltin/node_modules/rx/dist/rx.js:2536:37)
at Defer.tryCatcher (/home/siddhant/PROJECT/adventureworks-moltin/node_modules/rx/dist/rx.js:63:31)
at Rx.internals.ScheduledItem.setDisposable [as action] (/home/siddhant/PROJECT/adventureworks-moltin/node_modules/rx/dist/rx.js:2082:46)
at Rx.internals.ScheduledItem.ScheduledItem.invokeCore (/home/siddhant/PROJECT/adventureworks-moltin/node_modules/rx/dist/rx.js:896:33)
Hi, I'm getting the above error while running the app.js and pointing to the Adventure Works Scipts. How can i move forward? @pveller

Alright. I upgraded all the packages, refactored the search index generation scripts, and verified that the bot works in the emulator. Read the updated README and give it a shot.

Hey, thanks for the quick update. I ran the same node indexes/populate.js and came across this error.
(node:9435) UnhandledPromiseRejectionWarning: TypeError: topCategory.children is not iterable
at /home/siddhant/PROJECT/ecommerce-chatbot/indexes/populate.js:32:35
at
at process._tickCallback (internal/process/next_tick.js:160:7)
(node:9435) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:9435) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Make sure you have re-created your Moltin catalog with the latest scripts. I would recommend that you ensure categories and everything else was re-created. Use the --clean options:
node app.js 'path-to-AW-catalog' --clean categories --clean variations --clean products --clean files

Also make sure that your MOLTIN_CLIENT_ID and MOLTIN_CLIENT_SECRET point at the same catalog when you run both scripts.
And just in case, make sure you run on the latest node (8.9.4). I will go ahead and re-run everything on a clean store later today to double check

Hi, yeah. It's working now. Thanks a ton. Also, can you help me with which type of app i will need to create in azure app services and bot framework. Thanks.

I would suggest that you start with the emulator.
Then, when you ready to deploy, just follow one of the Azure guidelines. You are basically deploying a node.js web app to the App Service so any step by step instruction should be ok (example). I did everything from the Azure console and have not used the CLI.
And finally, the bot. I haven't used the new Azure Bot Service and my bot were all set up over at https://dev.botframework.com. So maybe you start there and follow the instructions? Good luck!


Specify Public IP for UDPMux

Hi,
I am using a muxed udp connection however there doesn't seem to be a way to indicate the public ip address.
The Conn trait has a remote_addr method, is it the one that needs to be implemented to specify the external IP ?
Currently all accesses to the servers use turn from the server side when they could use the host type directly if they had the IP, and it generates quite high data costs.

This is what we do in combination with muxxed UDP where nat_ips is Vec<String>.
settings.set_nat_1to1_ips(nat_ips, webrtc::RTCIceCandidateType::Host);

We only do IPv4 atm. I think there's a bit more work to support both an IPv4 and IPv6 address. But if you have dual stack server feel free to try specifying both

Thanks a lot ! I found it after some time and didn't get around to closing the issue, is there a guide section somewhere where we could document these kind of things ?

It could definitely be documented better. The examples are probably the closest thing to this atm. Long term it'd be cool to have the webrtc-rs book but then someone needs to write that 😅


Blackjack working impl without integration to some Entities.

Fully functioning but without full integration to some entities coming in later PRs; namely Interactor is currently manipulating Deck and Card entities directly and storing hands, next step is to integrate with Game entity.

Merge conflicts resolved.


The weights fine tuned by the model Lora do not match the problem with the config

I am using Lora to fine tune the text_comfig and view_comfig in the config, which are llama and clipuvisic_model. This is clearly not the same for my expected qwen and siglip-visionmendel. The outputs I made during the training period have always been qwen and siglip-visionmendel. Here are some of the outputs I printed out in the code:
I have run the siglip_decoder in the multimodal encoder
The cls. model_type in siglip_decoder: siglip-visionmodel
Config.dict ['mode_type '] in siglip_decoder: siglip
config_dict: {'architectures': ['SiglipModel'], 'initializer_factor': 1.0, 'model_type': 'siglip', 'text_config': {'hidden_size': 1152, 'interdiate_size': 4304, 'model_type': 'siglip_text_model', 'num_attention_heads': 16, 'num_hidden_layers': 27}, 'torch_dtype': 'float32', 'transformers_version': '4.37.0.dev0', 'vision_config': {'hidden_size': 1152, 'image_size': 384, 'intermediate_size': 4304, 'model_type': 'siglip_vision_model', 'num_attention_heads': 16, 'num_hidden_layers': 27, 'patch_size': 14}, '_commit_hash': '9fdffc58afc957d1a03a25b10dba0329ab15c2a3'}
vision_config: {'hidden_size': 1152, 'image_size': 384, 'intermediate_size': 4304, 'model_type': 'siglip_vision_model', 'num_attention_heads':6, 'num_hidden_layers': 27, 'patch_size': 14}
Result from cls.from_dict: (SigLipVisionConfig {
"attention_dropout": 0.0,
"hidden_act": "gelu_pytorch_tanh",
"hidden_size": 1152,
"image_mean": [
0.5,
0.5,
0.5
],
"image_size": 384,
"intermediate_size": 4304,
"layer_norm_eps": 1e-06,
"model_type": "siglip_vision_model",
"num_attention_heads": 16,
"num_channels": 3,
"num_hidden_layers": 27,
"patch_size": 14,
"transformers_version": "4.40.0.dev0"
}
, {})
But in the end, the Lora weight came out like this

I don't know exactly where the problem occurred,  This also caused me to have uneven weight shapes when merging the models later on, but my base_model is models - lmms lab -- llava one review qwen2-0.5b-ov。
Thank you very much for your help!

I have encountered this problem, have you saved this problem? If so, could you please share the solution please?

I have fixed this problem, just replace the AutoConfig by LlavaQwen2Config in llava.model.language_model.llava_qwen. If you don't do so, the AutoConfig will recognize the model config as LlavaConfig and its default language model and vision model are llama and clip_vision_model.


Deselect all selectedDates

I wan to reset all the selectedDates, in other word I want to deselect all the selected dates.
I tried calling :
calenderView.deselectAllDates()
but this will deselect just the first date .
what should I call ? and why is it just deselecting my first date, after calling several times this function will remove all dates. but this is not what I wanted.
Could you please give me some clarification or help me to have the functionality I need .
FYI : the calendar view is in multiple selection mode.

okay, I got the solution as below :
calenderView.deselectAllDates(triggerSelectionDelegate: false)

@maryamfekri
I am assuming that you are using version 7.0
calendarView.deselectAllDates()` should work by itself out of the box.

No my version is 6.1.6, because of some reasons I cannot update to latest versions and I forgot to tell you my version.
BTW thanks for the quick and accurate responses each time.

I want to deselect previously selected date when user selected a new date.
I am using JTAppleCalendar 7.0.6
with deselection code:
myCalendar.deselectAllDates(triggerSelectionDelegate: false) inside shouldSelectDate function
the problem is I am encountering an infinite loop whenever i call that function

@jasperpogi02 can you tell me which part is triggering the infinite loop?

if I get it right you are asking for the functions that is runs on the thread. Here it is:
myCalendar.deselectAllDates(triggerSelectionDelegate: false) -> shouldSelectItemAt -> selectDates -> deselect -> myCalendar.deselectAllDates(triggerSelectionDelegate: false) -> .....
Specific Line of Code that triggered the error:

Thread Screenshots:

please disregard my issue. I have found a new way of doing it. :) thanks....

was it a library error/?

nope, the error was my brain :)
I am now making use of allowsMultipleSelection variable. Thanks btw. I think we can release our app now. hahaha

I am using JTAppleCalendar 6.1.6. On deselect app is crashing

@alizainprasla

what crash are you seeing? Without information about the crash. I cannot help much.
Is it possible you can upgrade your app to version 7 ?

All these issues have been fixed in that version.

@patchthecode i am deselecting my range selection in
func calendar(_ calendar: JTAppleCalendarView, shouldSelectDate date: Date, cell: JTAppleDayCellView, cellState: CellState) -> Bool {
Delegate. Is there anything i am doing wrong? or should i update to newer version

@alizainprasla updating to a newer version fixes many issues.
However, version 7.0 contains breaking changes.
I can help you migrate if needed.

@patchthecode I have change my code to 7+, However by selecting one date. i select range date but i also want to deselect other selected dates. thats what doing these crash.
How to deselect date on my scenario?

@alizainprasla im back.
If youre up, can you join me here? https://gitter.im/patchthecode/JTAppleCalendar


Upload new LIVD Table

Problem statement
We received an updated LIVD to the ReportStream inbox. The LIVD table needs to be uploaded into ReportStream.
What you need to know
LIVD-SARS-CoV-2-2024-01-25 PRIME.xlsx
Acceptance criteria

upload the updated LIVD table

To do

Assign to an engineer and upload the new table.

@GilmoreA6 This isn't the one you just put in last week is it?

@adegolier sorry I didn't see this. No the last one I updated was 12/1/23

@adegolier Hi Angela, may I have an update on this ticket please?


add send_image_url, add appsecret_proof option, fix for issue #6

This is similar to send_image but takes a URL image location instead of a filename.

@davidchua Absolutely, I'd be glad to help out :)

@tbsf Added you as a collaborator :)

@saikiran2602 https://developers.facebook.com/docs/messenger-platform/send-api-reference


Infura gateway shutdown

Since Infura shutdown their public gateway we need an alternative gateway.

If you find an alternative, then you can just set the OFFSTREAM_IPFS_API_ADDR and OFFSTREAM_IPFS_GATEWAY_URI_TEMPLATE envvars.
Also, I plan to add an option to store stream data on disk in addition to IPFS.

As soon as we change the OFFSTREAM_IPFS_API_ADDR to /dns/dweb.link/tcp/4001/https we get a time-out.

Would there be a way to upload using a locally hosted gateway but not keep the files on that particular server?


add russian about.md file

@ilyavf Want to take a look at this?  I think you are the most qualified.  :)

If translation will be ok, I can translate other pages from docs folder :)

any news?

Hey @xedoken I'll take a look at this tomorrow and get back with you. I don't know what/if we're doing anything to make this show up for Russian readers.

The translation looks good to me.


In embedded system  for yocto, install command - 'python -m pip install --upgrade google-assistant-sdk[samples]' ,but error happen~

Complete output from command python setup.py egg_info:
unable to execute 'arm-poky-linux-gnueabi-gcc': No such file or directory
unable to execute 'arm-poky-linux-gnueabi-gcc': No such file or directory
    No working compiler found, or bogus compiler options passed to
    the compiler from Python's standard "distutils" module.  See
    the error messages above.  Likely, the problem is not related
    to CFFI but generic to the setup.py of any Python package that
    tries to compile C code.  (Hints: on OS/X 10.8, for errors about
    -mno-fused-madd see http://stackoverflow.com/questions/22313407/
    Otherwise, see https://wiki.python.org/moin/CompLangPython or
    the IRC channel #python on irc.freenode.net.)

What are the hardware specifications of your embedded device? Is it a Raspberry Pi?

Nxp,not raspberry.
Nick<EMAIL_ADDRESS>於 2018年4月28日週六 01:45 寫道：

What are the hardware specifications of your embedded device? Is it a
Raspberry Pi?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/googlesamples/assistant-sdk-python/issues/240#issuecomment-385043817,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AfLea2LKXSt1VgRFJjCQdwdQeYcbtc4rks5ts1k1gaJpZM4TpvvO
.


Markdown resizing of images

Chunks before images
If click on image in Visual can resize, either in pixels or %, gives in Source: {fig-alt="the bakers_3 image" fig-align="center" width="73%"}

#8 #20

#37


AEM: initial change for Azure Enhanced Monitoring Extension for SAP

@derekbekoe, i am doing more testing, at the same time could you please take an initial look and point out major issues if there are?

Also, modify the CODEOWNERS file.

For this CI error, Unable to import 'msrestazure.tools' (import-error), you may have to modify ignored-modules in pylintrc at root of repo and commit that change.


Fix clang-format rule failing.

Fixes clang-format rule failing in Travis.
Following #34338, I'm getting a clang-format rule failing when touching this file elsewhere in #33391.
Although this was picked up by Travis when testing #34338, it still passed, because it was merged between #34097 and 7f62ee69b.

Superseded by<PHONE_NUMBER>, I was working on another non-code update and since there were a couple other formatting issues, I just fixed them all in the same commit.


Migrate group id com.47deg

We need to migrate new releases to the group id com.47deg

In the meantime, the readme should probably still refer to "com.fortysevendeg", which is where the published binaries actually are

fetch has been already published under com.47deg group id ;)


Typescript Support

Similar to the older "youtube-dl" i need some types to use it.

same that @Alfagun74

I'll accept a PR for this!

@Kikobeats I'm sorry but i think you dont know how Git Issues Work. They are not bound to Bugs. An Issue can be anything from Questions to Bugs or Feature Requests. These types of requests need to stay open so people can see it and make a PR. Just leave it open until its done or close it, if you never want Typescript Support.


Themes files are needing some cleaning.

Themes files contain wrong decorator paths
window:decor = string("/boot/home/config/non-packaged/add-ons/decorators/FlatDecorator", 63 bytes)

They also refers to pictures non provided by the package
// Actual backdrop image file
be:bgndimginfopath[0] = string("/boot/home/unarix.jpg", 21 bytes)
be:bgndimginfopath[1] = string("/boot/home/Pictures/wallpaper.png", 33 bytes)

Substrate screensaver package should be added as dependecy or there should be no mention of it.
// Screensaver settings
screensaver_settings = BMessage(0x00000000) {
// Screensaver active module
screensaver:modulename = string("Substrate", 9 bytes)

Theme files are basically text files so you can view that using StyledEdit.
Think of using rmatrr, if you view or edit them in a text editor.  Themes files don't have attributes unless packaged.

Thanks Briseur!!! Fixed in: 7f8caca. Pictures/screensavers references are delleted.


new, clearer docs

Redid some of the main Snowpack docs to make it more clear what Snowpack is about.
This is just a first pass, @drwpow @stramel please leave any thoughts / edits / comments if you have a chance to read through!

Huh, it looks like our passing Vercel PR was a fluke. But, I finally figured out the issue and it actually was on our end with some bad symlinks making their way into the checked in repo.


Spatial Special - wide table view

NGA-1: As a user, I want to see results in a wide table view

Current coverage is 19.42%

Merging #7 into spatial-special will increase coverage by +0.82% as of 980f79e

@@            spatial-special      #7   diff @@
===============================================
  Files                    97      99     +2
  Stmts                  6295    6457   +162
  Branches                858     881    +23
  Methods                   0       0
===============================================
+ Hit                    1171    1254    +83
- Partial                  94     104    +10
- Missed                 5030    5099    +69

Review entire Coverage Diff as of 980f79e

Uncovered Suggestions

+0.29% via ...taskrunner/status.js#256...274
+0.27% via ...r/task-controller.js#27...44
+0.26% via ...r/task-controller.js#177...193
See 7 more...

Powered by Codecov. Updated on successful CI builds.

I refactor some of the components within this feature. Please review and merge this pull request.

Moved CSV functionality to its own service
Create a new service to handle all the modals in search-controller
Create a new view service to handle all class styling change for search page


where i get snap token buddy? please tell me

where i get snap token buddy? please tell me

You can get SNAP token from Midtrans Admin Dashboard.


Text index keyword search

This PR splits name out to firstName and lastName. This is something that comes up in most projects and would be nice to have out of the box, however there may be arguments to keep name non-separated.
In either case this change is mostly to demonstrate the use of keyword search with mongodb text indexes. Mongo has quite good support text indexes these days (supports weights, diacritics, casing and more) and they should be our preferred way to do keyword based searching:
userSchema.index({
  firstName: 'text',
  lastName: 'text',
  email: 'text',
});

I've also added a script alongside fixture reloading to re-sync the indexes as they are defined in the model, which is required when changes are made to the index. Note that for very large collections this can take a long time, so whether or not to use text indexes is something we should give thought to. I am NOT suggesting we start using this everywhere, for more complex cases elastic search is by far superior here and we should consider that as well. However for smaller collections with relatively low read/writes this can be a very useful solution.

Looks cool got nothing against, I personally was happy with the existing search options that mongoose provides without adding text indexes. That said not against it, happy that we have some solution in place. Also wondering if we can support index: true
https://mongoosejs.com/docs/api.html#schematype_SchemaType-index in the json definitions
Think this falls under @dominiek to review

I personally feel that if we do any keyword search (that's not some kind of very complex primary feature), this is the way to do it.

Also wondering if we can support index: true

This should be already supported as we feed in the JSON to the schema type


Integration with Agile Octopus Rates API for Dynamic Pricing

Is your feature request related to a problem? Please describe.
As a customer of Octopus on the Agile Rate Plan
I would like to have the half hourly rates for my region applied to the charging that occurred in that period
So that I can view accurate charge pricing in my dashboards
AND save me from having to keep track of this in a spreadsheet manually
https://octopus.energy/agile/
https://developer.octopus.energy/docs/api/
Here is a sample call that will return the rates for the relevant period specified:
https://api.octopus.energy/v1/products/AGILE-18-02-21/electricity-tariffs/E-1R-AGILE-18-02-21-J/standard-unit-rates/?period_from=2020-04-19T00:00:00&period_to=2020-04-19T23:59:59&page_szie=1000
Describe the solution you'd like
Ideally there's the ability for me to specify that I have Agile Octopus and to choose my region. Teslamate will then do a daily rate call (after 16:00 UK time) for the next day's rates and apply the rates to the relevant periods of time I charge so, for example, if I charged 4 kWh/30 minutes from 01:00-02:30 and the rates were 0100-0130 0.05, 0130-0200 0.06, 0200-0230 0.07 then the total shown for that charging period would be 0.20 + 0.24 + 0.28 = 0.72 total charging cost. Rates are available the day before so there wouldn't have to be any retroactive application to existing records.
Describe alternatives you've considered
Manually outside of Teslamate
Additional context
Right now I'm keeping track of my car's consumption manually by replicating the above process. Downloading the half hourly Agile rates, converting the JSON response to CSV, opening in Excel, then I extract my charge data from TeslaFi in CSV,  break down the charging duration into half hourly periods and then align those with the half hourly rates. This enables me to accurately see my true cost of charging. This is very time consuming.

Sidenote: I would also love something even more generic. my energy pricing is fully dynamic, so the most awesome solution for me would be some sort of plugin/scripting possibility to adjust the charging cost per geo-fence on a specifiable interval.
e.g. "if charging and position = geo_fence_1 then get price info via http in interval x"
(but I don't want to derail this specific issue…)

I took a look at the database (charges, charging_process_id) tables to see how easily this could be done via SQL. Getting the data from the API (Octopus, or whatever) in to the database and having a set of charges by start_date in my opinion is the easy portion.
Getting old charge data from the table might be a little more difficult as the positions in charges don't always land exactly on nice round numbers. I slapped together some SQL to associate the entries in charges with time periods (in a fake pricing table) and it looked a little bit like this:
 energy_added | charging_process_id | per_kwh |  cost  |      price_start       |           price_end
--------------+---------------------+---------+--------+------------------------+-------------------------------
         2.51 |                  90 |    0.14 | 0.3514 | 2020-03-08 04:00:00+00 | 2020-03-08 04:30:00+00
         3.56 |                  90 |    0.15 | 0.5340 | 2020-03-08 04:30:00+00 | 2020-03-08 05:00:00+00
         3.67 |                  90 |    0.16 | 0.5872 | 2020-03-08 05:00:00+00 | 2020-03-08 05:30:00+00
         3.66 |                  90 |    0.17 | 0.6222 | 2020-03-08 05:30:00+00 | 2020-03-08 06:00:00+00
         3.77 |                  90 |    0.18 | 0.6786 | 2020-03-08 06:00:00+00 | 2020-03-08 06:30:00+00
         3.87 |                  90 |    0.19 | 0.7353 | 2020-03-08 06:30:00+00 | 2020-03-08 07:00:00+00
         3.67 |                  90 |    0.20 | 0.7340 | 2020-03-08 07:00:00+00 | 2020-03-08 07:30:00+00
         3.66 |                  90 |    0.21 | 0.7686 | 2020-03-08 07:30:00+00 | 2020-03-08 08:00:00+00
         3.67 |                  90 |    0.22 | 0.8074 | 2020-03-08 08:00:00+00 | 2020-03-08 08:30:00+00
         3.66 |                  90 |    0.23 | 0.8418 | 2020-03-08 08:30:00+00 | 2020-03-08 09:00:00+00
         1.15 |                  90 |    0.24 | 0.2760 | 2020-03-08 09:00:00+00 | 2020-06-04 07:14:01.808333+00

It takes the min/max of charge_energy_added per section and takes a difference to get the charge_energy_added over the period
Unfortunately I don't know what to do about the gap in between periods, something like the following where 2.51 is the max of the 04:00->04:30 period and 2.62 is the min of the 04:30->05:00 period and is currently uncounted (all  0.11kWh of it) and this happens for every change in price.
From charges table:
 charge_energy_added | charging_process_id | price |          date
---------------------+---------------------+-------+-------------------------
                2.51 |                  90 |  0.14 | 2020-03-08 04:29:56.969
                2.62 |                  90 |  0.15 | 2020-03-08 04:30:17.44

Sorry for the noise, just thinking out loud in here :)

I made a proper supported (by me) integration to do exactly this as part of my TeslaMateAgile integration for those on Octopus Agile. Not sure if Adrian wants to implement this natively or not - probably doesn't make sense to have support for everything in the world and just have little plugins like mine, so maybe this issue can be closed?

I would recommend everyone to try TeslaMateAgile. There are no plans to implement this supplier-specific functionality natively for the foreseeable future. From my point of view this issue can therefore be closed.