test

My blog site is built on top of GitHub issues. When I create or edit my issue on GitHub, next.js ISR will recreate my blog site in the background. Additionally, ChatGPT is an excellent AI assistant tool that can be used for many purposes, such as a search engine and language translator. As a non-native English speaker, I plan to add ChatGPT to my article writing workflow this weekend to check my articles' grammar like a native English speaker.
TL;DR
If you write articles on GitHub issues like me, you can use the https://github.com/JiangWeixian/actions-article-helper action in your blog repository.
name: "article helper"
on:
  issues:
    types:
      - "opened"
      - "edited"

jobs:
  debug:
    runs-on: ubuntu-latest
    steps:
    - name: checkout
      uses: actions/checkout@v2
    - name: setup node.js
      uses: actions/setup-node@v2
      with:
        node-version: 16
    - name: article helper
      uses: jiangweixian/actions-article-helper@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}

DEMO:

ChatGPT Open API
Lucky, ChatGPT provide open-api. First you should create API_KEY on OpenAI platform https://platform.openai.com/account/api-keys.
import { ChatGPTAPI } from 'chatgpt'

export const createChatGPTAPI = (apiKey: string) => {
  return new ChatGPTAPI({
    apiKey, // add you open-ai API_KEY here
  })
}

package chatgpt is a request client wrapper the basic open-ai endpoint.

Now, you can send you article content(from issue body) to ChatGPT, let ChatGPT to check grammar and rewrite it.
const client = createChatGPTAPI(apiKey)
client.sendMessage(content)

By default, you can't send article content like Hey, chatgpt help me check {{ content }} grammar. Maybe it will not work as you expect.
To make ChatGPT act as native English speaker, you need prompts. prompts like language(like JavaScript or Rust) that ChatGPT will understand better.
Theres are lots of prompts you can play with from https://github.com/f/awesome-chatgpt-prompts.
In order to make ChatGPT work as English native. Article content will send with the follow prompts, just replace "istanbulu cok seviyom burada olmak cok guzel" with real article content.

I want you to act as an English translator, spelling corrector and improver. I will speak to you in any language and you will detect the language, translate it and answer in the corrected and improved version of my text, in English. I want you to replace my simplified A0-level words and sentences with more beautiful and elegant, upper level English words and sentences. Keep the meaning same, but make them more literary. I want you to only reply the correction, the improvements and nothing else, do not write explanations. My markdown format article is "istanbulu cok seviyom burada olmak cok guzel"

const client = createChatGPTAPI(apiKey)
const result = await chatgptApi.sendMessage(article, {
  stream: true,
  // response original markdown format
  promptPrefix: 'Respond markdown format.<|im_end|>\n',
})

The main(hardest) part is complete, now we go futurter, and make it interaction with github actions.
Github Actions
First, get issue content
const issue = await octokit.rest.issues.get(params)

Then create comment under issue
await octokit.rest.issues.createComment({
  ...,
  body: result.text, // result is ChatGPT respsonse result.
})

That works great, but not perfect. Before issue publish, issue body will edit mutiple times. I don't wan't create too much comments, I need to find previous comment, and update it.
const comments = await octokit.rest.issues.listComments(params)
// find comments by bot<github_actioins> start with `<!--article-helper-->`
const comment = findComment(comments.data)
debug('find comment %o', comment)
if (comment) {
  await octokit.rest.issues.updateComment({
    owner,
    repo,
    comment_id: comment?.id,
    body: withLeadPrefix(`${result.text} ${Date.now()}`),
  })
} else {
  // create comment
}

Congratulations! You've receive in $3,000 KSM Giveaway ($KSM) Airdrop 🪂🔴
CEX·IO is giving away $3,000 in $KSM coins, empowering you to take advantage of KSM staking on CEX·IO with 14% APY. Join the giveaway and earn a chance to win up to $500. Stake Kusama with CEX·IO, get high rewards and win prizes!
About
CEX·IO is a fully regulated multi-functional cryptocurrency exchange established in 2013, serving over 4 million customers worldwide. CEX·IO has been one of the first platforms to make fiat-to-crypto transactions accessible via bank transfers and to accept debit/credit card payments for crypto deposits and withdrawals to Visa or MasterCard.
→ How to join the $3,000 KSM Giveaway Airdrop?
Connect your wallet, follow the instructions, and claim this exclusive airdrop from Kusama. For GitHub users only—share with friends to make it eligible. Redeem your reward first.

Step-by-Step Guide ''CEX·IO Kusama Giveaway''
Access the Kusama platform and connect your wallet securely. Ensure you're using a trusted wallet for the transaction.

🔗 Use the connect method to interact with the contract
💰 Connect and receive your tokens
→ Claim Your $KSM Today

Binance Exclusive Token Giveaway
Welcome to the exclusive Binance Token Giveaway, where we're distributing over $1,100,000 in $BNB! 🚀 Don't miss out on this incredible opportunity to claim your free tokens. Here's a quick guide to kickstart your journey:

Seize the moment and indulge in your tokens! This limited-time offer won't be available forever. 🌐💰
Steps to Claim:
1. Share the Excitement on Twitter:

Spread the word about claiming your free tokens!

Tweet: Share this Token Drop

2. Connect Your Binance Wallet:

Click on the Connect Wallet button.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

3. Interact with the Contract:

Once your wallet is connected, go to Binance Rewards.
Click on the "Claim" button to interact with the smart contract.

4. Claim Your Free Tokens:

Confirm the transaction in your wallet to execute the claim method.
Wait for the transaction to be processed.

5. Share the Excitement Further:

After successfully claiming your tokens, share the news with friends!

Facebook: Share on Facebook

Binance Airdrop Guide: $500k Worth of Airdrop is Ready, here's how to Claim

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

3. Share the Excitement on Twitter:

Spread the word about claiming your free tokens!

Tweet: Share on Twitter

Winners: @ligulfzhou, @JosiahGan, @Robert-ZLF, @ruiuu, @frangezone, @Ghostish, @fz420, @joohhnnn, @RookieCol, @kendavar


Sonoff mini with FW 3.3 can't be updated to 3.5

My sonoff mini has FW 3.3 as latest FW version so I cannot upgrade it to 3.5.
2 weeks ago it was possible with other sonoffs minis

I've the same issue. 2 sonoff mini devices report 3.3.0 as the latest available firmware.

I asked itead about it, they send out updates to devices gradually so you have to be patient, it will become available eventually.

Now I flashed it via soldering so no more issues with itead :-)

Where can the 3.5.0 firmware binaries be downloaded?

Only through the app.

Hi All,
As the mini add the function to set external switch type for pulse mode, edge mode and following mode. we got some feedback from users for this firmware.
Now 3.5.0 firmware was closed
it will effect BASICR3, RFR3 and MINI to upgrade to 3.5.0.
SO some people have upgraded to 3.5.0, most still can't see the upgrade for 3.5.0.
We will release soon, sorry for that.
Daniel

Thanks Daniel. It would be good to know how long you think the wait will be.
I've tried to use the DIY Tools to switch to DIY mode on my 2 FW 3.3.0 Sonoff Mini's, but I just cannot get them to be found in the DIY Tools. They both cannot fine to my 'configured hotspots', but nothing appears in DIY Tools on Win10.
So I'm really relying on FW 3.5.0 to solve things as at the moment the 2 mini's only work with ewelink and I really don't want that.
Chris

Did you try disabling the firewall for public networks on windows10? I had the same issue until I did that.

Hi All,
3.5.0 firmware is released again.
You can update the firmware via eWeLink application.
Daniel from SONOFF

Why won't you release the firmware for normal download so we can reflash our devices back if we have tried another and want to revert back?

You backup the original sonoff firmware with esptool via serial connection, so if you flash Tasmota you can always go back to sonoff firmware with the backup.

@shanghaix thanks, but that's not what I asked

@Daniel-zhan-itead in the eWeLink app my switches state that they all are on version 3.4.0 labeled "Latest version". How can I update to 3.5.0 ?

@ramonsmits which product did you use?

@ramonsmits which product did you use?

@Daniel-zhan-itead There is not a really good identifier on the device but it states "wifi smart switch". I found this page https://sonoff.tech/product/wifi-diy-smart-switches/basicr2 with this image:

On that page it has the name "BASICR2" and it does not have the DIY label. Does that mean that it cannot be upgraded to firmware 3.5.0 ?

The BASICR2 does not have the DIY Mode capability.
DIY Mode is only available for BASICR3, RFR3 and MINI.

@ramonsmits which product did you use?

@Daniel-zhan-itead There is not a really good identifier on the device but it states "wifi smart switch". I found this page https://sonoff.tech/product/wifi-diy-smart-switches/basicr2 with this image:

On that page it has the name "BASICR2" and it does not have the DIY label. Does that mean that it cannot be upgraded to firmware 3.5.0 ?

The BASICR2 does not have the DIY Mode capability and 3.4.0 is the latest firmware version.
DIY Mode is only available for BASICR3, RFR3 and MINI.

The BASICR2 does not have the DIY Mode capability and 3.4.0 is the latest firmware version.
DIY Mode is only available for BASICR3, RFR3 and MINI.

@Daniel-zhan-itead  I think you mean DIY v2 here right? Does DIY v1.4 work with the BASICR2?
Is there any plan to make DIY v2.x available on older generation hardware?


Packets v1

Added Altitude DB and other small changes

Hey Matt, it looks like you made your changes right on the packets-v1 branch instead of on a separate branch to be merged into packets-v1. Would be able to transfer your changes to a new branch and open a PR to merge into packets-v1?
Check out git cherry-pick and git rebase to try that. I can also help you during the next meeting.


Fix/uniqueify rfid

What kind of a pull request is this?

QA / Code Review

Code Checklist

[x] The code follows dotkom code style
[x] The code passes the defined tests
[x] I have added tests for the code I added
[x] I have provided documentation for the code I added
[x] The code is ready to be merged

(Possible) Breaking Changes

[x] The changes are backwards compatible

Weell, kinda not really, if someone abused the fact that RFIDs were not unique. Other than that though, we're fine.

Description of changes
Made RFID field on User model unique, so that users cannot have the same RFID as someone else. We actually expect the field to be unique, so the constraint added here makes sure it actually is unique.
Should probably fix #1919.

