Naming suggestions

Coming from C++, Python/Numpy and Rust, my impression is that some of the most central concepts of mdarray are named in a confusing way.  Perhaps this is due to my rudimentary understanding, but perhaps the author will find an outsider's perspective interesting.  Here are some of my thoughts.
Span
In C++ there is std::span, but in Rust the equivalent is slice.  The same name is used in Python/Numpy, so many potential users have been exposed to it.  Wouldn't it be better to use the name Slice instead of Span in mdarray?  (E.g. there would be Slice and RawSlice, etc.)
But if I understand correctly, mdarray's Span is not really the equivalent of C++'s mdspan.  (That would be rather Expr.)  Mdarray's Span seems rather a simple reference to an existing array.  So how about renaming it to ArrReference or ArrRef?
Grid
I'm not aware of the name "grid" being used in numerical computing, except in the sense of a physical grid (e.g. a hexagonal grid), or in "grid computing".  So while short, Grid does not seem intuitive for "owned array".  How about renaming Grid to simply Array?  Alternatively, if ownership is to be emphasized, how about OwnedArr?
Array
Static arrays in mdarray are called Array which nicely mirrors the usage in Rust, but arguably conflicts with the expectation that the name "Array" in an array library denotes a heap-allocated array.  How about renaming it to StaticArr?
Expression
In computing, the term "expression" means "something that can be evaluated to determine its value".  If my understanding is correct, mdarray's trait Expression is an array iterator.  Why not call it ArrIterator then?  Then there could be IntoArrIterator etc.  This naming should be much clearer to people having some experience with Rust.
Expr
If I understand correctly, Expr is an "owned view".  While Span is just a "reference to an array", and Expr has its own shape and stried.  Only the actual array values are that of another array.  So how about calling it ArrView?
shorter names
Perhaps the different names proposed here are deemed a bit long.  One possibility would be to get rid of the "Arr" and simply have Iterator, Ref, View, Static, Owned.  If mdarray is used as md these would become md::View or md::Iterator which I'd say are fine.
My gut feeling is that the longer names are preferable, though.  It feels a bit presumptuous to introduce another Iterator trait.

Thanks. It is good to get comments, and naming is not easy and a compromise.
For Span, I agree Slice could work and is commonly used. The reason for using Span is mainly to align with C++, but it is not that important. One slight drawback with Slice is risk of confusion with normal slices, but it is the case also for Array.
Grid is maybe the most controversial, but it is being used for multidimensional arrays for example in some crates. One alternative could be Tensor, which is well known and used e.g. in C++ Eigen/xtensor and in Python. Would that work?
For Expression/Expr/... the idea is as you have seen to mirror the iterator types. But they can be seen as more than iterators, for example there are operators defined and they can be mixed with arrays. So they are not that different from expression templates in C++ libraries. I also wanted to have short names for expr/expr_mut/into_expr since they could be quite common.

One thing that causes confusion is that Expr/ExprMut are used for both array views and expressions. It is probably better to call them View/ViewMut instead. It makes it clear they are array views, and that they happen to implement Expression like some other types. To make it consistent, IntoExpr should no longer be an array type that that can be dereferenced to Span.
The existing Expr/ExprMut types could of course be kept for expressions, and that View/ViewMut implement IntoExpression instead of Expression. However I think it seems better to remove them to simplify and reduce the number of types.
Renaming Span to Slice is fine I think, as the latter is more well known. It also makes sense since it is unsized and must be used behind a reference like normal slices.
Regarding owned arrays, the Array type is just a wrapper around a normal array. It contains no pointer, so it can't be replaced with an array view. Given that there are two owned array types, it seems better to use Array for the fixed array since it is a wrapper and to make it consistent with normal arrays. I don't think it is that bad to use Tensor for a dynamic array, since it is commonly used for a multidimensional array in other libraries.
So with this my current thinking is to do these renamings:

Grid -> Tensor
Span -> Slice
Expr/ExprMut -> View/ViewMut

As I'm thinking, Span (or Slice) is very similar to the Rust slice type, and it can represent a part of the container but also the full container. For example with vec.iter() you don't get an iterator over a vector but an iterator over a slice, since vec will first dereference to a slice.
It does not matter how Span is represented internally, and what is important is the interface to the user. Now &Span is a thin pointer, but if/when custom DST is possible I would like to represent it with a wide pointer to the elements and to the mapping type. This is better for the compiler since direct references can have noalias annotations which should help optimizations.
Thanks for the feedback on Tensor vs Grid. I see what you mean about using Tensor for one type when other types are also tensors, but I think it is difficult to avoid. There is the same issue with normal arrays and Vec, that you should use slices in interfaces even though they are arrays/vectors. To me it is all just multidimensional arrays, and I want to find names that are reasonably correct and fit together.
Regarding array references, yes I think it would be better to use ArraySlice instead of ArrayRef. The reason is that &ArrayRef looks like a double reference, and for mutable references it is unclear if they should be called &mut ArrayRef or &mut ArrayMut. But otherwise the proposal is good.

Yes and no. If you create a Span reference from a Grid, it will point to the RawSpan that is embedded in the grid. So if you copy the reference around or dereference the grid several times they will be identical. But you can also create a view to the same array, so that you get a View or ViewMut instance that contains a new RawSpan internally and can then be dereferenced.
So the difference compared to normal slices is that Span needs an array instance to point to, and not just the array elements. This can only be avoided with custom DSTs that are larger than two words. But otherwise the important function of Span is that it is the type that all arrays can dereference to, and can be used for example in function arguments.
For iteration, the shape and strides are stored in the mapping type in each array instance. If the iteration is over several arrays, they will each have a mapping type (since strides might be different per array) and the arrays are stored recursively in Zip structures.
When iterating over Span references, they must first be converted to array views that contain a RawSpan and lifetime. This is similar to when iterating over normal slices, since they must first be converted to Iter or IterMut.


cargo ledger build failed due to a newer version cargo.lock file

More and more Rust crates are starting to use version 4 format of Cargo.lock. For example, ethereum-types, a foundational library for Ethereum application development by ParityTech, leads to compilation failures when introduced.
Use Rust nightly toolchain: nightly-2023-11-10
error: failed to parse lock file at: /app/Cargo.lock

Caused by:
  lock file version 4 requires `-Znext-lockfile-bump`
thread 'main' panicked at /opt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-ledger-1.5.1/src/main.rs:274:41:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Run the building command with one additional option -Znext-lockfile-bump can solve it, but don't know how to set it when using VS code extension.
It's recommend to upgrade the build image's rust version to a newer one to solve it, for example rustc 1.79

Yes Rust version to be upgraded before EOY 🤞


Add Zcoin Support

Added Zcoin support.
Compatible with firmware upgrade 1.4.1.

To be included alongside https://github.com/LedgerHQ/ledger-wallet-chrome/pull/103

What seems to be the problem.. everything looks to be in order here!! Is this a political issue?


sudo:false for travis builds

Should be easy to get pbf.hpp running on sudo:false travis machines. Looks like the only thing requiring sudo is the pip install cpp-coveralls. This can be done without sudo and locally like https://github.com/Project-OSRM/osrm-backend/blob/masonize/scripts/configure_osrm.sh#L12-L20.

Fixed in 896e38d.


Android | DiscoverReaders throws an error (SDK Busy) after disconnecting a reader.

Describe the bug
Calling discoverReaders method of react native SDK after disconnecting from a reader, and it's throwing an  error Could not execute discoverReaders because the SDK is busy with another command: discoverReaders
To Reproduce
Steps to reproduce the behavior:

Discover Reader
Connect with the Reader
Do a Payment
Disconnect Reader using the method disconnectReader of react native SDK.
Discover Reader again
See an error

Expected behavior
It will discover the reader sucessfully.
Screenshots

Smartphone (please complete the following information):

Device: Samsung F23
OS: Android 12

Additional context
Same as ticket  #389

Can you reproduce with the dev or example apps?
Using the dev app, I am able to:

Discover readers
Connect to a physical M2 reader
Collect a payment
Disconnect from the reader
Discover readers
Connect to the same physical M2 reader

Logcat logs:
$ adb logcat -d | grep 'class=Terminal\b'
10-17 12:34:36.871 19375 19435 D StripeTerminal: class=Terminal message=discoverReaders
10-17 12:34:38.752 19375 19476 D StripeTerminal: class=Terminal message=connectBluetoothReader serial_number=<redacted>
10-17 12:34:48.381 19375 19435 D StripeTerminal: class=Terminal message=createPaymentIntent
10-17 12:34:49.631 19375 19435 D StripeTerminal: class=Terminal message=collectPaymentMethod
10-17 12:34:54.219 19375 19435 D StripeTerminal: class=Terminal message=processPayment
10-17 12:34:57.114 19375 19435 D StripeTerminal: class=Terminal message=clearCachedCredentials
10-17 12:34:59.102 19375 19435 D StripeTerminal: class=Terminal message=disconnectReader
10-17 12:35:04.464 19375 19435 D StripeTerminal: class=Terminal message=discoverReaders
10-17 12:35:06.222 19375 19461 D StripeTerminal: class=Terminal message=connectBluetoothReader serial_number=<redacted>

HI, @billfinn-stripe Thanks for the help,  I have fixed the issue. I canceled the discovery while clicking on the Discover Reader action and it's fix my issue.


CLI command to set plugin configs does not work with BOOL

PHP Version
7.4
Shopware Version
<IP_ADDRESS>
Expected behaviour
When i use a command like this to set a BOOL config....
php bin/console system:config:set xxx.config.yyy false
the config should be FALSE in the plugin config
Actual behaviour
It will always be set to TRUE
whatever i provide 0, false,"false"
this is because the value is always used from string...
which always converts to true, as far as i can remember (once looked at the code)
...or i even think it will always store the string directly in the database...instead of the bool
How to reproduce
use any plugin such as the mollie plugin and set the config like of the debugMode for instance

The system config command does not know about any types, so it saves everything as string.
I would suggest to add an type option to the \Shopware\Core\System\SystemConfig\Command\ConfigSet-command, that allows to specify the type of the value. The type should be one of string, int, float and bool with string being the default.
Depending on the specified type the value would be cast to the correct type, so in your case the command would look like
php bin/console system:config:set xxx.config.yyy false --type bool

resulting in:
$value = (bool) $input->getArgument('value');

We'll happily accept a PR for that.

Hi
i dont think the type option is possible
just tried it
The "--type" option does not exist.
only sales channel, key and value exist

Oops i was not clear enough.
You are completely right it is currently not possible to set a config value over the CLI with an other type then string.
I just wanted to sketch out a possible solution, that we would happily accept as a contribution.
Otherwise i would say that the bug is pretty low on our list of priorities, so i can't guarantee the timeliness of fix.

