python syntax file, support f-string

Vim syntax file for Python, with support for f-string added

f-string support
Fixed shortstring with multiple lines still highlighted
Update string prefix to Python3.10+ syntax

have contacted the maintainer<EMAIL_ADDRESS>But there seems to be no response
python.vim.patch
--- /usr/share/vim/vim91/syntax/python.vim	2024-01-03 12:24:01.000000000 +0800
+++ python.vim	2024-02-14 12:03:07.910000000 +0800
@@ -143,17 +143,35 @@

 " Triple-quoted strings can contain doctests.
 syn region  pythonString matchgroup=pythonQuotes
-      \ start=+[uU]\=\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1"
+      \ start=+[uUbB]\=\z(['"]\)+ end="$\|\z1" skip="\\\\\|\\\z1"
       \ contains=pythonEscape,@Spell
 syn region  pythonString matchgroup=pythonTripleQuotes
-      \ start=+[uU]\=\z('''\|"""\)+ end="\z1" keepend
+      \ start=+[uUbB]\=\z('''\|"""\)+ end="\z1" keepend
       \ contains=pythonEscape,pythonSpaceError,pythonDoctest,@Spell
 syn region  pythonRawString matchgroup=pythonQuotes
-      \ start=+[uU]\=[rR]\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1"
+      \ start=+\%([bB][rR]\=\|[rR][bB]\=\)\z(['"]\)+
+      \ end="$\|\z1" skip="\\\\\|\\\r\=$\|\\\z1"
       \ contains=@Spell
 syn region  pythonRawString matchgroup=pythonTripleQuotes
-      \ start=+[uU]\=[rR]\z('''\|"""\)+ end="\z1" keepend
+      \ start=+\%([bB][rR]\=\|[rR][bB]\=\)\z('''\|"""\)+
+      \ end="\z1" keepend
       \ contains=pythonSpaceError,pythonDoctest,@Spell
+syn region  pythonFString matchgroup=pythonQuotes
+      \ start=+[fF]\z(['"]\)+
+      \ end="$\|\z1" skip="\\\\\|\\\z1"
+      \ contains=pythonEscape,pythonFStringEscapedBrace,pythonFStringValue,@Spell
+syn region  pythonFString matchgroup=pythonTripleQuotes
+      \ start=+[fF]\z('''\|"""\)+
+      \ end="\z1" keepend
+      \ contains=pythonEscape,pythonSpaceError,pythonFStringEscapedBrace,pythonFStringValue,pythonDoctest,@Spell
+syn region  pythonRawFString matchgroup=pythonQuotes
+      \ start=+\%([fF][rR]\|[rR][fF]\)\z(['"]\)+
+      \ end="$\|\z1" skip="\\\\\|\\\r\=$\|\\\z1"
+      \ contains=pythonFStringEscapedBrace,pythonFStringValue,@Spell
+syn region  pythonRawFString matchgroup=pythonTripleQuotes
+      \ start=+\%([fF][rR]\|[rR][fF]\)\z('''\|"""\)+
+      \ end="\z1" keepend
+      \ contains=pythonSpaceError,pythonFStringEscapedBrace,pythonFStringValue,pythonDoctest,@Spell

 syn match   pythonEscape	+\\[abfnrtv'"\\]+ contained
 syn match   pythonEscape	"\\\o\{1,3}" contained
@@ -161,7 +179,11 @@
 syn match   pythonEscape	"\%(\\u\x\{4}\|\\U\x\{8}\)" contained
 " Python allows case-insensitive Unicode IDs: http://www.unicode.org/charts/
 syn match   pythonEscape	"\\N{\a\+\%(\s\a\+\)*}" contained
-syn match   pythonEscape	"\\$"
+syn match   pythonEscape	"\\\r\=$"
+
+syn region  pythonFStringValue matchgroup=pythonFStringBrace
+      \ start=+{+ end=+=\=\%(![rsa]\)\=\%(:[^{}]*\%({[^{}]*\%({[^{}]*}[^{}]*\)*}[^{}]*\)*\)\=}+ contains=TOP contained excludenl
+syn match   pythonFStringEscapedBrace	"{{\|}}" contained

 " It is very important to understand all details before changing the
 " regular expressions below or their order.
@@ -312,9 +334,14 @@
 hi def link pythonTodo			Todo
 hi def link pythonString		String
 hi def link pythonRawString		String
+hi def link pythonFString		String
+hi def link pythonRawFString		String
 hi def link pythonQuotes		String
 hi def link pythonTripleQuotes		pythonQuotes
 hi def link pythonEscape		Special
+hi def link pythonFStringEscapedBrace	Special
+hi def link pythonFStringValue		Normal
+hi def link pythonFStringBrace		Include
 if !exists("python_no_number_highlight")
   hi def link pythonNumber		Number
 endif

f"result: {value:{width}.{precision}}" seems to be unable to be handled well

f"result: {value:{width}.{precision}}" seems to be unable to be handled well

Modified, hardcoded several layers, maybe enough

Thanks. Could you please create a PR?

f"result: {value:{width}.{precision}}" seems to be unable to be handled well

You can add the pythonFStringValue group to its own contains list to simplify matching these nested replacement fields. Then the end pattern can probably be reduced to a closing brace.
Ping @zvezdan

I cannot add it to its own contains list, it should only take effect on the right side of the colon, and the expression needs to be highlighted on the left side

have contacted the maintainer (...) But there seems to be no response

@A4-Tacks I found four emails from you in the spam quarantine of my email provider because they were ranked as spam at high-level of probability, due to the following facts:

several of them sent successively immediately one after another -- raises suspicion
they had an attachment encoded in base64 with rarely used extension (.patch) and type text/x-diff -- could have sent them as plain text instead
sender's name A4-Tacks sounds like a word Attacks -- why this choice of name/username/nickname?
sender's email address username part is a seemingly random selection of letters and numbers -- why the need to hide the identity?
the sender's domain 163.com was suspected as a possible source of spam

Each of these issues individually perhaps wouldn't be a problem, but taken together they resulted in your email messages being quarantined by my provider. I review quarantined messages once a week and I see them now. I allowed them to be delivered and carefully opened them (because I didn't trust them either) as raw messages, copied the base64 encoded content of the attachment into a file and then decoded it into an output file. It is indeed the patch similar to the one you have here.
As you can see, I did not ignore your messages, but, rather, you caused the issue by your choice to send the messages as shown above.
Lessons learned:

My identity is not hidden and if you're sending me a personal message you should not hide your identity either. Our communication remains between us only. It also helps with giving you credit later.
If you're sending patches, they're text and you can send them as plain text, to avoid spam filters ranking them.
If the message with attachment didn't receive response, re-sending it repeatedly is not going to help. Assume the spam filter got activated and send a simple message to start the communication. Once we exchange a few messages, the spam filter will also act differently.
Creating a GitHub issue or PR and tagging me on it as @dkearns did here is perhaps the simplest way and avoids all email spam filter issues. 🙂

Ping @zvezdan

Thank you both @dkearns and @A4-Tacks!
I'm currently testing this change, but also a few other options that I worked on and some other people sent. Some of the options are whether the bytes should be treated separately from strings, allowing for separate highlight coloring for people who prefer that, etc. This patch/issue is not making that distinction. Also, getting the contains things right can be tricky. I have an implementation of similar handling already for docstrings and my personal reStructuredText syntax highlighting setup and I'm trying to get the best combination of options and functionality.
In the meantime, I'm inclined to send a simpler PR that would just support f-strings correctly without trying to do any interpretation inside them. That would resolve some other already open issues, as well as partially covering this one. Then, I am testing a setting similar to python_no_doctest_highlight that would allow switching ON/OFF the  highlighting and interpretation of the content of f-strings. I believe that such a change would add more flexibility for users with different preferences.
In any case, I am working on this change and will incorporate all valid ideas including the ones from this issue and the corresponding patch. Thank you again and I'll keep you posted about the results of my testing soon.

I had a quick attempt at this on the back of @A4-Tacks' PR. This patch allows for replacement fields in the format spec and avoids premature termination of the expression by spurious matches for the conversion and format spec delimiters.
IIUC, the following are correctly matched:
# Lib/fractions.py
digits = f"{significand:0{point_pos + 1}d}"
# Lib/test/test_fstring.py
self.assertEqual(f"sadsd {1 + 1 =  :{1 + 1:1d}f}", "sadsd 1 + 1 =  2.000000")
# example from PEP - 701
f'Useless use of lambdas: { (lambda x: x*2) }'

Why is the def abnormal after this? Did I apply the damaged patch?

# Lib/fractions.py
digits = f"{significand:0{point_pos + 1}d}"
# Lib/test/test_fstring.py
self.assertEqual(f"sadsd {1 + 1 =  :{1 + 1:1d}f}", "sadsd 1 + 1 =  2.000000")
# example from PEP - 701
f'Useless use of lambdas: { (lambda x: x*2) }'

def foo() -> None:
    pass

@dkearns The places where ALLBUT is used were added because they were needed to correctly display syntax in doctests, matrix multiplication, and when an object attribute name matches a builtin name. Any of these ALLBUT lists can and should be extended if needed when adding new features, such as f-strings. Of course, we can also have a separate conversation about the use ALLBUT in general and possible better solutions for the existing usage.
However, the PR associated with this issue is trying to do two things: add f-string support and change a definition of strings to include bytes. I prefer separate changes for separate purpose that can be also separately reverted if needed. Adding a full support for f-strings with all the correct contains lists is tricky by itself and, as I mentioned earlier, might be best done iteratively in separate changes. First a simple support for f-strings to be correctly highlighted as strings. Then more complex contains features.
There are other contributions and options that I'm looking into. Some of them prefer bytes to be a separate highlight category. People also prefer having an option to switch features ON/OFF.  I doubt that any of my own or contributed changes, including this PR, will go in directly as is into the syntax file. A combination of them, that I'm working on, sent as smaller separate commits that add features and functionality with increasing usefulness and with switches for their use will be probably the result of this work.
Give me a couple of days to prepare the changes please. Then we can start closing the outstanding issues and PRs as we commit them.
Again, I truly appreciate all the contributions and ideas for improvements from all of you!

Any updates on this one? Would be lovely to have good support for f-string syntax!
I personally still use Vimjas/vim-python-pep8-indent to fix indentation and vim-python/python-syntax for better syntax. It would be great if both syntax and indentation could be brought up to speed on modern python standards.

I previously stated what I feel should be changed / improved in the comment above.
Several people sent patches and I had a few candidates in my local changes for the syntax file.
I'll try to send a sequence of incremental improvements to the syntax file to bring it up-to-date.


⚠ AGEG website (prod) has degraded performance

In e14b611, AGEG website (prod) (https://www.ageg.ca/) experienced degraded performance:

HTTP code: 200
Response time: 3459 ms

Resolved: AGEG website (prod) performance has improved in 4ece700.


Feat Request : Auto list for programming languages

[Draft]
It's a bit annoying trying to write out a map or a list in programming languages and this plug-in looks capable of helping.
I am not sure this can be done with snipets (as it can go on infinitely) but still felt it was worth a conversation over.
Ex.
int nums[]={|};
int nums[]={1,|};
int nums[]={1,2,|};
// It adds a comma and moves the cursor ready to insert another item

map = {|}
map = {1:|}
map = {1:"hello",|}
# It adds : and , as necessary to make inserting elements super easy and fast
nums = [|]
nums = [1,|]

Treesitter can be used to only activate this functionality when in the appropriate nodes (@lists or something..).

Hmm, I’m a bit busy atm, might come back to this one.


Sample Code doesn't work for 2.2.

This sample code doesn't work for AspNetCore 2.2:
var conn = (Microsoft.Data.SqlClient.SqlConnection)Database.GetDbConnection();
conn.AccessToken = (new Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProvider()).GetAccessTokenAsync("https://database.windows.net/").Result;

But this does:
var conn = (System.Data.SqlClient.SqlConnection)Database.GetDbConnection();
conn.AccessToken = (new Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProvider()).GetAccessTokenAsync("https://database.windows.net/").Result;

Would recommend
var connection = (SqlConnection)Database.GetDbConnection();
            connection.AccessToken = (new Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProvider()).GetAccessTokenAsync("https://database.windows.net/").Result;

so that the sample works in 2.2 as well versions.  I was trying to use this in older code, and it took me a while to figure out what the issue was.

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

ID: 31b0d33c-f88e-d50c-2926-7933940f3b92
Version Independent ID: 4aaef906-f501-6947-5d23-1b704470f09d
Content: Tutorial: Access data with managed identity - Azure App Service
Content Source: articles/app-service/app-service-web-tutorial-connect-msi.md
Service: app-service
GitHub Login: @cephalin
Microsoft Alias: cephalin

@gregoryagu Thanks for the feedback! We are currently investigating and will update you shortly.

@gregoryagu We appreciate you bringing this to our attention. Since the doc is supposed to cover 2.2, we agree that an update to the doc is necessary. We submitted a change request and it should be public within 24 hours.
We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Assignment 08 -- Finding data in Kaggle

Create account on https://www.kaggle.com/ and report link to your profile page on Kaggle here. (1 hour)
Find 10 datasets that have at least more than 100 rows and 5 columns and report the links here. (5 hours).
Put your ID and name.

Marco Sutisna Putra
20924001
Kaggle Account: https://www.kaggle.com/marcosutisnaputra

EV Charging Pattern: https://www.kaggle.com/datasets/valakhorasani/electric-vehicle-charging-patterns (20 Kolom, 1321 Baris Data)
Student Performance Factor: https://www.kaggle.com/datasets/lainguyn123/student-performance-factors (20 Kolom, 6607 Baris Data)
Spotify Most Streamed Song: https://www.kaggle.com/datasets/abdulszz/spotify-most-streamed-songs (25 Kolom, 953 Baris Data)
Iphone Customers Review: https://www.kaggle.com/datasets/mrmars1010/iphone-customer-reviews-nlp (11 Kolom, 3062 Baris data)
Bear Attack in North America: https://www.kaggle.com/datasets/stealthtechnologies/bear-attacks-north-america   (16 Kolom, 166 Baris Data)
Steam Action Game's Dataset: https://www.kaggle.com/datasets/wajihulhassan369/steam-games-dataset (7 kolom, 12434 Baris Data)
AI Powered Job Market Insight: https://www.kaggle.com/datasets/uom190346a/ai-powered-job-market-insights (10 Kolom, 500 Daris Data)
Top Universities Ranking 2024: https://www.kaggle.com/datasets/computingvictor/2024-academic-ranking-of-world-universities (9 Kolom, 1000 Baris Data)
Supermarket Sales: https://www.kaggle.com/datasets/aungpyaeap/supermarket-sales (17 Kolom, 1000 Baris Data)
Titanic Data: https://www.kaggle.com/datasets/brendan45774/test-file (12 Kolom, 418 Baris Data)

Gerend Christopher (20924009)
Kaggle Profile: https://www.kaggle.com/gerendchristopher
Datasets:

Student Performance Factors: https://www.kaggle.com/datasets/lainguyn123/student-performance-factors
Spotify Most Streamed Songs: https://www.kaggle.com/datasets/abdulszz/spotify-most-streamed-songs
Taiwan Air Quality Index Data 2016-2024: https://www.kaggle.com/datasets/taweilo/taiwan-air-quality-data-20162024
Employee Performance and Productivity Data: https://www.kaggle.com/datasets/mexwell/employee-performance-and-productivity-data
Financial Risk for Loan Approval: https://www.kaggle.com/datasets/lorenzozoppelletto/financial-risk-for-loan-approval?select=Loan.csv
Powerlifting Database: https://www.kaggle.com/datasets/open-powerlifting/powerlifting-database
Student Dropout Analysis and Prediction Dataset: https://www.kaggle.com/datasets/abdullah0a/student-dropout-analysis-and-prediction-dataset
Monkeypox Global Case Records: https://www.kaggle.com/datasets/rajatkumar30/monkeypox
Cleaned Countries Life Expectancy Dataset: https://www.kaggle.com/datasets/paperxd/cleaned-life-expectancy-dataset
Healthcare Prediction Dataset: https://www.kaggle.com/datasets/muhammadehsan02/healthcare-prediction-dataset

Ahmad Zaini Zahrandika (20923302)
Kaggle Account: https://www.kaggle.com/ahmadzainiz
Datasets:

Electric Vehicle Population in USA
https://www.kaggle.com/datasets/ironwolf404/electric-vehicle-population-in-usa
Rain in Australia
https://www.kaggle.com/datasets/jsphyg/weather-dataset-rattle-package
Hotel Booking
https://www.kaggle.com/datasets/mojtaba142/hotel-booking
Netflix Data: Cleaning, Analysis and Visualization
https://www.kaggle.com/datasets/ariyoomotade/netflix-data-cleaning-analysis-and-visualization
World Weather Repository ( Daily Updating ), accessed on 6/10/2024
https://www.kaggle.com/datasets/nelgiriyewithana/global-weather-repository
Customer Personality Analysis
https://www.kaggle.com/datasets/imakash3011/customer-personality-analysis
Brazilian E-Commerce Public Dataset by Olist
https://www.kaggle.com/datasets/olistbr/brazilian-ecommerce
Diabetes Dataset
https://www.kaggle.com/datasets/akshaydattatraykhare/diabetes-dataset
Superstore Dataset
https://www.kaggle.com/datasets/vivek468/superstore-dataset-final
Avocado Prices
https://www.kaggle.com/datasets/neuromusic/avocado-prices

Ilona Joan M (20924008)
https://www.kaggle.com/ilonajoanmanuela

China vs Japan Tech Process https://www.kaggle.com/datasets/waqi786/china-vs-japan
Marvel vs DC Comparative Analysis https://www.kaggle.com/datasets/willianoliveiragibin/marvel-vs-dc
Reddit Top Posts https://www.kaggle.com/datasets/sachinkanchan92/reddit-top-posts-50-subreddit-analysis-2011-2024
Student Performance Factors https://www.kaggle.com/datasets/lainguyn123/student-performance-factors
Obesity Dataset https://www.kaggle.com/datasets/suleymansulak/obesity-dataset
Full Library Services Dataset https://www.kaggle.com/datasets/sahirmaharajj/library-services-dataset
Laptop Prices https://www.kaggle.com/datasets/owm4096/laptop-prices
Remote Work Productivity https://www.kaggle.com/datasets/mrsimple07/remote-work-productivity
Diabetes Health Indicators https://www.kaggle.com/datasets/alexteboul/diabetes-health-indicators-dataset
Fetal Health Classification https://www.kaggle.com/datasets/andrewmvd/fetal-health-classification

Name : Arvin Cansius
NIM : 20924003
kaggle account : https://www.kaggle.com/arvincansius

milano-housing-price
https://www.kaggle.com/datasets/tommasoramella/milano-housing-price/data

House Price Prediction Dataset Vietnam - 2024
https://www.kaggle.com/datasets/nguyentiennhan/vietnam-housing-dataset-2024

House Price Prediction Zameen.com dataset
https://www.kaggle.com/datasets/howisusmanali/house-price-prediction-zameencom-dataset

Boston House Prices-Advanced Regression Techniques
https://www.kaggle.com/datasets/fedesoriano/the-boston-houseprice-data

California Housing Prices Data (5 new features!)
https://www.kaggle.com/datasets/fedesoriano/california-housing-prices-data-extra-features

Melbourne Housing Market
https://www.kaggle.com/datasets/anthonypino/melbourne-housing-market

Mumbai House Prices
https://www.kaggle.com/datasets/dravidvaishnav/mumbai-house-prices

New Delhi Rental Listings
https://www.kaggle.com/datasets/andynath/new-delhi-rental-listings

House_Price_India_Dataset
https://www.kaggle.com/datasets/hemachandiranmurugan/house-price-india-dataset

Daftar Harga Rumah di Kota Bandung
https://www.kaggle.com/datasets/khaleeel347/harga-rumah-seluruh-kecamatan-di-kota-bandung

Name: Kahfi Rizky Kosasih
NIM: 20924006
Kaggle Account: https://www.kaggle.com/kahfirizky

Student Performance Factors
https://www.kaggle.com/datasets/lainguyn123/student-performance-factors

Electric Vehicle Population in USA
https://www.kaggle.com/datasets/ironwolf404/electric-vehicle-population-in-usa

Spotify Most Streamed Songs
https://www.kaggle.com/datasets/abdulszz/spotify-most-streamed-songs

Mobile Device Usage and User Behavior Dataset
https://www.kaggle.com/datasets/valakhorasani/mobile-device-usage-and-user-behavior-dataset

Remote Work & Mental Health
https://www.kaggle.com/datasets/waqi786/remote-work-and-mental-health

TMDB Top Rated 9000 Movies Dataset
https://www.kaggle.com/datasets/aaditya1gautam/tmdb-top-rated-9000-movies-dataset

Predict Students Dropout and Academic Success
https://www.kaggle.com/datasets/syedfaizanalii/predict-students-dropout-and-academic-success

Exercise Detection dataset
https://www.kaggle.com/datasets/mrigaankjaswal/exercise-detection-dataset

House Price Regression Dataset
https://www.kaggle.com/datasets/prokshitha/home-value-insights

Customer Purchasing Behaviors
https://www.kaggle.com/datasets/hanaksoy/customer-purchasing-behaviors

Ariansyah (20924007)
https://www.kaggle.com/ariansyah9

XAU/USD Gold Price Historical Data (2004-2024)
https://www.kaggle.com/datasets/novandraanugrah/xauusd-gold-price-historical-data-2004-2024
Indonesia News Dataset (2024)
https://www.kaggle.com/datasets/sh1zuka/indonesia-news-dataset-2024
Netflix Movies and TV Shows
https://www.kaggle.com/datasets/shivamb/netflix-shows
Stroke Prediction Dataset
https://www.kaggle.com/datasets/fedesoriano/stroke-prediction-dataset
US Accidents (2016 - 2023)
https://www.kaggle.com/datasets/sobhanmoosavi/us-accidents
Date Fruit Datasets
https://www.kaggle.com/datasets/muratkokludataset/date-fruit-datasets
Goodreads-books
https://www.kaggle.com/datasets/jealousleopard/goodreadsbooks
Causes of Death in Indonesia
https://www.kaggle.com/datasets/hendratno/cause-of-death-in-indonesia
Geological Logging Dataset
https://www.kaggle.com/datasets/madhuraatmarambhagat/geological-logging-dataset
Spotify Most Streamed Songs
https://www.kaggle.com/datasets/abdulszz/spotify-most-streamed-songs/code


falcosidekick: fix notes when ingress is enable

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
fix the notes when using ingress
before
NOTES:
1. Get the URL for Falcosidekick by running these commands:
  http://falcosidekick.localmap[path:/]
...

after
NOTES:
1. Get the URL for Falcosidekick by running these commands:
  http://falcosidekick.local/
...

Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Checklist

[x] Chart Version bumped
[ ] Variables are documented in the README.md
[ ] CHANGELOG.md updated

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: cpanato, Issif
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Issif,cpanato]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Warning on Cop Metrics/BlockLength

Expected behavior
I expect the examples from the default.yml to not throw any warnings when used.
Actual behavior
I receive the following warning:
➜  riskmethods git:(rubocop-block-length) ✗ rubocop
Warning: unrecognized parameter Metrics/BlockLength:ExcludedMethods found in /Users/olivar/RubymineProjects/riskmethods/.rubocop.yml

Steps to reproduce the problem
Use the following configuration:
Metrics/BlockLength:
  CountComments: false
  ExcludedMethods: [create_table]

RuboCop version
➜  riskmethods git:(rubocop-block-length) ✗ rubocop -V
0.45.0 (using Parser <IP_ADDRESS>, running on ruby 2.3.1 x86_64-darwin16)

I think this feature was only introduced sometime after 0.45.0. 😀

It was introduced in master a few days ago. :-)

...... stop confusing me with these awesome goodies !


improve messaging on bucket sync for sites

right now it looks like we keep creating the same bucket over and over. we should just say we're "uploading" the thing.

🌀  Creating namespace for Workers Site "__www-workers_sites_assets"
this message should only happen on the first publish when a namespace is actually created

Relevant: #719. We should also reduce namespace create calls to the API, given its flakiness.


To check for palindrome in c#2969

To find whether the string is a palindrome or not.
Test case 1:
Input : malayalam
Output : Palindrome

Test case 2:
Input : 123454321
Output : Palindrome

Test case 3:
Input : 12345
Output : Not palindrome
Hey @ankitaggarwal23 I want to add this question in the NeoAlgo/Code/C/dp

I want to work on this issue. Please assign to me.

@cintamg Can you tell us whether you are working under Gssoc as a participant?

Yes,I am working on it. If you have any doubt I can share also
On Sat, 13 Mar, 2021, 9:10 pm Ankit Aggarwal, @.***>
wrote:

@cintamg https://github.com/cintamg Can you tell us whether you are
working under Gssoc as a participant?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/TesseractCoding/NeoAlgo/issues/3001#issuecomment-798527963,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQBFEQ4DKLDH3EXF2D5G6K3TDOBPXANCNFSM4ZD5NTEQ
.

@ankitaggarwal23 I am a GSSOC participant.

@cintamg Hi, I assigned you. Happy Coding!😊

Is the issue assigned to me?
On Sat, 13 Mar, 2021, 9:10 pm Ankit Aggarwal, @.***>
wrote:

@cintamg https://github.com/cintamg Can you tell us whether you are
working under Gssoc as a participant?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/TesseractCoding/NeoAlgo/issues/3001#issuecomment-798527963,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQBFEQ4DKLDH3EXF2D5G6K3TDOBPXANCNFSM4ZD5NTEQ
.

@Simar05519 is this your github name @cintamg

My github name is Simar05519
On Sat, Mar 13, 2021 at 9:21 PM Ankit Aggarwal @.***>
wrote:

@Simar05519 https://github.com/Simar05519 is this your github name
@cintamg https://github.com/cintamg ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/TesseractCoding/NeoAlgo/issues/3001#issuecomment-798540299,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQBFEQYYHKJ3NUFGKZH2RILTDOCWXANCNFSM4ZD5NTEQ
.

Okay, @Simar05519  Actually Someone else is already working on C++, C, Java, C# .

So it means I am not assigned with this issue?
On Sat, 13 Mar, 2021, 9:27 pm Ankit Aggarwal, @.***>
wrote:

Okay, @Simar05519 https://github.com/Simar05519 Actually Someone else
is already working on C++, C, Java, C# .
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/TesseractCoding/NeoAlgo/issues/3001#issuecomment-798548665,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQBFEQ5ZWSS7JJPWO33ZPKTTDODNLANCNFSM4ZD5NTEQ
.

@Simar05519 Yes I can't. Already so many participants are already working.

@Simar05519 Don't worry there are many issues available. You can explore in issues section.

Ok, thanks.
On Sat, Mar 13, 2021 at 9:48 PM Ankit Aggarwal @.***>
wrote:

@Simar05519 https://github.com/Simar05519 Don't worry there are many
issues available. You can explore in issues section.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/TesseractCoding/NeoAlgo/issues/3001#issuecomment-798577023,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQBFEQ5WW7UHHZMC6ED4A4TTDOF6DANCNFSM4ZD5NTEQ
.


Move branches into a separate interpreter group.

The result processing of branches are removed (breaks are changed to continue) and branch is parsed as GET

Benchmark
Perf (sec)

3d-cube.js
1.308 -> 1.272 : +2.822%

3d-raytrace.js
1.538 -> 1.505 : +2.126%

access-binary-trees.js
0.745 -> 0.740 : +0.662%

access-fannkuch.js
3.122 -> 3.048 : +2.376%

access-nbody.js
1.525 -> 1.515 : +0.665%

bitops-3bit-bits-in-byte.js
0.751 -> 0.689 : +8.241%

bitops-bits-in-byte.js
1.048 -> 1.005 : +4.106%

bitops-bitwise-and.js
1.976 -> 1.907 : +3.500%

bitops-nsieve-bits.js
2.474 -> 2.428 : +1.878%

controlflow-recursive.js
0.542 -> 0.526 : +3.077%

crypto-aes.js
1.448 -> 1.400 : +3.351%

crypto-md5.js
0.899 -> 0.886 : +1.397%

crypto-sha1.js
0.849 -> 0.834 : +1.844%

date-format-tofte.js
1.146 -> 1.136 : +0.892%

date-format-xparb.js
0.576 -> 0.578 : -0.296%

math-cordic.js
1.887 -> 1.796 : +4.806%

math-partial-sums.js
1.057 -> 1.042 : +1.405%

math-spectral-norm.js
0.789 -> 0.760 : +3.726%

string-base64.js
4.640 -> 4.650 : -0.234%

string-fasta.js
2.187 -> 2.196 : -0.381%

Geometric mean:
+2.319%

LGTM

LGTM


Is this project dead?

I know there's been a lot of changes in the SQLFluff, DBT, and VSCode world that has had an effect on dbt-osmosis's compatibility. Are we planning to update the project or should we assume it's not getting forward compatibility?

Yes @JonCrawford , I plan on shifting it to rely on https://github.com/z3z1ma/dbt-core-interface
I have taken a shot at it already and its probably pretty close. I have just been short on time with a couple of OSS efforts projects I am pushing over the line.

Took a first stab at a release, leveraging vendored interface that should be compatible with everything. New version is 0.10.0 on pypi. Exclusively focused on the yaml commands for now.
@JonCrawford

You're awesome. The YAML commands were so clutch.
Just tried to check out the new lib, but my dbt-core is too new. Will watch for updates!
On Thu, Mar 16th, 2023 at 2:20 AM, Alexander Butler @.***> wrote:

Closed #47 ( https://github.com/z3z1ma/dbt-osmosis/issues/47 ) as
completed.
—
Reply to this email directly, view it on GitHub (
https://github.com/z3z1ma/dbt-osmosis/issues/47#event-8763723328 ) , or unsubscribe
(
https://github.com/notifications/unsubscribe-auth/AAABSXFIN6MILVFEFCJOZEDW4K5LVANCNFSM6AAAAAAV27A7ZY
).
You are receiving this because you were mentioned. Message ID: <z3z1ma/dbt-osmosis/issue/47/issue_event/8763723328
@ github. com>


⚠ Contemporanea Group has degraded performance

In 125d559, Contemporanea Group ($SITE_CNTMG) experienced degraded performance:

HTTP code: 200
Response time: 7590 ms

Resolved: Contemporanea Group performance has improved in fe4a0a5.


Make sure we only capture merged PRs

This seems more complete. Will only capture merged and closed PRs on closed Milestones. You will also likely have to pass an auth token like:
make changelog AUTHTOKEN=<username:tokenhash>
You can run without the auth token, but it will likely hit the default rate limit of 60/hour.
You can create a new token here: https://github.com/settings/tokens/new

clang format successful! https://ci.trafficserver.apache.org/job/clang-format-github/373/

RAT check successful! https://ci.trafficserver.apache.org/job/RAT-github/385/

AU check successful! https://ci.trafficserver.apache.org/job/autest-github/369/

FreeBSD11 build successful! https://ci.trafficserver.apache.org/job/freebsd-github/2068/

Linux build successful! https://ci.trafficserver.apache.org/job/linux-github/1961/

Intel CC build successful! https://ci.trafficserver.apache.org/job/icc-github/498/

clang-analyzer build successful! https://ci.trafficserver.apache.org/job/clang-analyzer-github/631/


Update identity.outbound.auth.oidc.version

Update identity.outbound.auth.oidc.version to include fixes in next IS release

Fixed in https://github.com/wso2/product-is/pull/3978, hence we can close this PR.


Race between new registrations and threads updating the model

I mentioned seeing this problem in Wuppertal -- not all devices are getting registered at start-up, although changing the log level seemed to help. I've been seeing this problem more frequently now and have started trying to investigate it. As best I can tell, there seems to be some sort of strange race between my threads adding things to the model and the thread that registers resources with the RDS.
To quickly summarize my system, my version of nmos-cpp-node has to interact with a server to discover devices and their associated resources to register them. The server typically has four devices (two transmitters and two receivers). Often, what happens is that only the first device to get added to the model, one of the transmitterts gets recorded with the RDS.
However, just to confuse the issue, if I run my software under valgrind (which forces everything to run single-threaded), then I only see one or both of the receivers get registered.
I've manage to work around the problem to some extent: If I delay the call to node_condition.notify_all() until after all four of a server's devices have been added to the model, then all the devices get registered with the RDS. However, if multiple servers get contacted in parallel, then I also have to make sure that the four servers' threads are started at least one second apart to make sure that all of each servers' devices get registered. However, this is all very much papering over the problem -- if events from the server arrive all together (like, say, from a bulk configure request), it's likely that the race will recur and some of the model updates won't make it to the RDS.
I realize this is a rather vague description of the problem, but I haven't any luck reproducing this problem with synthetic device data. If someone can suggest how I might investigate the problem, I'd really appreciate. In particular, I assume that the problem is somewhere in the registered_operation function, although the function looks to me like it has all the necessary locking. I don't fully understand how and  where the update time for the grain used to monitor update times come from -- for instance, if that time gets captured when the condition variable is first notified, and then the model gets updated while request_registration is waiting for an HTTP response, could the grain update times somehow off, causing registered_operation to think that updates that occurred during the registration_request call to be considered to have occurred before the registration?
Also, I notice that registered_operation sets most_recent_update twice, once before processing all the events and once afterwards. It seems to me that one of those updates is unnecessary at best and erroneous at worst. Doesn't the second update make it lose any changes to the grain that occurred while requests to the RDS were outstanding?
Thanks,
Bill

After that long-winded description, it looks like changing the code to get the grain update time before fetching any queued events fixes the problem:
--- Development/nmos/node_behaviour.cpp
+++ Development/nmos/node_behaviour.cpp
@@ -846,9 +846,8 @@ namespace nmos
                 }

                 events = web::json::value::array();
-                node_behaviour_grain_guard guard(model.resources, grain, events);
-
                 most_recent_update = grain->updated;
+                node_behaviour_grain_guard guard(model.resources, grain, events);

                 while (0 != events.size())
                 {
@@ -899,8 +898,6 @@ namespace nmos
                     // wait for the request because interactions with the Registration API /resource endpoint must be sequential
                     condition.wait(lock, [&]{ return shutdown || registration_service_error || node_unregistered || request.is_done(); });
                 }
-
-                most_recent_update = grain->updated;
             }

             cancellation_source.cancel();