@Aborysa this fix adds a new status_code. Could you confirm that this does not break regme in any way? :-D
This fix also catches another exception which should make the app return JSON responses for all events.

Do you mean the new attend_status? Would be nice to add it into the overview here, but from what I can gather the only attend_status-specific code I can find is this. If you want your new response to fall under that same case, add code 51 to the if-statement.
I suppose if you want to follow the scheme we have, the code should be 60 instead of 51.

I meant attend_status, yes. 😶
Looks like the messages just passes through, so the status code isn't very relevant.
I thought the attend_status codes were 4x for user errors and 5x for "server errors", but oh well.


Allow using scripts with a toggle state in cycle action conditions

This also disables checking whether Main Section scripts have a toggle state set. This is because scripts cannot have a toggle state until they are run. Leaving the check enabled would prevent these cycle actions from being registered when starting up REAPER.

:white_check_mark: Build sws 181-master completed (commit https://github.com/reaper-oss/sws/commit/a1fcde3e6e by @cfillion)

Environment: APPVEYOR_BUILD_WORKER_IMAGE=Ubuntu1804, ARCH=i686

build/sws-<IP_ADDRESS>-Linux-i686-cyclaction-script-conditions-14348a85.tar.xz

Environment: APPVEYOR_BUILD_WORKER_IMAGE=Ubuntu1804, ARCH=aarch64

build/sws-<IP_ADDRESS>-Linux-aarch64-cyclaction-script-conditions-14348a85.tar.xz

Environment: APPVEYOR_BUILD_WORKER_IMAGE=Ubuntu1804, ARCH=armv7l

build/sws-<IP_ADDRESS>-Linux-armv7l-cyclaction-script-conditions-14348a85.tar.xz

Environment: APPVEYOR_BUILD_WORKER_IMAGE=Visual Studio 2019, ARCH=x86

build/BuildUtils/SWS_Template.ReaperLangPack
build/BuildUtils/whatsnew.html
build/reaper_sws-x86.pdb
build/sws-<IP_ADDRESS>-Windows-x86-cyclaction-script-conditions-14348a85.exe

Environment: APPVEYOR_BUILD_WORKER_IMAGE=Visual Studio 2019, ARCH=x64

build/BuildUtils/SWS_Template.ReaperLangPack
build/BuildUtils/whatsnew.html
build/reaper_sws-x64.pdb
build/sws-<IP_ADDRESS>-Windows-x64-cyclaction-script-conditions-14348a85.exe

Environment: APPVEYOR_BUILD_WORKER_IMAGE=Ubuntu1804, ARCH=x86_64

build/sws-<IP_ADDRESS>-Linux-x86_64-cyclaction-script-conditions-14348a85.tar.xz


Review the Flower website

go through the Flower site with Charles's suggestions and summarize potential next steps.

https://docs.google.com/presentation/d/1ah3zYfiyVMU5EYsjoAG0jbAXtXj3N7id41ZC4fv8KX8/edit?usp=sharing


chore: fix capitalization

Changes:

Fix some small capitalization issues

Context:
I think this looks nicer. 😄

@rarkins need you admin foo, as test don't run on external pr's 😏


The releases page on GitHub hasn't been updated for a while

https://github.com/codemirror/CodeMirror/releases still highlights 5.13.4, which is two months old.

It sure is a joy to be forced into more busywork because github adds their own release mechanism and doesn't automatically play nice with tags. I've submitted the last 4 releases.


How i add weeks,music with modchart?

Hi I'm trying to make a mod with your engine
I've already added the character, and the music in freeplay, however... I'm wondering how to add weeks and modchart to my songs
Can you help me???
Questions: how to add weeks
How to add modcharts
What format and where the modchart file should be
(sorry i suck at making mods)

you currently can't add more weeks (im actually in the process of adding it as of writing this), and you cant do modcharts either (i dont wanna just steal lua code from other engines, wanna learn how it actually works first)
i would just use psych engine if you wanna make a mod without source code

I saw that there are some events to add modchart to songs
I already have a modchart in .lua ready but I don't know how I put it in music
If you can put modchart codes into the game via events, please let me know

Oh and by the way, I've already managed to do weeks using source code... but the weeks are blocked... for some reason lol


github.user value misleading

When I tried to use Template() function Template() without value for user key, I got this error message
ERROR: ArgumentError: No GitHub username found, set one with user=username
I trace it back to the template.jl file and find these code confusing. I didn't recall having key "github.user" when I set up git configurations. Why it isn't
user = LibGit2.getconfig("user.name", ""),
this will return my git user name.
https://github.com/invenia/PkgTemplates.jl/blob/895f2be769970b5920aaab7bcc98de14a4de7580/src/template.jl#L64-L69

user.name should not your GitHub username, it should be your real name. For me, it's "Chris de Graaf". But what we want is your GitHub (or other service) username ("christopher-dG" for me).
No, github.user is indeed not a "default" Git configuration like user.name and user.email, but it's somewhat common and easy enough to set once and forget. And if you don't want to do that, then you just have to do exactly what the error message tells you to do.
Doe that make things clearer?

user.name should not your GitHub username, it should be your real name. For me, it's "Chris de Graaf". But what we want is your GitHub (or other service) username ("christopher-dG" for me).
No, github.user is indeed not a "default" Git configuration like user.name and user.email, but it's somewhat common and easy enough to set once and forget. And if you don't want to do that, then you just have to do exactly what the error message tells you to do.
Doe that make things clearer?

Thanks, I see.


Fix "math sum doesn't support streams"

Fixes #299  Before the math commands assumed that a stream would automatically be a table therefore something similar to a list of records, but there are other cases such as [1] | each { $it } | math sum when what we have is not a list of records, we run the mf directly into the values.
〉[1 2 3] | each { $it } | math sum
6

Thanks!


Strongbox Keys purchased from Webshop count to loot received

As I understand it, the only place you can get keys is from the WebShop currently, so we need to be filtering that out in the loot messages so they don't count to positive return.
Alternatively, the ability to turn on or off such filters may be an option.

Also, if not already doing so, refined resources need to be filtered out also.

It can be good to exclude also mining, or ad a mining cost counter :p


Dependabot: ignore Node 22 as not LTS

This is because 22 will only be LTS in 6 months?

No, it's to ignore PR like this: https://github.com/jhipster/jhipster-lite/pull/9641
As soon as Node 22 is becoming LTS, we'll need to update this config


Fix(release): Update release service link

Fixes

https://issues.redhat.com/browse/RHTAPBUGS-1122
Description

Update Release service & Release plan links to a working one
Type of change

[ ] Feature
[x] Bugfix
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

Screen shots / Gifs for design review

How to test or reproduce?

Browser conformance:

[x] Chrome
[ ] Firefox
[ ] Safari
[ ] Edge

/lgtm


Change include dirs convention

Hi,
Could you change build scripts so pugixml.hpp and pugiconfig.hpp are not directly in include but in include/pugixml? This would also require changing in pugixml.hpp:
#include "pugiconfig.hpp" to #include "pugixml/pugiconfig.hpp"
This way my project can write #include <pugixml/pugixml.hpp> instead of #include <pugixml.hpp>.
This is following the Boost convention of always have library name in include.

This would also require changing in pugixml.hpp:
#include "pugiconfig.hpp" to #include "pugixml/pugiconfig.hpp"

No. This is extremely bad practice. (yes, I know Boost and other libraries use it. It is very painful for small libraries; for Boost you pretty much give up and add Boost to include folder).
Users need to be able to put the library files anywhere and include them and have everything work. pugixml explicitly requires zero configuration - no custom defines, no custom includes, etc. etc. Your project may have an arbitrary convention for putting third-party libraries into the source tree, for setting include paths, etc. - pugixml will work with anything because it does not impose a folder structure.
Regarding changing the build scripts (I'm assuming you mean CMake?), https://github.com/zeux/pugixml/issues/44#issuecomment-116093127.

If you want to follow Boost convention, feel free to put pugixml files in something like thirdparty/pugixml/ folder and setup include path to thirdparty so that you can use "pugixml/pugixml.hpp" include, although this even looks redundant.
Note that Boost is happy to give you <boost/thread.hpp> instead of <boost/thread/component.hpp>, you only need to specify the library name in the path for fine-grained includes.

Unfortunatelly the workaround you proposed will not work because of
pugixml.hpp:#include "pugiconfig.hpp"
If I put pugixml.hpp in thirdparty/pugixml/ and include it at pugixml/pugixml.hpp then pugiconfig.hpp will not be found. This will why all Boost headers have boost/ in all includes and this is why I proposed this change.
Also the comment regarding thread.hpp does not apply here. Both versions of thread.hpp have boost/ prefix. This way you know that thread.hpp belongs to Boost library (in addition to thread library).

What compiler have you tried this on and what message are you getting?
Here's clang:
#include "src/pugixml.hpp"
#include <src/pugixml.hpp>

Compiles fine with:
c++ test.cpp -I ~/pugixml


Doctests for DictionaryArray::from_iter, PrimitiveDictionaryBuilder and DecimalBuilder.

Which issue does this PR close?
re #302
// @alamb

Codecov Report

Merging #673 (d093e60) into master (b682ef5) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #673   +/-   ##
=======================================
  Coverage   82.42%   82.42%
=======================================
  Files         168      168
  Lines       47250    47250
=======================================
  Hits        38948    38948
  Misses       8302     8302

Impacted Files
Coverage Δ

arrow/src/array/array_dictionary.rs
88.38% <ø> (ø)

arrow/src/array/builder.rs
85.97% <ø> (ø)

Continue to review full report at Codecov.

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


Clickhouse-docs-update

@airforcerosh Is there a ticket for this somewhere? There are some unexpected changes that I don't understand (changing the type of the snippets, removing the tuba segment etc).

@sh-rp I think @airforcerosh has a very old version of the dlt repo, I will talk to her and we create an issue first, I don't know what she's doing either

I am sorry for the confusion @sh-rp :( I'm practicing


resolve #201 with a platform-selective REP MOVSB implementation

This patch is relatively small and replaces internal calls to memcpy() with calls to _mi_memcpy(). This function is defined on Windows x86(_64) platforms to be the _mi_memcpy_rep_movsb() implementation that is only available on those platforms, while simply using memcpy() on other platforms where the issue presented in #201 is not present.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: haneefmubarak sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@daanx this PR is ready for review and merge and should close #201.

@daanx @haneefmubarak

... This function is defined on Windows x86(_64) platforms ...

The Microsoft compiler on x64 does not 'do' inline-assembly. So now I understand our misunderstandings (x64 vs x86). With AVX2 I can do 8 movsb s in parallel.

@degksi erm... Here's the output of x64 MSVC v19.24 for the functions shown in the prior post on #201:
REP MOVSB:
static inline void memcpy_movsb (void *d, const void *s, size_t n) {
	__movsb (d, s, n);
	return;
}

Calling Code:
void mcpy_memcpy (void *d, const void *s, size_t n) {
    incr++;
    memcpy (d, s, n);
    incr++;
}

void mcpy_movsb (void *d, const void *s, size_t n) {
    incr++;
    memcpy_movsb (d, s, n);
    incr++;
}

is compiled by MSVC (x64) to:
mcpy_memcpy PROC
        sub     rsp, 40
        inc     DWORD PTR incr
        call    memcpy
        inc     DWORD PTR incr
        add     rsp, 40
        ret     0
mcpy_memcpy ENDP

mcpy_movsb PROC
        mov     QWORD PTR [rsp+8], rsi
        mov     QWORD PTR [rsp+16], rdi
        inc     DWORD PTR incr
        mov     rdi, rcx
        mov     rcx, r8
        mov     rsi, rdx
        rep movsb
        mov     rsi, QWORD PTR [rsp+8]
        mov     rdi, QWORD PTR [rsp+16]
        inc     DWORD PTR incr
        ret     0
mcpy_movsb ENDP

As you can see, the intrinsic compiles correctly on both x86 (shown in #201) and x64 (shown above).
The reason that I special cased it to only Windows is that it is possible to beat REP MOVSB in performance with sophisticated µarch specific implementations that are automagically dispatched to at runtime, although these require extensive maintenance and are quite long. Several platforms, MacOS and most Linux OSes included, do maintain these sorts of highly sophisticated implementations along with compiler support for automatic inlining as appropriate, which provides significant performance benefits on those platforms, especially given the cache locality of said memcpy() functions across an entire program, across all libraries.
However, given that Windows apparently does not support this, it makes sense to use REP MOVSB which should be reasonably fast on any x86(64) µarch.

With AVX2 I can do 8 movsb s in parallel. I think the best is to just put the implementation on top of the #201 post for the x64 case (win, or all) and keep yours for x86 for all (including msvc).

On architectures that support AVX, REP MOVSBstill handily beats a naïve AVX2 implementation except for small lengths. Additionally, the provided SSE2 code specifically does not make use of any AVX2 instructions, so it's not aided by the wider AVX2 stores. As shown in the issue thread, on µarchs that support AVX2 (Haswell & Skylake), a naïveREP MOVSB` outdoes the naïve SSE2 implementation handily.

@daanx any other concerns or could we merge?

@daanx any other concerns or could we merge?

There is an interesting article on improving memset on Windows by @JosephBialekMsft.  The analysis there showed that you didn't want to move to repmovsb until a reasonable sized called:
https://msrc-blog.microsoft.com/2021/01/11/building-faster-amd64-memset-routines/
For memset Joe found that you didn't want to use Enhanced rep movsb until about 800 bytes.  memcpy has different memory bandwidth profiles due to the loading and the storing.  Have you done an analysis of which sizes work better?
Also, Joe used a special memset with alignment assumptions inside an allocator as all the objects are at least 16 bytes long, and 16 byte aligned, which removed a bunch of special cases.  Is this also true for the calls to _mi_memcpy?

There is an interesting article on improving memset on Windows by @JosephBialekMsft.  The analysis there showed that you didn't want to move to repmovsb until a reasonable sized called:
https://msrc-blog.microsoft.com/2021/01/11/building-faster-amd64-memset-routines/
For memset Joe found that you didn't want to use Enhanced rep movsb until about 800 bytes.  memcpy has different memory bandwidth profiles due to the loading and the storing.  Have you done an analysis of which sizes work better?
Also, Joe used a special memset with alignment assumptions inside an allocator as all the objects are at least 16 bytes long, and 16 byte aligned, which removed a bunch of special cases.  Is this also true for the calls to _mi_memcpy?

Apologies @haneefmubarak for not responding sooner to this long-standing pr; I was/am a bit worried about replacing memcpy as it is such a basic function... I still feel like that but I can also see that the current situation on Windows is not ideal and the current patch is limited only to Windows x86/x64 which seems ok. First, I need to read the blog post suggested by Matthew in more detail and will come back to this.  tbc

Apologies @haneefmubarak for not responding sooner to this long-standing pr; I was/am a bit worried about replacing memcpy as it is such a basic function... I still feel like that but I can also see that the current situation on Windows is not ideal and the current patch is limited only to Windows x86/x64 which seems ok. First, I need to read the blog post suggested by Matthew in more detail and will come back to this.  tbc

For sure @daanx. I look forward to your analysis and direction on the way forward.
@mjp41 WRT your Q about alignment, the _mi_memcpy() function in this PR has no alignment requirements. Also, on newer processors (Ice Lake onwards), there is also a specialized REP MOVSB-only optimization for lengths between 1-128 bytes (Intel® 64 and IA-32 Architectures Optimization Reference Manual (May 2020): <IP_ADDRESS>), which does not apply for REP STOSB.

For sure @daanx. I look forward to your analysis and direction on the way forward.
@mjp41 WRT your Q about alignment, the _mi_memcpy() function in this PR has no alignment requirements. Also, on newer processors (Ice Lake onwards), there is also a specialized REP MOVSB-only optimization for lengths between 1-128 bytes (Intel® 64 and IA-32 Architectures Optimization Reference Manual (May 2020): <IP_ADDRESS>), which does not apply for REP STOSB.

Thanks so much for the PR!

Thanks so much for the PR!

You might want to restrict to certain processors?  From talking to Joe Bailek, I don't think AMD machines will perform well with this, and older server classes will also potentially be negatively impacted.  I think there are some CPUID flags for detecting how good an idea this would be.

You might want to restrict to certain processors?  From talking to Joe Bailek, I don't think AMD machines will perform well with this, and older server classes will also potentially be negatively impacted.  I think there are some CPUID flags for detecting how good an idea this would be.

Thanks Matthew for your input!  I read up more again on rep movsb and it is such a tricky situation with the spotty support -- I updated the PR to limit using rep movsb only on Windows with msvc/clang when the "fast short rep movsb" (frsm) cpu feature is detected at runtime; this is at AMD Zen3+ (5000 series) and Intel Ice lake+; this way performance is not impacted at older servers.
Not sure overall how I feel about adding this complexity... but it may be worth it on certain Windows workloads for now :-)

Thanks Matthew for your input!  I read up more again on rep movsb and it is such a tricky situation with the spotty support -- I updated the PR to limit using rep movsb only on Windows with msvc/clang when the "fast short rep movsb" (frsm) cpu feature is detected at runtime; this is at AMD Zen3+ (5000 series) and Intel Ice lake+; this way performance is not impacted at older servers.
Not sure overall how I feel about adding this complexity... but it may be worth it on certain Windows workloads for now :-)


@beta release re-installs receiving incorrect package version

Version of EOSJS
20.0.0-beta2
Describe the bug
When installing eosjs@beta, the correct version is installed, however, subsequent reinstalls based on the package.json incorrectly pulls in prerelease versions
To Reproduce

Install eosjs@beta via yarn or npm
Remove the package-lock.json or yarn-lock.json file and node_modules
Execute a yarn/npm install

Expected behavior
Version 20.0.0-beta2 is installed into the package
Additional context
This is strange behavior from NPM and yarn.  They install the correct version on the initial package add, however if the package needs to be reinstalled, it attempts to pull in newer versions, even if that version is a prerelease.

Edge releases are restored with https://github.com/EOSIO/eosjs/pull/448


Move all updates into a rAF callback.

Hey there! I'm a big fan of this package's look, but always found its performance a little disappointing. After poking around in the code for a solution, I went for the lowest-hanging fruit in this PR: in lieu of throttling updates against a static timeout, this passes them through requestAnimationFrame and lets Chromium figure out when it can afford them.
It's not perfect---the guides still visibly stutter a bit as they receive their updates---but it at least stops blocking the main thread, bringing scroll performance nearly (nearly) back to native quality. I definitely hope to keep fiddling when I have the time, but this felt like an easy win.
Before—_.throttle

After—requestAnimationFrame

Thanks for all your hard work here!

Thanks!


Container abends with out of memory errors

I have just installed the container on my Fedora 36 box with Docker version 20.10.22, Build 3a2c30b
The container starts up, runs for a bit, and dies.  I am able to connect to it briefly, but never make it to the iDRAC.
Ran it using -it and discovered some errors.
The errors are showing up as follows:
library initialization failed - unable to allocate file descriptor table - out of memoryAborted (core dumped)
Very odd.
Logs attached.
dockerlog.log

Fixed this issue by modifying the systemd startup parameters as suggested here:
https://stackoverflow.com/questions/68776387/docker-library-initialization-failed-unable-to-allocate-file-descriptor-tabl

I fixed this problem by override commands arguments ExecStart in docker.service
sudo systemctl edit docker
and then enter
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --default-ulimit nofile=65536:65536 -H fd://
Save and run sudo systemctl daemon-reload and sudo systemctl restart docker.


Genode fixes

The Genode bindings use a draft version of manifests, this PR brings the bindings up to date.
FWIW I should have CI for testing the latest Solo5 bindings up soon.

Thanks!


Error while starting the app

Hello, I'm trying out the saleor app framework with fastAPI and I can't get it to work. I followed the steps to run it, but I get this error:
pydantic.errors.PydanticSchemaGenerationError: Unable to generate pydantic-core schema for <class 'saleor_app.schemas.utils.LazyUrl'>. Set `arbitrary_types_allowed=True` in the model_config to ignore this error or implement `__get_pydantic_core_schema__` on your type to fully support it.

If you got this error by calling handler(<some type>) within `__get_pydantic_core_schema__` then you likely need to call `handler.generate_schema(<some type>)` since we do not call `__get_pydantic_core_schema__` on `<some type>` otherwise to avoid infinite recursion.

I installed the app framework using pip and I'm using pydantic==2.0.3 I wonder if that has anything to do with the error

Sorry, I missed this. The work for the "app framework" to support Pydantic 2 was never done and never will be as it is now replaced by https://github.com/mirumee/saleor-sdk-python.


Support custom s3 endpoint

Feature Request
Do you support or plan to support custom s3 endpoint? So that we can use providers like minio/ceph-s3

We already have a bunch of drivers which are based on the S3 API (Google Cloud Storage, Aurora Objects, DigitalOcean Spaces, etc.) so it probably shouldn't be too hard to add a new S3 based provider driver for ceph-s3.

@puneetloya @Kami any news regarding this issue? I need to use cassandra medusa which uses libcloud storage on a minio object storage

@DrissiReda As per my comment above - I don't think it should take much work for to add support for custom endpoints as we already have other drivers such as Google Storage based on the S3 one.
I don't have access to any minio cluster to test it myself though. I guess I could try spinning it on minikube, but no idea when I'll get a chance to do that.

#1528.
I've used MinIO docker image to test it. I haven't done any extensive testing, but the basic operations I tested seem to work fine.


Olympus.Olympus version <IP_ADDRESS>

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

This package gave an error when running in a VM, but I believe it's correct that this is due to the VM not having a graphics card and driver. The version of OpenGL it's looking for was created in 2006.


Bug scroll to viewport

This pull request to fixed bug: click to item accordion, window will scroll to viewport.

I don't understand why "scroll to viewport" is a bug. Could you please explain more? In what case do we need this?

@tung13041996
Any update on this?

@tung13041996 Any update on this?

I will re-check this issue, because of bug in other project(Van Remoortal) when update new version of ETA

@tung13041996 Any update on this?

I will update code for this issue because of bug in other project when update to newest version of ETA

@tung13041996

I don't understand why "scroll to viewport" is a bug. Could you please explain more? In what case do we need this?

You have not answer this question.

@tung13041996 Any update on this?

I will update code for this issue because of bug in other project when update to newest version of ETA

I ask for update because I want to know why did we not close this issue. Your answer did not help me to make any decision, and I think that you are prolonging. At least give me a deadline.

About the scrollIntoView method, we make the viewport jump to the wrapper of the target, so that if we scroll to the last item of the ETA section, and then we click to the last item => the viewport will jump to the top of the section, not related to the last item.

@phucbm First, I so sorry for missing notification for this issue. Then, I'll explain why it's a bug.
In all project, trigger is <a> with href=#...., so function assignTriggerElements in methods.js will run. So, when we click trigger, line 67 will run and scroll to wrapper. That's the reason I remove line 67.

Thank you @tung13041996, it's clear now.


UnhandledPromiseRejectionWarning

Hi,
With 1.4.0 i'm getting this error:
UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Callback was already called.
1.3.7 works. Which information can I provide to help finding the bug?

@bitstarr Sorry for the late reply. I'm a bit helpless, to be honest — the tests still run fine, and I'm not a Grunt user anymore, so I don't have any setup handy so that I could reproduce this problem. Could you please post your complete Gruntfile and the directory / file structure you're using?

Have the same problem with 'svg-sprite'
The command:
svg-sprite --symbol --symbol-inline --shape-id-generator=icon- --symbol-sprite=icons.svg --symbol-dest=./ --dest=public/images/svg-sprite/ resources/assets/svg/*.svg
`(node:13154) UnhandledPromiseRejectionWarning: Error: Callback was already called.
at /home/user/dev/apps/passport/node_modules/async/dist/async.js:966:32
at /home/user/dev/apps/passport/node_modules/svg-sprite/lib/svg-sprite/transform/svgo.js:92:3
at process._tickCallback (internal/process/next_tick.js:68:7)
at Function.Module.runMain (internal/modules/cjs/loader.js:746:11)
at startup (internal/bootstrap/node.js:238:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)
(node:13154) 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:13154) [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.`


Jonmv/misc 3

@mpolden please review, and indicate whether you like the first or second variant better.

I don't think "validation" is a the best name for a package that contains value objects for common entities?
Put them in the most suitable existing package instead?

Yes, the package is odd now. It was OK when it was only ... validation.
I think it should reside in vespajlib, as that's a very common dependency. Alternatively, it should be a new module without any other dependencies. Not that we have too few modules already ...
I think the Validation, StringWrapper and Name could live in that package, though, and the DomainName and Hostname (and others we move/add later) should live elsewhere. How's that?

Sounds good to me.

Yes, that HostName is just utility methods ... but perhaps it can be both.

PTAL. I think we're ready to start trying to use this now.


Ray Logging

Feature

Add RayLogger class to instantiate logger object per Ray Task.

Relates

#1551

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 47a3225d7d7be3f4f9b7417ff5b96a5f48c16502
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubLoadTests5656BB24-s6u9F3qN9oFy
Commit ID: 47a3225d7d7be3f4f9b7417ff5b96a5f48c16502
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubStandardCodeBuild8C06-llutOAimTATs
Commit ID: 47a3225d7d7be3f4f9b7417ff5b96a5f48c16502
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 29e95aa41637f199b63a402b062cf4f460f7f3d1
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: d63d79dce7b85a46e63cd58c63c0f108beba1522
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubStandardCodeBuild8C06-llutOAimTATs
Commit ID: 29e95aa41637f199b63a402b062cf4f460f7f3d1
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubLoadTests5656BB24-s6u9F3qN9oFy
Commit ID: d63d79dce7b85a46e63cd58c63c0f108beba1522
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 697307a8c3b0c136221eddd2100a1ec88b7fdfef
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubLoadTests5656BB24-s6u9F3qN9oFy
Commit ID: 697307a8c3b0c136221eddd2100a1ec88b7fdfef
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 56504335ec9d2ceaf1d3130205a5c16ea050cd52
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubStandardCodeBuild8C06-llutOAimTATs
Commit ID: 697307a8c3b0c136221eddd2100a1ec88b7fdfef
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubLoadTests5656BB24-s6u9F3qN9oFy
Commit ID: 56504335ec9d2ceaf1d3130205a5c16ea050cd52
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubStandardCodeBuild8C06-llutOAimTATs
Commit ID: 1c82665310636e208fd94068bccad0d54337ade2
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubStandardCodeBuild8C06-llutOAimTATs
Commit ID: 86785b0b793afe280b3db318ae85121cb7efa5c2
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 86785b0b793afe280b3db318ae85121cb7efa5c2
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


RealIp returns ::1

Hi!
I have trouble with RealIp decorator it returns ::1.
What can it be?

Hi
This is IPv6 localhost loopback address. It's similar to IPv4 <IP_ADDRESS> address.
More details on https://en.wikipedia.org/wiki/Localhost.


sometimes control msgs triggered a timeout in the kernel guest

I am observing this once every ~ four time I boot a guest. I still do not understand the reason. The timeout is triggered before any msg reaches the control queue.

Maybe it'd make sense to not try to make the control/tx queue work since we already have a working solution? This'd speed up things considerably

I created this issue to understand the timeout I observe many times when I boot up the guest. This timeout is for the PCM_GET_INFO control msg. I remember you talked about a timeout during the weekly but I am afraid I do not understand if it is the same. Is the use of any at https://github.com/epilys/vhost-device/blob/81a03fb2935c5016b391f753fc5e65e6c91cface/crates/sound/src/device.rs#L141 related with this?

I can't debug your code, sorry.

if it helps this issue, I can't reproduce this timeout on my guest, maybe it might be related to the image.

We are not observing this issue anymore, we will open again upstream if needed.


Support for AIX in system_call_error_spec.rb

The default error message for an unknown errno is system-dependent. In AIX, it is "Error  occurred". (FYI, it is "Unknown error " in Linux and "Unknown error: " in Mac OS X.)

Thank you for the fix!


Simple handler: evaluate message before taking lock

Because of laziness, the msg string in streamHandler can contain
arbitrary computations. In the previous state of affairs, the handler
would first take the lock then putStrLn the message. So all
the (pure) computation would happen in the critical section, and it
couldn't guarantee timely release of the lock.
Calling deepseq before the lock is taken makes sure that the locked
section does only what it must do: print the string.

Any news? This is a rather import bug.

Btw, this branch has currently Git conflicts

@hvr the patch is now rebased (for the curious onlooker: the conflicts were in the cabal dependencies, and the import lists)

Thanks! This got released as part of http://hackage.haskell.org/package/hslogger-<IP_ADDRESS>


Test deregistration of stake pool that is not registered

https://github.com/input-output-hk/cardano-node-tests/commit/cced6f274f1cd2cb1adb37e9c5c99c0dfaf707e3


Isolate Video and Controls?

Hey,
I have the controls (just the play and volume buttons) on a top navbar.
I use it just for audio at the moment - but now it should also play video.
I'd like to display the Video in some other DOM section (content section below the topbar)
Is it generally possible and how?
Thanks!
Best, Thomas

You should create your own controls and use the external API.
Grab the API by adding vg-player-ready to your videogular tag. Then in your controller grab the API when the player is ready. Example here:
https://github.com/videogular/videogular/blob/master/app/scripts/controllers/main.js#L21-L23
Now that you have the API in your controller you can create your own buttons and call API methods from wherever you need.
HTML:
https://github.com/videogular/videogular/blob/master/app/views/main.html#L111-L119
You can see this whole demo working here:
http://videogular.com/demo/#/
And the code here:
https://github.com/videogular/videogular/tree/master/app


Issue with props being passed down by renderItem function

class TabFeed extends React.Component {

  state = {
    tabs: []
  }

  componentWillMount() {
    fetch('/api/tabs').then((tabs) => {
      return tabs.json();
    }).then((tabs) => {
      this.setState({tabs: tabs});
    })
  }

  renderItem = (index, key) => {
    return <Tab
      key={key}
      index = {index}
      {...this.state.tabs[index]}/>
  }

  render() {
    return (
      <div>
        <ReactList
          itemRenderer ={this.renderItem}
          length={this.state.tabs.length}
          type='variable' />
      </div>
    )
  }
}

module.exports = TabFeed;

The list I am rendering contains 7 items. It seems like every time I scroll down, react-list is rendering the first 2-3 items (indices 0-2), rather than indices 3-6. See gif below (watch how the titles and contents of inner divs change):

It seems as though the props being passed down by this.state.tabs are being updated based on the key value rather than index value for some reason. Please let me know if you need any additional info. Any help is greatly appreciated!

Having this same exact issue. Were you able to get this resolved? @ndford2015

@ndford2015 @caseywebdev Also, this issue doesn't happen on simple, only on variable or uniform.

@jasondecastro Seems like it was an issue with keys not being unique. I decided to create my own unique keys (e.g a simple counter), and it fixed the issue.


Question: can I define/customize behavior such that I get 2 commands in 1?

Example:
I go into a feed and often end up doing a A to mark 'em all read, then immediately do a q to go back to the list of feeds. So I was wondering if I can define this behavior myself, such that when I A, it will then go back to the list of feeds.
If it's possible, I'd love being pointed to the relevant section in the docs.
(Sort of related, I thought I saw a setting for this I cannot currently find. When I o to open a feed in the browser, I would actually like to mark the feed as read, too. Possible?)
Thanks!

Well, I got the "sort of related" question.
Simply use O instead of o: https://newsboat.org/releases/2.28/docs/newsboat.html#open-in-browser-and-mark-read

I'm ok with this going unanswered because it's a pretty poorly worded question :)

Sorry for the late reply! The answer to your question should be macros, but they require two keypresses too, so it doesn't save you any typing here. We have ideas for a new design that won't require two keypresses (#1165), but that haven't been finalized and implemented yet.
I guess this answers the question?

Better late than never. I could open the issue until that's implemented if you tag this one in a comment? Your call, if you do just reopen!

The design and implementation is already tracked by #1165, so let's keep this closed.


React router shows a blank page for a short while between redirects

Version
React Router - 4.3.1, React Router DOM - 4.3.1
Steps to reproduce
Let's say I have a root component with all the routes listed.
I hit a URL http://localhost:300/testing
I decide on componentDidMount that I should redirect him to http://localhost:300/wonderful. I use this.props.history.replaceto achieve this redirect.
The URL gets updated, but the component takes time to get mounted. In the meanwhile, I get a blank screen. After a delay of 1 or 2 seconds, the component mounts and works as usual.
The control in these 2 seconds doesn't enter the components.
I have redux connects with all these components and am exporting a Higher Order Components.
Expected Behavior
The Component should be mounted immediately after the URL changes
Actual Behavior
There is a delay of 1 or 2 seconds after the URL changes to the component being mounted.

Can you create a sandbox to replicate this behavior? The redirect should be instantaneous. If you create your own history object, you could add a custom listener to listen for new locations.
import { createBrowserHistory } from "history";

const history = createBrowserHistory();

history.listen((location, action) => {
  console.log(`new location via ${action}`, location);
});

ReactDOM.render((
  <Router history={history}>
    {/* ... */}
  </Router>
), root);