Ah
alright
so I did indeed create a PR one day, but there where other things that would have been required from you, and i havent had time since then, so I at least wanted to make sure someone knows :D
so if the "--type" option is someone that would work for you guys, then I'll see to get some time and add it.
i have to search the old PR, i think a solution way wasn't quite clear...i cant remember :)

found it, it was this one,
there is indeed a decision that i never read :D inactivity, sorry for this
https://github.com/shopware/platform/pull/1722

Wow purely coincidental that we both proposed a similar solution, i was not aware of the old PR and the discussion there.
So i hope the way for a solution is clearer now ;)

Hello @keulinho i have made a PR to fix this #2209

Hi @Catalin-Ionut
ah perfect, i'm so full of meetings anway haha,
thank you so much for this

@keulinho Decode option merged. Can be closed,

Thanks for the hint @Zwaen91


Auto-completion not working

Hi @Ionide team
I'm new to Ionide and F#, in general, I find the plugin awesome except for my limited knowledge of the dotNET API.
The ionide plugin does a wonderful job but recently when I tried to use the following simple code, the code completion doesn't really support the methods like Pop or Push.
open System.Collections.Generic

let x = Stack<int>()

x.GetType()

x.Push(4)

Am I making some silly mistake ?
Btw, Happy new year 😄

Oh, it might be 'cos I updated it yesterday - and this morning as well. Seems to be working fine now :)
I'll close the issue, will keep you updated if I notice this again.

Oh, apparently it has something to do with *.fs files (?)

Please, enable logging as described in https://github.com/ionide/ionide-vscode-fsharp#how-to-get-logs-for-debugging--issue-reporting and post logs here.

Done, now I guess it's on auto-pilot?