On further inspection, the first half of that patch is problematic. For reasons that I don't understand, it breaks PATCH request handling. So, I just need to remove the second assignment to most_recent_update.

Thanks for the thorough investigation, Bill. I'll examine this more closely when I get back to the office but I think the original flaw was that I hadn't accounted for the condition.wait releasing the lock. Thus your ultimate suggestion is a very plausible fix.

@billt-hlit Thanks again for reporting and helping fix this. Sorry for the delay to merge, it took me a while to reproduce the issue within the example nmos-cpp-node app, but I think the nmos::experimental::node_resources_thread I've ended up with is also a slightly more useful stub for those setting out on making their own nodes.


Skill Name
Thunkable
Why?
It's a very popular low-code editor with which we can make mobile apps without coding knowledge by dragging and dropping elements.
Reference Image
PNG from their website (link):

SVG (Obtained by cropping and converting PNG):

Code of Conduct Acknowledgment

[X] I have read and agree to the Code of Conduct.

@shreyas-a-s I've sent a message to their team to see if it could be possible to get a svg version from them, since it would be a better quality than the generated one. Else yeah it's a very good idea, just having to wait for their response.

@Denisskas Cool. Where did you get it from, buddy?

@shreyas-a-s I found on this site: https://testrigor.com/blog/thunkable-testing/