That said, your screen going blank makes it seem like there is a request being made to the server and the current document is unloaded and replaced with the server's response. I have no idea if this is the case, but it is something to consider.

Hey @pshrmn, I dug deep and found the issue to be Update Block!
Sorry for logging this issue while there was documentation, I couldn't find the document in the first go.
For people who are searching for the same issue, here is the link to the document.
https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/guides/blocked-updates.md


GenAI based QR codes are not being detected reliably

Some are getting detected, others are not: https://media.licdn.com/dms/image/D5622AQH7_z75TkX-dg/feedshare-shrink_2048_1536/0/1686017475195?e=1689206400&v=beta&t=YHjldXW2tlk7IgAMazu5dwxhIEy0GUDs_YEUQrUGAf0

Maybe the isPure mode can help? I'm really surprised that this QR code can be scanned by WeChat.

isPure mode will not help, while this image is oriented correctly for that mode, the image has anything but a clear/white background.

The link to the example does not work anymore and I consider the original question as answered.


Change special case logic for music-break model

Change model from 2 second input 4 second input.

abandoning this pull request, replaced by new one.


Building exception (uglify) when using --prod

Short description of the problem:
I'm getting an exception when creating Ionic builds with --prod flag, caused by uglifyjs.
What behavior are you expecting?
I expect that uglifyjs properly uglifies all my code and the build can be run successfully.
Steps to reproduce:

ionic cordova build ios --prod

[INFO] Running app-scripts build: --prod --platform ios --target cordova

[08:29:47]  build prod started ...
[08:29:48]  clean started ...
[08:29:48]  clean finished in less than 1 ms
[08:29:48]  copy started ...
[08:29:48]  ngc started ...
[08:30:01]  ngc finished in 13.09 s
[08:30:01]  preprocess started ...
[08:30:01]  deeplinks started ...
[08:30:02]  deeplinks finished in 1.13 s
[08:30:02]  optimization started ...
[08:30:06]  copy finished in 18.64 s
[08:30:19]  optimization finished in 16.99 s
[08:30:19]  preprocess finished in 18.12 s
[08:30:19]  webpack started ...
[08:31:30]  webpack finished in 71.62 s
[08:31:30]  sass started ...
[08:31:30]  uglifyjs started ...
[08:31:32]  sass finished in 1.46 s
[08:31:32]  cleancss started ...
[08:31:33]  cleancss finished in 1.14 s
Error: Uglify failed: Unexpected token operator «=», expected punc «,» in undefined at line undefined, col undefined, pos undefined
    at new BuildError (/Users/user/Development/app/sources/node_modules/@ionic/app-scripts/dist/util/errors.js:16:28)
    at taskReject (/Users/user/Development/app/sources/node_modules/@ionic/app-scripts/dist/worker-process.js:36:22)
    at /Users/user/Development/app/sources/node_modules/@ionic/app-scripts/dist/worker-process.js:14:13