Hey, so I've found that if I alter the way I initialize the collection instance it works fine in both - *.fs and '*.fsx Both of these work infsxbut only the second work works fine infs` files
open System.Collections.Generic

let s = Stack<int>()

s.Push(5)
s

let st = System.Collections.Stack()
st.Push(4)
st.

I have the same issue, and here is my debug output:

[09:39:19 DEBUG] got FSAC line, is it the started message? true
[09:39:19 DEBUG] FSAC stdout: [I] 2017-01-04T01:39:19.9742768Z: listener started in 25.017 ms with binding <IP_ADDRESS>:8541 [Suave.Tcp.tcpIpServer]
[09:39:20 INFO ] REQ (001) -> {parse}, File = "c:\Users\cu\Desktop\id.fsx"
[09:39:20 INFO ] REQ (002) -> {lint}, File = "c:\Users\cu\Desktop\id.fsx"
[09:39:20 DEBUG] RES (002) <- {lint} in 410 ms: Kind={"error"}
Data="File 'c:\Users\cu\Desktop\id.fsx' not parsed"
[09:39:20 INFO ] REQ (003) -> {parse}, File = "c:\Users\cu\Desktop\id.fsx"
[09:39:21 ERROR] RES (001) <- {parse} ERROR in 1418 ms: Error: Request failed with status code 500 Data=undefined
[09:39:21 ERROR] RES (003) <- {parse} ERROR in 1043 ms: Error: Request failed with status code 500 Data=undefined
[09:39:26 INFO ] REQ (004) -> {symboluse}, File = "c:\Users\cu\Desktop\id.fsx"
[09:39:26 DEBUG] RES (004) <- {symboluse} in 12 ms: Kind={"error"}
Data="File 'c:\Users\cu\Desktop\id.fsx' not parsed"
[09:39:27 INFO ] REQ (005) -> {tooltip}, File = "c:\Users\cu\Desktop\id.fsx"

Hi there,
I also have the same issue with the auto-completion:

I have updated all my Ionide packages.
Normally intellisense works for me.
Don't know what I'm doing wrong ...

Since the new update my intellisense is working again!
Thanks!

Yup, mine too.
Thanks!


Low performance in Redis HSet and HGetAll

Expected Behavior
A high throughput that is close to 20, 000 requests per second
Current Behavior
A throughput of only 5500 requests per second
Possible Solution
Are there any bottlenecks such as the number of connection pool threads?
Steps to Reproduce
Ubuntu version: Ubuntu 20.04.2 LTS
go-lang version:  go1.15.2 linux/amd64
Redis Version: Redis server v=5.0.7 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=636cde3b5c7a3923
In the performance test I implement the YCSB workloadA, using the parameters available in the YCSB core workload A file.
The key length is 23 bytes and the value length is 100 bytes.
The Redis server is initialized with 1000 keys using the Init() method mentioned below. I use HSET  and HGetAll methods (because they are the ones used in the YCSB original workload generator).
During the test the executeRedisApp(request string) method is called continuously, with READ and UPDATE requests. The executeRedisApp(request string) method calls  HGetAll for READ and HSet for UPDATE requests.  The key length is 23 bytes and the value length is 100 bytes.  The field in the HSet is always constant (field0)
package main

import (
	"context"
	"github.com/go-redis/redis/v8"
	"math/rand"
	"strconv"
	"strings"
)

type RedisApplication struct {
	numKeys int
	client  *redis.Client
	ctx     context.Context
}

func (redisApp *RedisApplication) Init(numKeys int) {
	redisApp.numKeys = numKeys
	redisApp.ctx = context.Background()
	redisApp.client = redis.NewClient(&redis.Options{
		Addr:     "<IP_ADDRESS>:6379",
		Password: "", // no password set
		DB:       0,  // use default DB
	})
	redisApp.client.FlushAll(redisApp.ctx)

	for i := 0; i < redisApp.numKeys; i++ {
		redisApp.client.HSet(redisApp.ctx, Get23LengthRecord(i),
			"field0", Get100LengthValue(),
			"field1", Get100LengthValue(),
			"field2", Get100LengthValue(),
			"field3", Get100LengthValue(),
			"field4", Get100LengthValue(),
			"field5", Get100LengthValue(),
			"field6", Get100LengthValue(),
			"field7", Get100LengthValue(),
			"field8", Get100LengthValue(),
			"field9", Get100LengthValue())
	}

}

func (redisApp *RedisApplication) executeRedisApp(request string) string {
	// request pattern: UPDATE/READ:key:field:value
	op := strings.Split(request, ":")[0]
	key := strings.Split(request, ":")[1]
	field := strings.Split(request, ":")[2]
	value := strings.Split(request, ":")[3]
	if op == "READ" {
		redisApp.get(key)
	} else if op == "UPDATE" {
		redisApp.update(key, field, value)
	}
	return request
}

func (redisApp *RedisApplication) get(key string) map[string]string {
	rslt, _ := redisApp.client.HGetAll(redisApp.ctx, key).Result()
	return rslt
}

func (redisApp *RedisApplication) update(key string, field string, value string) {
	redisApp.client.HSet(redisApp.ctx, key, field, value)
}

func Get100LengthValue() string {
	str := strconv.Itoa(rand.Intn(10))
	size := len(str)
	for size <= 100 {
		str = strconv.Itoa(rand.Intn(10)) + str
		size = len(str)
	}
	return str
}

func Get23LengthRecord(i int) string {
	str := strconv.Itoa(i)
	size := len(str)
	for size <= 19 {
		str = "0" + str
		size = len(str)
	}
	return "user" + str
}

Context (Environment)
The code runs without any error, and achieves a throughput of 5500 ops/second. However, this is significantly lower than the go-redis benchmarks.
To find the bottleneck (and to make sure that redis-server is not the bottleneck) I ran the redis-benchmark
Command: redis-benchmark
Output
===== HSET ======
  100000 requests completed in 1.68 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

99.78% <= 1 milliseconds
100.00% <= 2 milliseconds
100.00% <= 2 milliseconds
59453.03 requests per second

As you can see, the Redis throughput is extremely high.
Any thoughts about why this is happening?
Thanks

From what I see you are using a single thread/goroutine with many large keys, but redis-benchmark uses 50 parallel clients and 3 bytes payload.

@vmihailenco
Thanks for the reply
Yes you are correct, I am using a single thread
Is 5050 Ops/second the maximum throughput go-redis can handle?
Regards

Using a single thread, a higher throughput can be achieved by using Pipeline
pipe := redisApp.client.TxPipeline()
		for i := 0; i < len(requests); i++ {
			request := requests[i]
			// request pattern: UPDATE/READ:key:field:value
			op := strings.Split(request, ":")[0]
			key := strings.Split(request, ":")[1]
			field := strings.Split(request, ":")[2]
			value := strings.Split(request, ":")[3]
			if op == "READ" {
				pipe.HGetAll(redisApp.ctx, key)
			} else if op == "UPDATE" {
				pipe.HSet(redisApp.ctx, key, field, value)
			}
		}
              _, _ = pipe.Exec(redisApp.ctx)


Repo site is currently down

Main page is 404 currently and bonelab in game mod downloading with mod networker is stopped.

I'm aware, sorry, i had to restart my server and the mod repo wasn't on autostart

Seems to have a new issue, site says too many redirects and isnt found in game

back up again


when i install react-gantt something was wrong,but my global react version is 15.4.2

error code EPEERINVALID
1722 error peerinvalid The package<EMAIL_ADDRESS>does not satisfy its siblings' peerDependencies requirements!
1722 error peerinvalid Peer<EMAIL_ADDRESS>wants<EMAIL_ADDRESS>1722 error peerinvalid Peer<EMAIL_ADDRESS>wants<EMAIL_ADDRESS>1722 error peerinvalid Peer<EMAIL_ADDRESS>wants<EMAIL_ADDRESS>|| ^15.0.0-0 || ^16.0.0-0
1722 error peerinvalid Peer<EMAIL_ADDRESS>wants<EMAIL_ADDRESS>|| ^15.0.0
1722 error peerinvalid Peer<EMAIL_ADDRESS>wants<EMAIL_ADDRESS>|| ^0.14 || ^15.0.0
1722 error peerinvalid Peer<EMAIL_ADDRESS>wants<EMAIL_ADDRESS>|| ^15.0.0
1722 error peerinvalid Peer<EMAIL_ADDRESS>wants<EMAIL_ADDRESS>

I'm in the process of a major refactor of the codebase. Hopefully, this will end up fixing it.
https://github.com/jamrizzi/react-gantt/tree/jamrizzi/major-refactor
I should have the refactor finished by the end of May.


TINKERPOP-1003 Setting up latest/current links for bins and docs.

https://issues.apache.org/jira/browse/TINKERPOP-1003
Update "current" links as part of bin/publish-docs.sh.
VOTE: +1

The travis build failure doesn't seem to have anything to do with this change. My initial test of this on 3.2.1-SNAPSHOT docs worked when "current" did not exist thus creating it and pointing at 3.2.0-incubating. A second test also worked where a build of 3.1.3-SNAPSHOT docs published but didn't change "current" from pointing at 3.2.0-incubating. The only piece i haven't covered is an actual deployment of an official release. I suppose we won't know for sure if that's all good until we deploy 3.2.1/3.1.3 officially.
Anyway - this is really good stuff. Thanks @dkuppitz
VOTE +1

Cool. VOTE +1.
SIDENOTE: With the inclusion of the "Planet TinkerPop" material in the site, there are lots of links throughout. We should go through and make sure all those are current/.

We should go through and make sure all those are current/.

i did that this morning

@okram Did you try the script? From experience I can tell that OSX often has some archaic versions of  various bash tools. I'm especially concerned about sort -rV.
Please let me know if either the whole script or the following single (read-only) command works for you:
svn list https://svn.apache.org/repos/asf/incubator/tinkerpop/site/docs/ | tr -d '/' | grep -v SNAPSHOT | grep -Fv current | sort -rV

If it does, I will merge the PR. If not, well ....

I confirm that Mac OSX is happy with:
~/software/tinkerpop/site$ svn list https://svn.apache.org/repos/asf/incubator/tinkerpop/site/docs/ | tr -d '/' | grep -v SNAPSHOT | grep -Fv current | sort -rV
3.2.0-incubating
3.1.2-incubating
3.1.1-incubating
3.1.0-incubating
3.0.2-incubating
3.0.1-incubating
3.0.0.M9-incubating
3.0.0.M8-incubating
3.0.0-incubating


New Devices (Z-Wave Switch) Shelly Metering Switch(s)

Check all that apply
Type of Change

[X] WWST Certification Request
[ ] Bug fix
[ ] New feature
[ ] Refactor

Checklist

[X ] I have performed a self-review of my code
[ ] I have commented my code in hard-to-understand areas
[ ] I have verified my changes by testing with a device or have communicated a plan for testing
[ ] I am adding new behavior, such as adding a sub-driver, and have added and run new unit tests to cover the new behavior

Description of Change
This change is for a WWST submission for Shelly devices that use the same profile. The devices are:

ModelNumber: QNSW-001P16US
ModelNumber: QNSW-002P16AU
ModelNumber: QMSW-0A1P8AU
ModelNumber: QPSW-0A1P16AU
ModelNumber: QPSW-0A2P16US

Summary of Completed Tests
This will be tested as part of the WWST Process

Closing this PR as a duplicate of https://github.com/SmartThingsCommunity/SmartThingsEdgeDrivers/pull/1192. 1192 has better handling of the devices with multiple endpoints.


Powering off DPS in the calibration routine causes it to fail

This is a bug pertaining to the calibration routine discovered in #120.
I tested it by using a variable power supply as the input of my DPS5005. However, if the user wishes to use two fixed input voltages for calibration this would require them to power down the DPS between the two input voltage readings.
I suspect that the python calibration routine does not account for this. I should be able to reproduce this quite easily and fix it

I had this exact issue, before I realized I had to go back to the settings screen for the calibration to work correctly. I think it would be sufficient to simply change to the settings screen again after typing the second input voltage value.


Update cmd_ban_appeal_reactions.py to log reactions

I don't think logging reactions will be of much use in the program. As mentioned in discord too, a veto / unbanning implementation isn't quite in the scope of Rina.
The to-do list has some nice ideas, but I feel like using buttons and updating a message makes it unnecessarily complicated. With reactions, the score is easy to see. Otherwise, Rina has to send a message below the ban appeal message so she has a message to keep the score, and Rina will have to keep track of reaction update events to update this message. That may lead to issues if Rina is ever offline or slow, since that means the message may never send, or reactions won't update the info message.


Update proposal doc with changes

Add updates to the proposal doc to reflect changes that have been made throughout the project development

Still in need of update

I added the system architecture diagram to the proposal doc and added an amendments section to the end to show what element have changed since the proposal's creation


Add hdinsight/resource-manager/readme.typescript.md

Autogenerated

Automation for azure-sdk-for-python
Encountered an unknown error: (azure-sdk-for-python)
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/azure_devtools/ci_tools/github_tools.py", line 33, in exception_to_github
    yield context
  File "/usr/local/lib/python3.6/dist-packages/swaggertosdk/restapi/github.py", line 168, in rest_handle_action
    return rest_pull_open(body, restapi_repo, sdk_pr_target_repo, sdkbase, sdk_tag)
  File "/usr/local/lib/python3.6/dist-packages/swaggertosdk/restapi/github.py", line 178, in rest_pull_open
    rest_pr_management(rest_pr, sdk_pr_target_repo, sdk_tag, sdk_default_base)
  File "/usr/local/lib/python3.6/dist-packages/swaggertosdk/restapi/github_handler.py", line 151, in rest_pr_management
    sdk_tag=sdk_tag
  File "/usr/local/lib/python3.6/dist-packages/swaggertosdk/SwaggerToSdkNewCLI.py", line 310, in generate_sdk_from_git_object
    sdk_repo.git.push('origin', branch_name, set_upstream=True)
  File "/usr/local/lib/python3.6/dist-packages/git/cmd.py", line 548, in <lambda>
    return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/git/cmd.py", line 1014, in _call_process
    return self.execute(call, **exec_kwargs)
  File "/usr/local/lib/python3.6/dist-packages/git/cmd.py", line 825, in execute
    raise GitCommandError(command, status, stderr_value, stdout_value)
git.exc.GitCommandError: Cmd('git') failed due to: exit code(1)
  cmdline: git push --set-upstream origin restapi_auto_generated/hdinsight-2018-10-11-360
  stderr: 'To https://github.com/Azure/azure-sdk-for-python.git
 ! [rejected]            restapi_auto_generated/hdinsight-2018-10-11-360 -> restapi_auto_generated/hdinsight-2018-10-11-360 (fetch first)
error: failed to push some refs to<EMAIL_ADDRESS>hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.'

Can one of the admins verify this patch?

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-node

Automation for azure-sdk-for-go


vagrant: convert branch name '/' to '-' when used in log file name

error:  when doing test with a branch contains "/" in name, script fails to get log file
17:17:18 + tee /home/vagrant5/workspace/VagrantPlaybookCheck/OS/CentOS7/label/vagrant/adoptopenjdkPBTests/logFiles/zdtsw.fix/dockerrole.CentOS7.log
17:17:18 tee: /home/vagrant5/workspace/VagrantPlaybookCheck/OS/CentOS7/label/vagrant/adoptopenjdkPBTests/logFiles/zdtsw.fix/dockerrole.CentOS7.log: No such file or directory

above case the branch is "fix/docerrole"
Checklist

[x] commit message has one of the standard prefixes
[ ] faq.md updated if appropriate
[ ] other documentation is changed or added (if applicable)
[ ] playbook changes run through VPC or QPC (if you have access)
[ ] for inventory.yml changes, bastillion/nagios/jenkins updated accordingly

https://ci.adoptopenjdk.net/job/VagrantPlaybookCheck/1430/ looks ok - the Ubuntu 21.04 has got past the failing point but I'll let it run through to completion before approving/merging.

https://ci.adoptopenjdk.net/job/VagrantPlaybookCheck/1430/ looks ok - the Ubuntu 21.04 has got past the failing point but I'll let it run through to completion before approving/merging.

think the comments is intended for https://github.com/adoptium/infrastructure/pull/2579 :)


Hashtags are removed from tweet

Even inadvertent ones:
(rn(0,6)).a({rx:9,ry:2,cx:(d,i)=>2i+150s(t/4e2)}).y({fill:d=>'#'+String.fromCharCode(70-d)+'13',stroke:'#C13'}) https://t.d3fc.io
The stroke code is not parsed on the website.

Should note that this works in the playground, so is most likely just a parsing error.

The implementation currently strips everything which Twitter defines as an entity and then attempts to parse the result using babel. If this is successful it makes it on to the site.
The entity stripping is done as an easy and reliable way of removing any leading or trailing @mentions, #hashtags or other URLs.
Currently the only way around this would be to split the string after the # e.g. stroke:'#'+'c13'.
I don't think I'm going to change the behaviour because it's an easy rule to understand. However, it is annoying that the playground doesn't also implement this functionality. Not sure of a good way of copying the behaviour though.


Install guideline for OS X / macOS

Using wget as download method would never work on a clean macOS machine since it doesn't ship with wget (you'll need homebrew for wget).
Curl however, does come out of the box so I changed it to download over curl and unzip once completed.

Really good point, thanks!

...though now that I tried it (on El Capitan at least) unzip just spits its usage info at me. Might have a different version of it, though, lots of mileage on this system already.
Since most people doing this will know how to uncompress files, I wonder if we should just change it to something like:

Download and unzip the latest image

So we aren't responsible for people (like me ;) having all kinds of non-standard utilities installed?

Hmm would perhaps be better since this would be the most foolproof. People wanting to download with wget/curl will probably already know how to do it anyway.

Done, thanks for the feedback!


Requirement of an empty directory for unpacking .msapp file

It appears that there is a requirement when unpacking an .msapp file that the destination folder must be empty of all files, or contain a 'CanvasManifest.json' file (see here). Is there any way to not make this a requirement?  I would like to extract the contents of the app at the root folder of an existing Visual Studio project which will always contain at the very least the '.csproj' file.  In order to work around this limitation I would need to extract the contents into a sub-folder which would make the project structure not as convenient.
Another suggestion might be to make an exception if the only file in the folder is a project file?

Any thoughts on this?

Bueller... Bueller...  Is this project still being maintained?

Thank you @StevenRasmussen for the suggestion & the PR. We're not accepting enchancements at this time to focus on stabilizing the pack\unpack component. I've labeled it as an "enhancement" so we can come back to this after we've stabilized to discuss the impact of your change & potentially pull it in at that time.

@jt000 - Checking in on this a year and half later.  Any updates?

@StevenRasmussen Thanks for following up. Project is active, we are working on a new approach for the YAML serialization of canvas app.
We are not addressing your specific scenario, but do you have more details on your use case? How are you using the msapp with the csproj or with the Dataverse solution?
Does pac solution unpack --processCanvasApps  address your scenario?


Error when Building a Unit

This replay shows an error occurring on Day 14, when P2 (Pink) builds a Medium Tank at the top-center base.
Curiously, another Medium Tank was built on Day 15 at the same base, but the same error does not occur.
System.Collections.Generic.KeyNotFoundException: The given key '116' was not present in the dictionary.
   at AWBWApp.Game.Game.Logic.GameMap.RegisterDiscovery(DiscoveryCollection collection)
   at AWBWApp.Game.API.Replay.Actions.BuildUnitAction.PerformAction(ReplayController controller)+MoveNext()
   at AWBWApp.Game.Game.Logic.ReplayController.Update()

Vs Von Bolt.zip

Looks like a crash due to a unit discovering a pipe that turned into rubble.
I should hopefully have a fix out by tomorrow.

Was fixed with 509b0bcf380d7bd694ca7497580d521fa7fd2ca8.


Fix loading of librdkafka dependencies in .NET Framework

Fix #115 : make 0.9.4 as min version (for producev even if it's not used for now)
We may want to have fallbacks, but for now this will help to not have people targeting Internal.Rdkafka 0.9.1 I think only 0.9.2 is a minimum for now (with flush). Perhaps we could add an attribute on each method in NativeMethods to say what is the minimal supported version and what version are deprecated (for example due to a bug) We could then parse them all when starting given the version loaded and provide some logs on this. This would be an other enhancement though
Fix #145 #72 : now load with LoadLibraryEx with a custom flag so that dependencies are searched in the same folder (this was not the case for msvcr120.dll) Also throw a more meaningful exception

Because we're referencing librdkafka.redist, I think it's fine to even require the specific version we reference (which will be is 0.9.5 for the imminent release), but 0.9.4 is all we need.
Other changes look good in theory. If they work on all the systems I test on, I'll assume they are a step forward and merge.
thanks!

I only tested it on my windows 10 and appveyor (which is also windows server 2016) - but as we don't officialy support mono and it's only for net45, I didn't do much more. The flag should be supported on all windows platform given msdn documentation.

Ok, LGTM.


added a .gitpod.yml

Relevant Issues

Closes #611

Description

Adds a .gitpod.yml  file that automatically installs Python 3.9.6, poetry and installs poetry dependencies.
Did you:

[x] Join the Python Discord Community?
[x] Read all the comments in this template?
[x] Ensure there is an issue open, or link relevant discord discussions?
[x] Read and agree to the contributing guidelines?

Hi, given the changes that this makes, I believe policy is to squash them into one commit.
View https://pythondiscord.notion.site/Squashing-a-Pull-Request-191e8efa2fbb4d72840fd17ca37cf7fa for how to do that.

Hi, given the changes that this makes, I believe policy is to squash them into one commit.
View https://pythondiscord.notion.site/Squashing-a-Pull-Request-191e8efa2fbb4d72840fd17ca37cf7fa for how to do that.

squashed

I have a comment on the extensions installed, too. I think this should be
installing the python and pylance extension, at minimum.

@onerandomusername I'll work on that later


ExpectedEquipment :: temperature

No default value defined in the ONF CoreIM.
Currently, §32 of chapter 9 of the TransmitterEquipment Spec. says that ExpectedEquipment :: temperature shall not be represented.
The YANG module generated from the ONF CoreIM is structured in such a way that ExpectedEquipment and ActualEquipment share the same set of attributes.
If the definition of the ExpectedEquipment :: operationalState would be defined in such a way that a smaller number of attributes would be compared and representing all attributes would no longer be excluded in §32,
and if we would agree that it is not reasonable to define a temperature at an expected equipment,
we should define a value to be permanently represented.
Potential Proposal:
If the mentioned changes would be made, §32 of chapter 9 of the TransmitterEquipment Spec shall be complemented with the following statement "Whenever the ExpectedEquipment :: temperature is represented it should have "" (empty Sting) as a read-only value."

Has been updated in Equipment_3.0.0-tsi.240515.1100+spec.1.doc


Transfer-Encoding header converted to Content-Length header

When posting data using Transfer-Encoding: chunked
The json response of /post contains a Content-Length header and no sign of Transfer-Encoding headers.
Tested using curl
(data file was generated using dd if=/dev/random of=data bs=1 count=100)
$ curl -v -X POST  --header "Transfer-Encoding: chunked" -d @data http://httpbin.org/post
* Hostname was NOT found in DNS cache
*   Trying <IP_ADDRESS>...
* Connected to httpbin.org (<IP_ADDRESS>) port 80 (#0)
> POST /post HTTP/1.1
> User-Agent: curl/7.37.1
> Host: httpbin.org
> Accept: */*
> Transfer-Encoding: chunked
> Content-Type: application/x-www-form-urlencoded
>
> 44
* upload completely sent off: 75 out of 68 bytes

And response
< HTTP/1.1 200 OK
* Server nginx is not blacklisted
< Server: nginx
< Date: Wed, 20 May 2015 09:33:02 GMT
< Content-Type: application/json
< Content-Length: 636
< Connection: keep-alive
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
<
{
  "args": {},
  "data": "",
  "files": {},
  "form": {
    "#\ufffd\u0013\ufffdX\ufffd\ufffdl\ufffd\u0003\ufffdb\u0516Yv\u0006\ufffd": "",
    "\ufffd|\ufffdE\u0002\ufffd\ufffd\ufffdp}\ufffd\u00fc\ufffd\u0007\ufffdnM\ufffd'F\ufffd\ufffd\u0010>\ufffd\u0018n\ufffdB\ufffd\u0570\ufffd\ufffd": "\ufffdQ\u001d\u0003\ufffd\ufffd,\ufffd\ufffdS\u0677\ufffd"
  },
  "headers": {
    "Accept": "*/*",
    "Content-Length": "68",
    "Content-Type": "application/x-www-form-urlencoded",
    "Host": "httpbin.org",
    "User-Agent": "curl/7.37.1"
  },
  "json": null,
  "origin": "a.b.c.d",
  "url": "http://httpbin.org/post"
}
* Connection #0 to host httpbin.org left intact

So cURL is doing the right thing:
~ nc -l 8080
POST / HTTP/1.1
User-Agent: curl/7.37.1
Host: localhost:8080
Accept: */*
Transfer-Encoding: chunked
Content-Type: application/x-www-form-urlencoded

29
sEi��L�@�L�tfU�`�QCs�uL����qWB=2h��s
0