@shreyas-a-s @Denisskas I think, else we do a dark and light (and auto ofc) version, or just one single instance with the background color of the logo itself
this:

or this:

in my opinion the last one is better, let me know what you think

I am also liking the second one better since there is a blend of the background color of image and the icon. It looks cleaner.


issues finding stubs for native library with submodules

I'm having issues with Visual Studio Code python language server, which cannot find the stubs for a python binding library I am developing (https://github.com/pthom/lg_hello_imgui). I think the issue might be linked to the fact that my library expose several submodules.
I made a minimum reproducible example here: https://github.com/pthom/pylance_test
When using PyCharm or CLion, I can easily navigate to the stubs I defined for my library, and also in its submodules stubs.
However, when using Visual Studio Code, it is less reliable:

when using the Jedi language server I can navigate to the functions definition, although it might fail after a few minutes of usage.
when using the Pylance language server, it always fails

I'm using a Mac M1. I've had this failure inside OSX, as well as inside windows ARM, with Parallels. Is it linked to my setup?
Here is the installed package structure:
.venv/lib/python3.9/site-packages/lg_hello_imgui/
├── __init__.py
├── _lg_hello_imgui.cpython-39-darwin.so*
├── hello_imgui.pyi
├── imgui.pyi
├── implot.pyi
└── py.typed