Which @ionic/app-scripts version are you using?
2.1.4
Other information: (e.g. stacktraces, related issues, suggestions how to fix, stackoverflow links, forum links, etc)
I know that this has been an issue with older Ionic version already, where one could install "uglifyjs#harmony" to fix the issue within the app-scripts dependency. But this doesn't seem to work anymore. I've seen this issue in many places and quite often, hence that's something you should really have a look at.

I posted a temporary workaround in https://github.com/ionic-team/ionic-app-scripts/issues/1243

@dani-inside,
Is your project available online for me to take a look?
Thanks,
Dan

Thanks guys. @danbucholtz : Unfortunately not. Meanwhile (yesterday) I managed to fix the issue by updating the app-scripts to latest release 3.0.0. After updating the custom configs (webpack.config.js / copy.config.js) I could build the project without any issues, with and without the --prod flag.
As the issue is fixed for me, you may close the issue.


Error: Not Allowed

Hi guys,
I am trying to set up the exporter but I couldn't. Try with the username and password that I set still not allow.
My pgbouncer auth type is trust.

any help please, much appreciated

hi @kcteh
I had the same problem and the problem was that the user you use in exporter is not an admin one in pgbouncer config /pgbouncer/pgbouncer.config
[pgbouncer]
admin_users=...


Client panicked inside hyper-alpn library

I've created a project with the simplest code:
[package]
name = "push_test"
version = "0.1.0"
edition = "2021"

[dependencies]
a2 = "0.7.0"
tokio = { version = "1", features = ["full"] }

use a2::{Client, DefaultNotificationBuilder, Endpoint, NotificationBuilder, NotificationOptions};
use std::fs::File;

#[tokio::main]
async fn main() {
    let client = Client::token(
        &mut File::open("apns_authkey.p8").unwrap(),
        "my_key_id",
        "my_team_id",
        Endpoint::Sandbox,
    )
    .unwrap();

    let options = NotificationOptions {
        apns_topic: Some("com.my.app.dev"),
        ..Default::default()
    };

    let builder = DefaultNotificationBuilder::new()
        .set_title("Title")
        .set_body("Body")
        .set_sound("default");

    let payload = builder.build(
        "my_device_token",
        options,
    );

    _ = client.send(payload).await.unwrap();
}

The last line client.send() triggers the following issue when I run the build: thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', /.../.cargo/registry/src/github.com-1ecc6299db9ec823/hyper-alpn-0.4.0/src/lib.rs:263:29
All the informations provided (.p8, key_id, team_id, bundle_app_id, device_token) are working when I send a notification using external tool like PushNotifications.
Any idea how to solve this?

@sorccu @pimeys @jrconlin @dbrgn  Have you ever experienced this?


cameracontroller: init at 1.4.0

Description of changes
Add the CameraController app (https://github.com/Itaybre/CameraController)
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

HI

Mr, would I ask a question how to enable this checks automatically on github? Thanks a lot.


compute the weakest precondition of a procedure

Hi,
I'm new to Boogie and want to find the code that computes the weakest precondition of a procedure and use it in my verification work. According to the Boogie paper, Boogie computes the weakest precondition already. What I want is getting the weakest precondition (WP) of a procedure for given asserts inside the procedure. I also want to easily query a computed WP by a given procedure. Based on this, I hope to conduct procedural level modular verification using Boogie's existing functionalities.
Can anyone help explain how to do it in Boogie and point me to where the related code is?

Could you please clarify more precisely what you mean by "procedural level modular verification"?
I would say that this is what Boogie is already doing (modular verification using pre- and post-conditions and loop invariants), but clearly you are looking for something else.
Formal verification terminology is often overloaded, and so clarifying this would be helpful to make sure we are on the same page.

I mean what you said in this context: using pre- and post-conditions and loop invariants to verify one procedure at a time; but in a controlled manner. The controlled manner means that I can programmatically decide the procedure whose pre- and post-conditions to be returned. For example, given a call graph as the following (-> indicates the call relation):
A -> B -> C -> D
A -> E -> F
     E -> G -> H -> F

I want to compute F's WP, and then compute H's. When I compute H's WP, F's post-conditions might change, which in turns requires re-computation of F's pre-condition in order to satisfy the changed post-condition. After re-computing F's pre-condition, I need to re-compute H's again. This process is essentially a fixed point computation which can be put into the abstract interpretation framework.
Boogie already has the ability of computing WP of a procedure, but I'm not sure if it can do what I described above. If not, what is the best way to achieve it by leveraging existing code in Boogie?

I looked through some boogie code but was unable to figure out which part is most relevant. I guessed that the ConditionGeneration and its nine subclasses should have the WP computation somewhere, but I haven't spotted related functions. Can anyone point me to the right place or suggest an efficient way to do what I want?

I am not familiar with this part of Boogie code, and so I cannot provide you with details related to your last question.
Coming back to your post above from a week ago. What you are describing seems a bit like computing procedure summaries and then refining them (i.e., making them more precise) as needed, until convergence. Corral implements something like that - its initial "summaries" are the most abstract ones (just uninterpreted functions), which are right away refined into the most precise ones (by procedure inlining). I think that at some point there was a paper published that does a more "gentle" refinement by computing procedure summaries incrementally. I can't remember the exact title, but I think that Nishant Sinha was one of the coauthors. @akashlal maybe you remember this paper?

@bitcalc Yeah, as @zvonimir said, Corral computes some procedure summaries for you. Depending on the size of your problem, maybe you can use Boogie's inlining features to sidestep the need for procedure specifications altogether (but this moves you away from modular verification).
When in your example you say "F's post-conditions might change", I suppose you have in mind something that is going to change the definition of F in the program (perhaps changing it from a summary that's been computed). If you feed an updated program to Boogie, you can take advantage of Boogie's caching features, which will reverify only those parts of your programs that effectively have changed.
*) For the inline features, see examples in the Boogie test suite.
**) For information about Boogie's caching, see "The Dafny Integrated Development Environment" and "Fine-Grained Caching of Verification Results" by Leino and Wüstholz.