That's what I see when I set up netcat and then do curl -v -X POST  --header "Transfer-Encoding: chunked" -d @data http://localhost:8080 with random data.
That rules out the idea that cURL might be doing something unexpected. So then I ran httpbin locally, e.g.,
~ git clone https://github.com/Runscope/httpbin
~ mkvirtualenv httpbin
~ cd httpbin
~ pip install -e .
~ python -m httpbin.core

And saw
~ curl -v -X POST  --header "Transfer-Encoding: chunked" -d @data http://localhost:5000/post
* Hostname was NOT found in DNS cache
*   Trying ::1...
* connect to ::1 port 5000 failed: Connection refused
*   Trying <IP_ADDRESS>...
* Connected to localhost (<IP_ADDRESS>) port 5000 (#0)
> POST /post HTTP/1.1
> User-Agent: curl/7.37.1
> Host: localhost:5000
> Accept: */*
> Transfer-Encoding: chunked
> Content-Type: application/x-www-form-urlencoded
>
> 29
* upload completely sent off: 48 out of 41 bytes
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Content-Type: application/json
< Content-Length: 374
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
< Server: Werkzeug/0.10.4 Python/2.7.8
< Date: Thu, 21 May 2015 05:16:19 GMT
<
{
  "args": {},
  "data": "",
  "files": {},
  "form": {},
  "headers": {
    "Accept": "*/*",
    "Content-Length": "",
    "Content-Type": "application/x-www-form-urlencoded",
    "Host": "localhost:5000",
    "Transfer-Encoding": "chunked",
    "User-Agent": "curl/7.37.1"
  },
  "json": null,
  "origin": "<IP_ADDRESS>",
  "url": "http://localhost:5000/post"
}
* Closing connection 0

Which means that httpbin as an app does not have any problem detecting the chunked transfer-encoding and sets Content-Length to be an empty string (which is arguably a bug). That said, the behaviour you're seeing is with httpbin.org which is run on Heroku. This seems like a bug in their proxy service that sits between you and httpbin the app. This seems to firmly be a bug on Heroku's end.

Thanks for the quick checkup. I agree that it's a bug in their service

It seems like it is an implementation choice of Heroku rather than a bug.

Unlike Content-Encoding (Section <IP_ADDRESS> of [RFC7231]),
Transfer-Encoding is a property of the message, not of the
representation, and any recipient along the request/response chain
MAY decode the received transfer coding(s)
https://tools.ietf.org/html/rfc7230#section-3.3.1


Share port to real OS

Hello everyone
How can I forward mongo port (27017) to a real OS to localhost?
I try to do this, but I had not succeed:
  mongo:
    image: 'mongo:latest'
    restart: always
    expose:
      - 27017
    ports:
      - 27017:27017
# ......

If this is a Docker Compose YAML file, then the - 27017:27017 line should be sufficient. I tend to enclose mine in quotes, but I presume it is not necessary.
I would say the issues list for this container is not the best place for general Docker Compose questions. Would you ask this on Stack Overflow or somewhere similar? You may need to add more detail though, since what you have here should work.
Note also that the image you are referring to is not mvertes/alpine-mongo - presumably mongo is the one from the official Mongo project?

The question is not related to this docker image


file protocol link does not support parent path

following works:
// file://./add.ts
// file://./_internal/minus.ts

but following not work:
// file://../(main)/_utils.ts

file tree:
src
├─ (main)
│  └─ _utils.ts
└─ libs
   ├─ _internal
   │  └─ minus.ts
   ├─ add.ts
   └─ index.ts

reproduce repo: https://github.com/tjx666/issue-code-file-protocol
version:
Version: 1.95.1 (Universal)
Commit: 65edc4939843c90c34d61f4ce11704f09d3e5cb6
Date: 2024-10-31T05:14:54.222Z
Electron: 32.2.1
ElectronBuildId: 10427718
Chromium: 128.0.6613.186
Node.js: 20.18.0
V8: 12.8.374.38-electron.0
OS: Darwin arm64 24.1.0

I even can't write a extension to implement this, seems had been intercepted by vscode builtin link handler.


Flare RT and Varia 515 Taillights

Hi,
I installed the app on garmin edge 840. Everything works, except one thing.
Is it possible to connect flare rt and varia taillights and configure them using this app? I would like to disable varia light, keep radar on and control flare rt light mode.
When I connect varia using light network settings (via garmin settings) I receive error 3 code on Smart bike lights data screen. When I remove it from the lights and keep it only as a radar everything is ok.

Hi,
If you want to just control flare RT with the Smart Bike Lights then you need to specify the serial number when creating the configuration in the Lights Configurator. If you would like to control both lights then you will have to install also "Smart Bike Lights #2" data field and setup one light per data field. You can also check the documentation for controlling multiple lights of the same type: https://github.com/maca88/SmartBikeLights#control-multiple-lights-of-the-same-type


Fix the output macros.measure with backendV2

Summary
In the process of working on https://github.com/Qiskit/qiskit-terra/pull/9501, the output of measure_v1 and measure_v2 don't match.
This is the PR for this fix.
Details and comments

modify some codes about _measure_v2
add some test codes that confirms the consistency of outputs between measure_v1 and measure_v2

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
6 unchanged lines in 4 files lost coverage.
Overall coverage decreased (-0.003%) to 85.927%