_lg_hello_imgui is a native library that include three submodules, defined like this via pybind11:
PYBIND11_MODULE(_lg_hello_imgui, m)
{
    auto module_imgui =  m.def_submodule("imgui");
    py_init_module_imgui(module_imgui);

    auto module_himgui =  m.def_submodule("hello_imgui");
    py_init_module_hello_imgui(module_himgui);

    auto module_implot =  m.def_submodule("implot");
    py_init_module_implot(module_implot);
}

and lg_hello_imgui/__init__.py states:
from lg_hello_imgui._lg_hello_imgui import imgui
from lg_hello_imgui._lg_hello_imgui import hello_imgui
from lg_hello_imgui._lg_hello_imgui import implot

Repo for issue reproduction:
https://github.com/pthom/pylance_test
(Note: the lg_hello_imgui linked library does not exist as wheel yet, so it may require 1 minute or 2 to build)

We'll need to examine your stub files to diagnose the issue. I don't see any stubs in your main project or the repro test project. Where are the stubs and the "py.typed" file coming from? I tried to install library, but I received various errors (on MacOS) when attempting to build it.

Thanks for your help, and sorry if I was not clear enough.

I don't see any stubs in your main project or the repro test project

The stubs are here: https://github.com/pthom/lg_imgui_bundle/tree/main/bindings/lg_imgui_bundle

I tried to install library, but I received various errors (on MacOS) when attempting to build it.

Sorry for that!  It is still largely a work i progress (although I also work on a mac M1).  I did setup some CI on linux. It seems like I will need to do the same on MacOS.

In  order to help you, I made an archive with the content of the site-packages/lg_imgui_bundle folder:
https://traineq.org/lg_imgui_bundle.tgz (it also includes a wheel for Mac M1, python 3.9)

The problem is that your __init__.pyi stub is importing the symbols _hello_imgui, imgui, and implot, but it is not re-exporting them. By default, all symbols imported by a stub are considered private to that module, not exported outside of it. To indicate that your intent is to re-export these symbols, you need to use a redundant form of the import statement (e.g. from x import y as y). For details, refer to this section of PEP 484 that specifies how stub files work.

from . import hello_imgui as hello_imgui worked like a charm!
Thanks a lot and sorry for if this was not a pylance related issue.
I'm closing the issue, as it is resolved for me. Thanks again.


Automatical closure for inventory pages not working

Even if the "Automatically close inventory page if price or analysis is saved today (use when mass updating pricing/saving analysis)" setting is ticked, the inventory pages will not be closed after price adjustment.
Version: 0.6.7
Browser: Chrome 123.0.6312.106 (x64)

An update: Some of the inventory pages can be closed automatically, but others can't.

After the update of v0.6.8, this issue no longer exists.


Background music and other possible sounds

Extension to #28

#37 adds background music (can always be improved if needed).
Keeping this open for future improvements and other SFX


Question about instance loss calculation

Hi,
Thanks for making this great work public.
I have a question regarding the calculation of instance loss for PINet of CULane dataset. could you please explain what exactly is happening in the following lines?
compute loss for similarity

feature_map = feature.view(real_batch_size, self.p.feature_size, 1, self.p.grid_y*self.p.grid_x)
feature_map = feature_map.expand(real_batch_size, self.p.feature_size, self.p.grid_y*self.p.grid_x,
                                                          self.p.grid_y*self.p.grid_x)#.detach()

point_feature = feature.view(real_batch_size, self.p.feature_size, self.p.grid_y*self.p.grid_x,1)
point_feature = point_feature.expand(real_batch_size, self.p.feature_size, self.p.grid_y*self.p.grid_x,
                                                            self.p.grid_y*self.p.grid_x)#.detach()

distance_map = (feature_map-point_feature)**2
distance_map = torch.sum( distance_map, dim=1 ).view(real_batch_size, 1, self.p.grid_y*self.p.grid_x,
                                             self.p.grid_y*self.p.grid_x)

As per my understanding (please correct me if I'm wrong):
The feature_map and point_feature are derived from the output of the feature branch of PINet by doing some resizing and expanding operations. and then these feature_map and point_feature are used to calculate the distance_map.
My exact question is:
what is the difference between feature_map and point_feature?? and what is the significance of feature_map and point_feature?
Thanks :)

feature_map and point_feature have different forms.
feature_map: feature.view(real_batch_size, self.p.feature_size, 1, self.p.grid_yself.p.grid_x)
point_feature: feature.view(real_batch_size, self.p.feature_size, self.p.grid_yself.p.grid_x,1)
point_feature has transposed form of feature_map.
Thank you!

Hey,
Thanks for the clarification. I understood why it is being that way once I debugged the code


AcceptBlock() : too many blocks found using same algorithm