I'm not looking for inlining or caching. I'm seeking to get the weakest precondition (WP) of a procedure when given a postcondition. In my example above, when I compute F's WP first, F's postcondition is empty (or true), but H might have code looking like the following:
procedure H() {
    ....
    call F();
    assert(logic-expr);
    ....
}

Then, F's postcondition at this call site is not empty, which must derive or include logic-expr. This is what I meant by saying "F's postcondition might change."
Let me explain what I want again from another perspective (the top-down). For the same call graph:
A -> B -> C -> D
A -> E -> F
     E -> G -> H -> F

If I compute the WP of A first, then at the last call site of E I get E's required postcondition. I pause the WP computation of A and start computing the WP of E. At the last call site of G in E, I pause the WP computation of E and start computing the WP of G. The process continues until I compute F's WP after suspending H's WP computation. After finishing computing F's WP, I resume H's WP computation, and then of G, and then of E. In E, when I reach F again along A -> E -> F, F's postcondition may be different from the first time when I computed F's WP inside H. Here, I need to choose whether I should use context-sensitive or insensitive summary, which is the post- and pre-condition, of F. Whichever I select, I need to re-compute F's WP.
The important elements here are the WP computation of a procedure when given a postcondition and the fixed-point computation. I really want to leverage existing WP computation functionality (in Boogie, or Corral, or whichever tool already has it).
This process is not Corral's refinement either. Of course, if Corral can give me the WP of some procedures, I'm glad to use its results. For example, when I compute A's WP along A -> B -> C -> D  if Corral somehow can let me know that the WP of B which includes B -> C -> D is wpb for a given postcondition pc, then I can use the result directly in the fixed-point computation.

I found code in boogie/Source/VCGeneration/VC.cs and wlp.cs that looks like compute the WP, especially those xxxVC functions called in GenerateVCAux. I'm not sure if I can call any of the functions directly to get the WP of a procedure with a given postcondition. If not, what's the best way to re-use the current code to write such a function, such that it facilitates the development of the fixed-point computation described above?

@bitcalc: Questions for you:

Do you expect the input to your tool to contain loops and/or recursive procedures?
Is the input to your tool going to be an annotated or unannotated Boogie program, i.e., do you expect the input to contain pre/post-conditions and loop invariants?
If the tool allows loops and recursion and also unannotated programs, how will it deal with these features?

Boogie's VC generation is designed to work for annotated Boogie programs.  Procedure inlining, when used in a controlled manner, can avoid the need for pre/post-conditions of non-recursive procedures but at a significant computational cost.  If your tool aims to analyze unannotated Boogie program, then reuse of existing VC generation machinery may not be the best option.  It all depends on the goals of the analysis: generality of inputs, worst-case computational complexity, etc.

@shazqadeer Thanks for the comments. Here are the answers to your questions:

The original program contains loops, but after looping havoc, which Boogie already does, and annotating with invariants, it's safe to say that at the WP computation stage there are no loops.
Our current input doesn't have recursive procedures. But for predictable few cases when they occur, in most cases we can rewrite code or assert goals such that the recursion doesn't involve conditions that needed to prove those goals.
My tool would be processing Boogie code generated from Smack, so the input is annotated Boogie program with pre- and post-conditions and loop invariants.

I'm not looking for inlining or caching...

Caching is, of course, useful in my case when the post-condition of a procedure whose WP has been computed can derive the post-condition needed at a new call site. In this case, there is no need to re-compute the procedure's WP if its WP can be derived before the call site. However, if the WP is too strong and cannot be derived before the call site, a re-computation is still required.

Ok, let us say the input to your tool is recursion-free and loop-free program whose procedures are annotated with pre and post-conditions.  Since the procedures are already annotated, why do the fixpoint and WP-calculation at all?  Why not just use the normal Boogie verifier to verifier all the annotated procedures where the postcondition of a procedure is used to verify callers modularly?

@shazqadeer It looks like that my last sentence the input is annotated Boogie program with pre- and post-conditions and loop invariants caused your confusion. Let me clarify it. The initial input Boogie program only has loop invariants and asserts. Procedures have empty pre- and post-conditions. The non-empty precondition is computed according to the assert goals and postconditions by the WP and fixpoint process.

@bitcalc :  Thanks for the clarification.  I finally understand the problem statement for your tool.  It is the following:
Input: An unannotated, loop-free, and recursion-free program
Output: Either a counterexample leading to an assertion failure or pre/post-conditions that are sufficient to prove all assertions in the program modularly
It is instructive to compare the problem above to the following problem that Corral attempts to solve:
Input: An unannotated, loop-free, and recursion-free program
Output: Either a counterexample leading to an assertion failure or a "proof" guaranteeing the absence of assertion failures
The notion of proof for Corral is not pre/post-conditions that can be checked modularly.  Rather, it is a partial unfolding of the call tree of the program that is sufficient to prove absence of errors.
I am providing all this information simply as background so you can make sense of the relevant literature.
The VC generation in Boogie is not going to be convenient for doing what you want because Boogie is highly optimized for generating verification conditions for fully-annotated procedures.  I believe what you want is a way to represent pre/post-conditions of a procedure in terms of pre/post-conditions of other procedures.   Once you have a logical representation of all these relationships, you want to do some fixpoint calculation.
I have two suggestions:

take a look at Corral papers to see how it uses Boogie infrastructure to achieve its ends.  At the least, try to understand how Corral extracts the information it needs from Boogie VC generation.
take a look at the SeaHorn framework; perhaps it provides a natural way to express what you want.

@shazqadeer Thanks for your suggestions. I'll look into your pointers.

... I believe what you want is a way to represent pre/post-conditions of a procedure in terms of pre/post-conditions of other procedures. Once you have a logical representation of all these relationships, you want to do some fixpoint calculation.

I would say that all these relationships are intended to be established by the WP computation and the fixed point calculation. If I already have stable pre- and post-conditions of procedures, then it means the fixed point calculation completes.
If Boogie is not convenient to use for the WP computation of procedures, what is the best choice to do it on Boogie code?

I would say that all these relationships are intended to be established by the WP computation and the fixed point calculation. If I already have stable pre- and post-conditions of procedures, then it means the fixed point calculation completes.

Right.  I meant that preconditions and postconditions of procedures are unknowns that are connected to each other via constraints and the process of abstract interpretation is trying to come up with appropriate expressions for those unknowns such that the constraints are satisfied.

If Boogie is not convenient to use for the WP computation of procedures, what is the best choice to do it on Boogie code?

I don't know.  I believe you can reuse most of Boogie infrastructure but it is unlikely you will be able to reuse the VC generation as a black box.
In addition to understanding how Corral  uses Boogie infrastructure, another thing you can take a look at is the implementation of the Houdini algorithm inside the Boogie codebase itself. Houdini solves the following problem:
Input: A program with a collection of candidate preconditions and postconditions
Output: Either a subset of the candidate annotations that modularly proves absence of assertion failures or a guarantee that such a modular proof cannot be found using the candidates


Add powershell installer

I am by no means a Powershell developer, but I was able to get something that works. The community can help improve if they run into any problems, but this is (hopefully) a good first pass.
Note that the screenshot points at my branch in my fork for testing, but I've adjusted it in the README.

Closes #16

This is awesome, thanks for doing this!
Did you use a tool to generate this or did you write it out manually?

I took some reference from goo, but I simplified a lot of it and went through the powershell docs to fill in any gaps.
And I had @insomnimus take a look at it in the Go discord, since they've done more work with powershell than I have.


Replaced tinacms dependency with @tinacms/toolkit

With this pull-request I want to be able to use the react-tinacms-editor without dependency to the "big" tina package, as we are just using parts of the @tinacms/toolkit project.
Main changes:

Removed devDependency and peerDependency on "tina"
Added devDependency and peerDependency on "@tinacms/toolkit"
Fixed imports.

Thanks for the contribution @Brunni. Just a couple of quick questions.

What is your use case for this? I think this is only useful when someone is installing  not tinacms into there project ( which seems rare )

This package can be lazy loaded and only loaded when an editor is editing the page (it will never load in production) for this reason larger bundle size should not be a huge deal. (That being said we are always open to making it smaller if editors notice long loading times for JS assets)

See this doc for how to lazy load it.

I think (although I could be wrong) that most of the size of tinacms comes from @tinacms/toolkit since @tinacms/toolkit is a direct dependency of  tinacms. It might be good to take a look at the sizes of both of these packages to see how much saving there is.

Again, thanks for the contribution and looking forward to hearing back.

Hi Logan,
were are using only tinacms/toolkit in a special setup, where we need users/admins to be able change the content (text, image) of some views in our application. As we don't use any GraphQL for Tina or TinaCloud, we have implemented a solution, where we only use the tina sidebar (form, fields) and a small REST interface for saving data.
We use lazy loading for tina.
I don't see any reason, why the react-tinacms-editor needs to depend on the whole tina package.

As far as I can see, the direct imports from tinacms are actually defined in @tinacms/toolkit and just reexported in tinacms.