Files with Coverage Reduction
New Missed Lines
%

crates/qasm2/src/expr.rs
1
93.76%

qiskit/pulse/macros.py
1
94.44%

qiskit/transpiler/passes/synthesis/unitary_synthesis.py
1
90.25%

crates/qasm2/src/lex.rs
3
91.9%

Totals

Change from base Build<PHONE_NUMBER>:
-0.003%

Covered Lines:
71143

Relevant Lines:
82795

💛  - Coveralls

Thanks Jake. I don't think we can add this to 0.24.1 because of the tight deadline. 0.24.2 sounds good to me :)


React Native 0.70.1 on IOS 16 Scanner close itself

Hi,
first, let me say that we love your lib!!! ❤
we can't figure out what the issue is there are no logs (in js), or extra data just this video:
the code is super simple
    console.log('BEFORE!!!!!!'); //gets called
    const { scannedImages } = await DocumentScanner.scanDocument();
    console.log('AFTER!!!!');  //doesn't gets called
we added try catch but no error gets thrown
we do have camera permissions
it worked once but it doesn't anymore
https://user-images.githubusercontent.com/81741523/207322587-7320db22-baa5-4496-9839-7fadd7a170ee.MP4
any suggestion on how to proceed?

That usually happens when you don't add camera permissions

we do have access...

here it the log  from xcode 2022-12-13 15:57:08.704911+0200 Laguna[2343:737625] Unbalanced calls to begin/end appearance transitions for <RCTModalHostViewController: 0x11568fd40>.


Vulkan: SubViewports not functioning unless update mode is set to "Always"

Bugsquad note: This issue has been confirmed several times already. No need to confirm it further.

Godot version
v4.0.dev.calinou [cf67f18ce]
System information
Linux KDE Neon, Vulkan, NVIDIA GeForce GTX 1050 Ti, Driver Version: 470.63.01
Issue description
I cannot seem to make Subviewports work in any shape or form. The error message Uniforms were never supplied for set (3) at the time of drawing, which are required by the pipeline is continuously popping up. I have tried with both 2D and 3D objects in the viewports, however none seem to work.
Are others able to reproduce this effect?
Steps to reproduce

Setup a basic 3D scene
Add a SubViewport node
Set nodes as its children (Camera, UI control, or others)
The viewport display is black and rendering the viewport as a texture will also not work.

Minimal reproduction project
No response

Same here. I initially figured they just weren't implemented yet, but good to hear others are having the same issue.

Other people have gotten SubViewports to work on master, such as in https://github.com/godotengine/godot/issues/40651 and https://github.com/godotengine/godot/issues/54122.

@Leakbang I had the same problem (black display) until i switch the "update mode" in the "Render target" of the SubViewport to "Always". I'm not sure this fixes your problem, but maybe give it a try.

I did try setting the "update mode" to "Always" but it didn't make any difference for me.

I retried this on v4.0.dev.calinou [e31138958], and setting the update mode to Always does not fix the issue.

I just discovered the existence of UPDATE_WHEN_PARENT_VISIBLE. This should be the default option in SubViewport probably. UPDATE_WHEN_VISIBLE makes sense only for Window viewports and won't work as expected for typical usage.

Actually no, UPDATE_WHEN_VISIBLE uses render_target_was_used() method, which never returns true. UPDATE_WHEN_PARENT_VISIBLE checks parent Viewport actually.

Just wanted to chime in here as well - setting the update mode to Always doesn't fix the issue for me either. #28174d531b

In alpha 1, 2D subviewports seem to work, but 3D don't. The resulting texture is either all black or all magenta

In alpha 1, 2D subviewports seem to work, but 3D don't. The resulting texture is either all black or all magenta

not for me

Is setting size_2d_override_stretch making it work for anyone else?

Same issue by me, but render target mode is always. 3d is still not working.
Node tree

Output

When i move it an split controller and change the offset of the split controllers it works.
U can see here:

Hm, so it seems forcing an update/resize might do the trick? Thanks for the tip...

Yeah its looks like that the subviewport size are not setted right by the viewport container. if u do it manualy it works.

Small hack which fix the issue:
`ublic override void _EnterTree()
{
        var origSize = this.GetParent<SubViewportContainer>().Size;
        this.Size = new Vector2i((int)origSize.x, (int)origSize.y);

}`

I think the issues comes inside the code. The SubViewportContainer is set the size of the SubViewport (Vector2 to Vector2i) -> something here is broken

The following line seems to do nothing:
render_target_clear_mode = SubViewport.CLEAR_MODE_NEVER
I've been trying to draw on top of my last frame to no avail. As a minimal test, I have a subviewpoint set to clearMode NEVER, with a single colorRect with the following script:
func _process(delta):
color = $"../../../resources".random_color()
color.a = randf()
position = Vector2(randi() % 384, randi() % 256)
size = Vector2(randi() % 64, randi() % 64)
update()
The result is a new rectangle every frame, rather than a rectangle being added to the render target every frame.

I wanted to place output of secondary Camera3D onto MeshInstance3D (PlaneMesh).

Scene layout is really simple

I wrote simple shader that maps input texture onto plane based on screen UV.
shader_type spatial;
render_mode unshaded;

uniform sampler2D viewport_texture : hint_albedo;

void fragment() {
	vec4 n_out4p0 = texture(viewport_texture, SCREEN_UV);
	ALBEDO = vec3(n_out4p0.xyz);
}

And then I assigned this shader to OutputPlane as a ShaderMaterial and set that single shader param as a ViewportTexture pointing to my SubViewport.

But all I've got it is a pink texture both in editor and in-game

As of 4.0.alpha.calinou.ce4326df7, I've managed to make it work, but it requires all conditions to be met:

SubViewport must have both size and size_2d_override to be set;
SubViewport must be render_target_update_mode = ALWAYS;
OutputPlane's viewport_texture must be grabbed with viewport.get_texture() directly from viewport (done via script attached to plane).

This is how viewport texture is assigned
extends MeshInstance3D

@export var viewport: NodePath;
@onready var _viewport = get_node(viewport)

func _ready():
	var m: ShaderMaterial = mesh.surface_get_material(0);
	m.set_shader_param("viewport_texture", _viewport.get_texture())

Note: w/o 3rd workaround (i.e. when shader's viewport_texture assigned from editor) shader works properly in editor, but still shows pink color in-game. Also 3rd workaround is not required when SubViewport is placed in SubViewportContainer.

Thanks for the workaround, I'll try it, as I still have the pink issue on my mirror mesh.

IriaSomobu's solution works for me

Confirming the workaround works.

Just to update this - I'm still seeing weirdness with pink output like @sboron in the latest master as of time of posting. Setting update / clear modes doesn't seem to help.

I noticed that if I change the size property of the SubViewport, I won't have this problem. So it may be that the necessary steps in setting the size were not performed. Maybe we should set the size in the constructor of SubViewport.

Expanding on @Rindbee's comment, the following seemed to work:
extends SubViewport

func _ready():
	set_size(size)

For me what ended up working was deleting the shader and material off the filesystem, re-saving the scene I was working on, and ticking 'local to scene' on those same resources. Then I could assign a new viewporttexture (which was automatically local to the scene) in the shader's parameters and it worked!

Update on this issue, it appears that the resize workaround is no longer needed since https://github.com/godotengine/godot/pull/68358 The only issue that remains here is that the update mode "When Visible" is not working. I'm looking into this now. All other update modes are working.

I'm still getting tih sbug in v4.0.2. Fiddling with the settings as proposed previously in this thread didn't help.

I am seeing this on Mac OS Arm64 4.0.3 version of Godot. It looks like setting the texture programmatically makes it work for me actually.
self.plane1.mesh.material.set_shader_parameter("portal_texture", viewport2.get_texture())

I am seeing this on Mac OS Arm64 4.0.3 version of Godot. It looks like setting the texture programmatically makes it work for me actually.
self.plane1.mesh.material.set_shader_parameter("portal_texture", viewport2.get_texture())

Just adding that I am seeing this in Godot v4.2.1 stable version of Godot, on Arch Linux using the official binaries. What nvanfleet wrote seems to be a workaround for this, so it looks like the issue is something to do with using viewport textures from the scene compared to when it's programmatically added 🤷

I'm getting this issue as well. Godot v4.2.1 stable. Using Debian 12 KDE X11.

I am seeing this on Mac OS Arm64 4.0.3 version of Godot. It looks like setting the texture programmatically makes it work for me actually.
self.plane1.mesh.material.set_shader_parameter("portal_texture", viewport2.get_texture())

Can you provide the full script example? I put this blindly into a script on the subviewport and it clearly needs more setup to work...

I am seeing this on Mac OS Arm64 4.0.3 version of Godot. It looks like setting the texture programmatically makes it work for me actually.
self.plane1.mesh.material.set_shader_parameter("portal_texture", viewport2.get_texture())

Can you provide the full script example? I put this blindly into a script on the subviewport and it clearly needs more setup to work...

Your mesh should have a material. That material should be a shader. That shader should have a uniform sampler2D with the name "portal_texture". The issue described here, is that setting it in the Engine GUI doesn't work(I.E. clicking the material and clicking the subviewporttexture youw ant), but if you pass it programmatically it does work. I haven't had the time(or a use case) to look into whether this affects other things you can pass a viewport texture to.
This line of code needs to be adapted to get the correct material, and set the correct shader parameter and get the viewport texture. More information needed to point out what you're doing wrong

I'm getting this issue as well. Godot v4.2.1 stable. Using Fedora 39 Gnome, none of the above suggestions are working for me.


landmark jitter problem

Can you solve the landmarks jittering problem ? Or what else I can do for dealing with it. Thanks.

I would use a kalman filter to smooth it over time.  Something like this is
good: http://dlib.net/algorithms.html#momentum_filter

@davisking when should momentum_filer be used? I detect landmarks on live camera by sending every frame img dlib::full_object_detection shape = sp(img, oneFaceRect), and it is jittering if I smile too sharply, or when my eyes are almost closed, but I don't move at all.

@davisking I mean when should I call the function momentum_filter() ? I've tried after and before dlib::full_object_detection shape = sp(img, oneFaceRect), but it seems to give no effect.

momentum_filter is a class, not a function, so you don't just call it. You need to read the documentation.  I'm not going to paste the documentation into the github issue.  If you follow the link I posted earlier you can read all about it.

@davisking Do we have any example to use the mememtum_filter class?

You can find out the answer to this by looking at the documentation or going into the example folder and typing grep momentum_filter *.cpp.

I tried this before writing here. I couldn't find anything related to "momentum_filter" inside dlib/examples folder. I'm using v19.9 release. Am I missing something?
I'm currently going through the documentation http://dlib.net/algorithms.html#momentum_filter but had no luck with any examples so far.
Thank you.

I also tried in v19.17 release, nothing related to "momentum_filter" inside dlib/examples folder.

Right, there aren’t any :)