So, I came across this issue with my pool.
It seems that there are times when mining a block is guaranteed to get you a rejected block even if you find a valid solution...
How would one use RPC to check for this state (so algo profit switching doesn't direct miners to a coin which cannot currently be mined)?
Thanks.

ThreadRPCServer method=submitblock
ERROR: AcceptBlock() : too many blocks found using same algorithm
ERROR: ProcessBlock() : AcceptBlock FAILED

This is happening around 40-50% of the blocks on Lyra2 today... pulling VERGE until we see an answer.

Well on the verge daemon you can check which algorithm is currently being used.
~/work/VERGE(master*) » ./src/VERGEd -rpcuser=kyon -rpcpassword=lolcat getinfo                                         marpme@Marvins-MBP-2
{
    ...
    "pow_algo_id" : 0,
    "pow_algo" : "scrypt",
    "difficulty" : 52403.69164694,
    "difficulty_x17" : 4120.85734983,
    "difficulty_scrypt" : 52403.69164694,
    "difficulty_groestl" :<PHONE_NUMBER>3074,
    "difficulty_lyra2re" : 13239.32047903,
    "difficulty_blake" : 6596164.37130670,
    ...
}

The pow_algo field will tell you, which algorithm is currently being used and the difficulty field will automatically adjust alongside with the pow_algo field. Maybe this can help you a bit?

pow_algo tells you which algorithm you booted it with, scrypt being the default (id=0), in my case lyra (id=2) is what it's running as for POW.  But it appears that, although it will give Lyra work and has a current lyra pow_algo and a lyra difficulty value... the daemon will not accept solved blocks for lyra if (interpreting the error message) too many of the previous blocks have been solved on the same algo?0
Complete waste of work.

which pool do you run @Heraisu

This is not an issue, but a cure for double spending attack.

I concur @a1binos , it's "working as designed" and this situation is an unfortunate casualty of the war against exploitation.
To his initial concern (I dont know the answer) , is there a way for a pool operator to be able to tell this in advance via RPC commands?

I don't think, it is a good practice, to tell such information in public, because, if you know how to do it, it is easy to make a 51% attack and double spending attack for the bad guys, that may read this issue and make some decisions.

I'm just thinking in terms of a simple script like:
"If Last5Blocks = Lyra then OKToMineXVGOnLyra = False, else OKToMineXVGOnLyra = true"

Even if that logic wasn't 100% accurate, at least it would give a pool operator the chance to bail if there was even a chance the block would get rejected... to be on the safe side 100% of the time.

I understand it was to avoid NiceHash etc., but it's still expensive, and there must be a way to better avoid double-spend (it's very easy to rent more than one algo from NiceHash anyways, so I'm not sure how this helps).  I would LOVE something like what @jrsikors posted above. Basically, I can never trust mining it and the profit calculations will never have enough "negative luck" scalar for "whoops might also be worthless work we're sending you."
I'm actually having trouble finding a block explorer online that shows which algo each block was or something where I can run a quick query to see how often this happens. Yesterday was brutal though.
I appreciate the feedback.

http://poolovich.pro/explorer/XVG
http://poolovich.pro/explorer/XVG

Also, is that the actual value? Last 5 blocks will reject any further ones of the same algo?  But as soon as the highest block has a different algo, it will work again?

I don’t know if 5 is the magic number.. or if there is a magic number.  A quick look at the link Justin provided looked like there were 4 in a row a couple times.  Will need to look at more samples to try to gauge

On Jun 16, 2018, at 4:40 PM, Heraisu<EMAIL_ADDRESS>wrote:
Also, is that the actual value? Last 5 blocks will reject any further ones of the same algo? But as soon as the highest block has a different algo, it will work again?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

So are you good with the link justin provided and 4 as the number?

Is 4 the magic number?
http://poolovich.pro/explorer/XVG?start=2284185
Shows 5 lyra.

I guess this can be closed if it's intended as way to punish pool mining, it's working as intended.
But it's not achieving the desired goal. Just look at the histogram of Verge in Lyra ... insane swings.

it's not a punishment to pool mining at all. and what do you mean look at lyra? the diff goes up and down, but i dont see any "insane swings". you can see it here, hourly, or by 12 hour, etc.. https://vergecurrency.network  diff goes up and down, but nothing too dramatic from what i see.

Not the difficulty, but the amount of subsequently accepted blocks.

As @a1binos pointed out -- we know it's not ideal -- but it's good practice for multi algo coins.  If some people in this world didn't suck as human beings and tried to steal/hack/exploit , this "too many blocks in a row" wouldn't be necessary.
@justinvforvendetta  -- do you know if that's for sure how the logic works, assuming 5 blocks in a row is the max in a row limit?
if it's:
Block 1: lyra2v2
Block 2: lyra2v2
Block 3: lyra2v2
Block 4: lyra2v2
Block 5: lyra2v2
Block 6: blake2s
Block 7: ???
So 5 lyra2v2 in a row ... and the next block 6 is non-lyra2v2
Can block 7 now by lyra2v2 again in that scenario?

yes this is allowed, but with a lower drift like we have now, the previous attacks dont work because they require about 2 hours of mining on a seperate chain

@justinvforvendetta I see your graph but I don't understand why it seems so smooth. Perhaps it's not precise enough to see the swings I'm talking about?  Just now I checked to respond, and the most recent blocks for Lyra vary between 20999 and 1246 in a 10 minute time frame... over an order of magnitude change. Marking start point for people checking this link in the future:
http://poolovich.pro/explorer/XVG?start=2286536
I'm replying to back up my statements, but I do understand this is "working as intended" so again I will not be offended if the issue is closed to clean up the backlog.

well, when the network is in the low 1k's for difficulty on lyra2, id assume a multipool jumps on and starts mining. alot of large multipools for scrypt and lyra2 do this for profitability when a particular algorithm is at a low.

So what does the "5 blocks only" do except punish consistent miners?  Difficulty goes up if it gets hammered, as it should. When difficulty goes low, 5 blocks are quickly mined and then the switches exit, leaving constant miners disproportionately putting their hash time into the highest difficulties and also being the ones left to get the TooManyOfSameAlgo block rejections, yes?  It's like a double-whammy for the non-switching miners, and what does it achieve that dynamic difficulty doesn't already? Is there an explanation somewhere for the reason for the policy?

The reason is equally reward distribution between algos. And to keep NiceHash away from this coin. So a particular miner on a particular pool on a single algo gets more profit, because with constant hashrate per algo, there is no chance to make 5++ blocks on the same algo.
 So, you are slowly mining only high diff blocks, while other guys mine only on fast low diff blocks. That is no fair for a single miner, so, this 5 blocks rule works perfect. 👍

Timezone: PST
Today it happened in the extreme, again, except I have no idea why. A series of 5 blocks were not detected, and the explorer does not show any such series around this time.
9 potential blocks were found between the time of 4:19 and 5:27 (sudden drop in difficulty, I assume), however, in the middle of those, 5 of the blocks were rejected and the log says "too many of the same algo"... from 5:22 to 5:26... can you please explain whatall triggers this? Because the blockinfo had myr-gr on the head when this happened... even querying the blockchain before mining and submissions from the daemon itself, the most recent 5 counts were NOT Lyra at any point.  Heck, not even the last 4.  Yet we get block rejections 5 times.
XVG had been readded with an extreme bias multiplier against the alleged reported difficulty, but regardless, this coin just isn't for profit switching pools, is it?

are you mining on clearnet or master branch? I'm guessing the answer is latency in the block submission

@justinvforvendetta https://github.com/vergecurrency/VERGE/issues/764

@justinvforvendetta But it sure looks like a punishment for pools. https://coinfoundry.org/pool/xvg1 has more blocks rejected for that reason than actually mined. Not even mentioning the orphans.

This is why I stopped mining verge, it's currently just too unprofitable. I opened an issue #807 to alleviate this while maintaining security.


Flutter svg issue

I installed flutter svg package and first my svg was shown. Now it shows error as below. Does someone knows how to solve this issue?
Failed to detect image file format using the file header.
File header was [0x3c 0x3f 0x78 0x6d 0x6c 0x20 0x76 0x65 0x72 0x73].
Image source: encoded image bytes

@amarildo2001
Since you are using flutter_svg package, I suggest you to open this issue in dedicated repo: https://github.com/dnfield/flutter_svg/issues
If you get directed here indicating this is a flutter framework issue, write in comments and I'll reopen it.


HandshakeException: Handshake error in client ... waiting for 1 threads to check in

I just had a Dart program running in a Dart VM on a Raspberry Pi die with the following messages:
HandshakeException: Handshake error in client (OS Error: errno = 0)
Attempt:11 waiting for 1 threads to check in
Attempt:12 waiting for 1 threads to check in
Attempt:13 waiting for 1 threads to check in
Attempt:14 waiting for 1 threads to check in
Attempt:15 waiting for 1 threads to check in
Attempt:16 waiting for 1 threads to check in
Attempt:17 waiting for 1 threads to check in
Attempt:18 waiting for 1 threads to check in
Attempt:19 waiting for 1 threads to check in
Attempt:20 waiting for 1 threads to check in
Attempt:21 waiting for 1 threads to check in
Attempt:22 waiting for 1 threads to check in
Attempt:23 waiting for 1 threads to check in
Attempt:24 waiting for 1 threads to check in
Attempt:25 waiting for 1 threads to check in
Attempt:26 waiting for 1 threads to check in
Attempt:27 waiting for 1 threads to check in
Attempt:28 waiting for 1 threads to check in
Attempt:29 waiting for 1 threads to check in
...
Attempt:612 waiting for 1 threads to check in
Attempt:613 waiting for 1 threads to check in
Attempt:614 waiting for 1 threads to check in
Attempt:615 waiting for 1 threads to check in
$

The handshake issue seems to be a message from BoringSSL. The script was doing various things with HTTP and WebSocket objects at the time.
I have no other information, sorry. I can't easily give you reproduction code since it was all tightly coupled with the random home automation hardware I have hooked up to my network.

@a-siva I've seen safepoints behave this way before when my Pi was running low on memory.

@rmacnak-google what test were you running when you went low on memory? We could simulate that on a regular desktop by setting a low new and old space limit.

Random tests sometimes display this behavior when running the test suite with multiple cores. I think you have the get unlucky to have just the right amount of memory remaining to get this behavior instead of a quick crash.

This has been open for 1 year with no progress. Assuming stale. Please reopen if the issue is still present.


How to find a element that is sibling to a label named "xx"

There is tableview, that shows a list of products. Each cell has an adding button and a product name. How can I find a cell named "xx" and click the adding button in the cell?

I use this to get the cell with a specific name
static func onCell(text: String, file: StaticString = #file, line: UInt = #line) -> GREYInteraction {
    return selectElement(
      with: grey_allOf(
        NSArray(
          array: [
            grey_kindOfClass(UITableViewCell.self),
            grey_descendant(grey_containsText(text)),
            grey_interactable()
          ]
        ) as! [GREYMatcher]
      )
    ).atIndex(0)
  }


Can it support other nfts to display or sell in this wallet?

Can it support other nfts to display or sell in this wallet?

Yes, we can work with you to add to the marketplace


Document KDD routing availability

All of the routing configuration is now available in KDD - we need to document this as a beta feature.
Part of this work also update the bird-based RR image.  Update the usage docs for this too.

Why was this closed? Any paper trail as to what was done to resolve it?

Fixed by #952


[WIP] Admin prompt

Vary the prompt between regular '$' and bold '#'.
Show '#' only if we can detect that the current process is elevated.  It requires group: db enabled in /etc/nsswitch.conf.
Some files are wrong, I need to fix them first.

@Alexpux, can you verify it and merge? Tea CI is building it in a wrong order.


{App Service} Skip failed tests to unblock CI

Related command

Description

Skip the tests temporarily to unblock CI:

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Thank you for your contribution! We will review the pull request and get back to you soon.

@khkh-ms for awareness
Our CI is blocked by the failed tests mentioned in this PR, so we skip them temporarily.


Configure github client to retry requests

Fixes #676

Should I do more to test this? I'm pretty much relying on the retry feature from urllib3 to do what it should.

Added a test of the actual retry functionality -- had to go lower level than where responses patches.


setup.py: Support older setuptools (<=20.1.1)

The python_version conditional was added fairly recently (<2 years).
We've run into a few cases where it would be very convenient for luigi
to support older setuptools (e.g. managed environments where it may be
difficult or not possible to upgrade).
The python_version conditional was introduced in luigi 2.8.x. For now
we're pinning to <2.8.x as a workaround.

Hey @honnix, are you saying you approve? cc @dlstadther

Yeah. Sorry I was not clear about it.


Problem in the line 208.

For "align naive" option there is an error in the line 208. In the original code the for loop is: "for key, observations in groups.values()". But the iterable "groups.values()" doesn't have two elements per iteration, it only has one.

thanks, @jhacsonmeza !


Support for autowakeup on IPC call to hibernated plugin

We need a way to detect if someone is trying to call API of hibernated plugin via Thunder and eventually wakeup the plugin to continue API call execution, or return error.

Hi,  We need a way to detect if someone is trying to call API of hibernated plugin via Thunder  and eventually wakeup the plugin to continue API call execution, or return error. Changes are subtle and will be great full for deep review.

Hi @adrianM27 This seems like a very hacky solution that messes up the architecture. I do not think that an IPCChannel should be aware of any hibernation. Also think there is no need to move it to such a low level. I think we are violating the D principle in SOLID. See: https://www.digitalocean.com/community/conceptual-articles/s-o-l-i-d-the-first-five-principles-of-object-oriented-design#dependency-inversion-principle
What I take from the comments and the socket changes is that you want to "WakeUp" an Hibernated plugin in case a JSONRPC request for it comes in?
I think, if needed, it could be done from the PluginServer (WPEFramework) alone, so only at the highest level where all the Hibernation functionality exists and no need to scatter a hibernation concept trough the whole code base.
The feature, I think, also opens up a whole box of Pandora issues, cuase if we wake up how long should we wake up? Or is this a matter of waking up. servicing the JSONRPC request, and going back to Hibernation (I do not think I found that in the code).
Than control of the plugins Hibernation mode is now back in the hands of anyone. Sending any requests, will change the state of a plugin. I think this is the beginning of much more issues. This is what was disucussed at the beginning and why we think it would be better to use ZRam in combination with SWAP. Trust me the kernel is better suited for this kind of features than what we are trying to do in userspace by programming this.
Is there some requirements document, or any other document, for this feature? Could you share it ?

Thanks Pierr,  I agree, changes are against current architecture .  I abandon the PR, since we found another way of doing it outside Thunder


Wait for CSV and capture more info in case of failure

(was closed by mistake)
/test gpu-operator-e2e

I don't see any problems. Thanks @kpouget
/lgtm

/test gpu-operator-e2e

/test gpu-operator-e2e
/test images
On Tue, May 4, 2021 at 4:29 PM openshift-ci[bot] @.***>
wrote:

@kpouget https://github.com/kpouget: The following tests failed, say
/retest to rerun all failed tests:
Test name Commit Details Rerun command
ci/prow/images 1e5bb73
https://github.com/openshift-psap/ci-artifacts/commit/1e5bb735212d5585bb935e4735a2c24a316024ae
link
https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift-psap_ci-artifacts/134/pull-ci-openshift-psap-ci-artifacts-master-images/1389587777263243264 /test
images
ci/prow/gpu-operator-e2e 1e5bb73
https://github.com/openshift-psap/ci-artifacts/commit/1e5bb735212d5585bb935e4735a2c24a316024ae
link
https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift-psap_ci-artifacts/134/pull-ci-openshift-psap-ci-artifacts-master-gpu-operator-e2e/1389587782137024512 /test
gpu-operator-e2e
Full PR test history
https://prow.ci.openshift.org/pr-history?org=openshift-psap&repo=ci-artifacts&pr=134.
Your PR dashboard
https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:kpouget.
Instructions for interacting with me using PR comments are available here
https://git.k8s.io/community/contributors/guide/pull-requests.md. If
you have questions or suggestions related to my behavior, please file an
issue against the kubernetes/test-infra
https://github.com/kubernetes/test-infra/issues/new?title=Prow issue:
repository. I understand the commands that are listed here
https://go.k8s.io/bot-commands.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/openshift-psap/ci-artifacts/pull/134#issuecomment-831985987,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABZVQIWNFM32SFIZKPQWOKLTMAADRANCNFSM44AIU6RA
.

/test gpu-operator-e2e
/test images

/test gpu-operator-e2e
/test images

/retest

\o/
/approve
@dagrayvid can be merged :)