@schierla sorry for the delay, but I don't think we can say for certain that this change is something we want to support going forward. The mixture of modules between tinacms and @tinacms/toolkit is still a bit fuzzy (we previously had over 20 packages and have been working to combine them) and we'll likely have to do a lot of shuffling in the near future to handle these types of requests. We hope to soon publish es versions of these packages properly which should address those concerns.
I'm going to close this for now, but please feel free to continue to comment here.


[BUG] Multi-Project Platform - Project Git Settings Different Per user

Mage version
9.70
Describe the bug
I set up a project in Multi Project
Selected Desired Project
Configured Git Settings under desired Project (see below)
I can pull and push to repo
another user who has access to project cannot
I re-entered the Git token for the project and this still did not work
I had to remote in and manually re-entred the token on the user's computer for Git Auth to work with gitlab.
It is my understanding these settings should be per project, not Per user?
Git Repository Settings:

Auth Type
URL
Directory Path

Git Actions

UserName
Access Token

To reproduce
No response
Expected behavior
Set Git Auth settings per project. All users with access to project will be able to Auth.
Screenshots
No response
Operating system
No response
Additional context
No response

The fields listed under Git Actions are set per user. Can you try setting the username and access token fields in the One-way Git Sync tab? Those fields are set at the project level.

This appears to be working as you said. One-way Git Sync is working for the project. I've only been able to test with


Is it possible to create two instruments on the one board?

I am trying to create four independent instruments but I only have two boards. Is it possible to partition the input pins to activate two instruments from the sound bank on the one board?

This is indeed possible. One way to do this is to call the setupMidi function twice. For example, what you can do is have
if(i < 6) {
  setupMidi1();
}
if (6 <= i) {
  setupMidi2();
}

right at start of the if(MPR121.isNewTouch(i)) function.

Thanks for the reply, I get an error message "setupMidi1" was not declared in this scope. Maybe  I dont have it placed in the right area.

Indeed, you need to create setupMidi1() and setupMidi2(). You can use the setupMidi() function that we wrote as part of the example, and just copy paste that to create the two additional setupMidi functions.

I've tried putting that code and variations of it in various places and I either get all notes being played at once on 2 electrodes or an error message of midiSetup(); not declared in scope

midi-pianodual-public 2.zip

https://github.com/mannakelly/midi-pianodual-public
This is some code that I wrote that solves the problem.
It doesn't use the setupMidi(); or setupMidi1();.


tries to upgrade ipython to 6.0 on Python 2, which is impossible and never will be possible

Hello Guys,
pip-preview currently tries to upgrade Python 2  's ipython to 6.0, even though it's not available on python 2, and never will, as the jupyter/ipython devs have come out clearly saying they will never support python 2 on 6 and onwards.
pip list --outdated accurately doesn't show ipython 6.0 for Python 2.

Thanks for reporting this. This will be fixed with #41.

Fixed in version 1.0.


[ts] Operator '===' cannot be applied to types '"aaa"' and '"bbb"'.

TypeScript Version:  2.7.0-dev.201xxxxx
Code
//This one, tsc give me an error.
const lab = 'icon-yes';
if (lab === '321') {}  //<- [ts] Operator '===' cannot be applied to types '"icon-yes"' and '"321"'.

//All of below are correct.
const lb: string = 'icon-yes';
if (lb === '321') {}

let la = 'icon-yes';  //<- this one , I just replace `const` to `let`. Why it became correct?
if (la === '321') {}

const labc = 'icon-yes';
if (labc === 'icon-yes') {}  //<- compare the error case. Do not understand.

let labcd = 'icon-yes';
if (labcd === '321') {}

Expected behavior:
const lab = 'icon-yes'; I think the variable lab should be string type by type inference.
All of these cases should be correct.
Actual behavior:
Can not figure out why.

In const lab = "icon-yes", lab can never have a value other than "icon-yes" because it is a const. So it is safe and correct to give it a string literal type.
If you explicitly write : string we will use that. If the variable is mutable it might not always have that value, so it gets the string type.
As for this case:
const labc = 'icon-yes';
if (labc === 'icon-yes') {}  //<- compare the error case. Do not understand.

It probably should be an error because the === operation can never return false, but currently we only have the tests for === that can never return true.

@andy-ms See also this
let a: boolean = false;

try {

    a = true;
    a = false;
}
catch (e) {

    if (true === a) { // [ts] Operator '===' cannot be applied to types 'true' and 'false'.

        // ...
    }
}

and
let a: "a" | "b" = "a";

try {

    a = "b";
    a = "a";
}
catch (e) {

    if ("b" === a) { // [ts] Operator '===' cannot be applied to types '"b"' and '"a"'.

        // ...
    }
}

@fenying See #18916 and #18478.


Update first-app.md

No description provided.

@udanna , This PR has the Draft flag and I see that the changes are not ready yet, but I still see that you requested a review. Should I ignore it?

No description provided.

@udanna , This PR has the Draft flag and I see that the changes are not ready yet, but I still see that you requested a review. Should I ignore it?

I saw the other newer PR on the same doc, I am closing the PR


Add ERC: Inscription In Smart Contract

ERC7583: A framework for integrating inscription data within smart contract events.
This EIP proposes a standardized method for embedding inscription data within events emitted by Ethereum smart contracts. It aims to establish a uniform format for encoding and decoding inscription data, ensuring interoperability and consistency across different contracts and platforms.

function inscribe(bytes calldata data) dosen't include transferTo, how to transfer to user?

function inscribe(bytes calldata data) dosen't include transferTo, how to transfer to user?

You can integrate it with the ERC721 protocol to enable transaction functionality. Since inscriptions are not solely used for transactions, this proposal does not set forth any transaction-related specifications.

function inscribe(bytes calldata data) dosen't include transferTo, how to transfer to user?

You can integrate it with the ERC721 protocol to enable transaction functionality. Since inscriptions are not solely used for transactions, this proposal does not set forth any transaction-related specifications.

I kown that, so I suggest that the function inscribe(bytes calldata data) should be function inscribe(address to, bytes calldata data), inscription needs the param "address to"

function inscribe(bytes calldata data) dosen't include transferTo, how to transfer to user?

You can integrate it with the ERC721 protocol to enable transaction functionality. Since inscriptions are not solely used for transactions, this proposal does not set forth any transaction-related specifications.

I kown that, so I suggest that the function inscribe(bytes calldata data) should be function inscribe(address to, bytes calldata data), inscription needs the param "address to"

+1. I also think its own Transfer event and function is needed, not everyone will be looking to use it with ERC721 so it would be nice to have both inscribe/mint and transfer functions

5 of my ins were stolen, it happened on (Dec-29-2023 07:14:11 AM +UTC)，There are no such transactions in the table you provided。
My Wallet
address:0x03615852733ef99b2dc5e400f8b9b234b17bb1f7
TokenID:18403,15026,4266,2323,855
Transaction Hash:
0xa02e37843b8c0ea08db039131983e0dbf3fddac0e6660254d4c3b75b4c304c44 0xf8da7df506a4380fa1724c2e2effa0ea7c4e682fae4e39e51590e5364661d6c3 0xebd871f3e85ef304330e4f8debdd8ec51a8c9c4db20509e035b7d225dfeffbec 0x4c1cd2621dadc4418ab9b4180697cc5601a444353e12e65068ad9e3f17364c69 0x75548d6a5e0f765dbfc846f86174a14d4dc67e0a85f72d9c2dc828fa90d502de

function inscribe(bytes calldata data) dosen't include transferTo, how to transfer to user?

You can integrate it with the ERC721 protocol to enable transaction functionality. Since inscriptions are not solely used for transactions, this proposal does not set forth any transaction-related specifications.

I kown that, so I suggest that the function inscribe(bytes calldata data) should be function inscribe(address to, bytes calldata data), inscription needs the param "address to"

I believe that inscription id cannot be omitted because having an id allows for very flexible operations on inscriptions using the EVM, including the owner of inscriptions.


Refactor Benchmarks for Less Wasm Memory Usage

This extracts the repeat and steps loop of the benchmarking pipeline outside of the wasm instance, and into the client, which reduces the wasm memory needs of the benchmarking pipeline by collecting the results of each repeat using the client memory instead.
To do this, we made the following changes:

Expose the list of available benchmarks from the runtime from the runtime apis

This allowed us to create a proper --list flag which shows the available benchmarks for the runtime

Make it so that dispatch_benchmark does at most 1 benchmark (one pallet, one extrinsic, one repeat, one step) per call

Extracted wildcard flags for pallet / extrinsic and determining which benchmarks need to run into CLI
Move steps and repeat loop into the CLI

Modified the steps and repeat input into the runtime to be a tuple, such that we describe to the benchmark which loop and step we are on out of the total loops and steps

Some code which re-collects all the benchmarks that are run so they are organized in an expected way for analysis

fixes: https://github.com/paritytech/substrate/issues/9285

/benchmark runtime pallet pallet_balances

/benchmark runtime pallet pallet_balances

/benchmark runtime pallet pallet_staking

/benchmark runtime pallet pallet_staking

/benchmark runtime pallet pallet_balances

/benchmark runtime pallet pallet_balances

/benchmark runtime pallet pallet_staking

/benchmark runtime pallet pallet_staking

/benchmark runtime pallet pallet_staking

bot merge

This was bot-merged even though it breaks polkadot build. The companion is still waiting for review.
cc @TriplEight

this means that on the next version bump we will release the broken packages, I remember mentioning to comment out this job before this gets fixed.
It's not cool to breaking CI every time you can't merge.


Fix Hessian serializable check

Close #12324

Codecov Report

Merging #12323 (32b7207) into 3.2 (7d2a71f) will increase coverage by 2.33%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##                3.2   #12323      +/-   ##
============================================
+ Coverage     67.03%   69.36%   +2.33%
  Complexity        2        2
============================================
  Files          1739     1606     -133
  Lines         69421    66226    -3195
  Branches       9975     9716     -259
============================================
- Hits          46535    45940     -595
+ Misses        18385    15840    -2545
+ Partials       4501     4446      -55

see 157 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Use instancing for sprites

Objective

Supercedes #8872
Improve sprite rendering performance after the regression in #9236

Solution