@davisking I referred to class rect_filter which uses momentum filter. Looks straight forward. Thanks for your inputs. I'll also submit an example of momentum_filter if possible.
Thank you.


[Feature request]: Dual Cam Solo Video Doorbell E340 (T8214T11)

Describe the solution you'd like
Looks like this is a new device that pulls away from the HomeBase requirement for doorbell support. I've picked one up to give it a shot. There's limited information available though except that it looks like it connects over 2.4G wifi and can use the HomeBase for additional storage. I'm wondering if this has better RTSP support.

+1

+1 Would be great, when the new Doorbell works with ioBroker

Note that there was a similar earlier request in issue #387, merge them?

+1 ;) thank you for your good work

+1

+1

May be solved by https://github.com/bropat/eufy-security-client/pull/406?


Repo build issues

From @kong0329:

Hi Raj,
I have questions about magma_cgra.

When I run python cb/cb_wrapper_main.py test_cb/cb.vp command, an error occurs.

  File "cb/cb_wrapper_main.py", line 6, in <module>
    from cb.cb_wrapper import define_cb_wrapper
ModuleNotFoundError: No module named 'cb.cb_wrapper'; 'cb' is not a package```

I suspected that same name of package name(cb) and module name(cb.py) so removed cb.py and tried again.
Now I get this error.

  File "cb/cb_wrapper_main.py", line 6, in <module>
    from cb.cb_wrapper import define_cb_wrapper
ModuleNotFoundError: No module named 'cb'```

Could you let me know how to resolve it?

This is to make sure what I understood about magma_cgra is correct.
<Let's say we design new module X>
a. Implement X.vp (Genesis generator file)
b. Implement wrapper. X_wrapper.py and X_wrapper_main.py
c. Implement magma file. X.py
d. Implement functional file. X_functional.py
e. Implement testbench. X_tb.v
f1. test_wrapper - test if wrapper works.
f2. test_functional - test if functional model is correct
f3. test_regression - test if generator magma and genesis behave same. test both behave as functional model.

Is this correct?
In the future, can we just skip a, b, f1 if we only stick to magma, not genesis?

Lastly, the point of magma is to increase the abstraction layer to python(magma), right?
If so, how is testbench file X_tb.v generated automatically according to parameters?
If we still have to implement testbench file in verilog, it would be inefficient.

Thanks for having great system Raj.

From @rsetaluri:
Hi Taeyoung, good questions
raj [5:19 PM]

you do not need to change around the file names for this. checkout the Usage section of the readme. particularly

pytest                           # install with pip install pytest```

actually, you will also need to do `pip install -e .` to run not just the tests but also `cb_wrapper_main.py`
Let me know if that works

2) Yes this is mostly correct. We are actually changing around some of the file names. This issue — https://github.com/rsetaluri/magma_cgra/issues/12 -- has what we want to do going forward regarding naming conventions. See the `mem` directory to see an example fo this
Yes, without Genesis we do not need those steps. But we do not think that we will move away from verilog entirely soon (edited)
3) Yes that is the intended use of magma. The testbench file `X_tb.v` is not necessarily a fundamental piece of this and would not generally be automatically generated. In this example we’ve included it just to show that you can also hook up with other testing paradigms. Especially hardware people who are already familiar with system verilog test benches can also use our system.
However, we are working to create a layer of abstraction on top of testing — you are right, it is not convenient to write out tests by hand. We are working on a high level system which you can pass in a functional model or test vectors and then automatically generate a set of tests which can be run against genesis version, magma version, etc.
For now you do not need to write a verilog based test bench (you can if you would like however). For now we are focused on adding functional models + wrappers + tests following the format of the cb module. We will slowly add magma versions
Does this make sense?

From @kong0329:
Hi Raj,
Thanks for your answers. They really helped a lot.
I still have some follow-up questions, so I appreciate if you could answer them.

This is clear. Thanks a lot.

If you slowly add magma, then until you have magma, the main goal of this system is to have functional model in python and easily test it with high level python, right?

For this, I am still facing some issues, and I think all these issues are just setup issues, which is annoying haha.
• pytest test_cb/test_regression.py
When I run this command, test fails in kiwi.
I found that it is related to coreir library path.
Even though I installed coreir package by running python setup.py install, running pytest couldn't find the library path, so I had to run below commands.

wget https://github.com/rdaly525/coreir/releases/download/v0.0.12/coreir.tar.gz
mkdir coreir_release;
tar -xf coreir.tar.gz -C coreir_release --strip-components 1;
export PATH=~/coreir_release/bin:$PATH;
export LD_LIBRARY_PATH=~/coreir_release/lib:$LD_LIBRARY_PATH;

Is there another way other than adding coreir library path to .bashrc?
• pytest test_cb/test_regression_ncsim.py
When I run this command, test aborted with below output.
test_cb/test_regression_ncsim.py Aborted (core dumped)

I further investigated it, and found compile_to_verilog function fails to open cached json file, but I am not sure.
Since ncsim.py is not tested in travis machine, I wonder whether it is working in any local machine.
Could you let me know how to solve it?
• python cb/cb_wrapper_main.py test_cb/cb.vp
This command doesn't work for me. Could you check whether above command works?
If cb.py file is in cb folder, cb_wrapper_main.py regards cb in import cb.cb_wrapper as module, not package.
Many thanks, Raj!
Thanks

@kong0329 I'm assuming you're running on kiwi.
I was able to reproduce the issue with test_cb/test_regression_ncsim.py Aborted (core dumped), it's because we're using /tmp on a shared machine and the file it tried to create already existed, but was owned by a different user so we didn't have permission to edit it.
The commit in the branch compile-with-tempdir should fix it, you can try it out with git checkout compile-with-tempdir, or wait until it's merged into mater.

@kong0329 for python cb/cb_wrapper_main.py test_cb/cb.vp, if you're on the latest master this won't work since the files have been renamed/reorganized. Can you try python cb/cb_genesis2.py cb/genesis/cb.vp? Also, if you can include the error log, that would be helpful.

You can install coreir without editing your path by installing it directly into your system path, see
https://github.com/rsetaluri/magma_cgra/pull/26/files for example instructions. The release comes with a makefile that allows you to use make install

Closing. See pr #25 for @kong0329 's approval.


flutter_inappwebview_platform_interface work with Windows

I notice this plugin that is showed compatibility with Windows.  Would using this package all me to use flutter_inappwebview_platform_interface in WIndows?

Not yet published. Follow #460


router: Machete - Removed unused deps.

-itertools = "0.10"
-bincode = "1"

This is awesome! Thank you for these PRs, this is the kind of thankless work that benefits everyone.

Ah no problem, happy to help


Remove POST PATCH as available redirect options

These changes remove the ability to do major version redirects for POST, PATCH REST operations.
POST, PATCH redirection is not recommended and currently is stripping out the data payload when the redirect route is called.
As discussed here: https://softwareengineering.stackexchange.com/questions/99894/why-doesnt-http-have-post-redirect

Wow, the more I read, the worse it gets.  It seems like some clients still don't even honor 307, so I don't think that would help us.
Should we drop all redirects other than GET?
Maybe we should catch the other methods and return an error response telling the user to use the latest minor version for that major version. (and include that version in the response)
cc @abellotti @agrare @Fryguy Thoughts?

Still think we should just implement #66 and get rid of the redirect nonsense entirely 😉

ya, as per https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html  some agents erroneously change the redirect into a GET, which will surely mess things up, and this is true for 301/302 as well as the 307.

I'm leaning toward leaving this as is since there really shouldn't be any consumers of the major version API.  All consumers should be using a client which would point to a x.y version of the API, right?

I'd rather be all or nothing on the major version.  Anyone have better ideas on how to present the major version API without duplicating a ton of routes and controllers?

@syncrou I think we're ready to make this go forward for the UI.
Can we get a rebase + minor gem release commit on here? Then we should be good to go.

@lindgrenj6 This should be set now. Please take another look when you can.


Should remove content of a submission annotation store if it already exists?

This is the scenario when re-running a submission...

Good question. Here are a few elements to seed the discussion

I would tend to not remove data from past runs that failed because they may provide useful information for debugging. What is the list of data concerned? The predictions saved to the data node, the annotation added to a submission and the log files exported to synapse?
One application I have in mind is to apply an aggregation methods that aggregate predictions available in a dataset. In order to be able to do this, I need to know which annotation stores in a dataset are associated to a successful evaluation. I could get this information by querying Synapse. Alternatively we could state that all the annotation store that are in a dataset are complete, i.e. we agree to delete annotation stores that are linked to a failed run. However, this would only be useful if I decide to aggregate all the prediction. In practice, I would probably select the predictions from a selection of submission based on their performance, which I would get from Synapse along with the information of whether the submission was successful or not. Therefore, it's OK for this application if there are annotation stores that are incomplete (typically from failed run). Moreover, I think that the system would be more robust if we accept that a dataset may include incomplete annotation store (i.e. does not include a prediction for each sample in the dataset).
Another element of response is: Assuming that a submission is processed on more than one data hosting site, do we have a way to distinguish the "run" of a submission A on data hosting site 1 from the run of Submission A on data hosting site 2?
Given the above points, shall we introduce a Run ID? If we create annotation stores and log files on synapse according to this Run ID, we would be able to keep data from past, failed run and we would not need to do cleaning, thus making the system more robust (cleanup is an extra operation that may fail).
A Run ID would also be useful in ELK to distinguish from multiple run of one submission.

Alternatively, we may also consider that re-running a submission is equivalent to re-submitting a submission, which would then get a new submission ID. A case to consider is when a submission must be evaluated against multiple datasets. If at the time the user makes the submission the system supports two data hosting sites, shall we create two submissions, each with their own ID so that the user can track the progress of this two submissions in a dashboard?
If we decide to rerun a submission, is it important to keep the original submission ID? If yes, we should probably add the notion of Run IDs. Having a submission ID and Run ID (kind of a sub-submission ID) should provide more flexibility and help us conserve the information that multiple Run IDs are associated to the evaluation of one submission entity (identified by the submission ID).
Thoughts?

Here are some initial thoughts that I had:

I agree that we probably shouldn't remove data from past runs if unless absolutely necessary as it could help us.  The information that helps us most right now with debugging is probably the log files and the prediction files.  There are simply annotations on the submission object to tell us where those two files are stored.
I agree that the annotation stores themselves don't necessarily need to know whether or not it belonged to a successful submission - we would query for successful submissions, then obtain their annotation store.
I think having a run ID would be a good idea, but we would have to figure out how to store the multiple runIDs with the submission.  For instance, if submission A creates runID_A and this run fails - we restart the submission and  it succeeds with runID_B, how will we know which runID to pick?  Normally I would say we could just pick the latest runID, but if we have multiple data hosting sites, then we couldn't (unless we had {hosting_site}_{runid})
The ELK stack would only benefit from the runid if that was the name of the container.  So the runID would be generated prior to starting the service and then subsequently used in future operations.