/lgtm
Thanks!


Feat/civ 2649

LRvLR: 1v2 different sol - Camunda changes
JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/CIV-2649
Change description
LRvLR: 1v2 different sol - Camunda changes
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ x] No

closing it

closing this PR


Write Tags in Controller Manager?

Current Behavior
It doesn't appear like we can write to tags from a ControllerManager connection, just subscribe to tag changes. Is that the case? In our application we would like to use the long-lived connection of a ControllerManager and also be able to read/write tags

Here is ControllerManager recommended usage.  I recommend using these methods for most common usages of this library.
const {ControllerManager} = require('st-ethernet-ip');

let cm = new ControllerManager();

//If you want to do something with the value every 1000ms , I would set the rpi to something smaller (500) so your sure to have a new value.
cm.addController('<IP_ADDRESS>', 0, 500);
//Always connect controller after adding it
cm.controllers[cm.controllers.length - 1].connect();
//Add Your tags to the controller (Example is DINT Controller scope tag called 'RATE_TEST99' )
cm.controllers[cm.controllers.length - 1].addTag('RATE_TEST99');
//Add Your tags to the controller (Example is REAL Program:MainProgram scope tag called 'TEST_POINT1' )
cm.controllers[cm.controllers.length - 1].addTag('TEST_POINT1', 'MainProgram');

// READING TAG VALUE EXAMPLE
//Do something with tag values every 1000ms
setInterval(() => {
   //ALWAYS do a fresh cm.getAllValues() before using those values
  let tagValues = cm.getAllValues();

  // Display all tag names and values at controller '<IP_ADDRESS>'
  console.log(tagValues['<IP_ADDRESS>']);
  // Display tag named 'RATE_TEST99' value
  console.log(tagValues['<IP_ADDRESS>']['RATE_TEST99']);
  // Display tag named 'TEST_POINT1' value
  console.log(tagValues['<IP_ADDRESS>']['Program:MainProgram.TEST_POINT1']);

  //Another way to get a current tag value
  console.log(cm.controllers.find(c => c.ipAddress === '<IP_ADDRESS>').tags.find(n => n.tagname === 'RATE_TEST99').tag.value);

}, 1000);

//WRITING TAG VALUE EXAMPLE
//Write a incrementing value to a controller tag after 1000ms
setInterval(() => {
  //Increment value and write to DINT controller scope tag 'RATE_TEST99' at controller '<IP_ADDRESS>'
  let tag1 = cm.controllers.find(c => c.ipAddress === '<IP_ADDRESS>').tags.find(n => n.tagname === 'RATE_TEST99').tag;
  tag1.value = tag1.value + 1;

  //Increment value and write to REAL Program:MainProgram scope tag 'TEST_POINT1' at controller '<IP_ADDRESS>'
  let tag2 = cm.controllers.find(c => c.ipAddress === '<IP_ADDRESS>').tags.find(n => (n.tagname === 'TEST_POINT1' && n.program === 'MainProgram')).tag;
  tag2.value = tag2.value + 0.1;

  //ALWAYS find the tag as shown before doing anything with the tag to insure you are not using a stale tag instance

}, 1000);


package.json conflicts and missing tests for new templates in Turkish and Russian

Some of the new *-tr and *-ru templates have the same package.json file which confuses the scripts creating the archive.
Also it might be good to haves JavaScript tests for those new templates.

I'm assigning myself 😅  FYI @dselman @dlkconsultancy

Fixed in PR #100
leaving the issue open for review

I'll assume everyone is happy...


Dependancies on node-sass not up to date,

Hi,
When i try to install gulp sass i 've the following issue : https://github.com/sass/node-sass/issues/557
If i just install node-sass at last version 2.0.0 the bug is fixed. Have you got a patch method for me ?
Cédric

:+1:

I ve start a fork to fix that but not PR because not tested all the options :
https://github.com/cedriclombardot/gulp-sass/compare/f3901174218d2bc58b12033f027c43c1655eefb2...HEAD

@cedriclombardot Thanks!  Saved me today!  I am not sure the best option but for now I pulled in your fork: "npm install<EMAIL_ADDRESS>

There's also a PR https://github.com/dlmanning/gulp-sass/pull/159 which does have working tests.

Updated with https://github.com/dlmanning/gulp-sass/pull/159


Fix literal markup for settings

In headings and one non-heading. This is probably a leftover after some semi-automated way of removing that PIPELINE_ prefix.

Thanks (again) :bowtie:


iFrameIO reusing form causes incorrect data to be sent on subsequent requests to a uri

This issue was imported from Closure Library's previous home at http://closure-library.googlecode.com
The link to the original issue is:
https://code.google.com/p/closure-library/issues/detail?id=409

Was never repro'd


[$75] Migrate withReportAndPrivateNotesOrNotFound from withOnyx to useOnyx

Coming from https://expensify.slack.com/archives/C01GTK53T8Q/p1725973460005309?thread_ts=1725905735.105989&cid=C01GTK53T8Q
Migrate src/pages/home/report/withReportAndPrivateNotesOrNotFound.tsx to use useOnyx instead of withOnyx.
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021834283616679002875
Upwork Job ID:<PHONE_NUMBER>679002875
Last Price Increase: 2024-09-12
Automatic offers:

akinwale | Reviewer | 103949144
nkdengineer | Contributor | 103949146

Issue OwnerCurrent Issue Owner: @akinwale

Proposal
Please re-state the problem that we are trying to solve in this issue.
Migrate withReportAndPrivateNotesOrNotFound from withOnyx to useOnyx
What is the root cause of that problem?
This is a migration
What changes do you think we should make in order to solve the problem?
Remove the withOnyx here and use useOnyx. Also, remove the onyx-type props here
https://github.com/Expensify/App/blob/7748eff72fc43ecaf3db6159928d8d581a63ab99/src/pages/home/report/withReportAndPrivateNotesOrNotFound.tsx#L94
What alternative solutions did you explore? (Optional)
NA