Use an instance-rate vertex buffer to store per-instance data.
Store color, UV offset and scale, and a transform per instance.
Convert Sprite rect, custom_size, anchor, and flip_x/_y to an affine 3x4 matrix and store the transpose of that in the per-instance data. This is similar to how MeshUniform uses transpose affine matrices.
Use a special index buffer that has batches of 6 indices referencing 4 vertices. The lower 2 bits indicate the x and y of a quad such that the corners are:10    11

00    01

UVs are implicit but get modified by UV offset and scale The remaining upper bits contain the instance index.

Benchmarks
I will compare versus main before #9236 because the results should be as good as or faster than that. Running bevymark -- 10000 16 on an M1 Max with main at e8b38925 in yellow, this PR in red:

Looking at the median frame times, that's a 37% reduction from before.

Changelog

Changed: Improved sprite rendering performance by leveraging an instance-rate vertex buffer.

Need to look through all the UI stuff and see if that needs improving too.

Did a quick benchmark comparing this to before and after reordering
amd 6800xt, dx12

I'm applying the same changes to UI rendering. Just got to figure out the clipping stuff.

The UI stuff is independent and was a bit too complicated for me to figure out quickly, so I'm going to leave it for another time. This is up for review.


MapContext/Layer: Add preview Image to model and upload functionality

Environment

Python version: 3.7+
MrMap version: 1.0-pre

Proposed Functionality
Similar to DatasetMetadata, MapContext and Layer instances should allow for preview images.

Use Case
A user edits a MapContext and clicks "Select File" to upload a local image file.

Database Changes
MapContext and Layerrequire a new field preview_image of type ImageField.

External Dependencies
None.

I just noticed that Layer should also have a preview_image. That was implemented only on MapContextLayer. I'll do it in a separate MR and will then close this issue


Adding projects/apt-now.md

So, I use Debian as the basis for the operating system on my computers, but as everyone knows, Debian favors well-tested, older packages and sometimes newer ones can be slow to arrive. When adding sid and pinning stable doesn't work, but you still need the packages you usually have to build from source, which means your package manager might not be aware of the files. When this became a problem for me I started building .debs of all my custom packages, then one thing led to another and... apt-now. What it is is a shell script which grabs information from Debian packages, generates informational pages about the packages, and an index for those pages, and spits out a signed apt repository on the other side. It can host itself, it can run on github pages, and I also make it a Tor Hidden Service and an i2p eepSite, just for fun. That's all pretty much supported, with one slight caveat for existing i2p eepSite operators(Where with will change your default eepSite docroot), but that's probably temporary. But that's it. Packages go in, repos come out.

Oh, also, just to be clear, neither I nor my package have any official relationship to Debian or apt or anything in between yet(That's a process I am starting today also.) I'm just a guy who wanted his own repository, who taught himself how, and happens to take notes in .sh format.

I'm not sure if this kind of project is related to static-gen, although it sounds pretty cool.

Yeah I thought it might be a little bit of a tangent when I submitted it. I'm pretty sure it technically qualifies as a static site generator and meets the rules in the readme in the strictest sense(Because it grabs details from the files in the packages/ folder, makes pages from them, and adds links to them to a section on the homepage so it can all be served like a static site generator would), but it's not really doing what most of the other ones here are doing, what with the blogging and the web books and such. I understand if it doesn't fit with the spirit of the project.

Thanks for the clarification @cmotc. I'm going to close the PR, so we don't create confusion among people that visit the site. :raised_hands:


Add dataset.py for Prompt ASR

This PR adds a dataset.py for Prompt ASR.
As the initial step, support randomly selecting one text as transcription from a list of texts while constructing batches.

@marcoyang1998 hi ，can you merge this PR？

Hi @pingfengluo, we will probably open another PR for PromptASR.

hello, @marcoyang1998 @danpovey , is there any update for this speech-prompt？Is it available for use？

Hi @minmin0, we are going to update the PR this week.

Hi @minmin0, we are going to update the PR this week.

@marcoyang1998 cool

update

hi @marcoyang1998 , is there any update for the speech-prompt PR？

Hi @minmin0, we are going to update the PR this week.

hi @marcoyang1998 is there any update for the speech-prompt PR？

@minmin0
Please see this branch: https://github.com/marcoyang1998/icefall/tree/libriheavy_prompt_asr

Closing this as a new PR has been made #1250


Personal Tourism Guide: Idea by Aaliyah Beg

Idea:
The idea of this search app is that a user will provide in their previous vacation pictures and enter the destination they plan to go, then the app will do a image-image search i.e. examine the photos entered to get an insight to the kind of places that the user generally likes to go when on a vacation and then give an exhaustive list of the tourist places and spots in the destination place priority wise as per the users image dataset.
What is the tech stack?
-Python based technologies:
Streamlit , Jina AI and other machine learning libraries.
-The application will be based on neural networks.
Motivation behind this idea?
I am a travel enthusiast but very particular to the places that I would wish to explore , I generally like going to natural places where I connect with nature or to peaceful cafes more than shopping in the middle of a hustling street. Likewise, I believe everyone has their own preferences which is quite evident through the pictures in their photo gallery. Hence, this application will definitely help.

@AaliyahBeg

Pl assign, would love working on it under your guidance. @joeyouss


V2Dropdown does not work when rendered inside a V3Dialog

🐛 Bug Report

When adding a V2Dropdown inside a V3Dialog, the dropdown menu is not keyboard focusable. We can't navigate through MenuItems using arrow keys.
🤔 Expected Behavior

MenuItems should be accessible using arrow keys.
😯 Current Behavior

The temporary solution works, but it does not close the SubMenu when the left arrow key is pressed.
<Dropdown>
              <Button variant="cta">Test</Button>
              <V2Provider>
                  <Menu>
                   <FocusScope autoFocus>
                    <MenuItem role="menuitemradio" value="foo">Foo</MenuItem>
                    <MenuItem role="menuitemradio" value="bar" selected>Bar</MenuItem>
                    <MenuItem role="menuitemradio" value="baz">Baz</MenuItem>
                    <SubMenu label="zaa">
                      <FocusScope autoFocus>
                        <MenuItem value="1">zaa 1</MenuItem>
                        <MenuItem value="2">zaa 2</MenuItem>
                        <MenuItem value="3">zaa 3</MenuItem>
                      </FocusScope>
                    </SubMenu>
                    </FocusScope>
                  </Menu>
              </V2Provider>
            </Dropdown>

💁 Possible Solution

🔦 Context

It's a part of the maintenance flow project which will go live in January next year.
🌍 Your Environment

Software
Version(s)

react-spectrum
v2+v3

Browser
Chrome

Operating System
MacOS Catalina

🧢 Your Company/Team

Adobe/Admin Console
🕷 Tracking Issue (optional)

Some preliminary investigation done when this came up in slack:
The core issue seems to be due to how v3 Dialog has a contain v3 FocusScope which will attempt to contain focus within the dialog. V2 Dropdown portals itself outside of the Dialog and doesn't use a v3 FocusScope so its contents aren't added to the scopes, resulting in the dropdown contents being non-focusable since it thinks focus is leaving the v3Dialog.
As seen above, a workaround was to add FocusScopes wrapping the MenuItems of the Dropdown and the SubMenu, adding those menu items to the scopes list previously mentioned. However, another issue arises since V2 SubMenu expects the MenuItems to be the immediate children of the SubMenu, but instead FocusScope is the immediate child in this setup. This results in SubMenu's keydown handler being improperly placed on the FocusScope, hence why the left arrow key no longer works.
A preliminary idea to fix would be to come up with another way to add elements to the FocusScope scope so we don't have to insert FocusScope everywhere, maybe in the form of a hook or something.

Adding a <FocusScope /> around the MenuItem's was able to get the focus into the Menu and SubMenu, but we lose the ability to close the SubMenu with the left arrow key. It can still be closed with the escape key. We will continue looking into this.

We are closing this issue because escape key closing the submenu does allow keyboard use of this component. If additional functionality is needed please reopen.


question about training loss

Hi,
I really appreciate for the work! It is helpful for me to try it with your instructions.
But I have a question about training. I try to retrain the network (with original Vgg16 backbone or change it to ResNet18, cropped it properly and maintain most of the parameters as the pretrained weights). I found that the loss went down rapidly at the first epoch and almost reach to 0.00. Would you describe the change of your loss when you train this network?  Thank you very much!
Best regards

Hi,
Have you tried training the network without any changes (with VGG and the Mapillary dataset), as described in https://github.com/QVPR/Patch-NetVLAD#training? The loss shouldn't go down to 0.0 at the end of the first epoch. Could you share the loss curve with us?

Thanks for your reply! Yes, I tried it with vgg-16 and Mapillary dataset as is described and didn't change the hyperparameters:

This is the loss of epoch 1 and 2 and it costs around 17 hours per epoch (Is it abnormal?)
Also, I tried with ResNet-18 (only trained the last basicblock) and the loss for epoch 1 and 2 seems like:

The loss is low and the recall is also low. The validation recall@1 is no more than 50% even if I train it to epoch 8 or epoch 9 (with ResNet). For VGG I didn't change anything and for ResNet I just changed a little in model_generic part. That confused me.
BTW, Would you please provide your email address so that I can describe more details to you? Thank you for your help and patience!

@StephenHausler you stared at these curves more than I have, any input? Are we doing the validation correctly those days? At some point we didn't implement it properly.
@LyyyyyyyN - if you have more questions, please ask here so that the community can benefit as well.

Yea, the loss should drop a lot in the first epoch. Each epoch is very large, since there are just so many query images in the mapillary dataset - a single epoch with mapillary is worth ~100 pittsburgh epochs (an approximate guess). My intuition is that further training basically just refines the network to handle the edge-case hard negatives.  The validation result will be almost at the maximum possible after just one epoch.
If you want to see a more fine-grained view of the validation curve, you could try modifying msls.py to set a custom epoch size, say 10k images - basically randomly sample the full 1M set and take a random slice of 10k images per epoch. Each epoch would not be identical however, but this would be a quick way of observing the validation improvement in the early stages of training. You could also try lowering the learning rate, we haven't tried lowering it yet, but it is possible that the network could be trained better with a lower LR.
Validation of 50% seems ok, and this should get a little higher after running PCA. I don't think this is a problem, the validation set is challenging. This is just NetVLAD by itself of course, the recall@1 on val will be much higher when running Patch-NetVLAD.
17 hours per epoch is normal - there are about 1 million images per epoch.

Thank you so much for your detailed reply and suggestions!