A bigger problem right now is that a submission isn't easily run on multiple queues unless we adopt the COVID / EHR infrastructure.  I will open another ticket to discuss...

Update
I need to spend some time thinking about the definition of a "submission" and a "submission run".

I added an issue here: https://github.com/Sage-Bionetworks/submission-schemas/issues/9

I added an issue here: https://github.com/Sage-Bionetworks/submission-schemas/issues/9

@thomasyu888 To the question "Should remove content of a submission annotation store if it already exists?", I think that the answer is Yes.
If we need to rerun the submission on a dataset A because the submission fails, we could have a look at the annotation first, then restart the submission. In that case, the annotation store for this submission should be emptied before attempting to save annotations generated during the new run. If the run fails again, we can look at the new state of the annotation store. Basically because we can rerun a job on a given dataset, we don't absolutely need to save the output. But we still save it for successful submission for post analysis.
If you agree with this answer, I'll close this ticket. Implementation should be tracked in a separate ticket or PR that reference this ticket.

@thomasyu888 To the question "Should remove content of a submission annotation store if it already exists?", I think that the answer is Yes.
If we need to rerun the submission on a dataset A because the submission fails, we could have a look at the annotation first, then restart the submission. In that case, the annotation store for this submission should be emptied before attempting to save annotations generated during the new run. If the run fails again, we can look at the new state of the annotation store. Basically because we can rerun a job on a given dataset, we don't absolutely need to save the output. But we still save it for successful submission for post analysis.
If you agree with this answer, I'll close this ticket. Implementation should be tracked in a separate ticket or PR that reference this ticket.


Adding to TreeSitter colors

I have added some missing TS colors and modified TSTagAttribute since it was pulling from TSProperty and for certain filetypes like tsx or jsx, it was providing too much red color and having hard contrast.

Thanks for the nice PR, I think I was having this issue too 👍


Astro + Solid + VS Code ->  Could not find a declaration file for module 'lucide-solid'

Package

[ ] lucide
[ ] lucide-angular
[ ] lucide-flutter
[ ] lucide-preact
[ ] lucide-react
[ ] lucide-react-native
[X] lucide-solid
[ ] lucide-svelte
[ ] lucide-vue
[ ] lucide-vue-next
[ ] Figma plugin
[ ] source/main
[ ] other/not relevant

Version
0.274.0
Browser

[ ] Chrome/Chromium
[ ] Firefox
[ ] Safari
[ ] Edge
[ ] iOS Safari
[ ] Opera
[X] Other/not relevant

Operating system

[ ] Windows
[ ] Linux
[X] macOS
[ ] Other/not relevant

Description
I am migrating a SolidJS project to Astro to get access to SSR.
This project uses Tailwind, Lucide, and Solid.
With the Astro project, I am getting this warning from VS Code from a Solid component that imports Lucide icons:

Could not find a declaration file for module 'lucide-solid'. '/Users/anthony/project/node_modules/.pnpm/lucide-solid<EMAIL_ADDRESS>implicitly has an 'any' type.
There are types at '/Users/anthony/project/node_modules/lucide-solid/dist/types/lucide-solid.d.ts', but this result could not be resolved when respecting package.json "exports". The 'lucide-solid' library may need to update its package.json or typings.ts(7016)

Note that this code doesn't emit a warning from the old Solid project.
Also, this code seems to compile and run fine -- it just generates this annoying warning in VS Code.
The old Solid project used node moduleResolution while the new Astro project uses bundler.
The Astro project is using strict mode.  If I use base instead, then this warning goes away.  Alternatively, I figured out that a workaround is to disable resolvePackageJsonExports:
"resolvePackageJsonExports": false

Having said that, I am wondering if there is a bug in lucide-solid's package.json because I would ideally not disable resolvePackageJsonExports.  This may be related to #1431 .
Steps to reproduce

Create a new Astro project:  pnpm create astro@latest

Specify TypeScript, Strict mode

Add SolidJS to the Astro project:  pnpm astro add solid
Add Lucide-Solid to the Astro project:  pnpm install lucide-solid
Add a simple Solid component:

import { Moon } from 'lucide-solid';

export default function LucideIcon() {
  return (

      <Moon />

  );
}

Now try to use that Solid component, like adding something basic to index.astro:

---
import LucideIcon from '../components/LucideIcon';
---

		<meta charset="utf-8" />
		<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
		<meta name="viewport" content="width=device-width" />
		<meta name="generator" content={Astro.generator} />
		<title>Astro</title>

Astro

		<LucideIcon client:only="solid" />

Note that VS Code gives the warning on the import { Moon } from 'lucide-solid'; line from Step 4.
Checklist

[X] I have searched if someone has submitted a similar issue before and there weren't any. (Please make sure to also search closed issues, as this issue might already have been resolved.)

It would appear that the exports have issues<EMAIL_ADDRESS>

@awhitford Thanks for reporting this issue.
Can you provide us a reproduction repo?

Does this help?  https://stackblitz.com/edit/github-wh46uq-p985ia?file=src%2Fcomponents%2FCounter.tsx
See line 3 of Counter.tsx.

@ericfennis I found the problem. Because there's an "exports" field in the package.json, the "types" directory is not accessible. I can PR a fix.


[ja] Update command in "Connecting Applications with Services" and se…

en PR https://github.com/kubernetes/website/pull/34399/files
/assign @atoato88
/assign @nasa9084

/lgtm


Connection fails when connecting from different network

I'm trying to connect to esp32-cam from react-native application with https://github.com/react-native-webrtc/react-native-webrtc package. When phone and cam is on the same network, it works fine, but when on different, ice connection state changes to failed. I'm sending offer from react native app when all candidates are gathered:
Offer (from react-native app):
v=0
o=-<PHONE_NUMBER>419897820 2 IN IP4 <IP_ADDRESS>
s=-
t=0 0
a=group:BUNDLE 0
a=extmap-allow-mixed
a=msid-semantic: WMS
m=application 15509 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 <IP_ADDRESS>
a=candidate:4113440344 1 udp<PHONE_NUMBER> <IP_ADDRESS> 54848 typ host generation 0 network-id 1 network-cost 10
a=candidate:3050597617 1 udp<PHONE_NUMBER> <IP_ADDRESS> 15509 typ srflx raddr <IP_ADDRESS> rport 54848 generation 0 network-id 1 network-cost 10
a=candidate:193252044 1 tcp<PHONE_NUMBER> <IP_ADDRESS> 62123 typ host tcptype passive generation 0 network-id 1 network-cost 10
a=ice-ufrag:VlEl
a=ice-pwd:76oey5NHLeCv7rYwlwJYObcH
a=ice-options:trickle renomination
a=fingerprint:sha-256 7E:31:4D:C4:B2:63:8C:90:1E:48:CD:F8:41:3A:9A:41:15:8C:E1:E9:F2:20:2C:45:D1:98:6D:97:20:B2:1F:54
a=setup:actpass
a=mid:0
a=sctp-port:5000
a=max-message-size:262144

Answer (from esp32 cam):
v=0
o=-<PHONE_NUMBER>084970<PHONE_NUMBER>084970 IN IP4 <IP_ADDRESS>
s=-
t=0 0
a=msid-semantic: iot
a=group:BUNDLE 0
m=application 50712 UDP/DTLS/SCTP webrtc-datachannel
a=mid:0
a=sctp-port:5000
c=IN IP4 <IP_ADDRESS>
a=max-message-size:262144
a=fingerprint:sha-256 00:C6:DC:62:94:D1:9A:94:A1:DD:EB:27:BC:E0:E8:DB:8F:79:BD:33:E4:E9:A6:E9:49:B7:02:FF:F7:2C:00:1C
a=setup:passive
a=ice-ufrag:6uSh
a=ice-pwd:6uShFC2K0fMkhd4MT2xZRptB
a=candidate:0 1 UDP<PHONE_NUMBER> <IP_ADDRESS> 53726 typ host
a=candidate:2 1 UDP<PHONE_NUMBER> 94.240.xxx.x 53726 typ srflx raddr <IP_ADDRESS> rport 0

What's wrong with these sdps?

Hmm... it looks normal, haha. Are both devices using different routers? or 4g?

Offerer uses 4g and answerer uses home router.


Installation error

error: can't combine user with with prefix/exec_prefix/home or install_(plat)base
while doing python setup.py install

Please fill the issue template here if the issue still persists. Thanks!


Added exit msgs

Added exit msgs with link to success stories page.
GDB/PDB: Msg prints when GDB/PDB is quit, returning to CLI.
LLDB: Doesn't have an on-exit event, so prints every time ChatDBG is exited and returns to LLDB interface. Maybe should just remove entirely?

Did you try something like this re:LLDB?
import atexit

@atexit.register
def goodbye():
    print('You are now leaving the Python sector.')

Atexit doesn't work with LLDB. Something about how LLDB exits doesn't interact as expected with Python intepreter.

This should work for LLDB:
debugger.SetDestroyCallback(print_exit_message)

Another thing: we should only print if ChatDBG was actually used (not if the debugger exited without any use of ChatDBG).
So I think add callback on first ChatDBG call, and gate it with a callback_was_added variable.


ooniprobe-cli: 3.17.0 -> 3.17.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/ooni/probe-cli/releases.
meta.description for ooniprobe-cli is: The Open Observatory of Network Interference command line network probe
meta.homepage for ooniprobe-cli is: https://ooni.org/install/cli
meta.changelog for ooniprobe-cli is: https://github.com/ooni/probe-cli/releases/tag/v3.17.1
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.17.1 with grep in /nix/store/a78n558dkpf1067vr9affq10hnjlvf22-ooniprobe-cli-3.17.1
found 3.17.1 in filename of file in /nix/store/a78n558dkpf1067vr9affq10hnjlvf22-ooniprobe-cli-3.17.1

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
ooniprobe-cli

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/a78n558dkpf1067vr9affq10hnjlvf22-ooniprobe-cli-3.17.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A ooniprobe-cli https://github.com/r-ryantm/nixpkgs/archive/1b0770492fcf2c8ca8c14da0f314918788043229.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/a78n558dkpf1067vr9affq10hnjlvf22-ooniprobe-cli-3.17.1
ls -la /nix/store/a78n558dkpf1067vr9affq10hnjlvf22-ooniprobe-cli-3.17.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

ooniprobe-cli

Maintainer pings
cc @dotlambda for testing.

Result of nixpkgs-review pr 221753 run on aarch64-darwin 1

1 package built:

ooniprobe-cli