[## Proposal
Please re-state the problem that we are trying to solve in this issue.
Migration of withOnyx to useOnyx
What is the root cause of that problem?
Migration
What changes do you think we should make in order to solve the problem?
Remove these lines and remove prop types for the same -
https://github.com/Expensify/App/blob/7748eff72fc43ecaf3db6159928d8d581a63ab99/src/pages/home/report/withReportOrNotFound.tsx#L107-L123
We shall convert it to useOnyx hook.
const [formState] = useOnyx(formID)

and same for other keys as well
What alternative solutions did you explore? (Optional)
](https://github.com/Expensify/App/blob/7748eff72fc43ecaf3db6159928d8d581a63ab99/src/pages/home/report/withReportOrNotFound.tsx#L107-L123)

PR in review

@akinwale is next up!

@roryabraham has final review here then should be good to merge it appears

Okay, thanks Rory! I'll keep my eye out and adjust if needed

PR is still under review

going on parental leave, need to reassign. @youssef-lr I'm choosing you at random, hope you don't mind ❤

Looks like @youssef-lr is next up to complete the final requested review on the PR

Review in progress

This is on staging. Awaiting deploy to prdo

Could you complete the checklist @akinwale? Thanks!

[x]  [@akinwale] The PR that introduced the bug has been identified. Link to the PR:
[x]  [@akinwale] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[x]  [@akinwale] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:

Not a regression. This is a migration.

[x]  [@akinwale] Determine if we should create a regression test for this bug.
[x]  [@akinwale] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

Regression Test Steps

Launch Expensify
Create a workspace
Navigate to the workspace chat
Click on the chat header and select Details > Private notes
Attempt to edit the private notes
Verify that editing and saving private notes works properly.

Do we agree 👍 or 👎?


feat(fileUploaded): Added accept attribute

The input type=file has an attribute, accept, that allows the user to set which file types the input accepts. It doesn't actually prevent upload of other files, but it does make the user's process of finding files that will be accepted easier.
Reference:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file

Thanks for doing this @loganmccaul!


I can't open the game

Hello, I'm using the mobile version released 3 days ago, and I can't play AT ALL, every time it loads to 100% and simply crashes, both in online and offline mode, what should I do ?

What Android version do you have? And the device name as well.

What Android version do you have? And the device name as well.

I have a Samsung A10, Android 11 version

Hm, I'll have to look into this one more then; things are working normally for me on my S24 Ultra at least. Just in case, I'd try clearing the game's files and redownloading to see if that fixes anything; they're in android/data/com.example.pokerogue/files/game (and won't affect your save files).

ok try to do this, I've uninstalled and installed it before and it didn't work, I did it yesterday, but I'm going to look for this folder and clean these files.

Hm, I'll have to look into this one more then; things are working normally for me on my S24 Ultra at least. Just in case, I'd try clearing the game's files and redownloading to see if that fixes anything; they're in android/data/com.example.pokerogue/files/game (and won't affect your save files).

I went to the folder, cleared everything, cleared the cache and the data, downloaded Futaba's Debug Build and the same problem is happening, reaching 100% and crashing the game, both in online and offline mode.

Do you have any idea what this could be?

I don't really know any specifics unfortunately. I haven't been able to replicate it, and as far as I can tell it's just happening for some users. Oftentimes it's because of hardware, but your device should be fine for this so I'm not really sure.

ok, If there is anything I can help with let me know

I was trying and trying and there was a moment in offline mode, more or less when it was at 90+% and I left the app when I came back it was like this lmao

Yeah I think this happens any time the app gets "unloaded" from inactivity; the javascript never starts again so all you get is the blank html page.

hey, I installed version 2.4.0, it's very nice, the download and extraction percentage appears, I think it's cool, but I still can't enter it, but the online and offline buttons are written "using account save" or "local save" This is my first time playing, so I don't have a save, could this be the reason it's crashing?

hey, today I tried more times (goin insane) but I saw something new, I'm trying in offline mode and when it reached 100% it took a long time and then the controls and the screen with the same game background appeared but shortly afterwards the game crashed again. What I was doing before was uninstalling an app to see if it was a memory problem, and maybe it is, but do you already have 20% of the space freed up as needed?

Nah that's not an issue. That's just to clarify that online mode uses your account for all of its data, and offline mode uses whatever you happen on your device. Are both modes still crashing currently?

yes, both are crashing, always when reaching 100% loading, and no message appears from Android saying that the app has stopped or anything like that, it simply closes without explanation,EVERY TIME when reaching 100% loading

I see
There's still not a whole lot I can do without more reports and/or a consistent way to reproduce the issue on my side unfortunately. Does this happen for the browser version as well, or just the app?

I tested many browsers, my main one is the Kiwi browser, it uses Chromium as a base and looks like this (image) and the other one, which gave a different result, but a little similar,it was fire fox nightly (specifically the nightly version) it had the buttons like the kiwi browser in the image but the background was gray as if the game was going to load at some point but it will only stay on that screen gray

The many others I tested were the same as Kiwi Browser

hey, yesterday tried more times but I saw something new, but I didn't even comment because in the following attempts it followed the same way I commented:
I'm was trying in offline mode and when it reached 100% it took a long time and then the controls and the screen with the game background appeared but shortly afterwards the game crashed again.
And Today with this new uptdade happened again, so what I was doing before was uninstalling some apps on my phone to see if it was a memory problem, but do you already have 20% of the space freed up as needed?

In terms of file size and ram usage, both are at around 1gb each I think.

now I have 6gb storage free, and ~550+ RAM memo, but I don't know how I'm going to increase this lol

in the device and battery assistance area there are some statistics, and for the Pokerogue app it says, "failures frequent" "problem detected", but I can't see what the problem is ;-;

I gave someone a test version with some tweaks to how file handling is done, maybe see if it works for you? https://github.com/Admiral-Billy/Pokerogue-App/issues/68#issuecomment-2146668991

ok, Thanks for the update message, I'll test it

so I already tested, and still the same, load to 100% and then just close, both in offline and online mode

I normally downloaded the offline files, but it keeps closing by itself

I guess my hunch that the issue is ram-related might be true then, in which case there really isn't much else I can do about this :(

oh I see, most likely it should be the ram, so thx!

I'll close this one for now; sorry that it doesn't seem like there's a viable solution.


a question about this tool

Can this tool be used to make or generate music score for singing vocals ? Im not so sure if  I'm understanding this tool correctly
so a clarification from you would be amazing. :)

Yes the plan is that the tool will create a sheet / music score later. But this is still in development / planning. See issue #7

Note that you can already take the generated MIDI file and export it to sheet music (e.g. PDF) using various tools.
For example, MuseScore can export MIDI to sheet music.


[Python Distribution] Add a check for file size

Add a step in distribution test which checks if any of the artifacts exceeds 80 MB since Pypi has a per-file size limit.

One half of the long-term solution for the mitigation provided by https://github.com/pypi/support/issues/3616

Now that https://github.com/grpc/grpc/pull/35832 is in, this should be good to go.


Panic with stream and customized rust log struct

With latestest FRB V2.0.0, After reading the Stream doc, I test with such rust code:
#[frb]
pub struct LogEntry {
    #[frb(name = "type")]
    pub type_: String,
    pub message: String,
    pub time: String,
}

// impl SseEncode for LogEntry {
//     // fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) {
//     //     todo!()
//     // }
// }

use chrono::Local;

pub fn on_tick(sink: StreamSink<LogEntry>) -> Result<()> {
    let mut ticks = 0;
    let event_types = ["ERROR", "WARN", "INFO"];
    loop {
        let event_type = event_types[ticks % 3].to_string();
        let log_entry = LogEntry {
            type_: event_type.clone(),
            message: format!("this is a `{}` msg.", event_type),
            time: Local::now().format("%Y-%m-%d %H:%M:%S.%2f").to_string(),
        };
        sink.add(log_entry);
        sleep(Duration::from_secs(1));
        if ticks == usize::MAX {
            break;
        }
        ticks += 1;
    }
    Ok(())
}

and use it like this in Dart:
  void startLogStream() {
    api.onTick().listen((logEntry) {
      try {

      } catch (e) {
        print('处理日志条目时出错: $e');
      }
    }, onError: (error) {
      print('日志流错误: $error');
    });
  }

Here,  even the try block is empty, it ran into panic:

and according to the debug stack, it seems related to the  flutter_rust_bridge:

Am I using the stream in the wrong way?

Firstly, try to get the full panic backtrace. (https://cjycode.com/flutter_rust_bridge/guides/how-to/stack-trace) Then we can check what is on that panic backtrace to see what panics.

I add the following code in api/simpl.rs:
#[frb(init)]
pub fn lets_init_app_here() {
    std::env::set_var("RUST_BACKTRACE", "full");
}

and the debug output something like this:
[GETX] Instance "HomeViewController" has been created
thread '<unnamed>' panicked at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081\library\alloc\src\string.rs:2559:14:
a Display implementation returned an error unexpectedly: Error
stack backtrace:
   0:     0x7fffce537ad8 - <unknown>
   1:     0x7fffce556cc9 - <unknown>
   2:     0x7fffce5338e1 - <unknown>
   3:     0x7fffce5378b6 - <unknown>
   4:     0x7fffce5399b8 - <unknown>
   5:     0x7fffce539627 - <unknown>
   6:     0x7fffce539ee8 - <unknown>
   7:     0x7fffce539da7 - <unknown>
   8:     0x7fffce53844f - <unknown>
   9:     0x7fffce539a58 - <unknown>
  10:     0x7fffce57a734 - <unknown>
  11:     0x7fffce57ac50 - <unknown>
  12:     0x7fffce256c83 - <unknown>
  13:     0x7fffce28a741 - <unknown>
  14:     0x7fffce3049ee - <unknown>
  15:     0x7fffce295da3 - <unknown>
  16:     0x7fffce295d71 - <unknown>
  17:     0x7fffce32a77a - <unknown>
  18:     0x7fffce263511 - <unknown>
  19:     0x7fffce2fd3a5 - <unknown>
  20:     0x7fffce303623 - <unknown>
  21:     0x7fffce2f4294 - <unknown>
  22:     0x7fffce25dfa3 - <unknown>
  23:     0x7fffce329b80 - <unknown>
  24:     0x7fffce32b4ab - <unknown>
  25:     0x7fffce4ec771 - <unknown>
  26:     0x7fffce4ebd3a - <unknown>
  27:     0x7fffce543abd - <unknown>
[GETX] Instance "HomeViewController" has been initialized
  28:     0x7ff831277344 - BaseThreadInitThunk
  29:     0x7ff831d626b1 - RtlUserThreadStart

The HomeViewController is the dart class where the startLogStream() defined.

 To do this, maybe google about it (e.g. ensure symbols are not stripped, or use a symbolicator afterwards, etc)

what you said is a little hard to do.  But after debugging with commenting(out) one line by one line.  I found the issue is due to this line: time: Local::now().format("%Y-%m-%d %H:%M:%S.%2f").to_string(),.  It seems to be a wrong syntex with .%2f.
So I finally change the rust code into this:
#[frb]
pub struct LogEntry {
    #[frb(name = "type")]
    pub type_: String,
    pub message: String,
    pub time: String,
}

use time::{format_description, OffsetDateTime};

pub fn on_tick(sink: StreamSink<LogEntry>) -> Result<()> {
    let mut ticks = 0;
    let event_types = ["ERROR", "WARN", "INFO"];
    loop {
        let event_type = event_types[ticks % 3].to_string();
        let format = format_description::parse(
            "[year]-[month]-[day] [hour]:[minute]:[second].[subsecond digits:2]",
        )
        .unwrap();

        let log_entry = LogEntry {
            type_: event_type.clone(),
            message: format!("this is a `{}` msg.", event_type),
            // time: Local::now().format("%Y-%m-%d %H:%M:%S.%2f").to_string(),
            time: OffsetDateTime::now_local()
                .unwrap()
                .format(&format)
                .unwrap(),
        };
        sink.add(log_entry).expect("添加日志出错");
        sleep(Duration::from_secs(1));
        if ticks == usize::MAX {
            break;
        }
        ticks += 1;
    }
    Ok(())
}

My issue is now perfectly solved. But Hopefully, the rust API panic info could be stopped at a more constructive place.

Hopefully, the rust API panic info could be stopped at a more constructive place

If I guess correctly, the stack trace will point to that line of code. Thus IMHO the panic is already in the correct place.

Hopefully, the rust API panic info could be stopped at a more constructive place

If I guess correctly, the stack trace will point to that line of code. Thus IMHO the panic is already in the correct place.

I'm afraid NO!  If you take my very first rust code snippet and use it with onListen in Dart, the following is all stack trace:
#0      SimpleDecoder.decode (package:flutter_rust_bridge/src/codec/base.dart:35:9)
#1      SseCodec._decode (package:flutter_rust_bridge/src/codec/sse.dart:42:55)
#2      SseCodec.decodeObject (package:flutter_rust_bridge/src/codec/sse.dart:32:12)
#3      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:847:45)
#4      Future._propagateToListeners (dart:async/future_impl.dart:876:13)
#5      Future._completeWithValue (dart:async/future_impl.dart:652:5)
#6      Future._asyncCompleteWithValue.<anonymous closure> (dart:async/future_impl.dart:722:7)
#7      _microtaskLoop (dart:async/schedule_microtask.dart:40:21)
#8      _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)

Maybe this is not a drawback of FRB, but flutter/dart, since I always got running panic within flutter/dart official std code.
But if feasible, I hope that the stack trace could point to a more constructive place---in my case, is the code in rust/src/api/simple.rs.

the following is all stack trace of the running panic:Maybe this is not a drawback of FRB, but flutter/dart, since I always got running panic within flutter/dart official std code.

IIRC yes, Dart async makes stacktrace look like that...

Oh~ Now I see, and I guess so, too.


[BEAM-457] Upgrade to Avro 1.8.1

This version has some important fixes for potential memory leaks.

I went through the avro 1.7.7 spec and avro 1.8.1 spec and deduced that 1.8.1 is backwards compatible for their encoded format.

R: @lukecwik

Minor comments and then LGTM


how to convert imu acc into uwb's global frame?

Hi @lijx10, thanks for sharing your work to community. After read the reference paper: Accurate 3D Localization for MAV Swarms by UWB and IMU Fusion, when use imu's acc to serve as input to filter,  i have a doubt.
As we all know, imu's acc is a measurement of imu body acc, in other words, it is local measurement, not a global measurement. The filter's variables x = [px, vx, abx, py, vy, aby, pz, vz, abz ] are all global variables, in uwb's global frame, which is constructed by 6 uwb anchors in paper. Before use imu's acc, how to calculate the rotation between one imu frame attached on MAV and the uwb's global frame?
Any suggestion will be much appreciated! Thanks for your help :)

We setup the UWB frame so that the xy plane (assume NWU coordinate) is horizontal, and we mount the IMU in a horizontal way as well. Of course there will be slight error because we didn't perform calibration. However, the slight calibration error is a lot smaller than the noise of the IMU itself, therefore it doesn't matter in practice.

Hi @lijx10, thanks for your reply. Please forgive me for not making myself clear.  The 6 uwb anchors's  coordinates are as follows:

pAx0 = 0;    pAy0 = 0;    pAz0 = 0
pAx1 = 14:6; pAy1 = 0;    pAz1 = 0
pAx2 = 14:6; pAy2 = 25:5; pAz2 = 0
pAx3 = 0;    pAy3 = −1;   pAz3 = 5:3
pAx4 = 0;    pAy4 = 26:6; pAz4 = 5:3
pAx5 = 17:4; pAy5 = 10:1; pAz5 = 5:3

That's to say,  anchor_0 is the global frame's origin. Let mark this frame as G frame, the other 5 anchors 's coordinates are all in the G frame.  The MAV carries a uwb tag on it, let's mark this uwb tag frame as uwb frame,  as the Fig. 3 of paper. And we attach a IMU on it horizontally, orientation coincide with uwb frame . The IMU's  acc measurement is in IMU frame. In this case, it also say the acc measurement is also in the uwb frame.  We want to estimate the MAV's coordinate(uwb's coordinate): px, vx, py, vy, pz, vz  at time t in the G frame,  But the acc of imu is in IMU frame, not in the G frame. Before use it, we need  to convert acc into G frame, but we don't  know the rotation between G and imu_t, we only know rotation between imu_0(MAV start takeoff attitude) and imu_t. Do we must know the rotation between G and imu_0 in advance?
I drew a sketch and hoped to express my meaning clearly, if you need to add any information, please feel free to @me, Thanks for your help very much!  :)

Yes, we need to know the transformation between G and imu_0. That is, we need to know the initial position and orientation of the UAV. In practice, we just manually align the orientation of UAVs to the global coordinate.

Hi @lijx10, thank you very very much :) :)