bridgy publish twitter: bridgy returns error 500, publishes nevertheless

if i send a http post request (via curl) to https://www.brid.gy/publish/webmention (data source=http://wirres.net/8479&target=http://brid.gy/publish/twitter&bridgy_omit_link=), bridgy responds with this:
HTTP/1.1 500 Internal Server Error
Content-Type: text/html; charset=UTF-8
Vary: Accept-Encoding
Date: Mon, 07 Sep 2015 20:05:17 GMT
Server: Google Frontend
Cache-Control: private
Alt-Svc: quic=":443"; p="1"; ma=604800
Accept-Ranges: none
Transfer-Encoding: chunked

<title>500 Internal Server Error</title>

500 Internal Server Error

The server has either erred or is incapable of performing the requested operation.

if i try this with bridgy publish to facebook, the response is fine, as always.
this is the bridgy log (which i don’t understand): https://www.brid.gy/log?start_time=1441656317&key=aglzfmJyaWQtZ3lyVgsSDVB1Ymxpc2hlZFBhZ2UiL2h0dHA6Ly93aXJyZXMubmV0L2FydGljbGUvYXJ0aWNsZXZpZXcvODQ3OS8xLzYvDAsSB1B1Ymxpc2gYgICAgICAgAoM
at the end of the log there seems to be a hint, to what causes the problem (which, again, i don’t understand):
2015-09-07 20:05:17.653600 E header values must be str, got 'unicode' (u'https://twitter.com/diplix/status/640979169422233601') for 'Location'
Traceback (most recent call last):
  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1522, in __call__
    return response(environ, start_response)
  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webob-1.1.1/webob/response.py", line 939, in __call__
    start_response(self.status, headerlist)
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 200, in _StartResponse
    (_GetTypeName(value), value, name))
InvalidResponseError: header values must be str, got 'unicode' (u'https://twitter.com/diplix/status/640979169422233601') for 'Location'

one more question remains: my bug or bridgy’s bug?

sorry for the trouble @diplix, and thanks for the report! looks like this was introduced in #462. @myfreeweb mind taking a look?

no problem. glad to help and glad to find out it’s not again one of my mistakes.

Ugh, Python 2.x unicode handling, also inconsistency between tests and real App Engine?  Can you just put an .encode('utf-8') on it?
self.response.headers['Location'] = self.entity.published['url'].encode('utf-8')

sure, no problem. actually it looks like we just missed it due to test coverage, not charset handling surprises or prod/test app engine skew. bridgy's fake test silo returns a string url, but twitter returns a unicode. :P


Updated balsamiq-mockups

Thank you for the contribution. It was merged directly as 8a784190306c031807223fdc21cf81c4fb295aa0 to keep commit history cleaner. Your contribution is still credited to you.


failure when creating new passcode

I'm using the createKey command in the MQTT device dashboard

but the command fails, see the following logs I have from the add-on

13:51:32 fail: SwitchBotMqttApp.Services.MqttCoreService[0] subscribe action F1591E9D60F8,{   "CommandType": "command",   "Command": "createKey",   "ParamName": "btn",   "ParamValue": "action" } System.InvalidCastException: Unable to cast object of type 'System.String' to type 'System.Int64'.    at SwitchBotMqttApp.Services.MqttCoreService.<>c__DisplayClass17_1.b__4(CommandPayloadDefinition paramDef) in C:\github\hsakoh\switchbot-mqtt\src\SwitchBotMqttApp\Services\MqttCoreService.cs:line 340    at System.Collections.Generic.List1.ForEach(Action1 action)    at SwitchBotMqttApp.Services.MqttCoreService.ReceiveCommandAsync(String payloadRaw, DeviceBase device) in C:\github\hsakoh\switchbot-mqtt\src\SwitchBotMqttApp\Services\MqttCoreService.cs:line 335

https://github.com/hsakoh/switchbot-mqtt/issues/5#issuecomment-1739029591


simp: hypothesis contains metavariables

Prerequisites

[X] Put an X between the brackets on this line if you have done all of the following:

Checked that your issue isn't already filed.
Reduced the issue to a self-contained, reproducible test case.

Steps to Reproduce
set_option trace.Meta.Tactic.simp true
@[simp] theorem one_le_of_lt (h: n < m) : 1 ≤ m := Nat.lt_of_le_of_lt (Nat.zero_le _) h
example                      (h: n < m) : 1 ≤ m := by simp[h]

Expected behavior: example should work
Actual behavior: get an error:
unsolved goals
n m : Nat
h : n < m
⊢ 1 ≤ m

with message:
[Meta.Tactic.simp.discharge] one_le_of_lt, hypothesis contains metavariables
  ?n < ?m

Reproduces how often: 100%
Versions
nightly-2022-06-03

@fpfu Are you on Zulip? If yes, what is your alias there? Just curious :)
Thanks again for finding all these problems.

Thank you for the attention you pay to each issue or question)
And I'm impressed with the speed of Lean development.
My name is Evgeniy Kuznetsov and that's how I signed up on Zulip.


[Bug] GitHub Foundations - 'Exercise - Add a .gitignore file' is unrelated to this repository and its purposes

Summary
In the module Maintain a secure repository by using GitHub best practices from the GitHub Foundations training guide, it specifies that this exercise including some training for Exercise - Add a .gitignore file. However after forking the repository and checking the READMEs, this exercise does not include any training about .gitignore files, but rather is training regarding code vulnerability and other stuff. This seems to be unrelated with the previously mentioned module, therefore the training module should be updated and include a valid exercise, or this exercise should include something related to .gitignore files.
How to reproduce

Go to https://learn.microsoft.com/en-us/collections/o1njfe825p602p
Click on https://learn.microsoft.com/en-us/training/modules/maintain-secure-repository-github/?ns-enrollment-type=Collection&ns-enrollment-id=o1njfe825p602p
Go to Unit 3 https://learn.microsoft.com/en-us/training/modules/maintain-secure-repository-github/3-security-strategy-essentials/
Follow the steps

Additional context
This is not specifically a bug, rather a mismatch between the module and the exercise.

@rjceledon Thank you for submitting this issue! ✨ This has been triaged for the team to review


ENTIRE BALANCE doesn't work

When you send coin, the button "ENTIRE BALANCE" should substract cost of execution from sending amount

fixed in https://github.com/ethereumproject/emerald-wallet/pull/317


Ticketing for hybrid events

TL;DR: We need to add ticketing links to individual events so that visitors can choose whether to attend a hybrid event online or in person
The full(er) story:
There's an innovation in the Pubic Programmes events plan for Jul-Sep, which is that some live events will be properly hybrid, with an in-person live audience, and an online audience, both of which will be capacity-limited and ticketed.
Ticketing in eventbrite has to be separate for in-person and online, so there will be two sets of tickets to link to.
Can we change event pages so that there can be two eventbrite ticket links, one clearly labelled as in-person attendance and one as online attendance?
Some egs of how this works...
A single event page has a single eventbrite ticketing link
https://wellcomecollection.org/events/YnpPVxAAACIAI9Fp
which is set in the reservation tab, here:
https://wellcomecollection.prismic.io/documents~b=working&c=published&l=en-gb/YnpPVxAAACIAI9Fp/?section=Reservation
When you've got multiple iterations of the same event, there can be more than one eventbrite link on the same event page, eg
https://wellcomecollection.org/events/YmE20hAAAJ-4svJF
but they are set individually through sub-events through the schedule tab
https://wellcomecollection.prismic.io/documents~w=slalom&b=working&c=published&l=en-gb/YmE20hAAAJ-4svJF/?section=Schedule
Is it possible to have multiple instances of the scheduling fieldset on a single event, perhaps with the addition of a new field to each set for 'in person'/'online'?

@dannybirchall To reduce the amount of repeated text that happens currently with hybrid events, I wonder if it's possible to change the button copy so they're more explicit instead? Example below:

@DominiqueMarshall that makes lots of sense to me. Might be an issue for @gestchild, as I think atm there's a default label for the button (ie you can't set it independently in the fieldset)

Ah that's a good point! If we can't change the button labels, then I think it could still be rendered a similar way by making sure the headings are really clear:

@DominiqueMarshall that looks good; though if it's easy to change the button labels I think that's preferable.
This is how we've done it the hacky way
https://wellcomecollection.org/events/YnOrDxAAACIAmAbF
-- I think there's definitely a balance to be struck here between making it really clear, and unnecessary repetition


Speeding up cache access

The problem
I've looked at the debug logs and noticed a lot of repeated messages of opening sqlite database.
➔ grep -c 'Opening connection' last_update.log
3841

I'm not using patching, so, it's also happening with CachedSession usage, so this is called way too often:

https://github.com/reclosedev/requests-cache/blob/5417069b431ec1e665bebe4c2bbeec0774d86bef/requests_cache/backends/sqlite.py#L94

Expected behavior
Keep connection open, perhaps add some bulk operations support or preloading to memory support.
Environment

requests-cache version: 0.6.3
Python version: Irrelevant
Platform: Irrelevant

That has mostly been addressed in #213, which will be included in the next release. That change allows the connection to be left open instead of creating and closing one connection per transaction.
For SQLite, though, opening and closing a connection doesn't actually take much time, about 0.02 milliseconds on my machine. Example:
import sqlite3
from time import perf_counter

ITERATIONS = 100000

start = perf_counter()
for i in range(ITERATIONS):
    sqlite3.connect('test.db').close()
elapsed = perf_counter() - start
print(f'Average time per connection: {(elapsed/ITERATIONS)*1000} ms')

The majority of the time spent per operation is on COMMIT. If you have a block of code that you know will be caching several consecutive requests, you can use the bulk_commit() contextmanager.
Hope that helps.

I'm not worried about write performance, but rather read performance.

Sure, in that case try out the latest dev build, since that may already do what you want.

Would you mind adding instructions to readme how to use dev builds:

how to find build-id
how to install

There are details here: https://requests-cache.readthedocs.io/en/stable/contributing.html#pre-releases
And you can find a full list of builds under 'Release History' on PyPI: https://pypi.org/project/requests-cache/#history
I'll add that link to the docs as well.

docs are ok.
but I still see with too many connections being opened:
➔ grep -c 'Opening connection' last_update.log
631
➔ pip3 list|grep cache
requests-cache    0.7.0.dev452

I'm testing on this branch:

https://github.com/Taxel/PlexTraktSync/pull/311

perhaps for the connection re-use to happen, it's needed not to use global patching?

Tested, and if using CachedSession rather the global patching, the sqlite db is opened only once!

perhaps for the connection re-use to happen, it's needed not to use global patching?

Right, specifically with install_cache() + the static request functions (requests.get(), etc.), requests will create a new session object for each request, which also means one new db connection per request.
Like you found, either using CachedSession or install_cache() + requests.Session will do what you want.