Upgrade to latest jQuery. Remove responsive tables in favor of scroll.

Hey @bakert,
Your changes look good to me!
View build log
TravisBuddy Request Identifier: dbb773d0-0078-11ea-8767-d53e6939ac53


Helium syncrobit openfleet has OTA?

Hi, does these Syncrobit firmware releases have OTA feature for future updates?
Thank you!

yes :-)


Fix tests on CI

Pre-Flight checklist

[x] Testing

[x] Code is tested
[x] Changes have been manually tested

What are the relevant tickets?
N/A
What's this PR do?
Ensures JS tests run in github actions.
How should this be manually tested?
Look at the log output of the github actions and verify the frontend tests are running.

Codecov Report

Merging #527 (acadce6) into main (2b2a2d4) will decrease coverage by 0.10%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #527      +/-   ##
==========================================
- Coverage   86.77%   86.66%   -0.11%
==========================================
  Files         114      114
  Lines        4770     4770
  Branches      754      754
==========================================
- Hits         4139     4134       -5
- Misses        520      525       +5
  Partials      111      111

Impacted Files
Coverage Δ

ecommerce/discounts.py
71.92% <0.00%> (-8.78%)
:arrow_down:

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 2b2a2d4...acadce6. Read the comment docs.


Progress indicators; better episode filenames

CPod version:
1.23.5
Is your feature request related to a problem? Please describe.
need process bar
Describe the solution you'd like
need process bar and download bar. also please set download format mp3 and set offline name on podcast name,episode name

Hi VJ-Ranga, I'm not sure what you mean by "process bar" and "download bar". Are you referring to a list of currently downloading episodes along with their download progress? Please let me know.
Regarding mp3 conversion, I probably won't implement that as it seems a little beyond the scope of this project to me. If more people request it though, I might implement it eventually.
Finally, regarding downloaded filenames, I'll start working soon on the changes you suggest.
Thanks.

An update: commit 8092b495d8c16638c6a675a6e8eebd42da034179 addresses the latter two points (file extension and meaningful naming).

download bar :- When we are downloading an episode, we can't check whether it is downloading or not
process bar :- When we are reload home, we can't check whether it is reloading or not. The other thing is when we play episode, we can't see it is loading or not until it starts to play.
downloaded file names :- When we download episode the name comes like "bd7972f8dd2c3bc6236a8f3b3875d87f64c0a51e" this. So can you please create it as "podcast name_episode.mp3" ?
sorry for my bad English....

i mean we can't track the status of the file,when we are downloading it or reloading the page.Its better to have an progress bar which showing us the status of the process.

Understood. Thanks for the clarification.

it is so good. but better it have download post and stop button

Glad you like it. I was going to keep this issue open until I added the other things you requested (buffering indicator, download stopping). In any case, I will implement those at some point. Thanks.

@VJ-Ranga, I'm not able to reproduce that problem. Could you try opening the developer tools (Settings, scroll to bottom, "Open developer tools") and send here any errors that show up? Thanks.

it is not an error. could you change refresh button after refreshing, refresh button(⟳) to close button (x). i think it's fine.

Will do. Thanks.

Updating Home is now disallowed when the device is offline and when a Home update is already in progress.
I've also added download stopping as requested.
These features will be available in a future release of CPod.


Use Agent API for locking mirrors and known_hosts

If the Agent API experiment is enabled and working, then shell will now use it for locking instead of flock.
At least two reasons for this:

The API socket can be bind-mounted into a container and "just work", whereas flock is harder to make work correctly across a container boundary.
Locking and unlocking in the Agent API has no disk cost, so can be polled more frequently, so should be slightly faster.

Perhaps the choice of "lock providers" should be configurable?
Oooh. What about making it a hook?


Question: How to render inside a modal window?

I did some poking around and found an example of opening a modal dialog in a separate window in Elmish.WPF using their Binding type (https://github.com/elmish/Elmish.WPF/tree/master/src/Samples/NewWindow). Is rendering to a separate dialog box possible in FuncUI? How would I go about doing it?

Hi @B-Reif !
thanks for the patience. If you just want to open another window you can do this by dispatching a special message that creates a new window and sets up a subscription.
IIRC @AngelMunoz put together a small app where multiple windows can exchange messages.
Is this what you mean ?
If you actually want to render a modal inside the current window you basically have to do this with views (If there wasn’t something added to avalonia recently).

Yes I think I had one but deleted it since I was not pleased with the design I took for that sample I made this sample that I believe fits better the MVU architecture but lacks inter window communication, for that you might need to use a listener and subscriptions
https://github.com/AngelMunoz/MultiWindow
But there's currently an exception being thrown when you try to open the second window as a dialog,
Error: Call from invalid thread

@JaggerJo I think this might be a bug unless I'm missing something

But there's currently an exception being thrown when you try to open the second window as a dialog,

@AngelMunoz I've opened PR with fix: at least it works fine on my system.

@AngelMunoz @FoggyFinder thx!

@FoggyFinder thanks!
@B-Reif I just updated that sample to include A way to communicate from the dialog to the parent window I don't know if that's the best approach (since I don't handle disposable subs, as well as not sure if there are concurrency issues) but that's what I came up with, also that can be used for multiple windows, not just dialogs say for example you have 10 windows they can all subscribe to the same (or different) event and exchange messages with each other

Just now catching up with this, thanks for your help! It could be useful to add this example to the FuncUI docs.
Am I right in thinking that you could do the same thing through Elmish with the Cmd API? That way you wouldn't have to manage the subscription yourself, at least.

Uhhh, given that @AngelMunoz seems to have unpublished the repo you mention, can I ask for some example of how to make a modal? My attempts so far had gotten me a deadlock…

Uhhh, given that @AngelMunoz seems to have unpublished the repo you mention, can I ask for some example of how to make a modal? My attempts so far had gotten me a deadlock…

I don't know what did I do to that repo, and I can't find it 😶 but I'll be doing a sample later on today just give me some time

I don't know what did I do to that repo, and I can't find it 😶 but I'll be doing a sample later on today just give me some time

Uhhh, given that @AngelMunoz seems to have unpublished the repo you mention, can I ask for some example of how to make a modal? My attempts so far had gotten me a deadlock…

https://github.com/FoggyFinder/MultiWindow
That's a fork from the sample

Uhhh, given that @AngelMunoz seems to have unpublished the repo you mention, can I ask for some example of how to make a modal? My attempts so far had gotten me a deadlock…

https://github.com/FoggyFinder/MultiWindow
That's a fork from the sample

Thanks, I think I get it now. I guess returning a command in addition to the new state allows one to hook some (possibly async) code to be executed alongside the window loop and return a message from that…
(Just musing out loud for the sake of the next unfortunate soul to wander over here)

Thanks, I think I get it now. I guess returning a command in addition to the new state allows one to hook some (possibly async) code to be executed alongside the window loop and return a message from that…
(Just musing out loud for the sake of the next unfortunate soul to wander over here)

@rwyrz I just uploaded the sample, the link above should work now, sorry for the inconvenience

@rwyrz I just uploaded the sample, the link above should work now, sorry for the inconvenience

I'll be closing this issue the FoggyFinder Fork shows the sample as well as the other I provided, please feel free to re-open if necessary

I'll be closing this issue the FoggyFinder Fork shows the sample as well as the other I provided, please feel free to re-open if necessary


calculate stereo calibration

Thank you for your wonderful contributions. I have a question: I want to calculate independent stereo calibration for each camera (the chessboard images are not captured simultaneously from both cameras, and the distance used with the chessboard between the two cameras may differ). How does this affect the results?

Hello chomamia,
If the global reference frame is the same, meaning the 3D coordinates of the chessboard feature points are consistent, it should be fine. Note that if one camera is further away from the chessboard, its calibration quality will be degraded with respect to the camera that is close to the chessboard, since the angular variation between two neighbour feature points will be smaller.

Thanks for your reply. I have a question, I want to use this system on a tennis court, I want 2 cameras that are as far apart as the width of the court with a certain tilt to be able to see the whole court. The coordinate corner is in the middle of the net. After calibrating the camera, for points close to the camera, there is a small deviation, the further towards the end of the court when the distance is farther, the deviation can be up to 2-3m. Can you suggest how to improve it better? I thank you very much for that.

Hello chomamia,
Maybe you could test if this error grows with the radial distance from the image center. If it is the case, the problem could be related to the radial distortion of your cameras.
As a side note, in an application like this one where the object of interest moves very fast, you'll have to make sure that both cameras are synchronized. Otherwise, the object could have moved significantly between frames from the left and the right camera.