Golang Basics

Resource

https://golang.org/ref/spec

https://github.com/golang/go/wiki/CodeReviewComments

https://tour.golang.org

https://golang.org/doc/effective_go.html

https://github.com/golang/go/wiki

https://golang.org/doc

https://research.swtch.com/gotour

https://github.com/go101/go101

https://trello.com/c/pLRRhHXf/273-📝-must-know-for-go-dev

https://github.com/codeclimate/go-learn-go

https://cloud.ibm.com/docs/go

https://codeburst.io/why-goroutines-are-not-lightweight-threads-7c460c1f155f

https://www.digitalocean.com/community/tutorial_series/how-to-code-in-go

https://opensource.com/article/18/11/learning-golang

https://opensource.com/article/19/8/command-line-heroes-cobol-golang

https://medium.com/swlh/type-assertion-and-type-conversion-in-golang-11fd98f69a3f

https://yourbasic.org/golang

https://harryho.github.io/coding/golang

https://medium.com/swlh/processing-16gb-file-in-seconds-go-lang-3982c235dfa2

https://stackoverflow.com/questions/15311969/checking-the-equality-of-two-slices

https://golangbyexample.com

https://golangbot.com/learn-golang-series

http://go-lang.cat-v.org/go-code Interesting code

https://dave.cheney.net/resources-for-new-go-programmers Resources collection

https://medium.com/@lizrice/variables-and-functions-in-go-oh-my-18b71297657

https://levelup.gitconnected.com/go-slices-maps-pitfalls-and-generics-f7ced963ced

https://test.gleich.dev/article/golangs-omitempty

[ ] https://medium.com/learning-the-go-programming-language/bit-hacking-with-go-e0acee258827

[ ] https://medium.com/swlh/go-profile-your-code-like-a-master-1505be38fdba

[ ] https://medium.com/better-programming/3-pitfalls-in-golang-i-wish-i-knew-3f208a8402a7

Data Types

Boolean
Numerical ( Int, Float )
String
Structs
Pointers
Array
Slice
Map

Keywords
It has only 25 keywords
break    default      func    interface    select
case     defer        go      map          struct
chan     else         goto    package      switch
const    fallthrough  if      range        type
continue for          import  return       var
Definitions of the keywords
var and const are used to define variables and constants.
package and import are for package use.
func is used to define functions and methods.
return is used to return values in functions or methods.
defer is used to define defer functions.
go is used to start a new goroutine.
select is used to switch over multiple channels for communication.
interface is used to define interfaces.
struct is used to define special customized types.
break, case, continue, for, fallthrough, else, if, switch, goto and default were introduced in section 2.3.
chan is the type of channel for communication among goroutines.
type is used to define customized types.
map is used to define map which is similar to hash tables in other languages.
range is used for reading data from slice, map and channel.
Features
Go is a compiled language which means in production, you won't have to setup a JVM or a virtualenv and will instead have a single static binary
Go utilizes blocks of memory to store data.
Go uses package (like modules in Python) to organize programs. The function main.main() (this function must be in the main package) is the entry point of any program. Go standardizes language and most of the programming methodology, saving time of developers which they'd have wasted in religious wars. There can be only one main package and only one main function inside a go main package.
Any variable that begins with a capital letter means it will be exported, private otherwise. The same rule applies for functions and constants, no public or private keyword exists in Go.
When you use arrays as arguments, functions get their copies instead of references! If you want to use references, you may want to use slice.
Data Structure Creation
Go has two data structure creation functions: new and make.
new returns pointers.
make returns non-zero values.
make does memory allocation for built-in models, such as map, slice, and channel, while new is for types' memory allocation.
new(T) allocates zero-value to type T's memory, returns its memory address, which is the value of type *T. By Go's definition, it returns a pointer which points to type T's zero-value.
The built-in function make(T, args) has different purposes than new(T). make can be used for slice, map, and channel, and returns a type T with an initial value. The reason for doing this is because the underlying data of these three types must be initialized before they point to them. For example, a slice contains a pointer that points to the underlying array, length and capacity. Before these data are initialized, slice is nil, so for slice, map and channel, make initializes their underlying data and assigns some suitable values.

Resources

https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/02.0.html
https://research.swtch.com/godata

Data Structures

Boolean

Numerical ( Int, Float, Complex numbers)

Int types that have specific lengths including rune, int8, int16, int32, int64, byte, uint8, uint16, uint32, uint64.
rune is alias of int32 ( default ) and byte is alias of uint8
Float types also have specific lengths: float32 and float64 types and no type called float.
In Complex types, complex128 (with a 64-bit real and 64-bit imaginary part) is the default. complex64 (with a 32-bit real and 32-bit imaginary part) is the smaller type. Its form is RE+IMi, where RE is real part and IM is imaginary part, the last i is the imaginary number. Example: var c complex64 = 5+5i

String

s := "hello"
c := []byte(s)  // convert string to **slice** of byte

c[0] = 'c' // Replace first character
// OR
s = "c" + s[1:] // use range to get the values into a new string

s2 := string(c)  // convert back to string type

Array
When an array is used as an argument, functions get their copies instead of references. It's a value type.

var arr [10]int  // an array of type [10]int
a := [3]int{1, 2, 3} // define an int array with 3 elements
c := [...]int{4, 5, 6} // use `…` and Go will calculate it for you.

twoDArray := [2][4]int{{1, 2, 3, 4}, {5, 6, 7, 8}} // Easier
twoDArray := [2][4]int{[4]int{1, 2, 3, 4}, [4]int{5, 6, 7, 8}} //Different declaration

arr := [5]byte{'a', 'b', 'c', 'd', 'e'}
slicea := string(arr) // Not allowed. Cannot convert array into string

Slice (Dynamic Array)
Slice is the concept of dynamic array which does not require length while defining it. It's a reference type.

var slice []int //Define a new variable slice of integers

slice := []byte {'a', 'b', 'c', 'd'} //slice of bytes. There is no '...' operator used while defining a slice with values.

slice = append(slice, 'e') // Create a new slice and append 'e'

Map
Map is a Key-Value pair data structure. It is a reference type.

It has two return values; First return type the value mapped by the key. The second is boolean value which is true if the key exists in the map, else false. If the return key does not exits, the return type will be default value defined in the map.
var numbers map[string] int // Map of with key of type string and int values.

rating := map[string]float32 {"C":5, "Go":4.5, "Python":4.5, "C++":2 }

csharpVal, keyExists := rating["C#"] // keyExists is false as C# does not exists; csharpVal will be default float value, 0.000000.

Data Structure Creation; make vs new
Go has two data structure creation functions: new and make.
new returns pointers.
make returns non-zero values.
make does memory allocation for built-in models, such as map, slice, and channel, while new is for types memory allocation.
new(T) allocates zero-value to type T's memory, returns its memory address, which is the value of type *T. By Go's definition, it returns a pointer which points to type T's zero-value.
The built-in function make(T, args) has different purposes than new(T). make can be used for slice, map, and channel, and returns a type T with an initial value. The reason for doing this is because the underlying data of these three types must be initialized before they point to them. For example, a slice contains a pointer that points to the underlying array, length and capacity. Before these data are initialized, slice is nil, so for slice, map and channel, make initializes their underlying data and assigns some suitable values.

Structs
Pointers

Control Statements
if/else condition
if integer == 3 {
    fmt.Println("The integer is equal to 3")
} else if integer < 3 {
    fmt.Println("The integer is less than 3")
} else {
    fmt.Println("The integer is greater than 3")
}

for loop
// Default
for expression1; expression2; expression3 {
    //...
}

// As a while loop
sum := 1
for sum < 1000 {
    sum += sum

    if sum == 5{
        break // or continue; break will exit the for loop while continue continues
    }
}

// Read data from array, slice, map and string with range.

for k,v := range map {
 //...
}

switch condition
switch match {
case condition1:
    some instructions
case condition2, condition3,...,conditionN:
    some other instructions
case otherCondition:
    // ...
    fallthrough // will also execute default. fallthrough continues below conditions.
default:
    other code
}

Function
Use keyword `func` to define a function.
`main()` function is the entry point to a Go application.
Functions have zero, one or more than one arguments. The argument type comes after the argument name and arguments are separated by comma ','.
Functions can return multiple values.
Does not have `try-catch` structure like Java does so Instead of throwing exceptions Go uses `panic` and `recover` to deal with errors.
By default arguments passed to the function is by value. Argument must be a pointer type prefix by an asterik '*' to pass by reference and a reference should be passed.

Function can also be passed as a variable.
There are two return values named output1 and output2, you can omit their names and use their type only.
If there is only one return value and you omitted the name, you don't need brackets for the return values.
If the function doesn't have return values, you can omit the return parameters altogether.
If the function has return values, you have to use the return statement somewhere in the body of the function.
Function allows an uncertain numbers of arguments, called variadic function.

func SumAndProduct(A, B int) (int, int) {
    return A + B, A * B
}

func SumAndProduct(A, B int) (add int, multiplied int) {
    add = A+B
    multiplied = A*B
    return // returns add and multiplied
}

func myfunc(arg ...int) {} // variadic function

defer keyword
They will execute in reverse order when the program executes to the end of functions. In the case where the program opens some resource files, these files would have to be closed before the function can return with errors. There can be more than one defer in a function.

func ReadWrite() bool {
    file.Open("file")
    defer file.Close()
    if failureX {
        return false
    }
    if failureY {
        return false
    }
    return true
}

for i := 0; i < 5; i++ {
    defer fmt.Printf("%d ", i)
}

// Output: 4 3 2 1 0

panic, recover
Panic is a built-in function to break the normal flow of programs and get into panic status. When a function F calls panic, F will not continue executing but its defer functions will continue to execute. Then F goes back to the break point which caused the panic status. The program will not terminate until all of these functions return with panic to the first level of that goroutine. panic can be produced by calling panic in the program, and some errors also cause panic like array access out of bounds errors.
Recover is a built-in function to recover goroutines from panic status. Calling recover in defer functions is useful because normal functions will not be executed when the program is in the panic status. It catches panic values if the program is in the panic status, and it gets nil if the program is not in panic status.
// panice/recover usage

var user = os.Getenv("USER")

func init() {
    if user == "" {
        panic("no value for $USER")
    }
}

func throwsPanic(f func()) (b bool) {
    defer func() {
        if x := recover(); x != nil {
            b = true
        }
    }()
    f() // if f causes panic, it will recover
    return
}

init function and stages of application flow
Go has two default functions main and init. main is the entry point the the go application can only be used once and must be in the package named main. init can be used in all packages. They don't have any arguments nor return values.
Programs initialize and begin execution from the main package. If the main package imports other packages, they will be imported in the compile time. If one package is imported many times, it will be only compiled once. After importing packages, programs will initialize the constants and variables within the imported packages, then execute the init function if it exists, and so on. After all the other packages are initialized, programs will initialize constants and variables in the main package, then execute the init function inside the package if it exists. The following figure shows the process.

Object Oriented Implementation
struct
struct allows us to create customs data structures. structs are value types. Dot (.)  is used to access the fields values of struct.
type Human struct {
    name  string
    age   int
    phone string // Human has phone field
}

type Employee struct {
    Human // Nested struct; Human fields are called promoted fields since they can be accessed as if they are directly declared in the Employee struct itself
    specialty string
    phone     string // phone in employee
    int // anonymous field are the fields without names
}

func main() {
    var empZero Employee // Zero valued struct
    Bob := Employee{Human{"Bob", 34, "777-444-XXXX"}, "Designer", "333-222", 11}
    fmt.Println("First Name:", Bob.name)

   // Create reference type
    emp8 := &Employee { ... } // Pointer type; Pass by reference
    aS := new(Student)
    var emp2 = new(emp)

  // Anonymous struct
  emp3 := struct {
        firstName string
        lastName  string
        age       int
        salary    int
    }{
        firstName: "Andreah",
        lastName:  "Nikola",
        age:       31,
        salary:    5000,
    }
}

structs are comparable if each of their fields are comparable. Two struct variables are considered equal if their corresponding fields are equal. When they contain map as a field
Method
A method is a function with an implicit first argument, called a receiver.
Any type can be the receiver of a method, not just struct.

// Default method definition
func (r ReceiverType) funcName(parameters) (return types)

// Example
type Circle struct {
    radius float64
}
func (c Circle) Area() float64 {
    return c.radius * c.radius * math.Pi
}
func main() {
    c1 := Circle{10}
    fmt.Println("Area of c1 is: ", c1.Area())
}
// Area() is a method of type Circle

interface
interface is a custom data type which represents a set of method signatures.
The struct data type implements these interfaces to have method definitions for the method signature of the interfaces.
type aInterface interface {
   aMethod()(returnTypeA)
   ...
   nMethod(return type)
}

type aStruct struct {
   ... // variables
}

// aStruct implements aInterface
func (parameterName aStruct) aMethod() (returnTypeA) {
   ... // implementation
}

Testing
// Compiles the package sources and tests found in the current directory and then runs the resulting test binary.
// Without any arguments, also called local directory mode. This mode disables caching.
go test

// When go tests is invoked with arguments it is called package list mode and caches the results.

// Test all packages in a directory tree
go test ./...

// Run all tests in the current directory
go test .

// Run tests for a package
go test [PACKAGE]

// Run tests verbose (-v)  and stop at the first test that fails (-failfast)
go test -v -failfast

// Run test of a package passing the package file
go test FILE.go FILE_test.go

// Run a specific test for a package
go test -v [PACKAGE] -run [TestName]

// View code coverage
go test -cover -v

// Create a coverage profile to a file
go test -coverprofile=coverage.out

// View the generated coverage report coverage.out in browser
// This will open in a browser automatically
go tool cover -html=coverage.out

// Skip long running tests (-short)
go test -short -v
//Test function must have the condition implemented
if testing.Short() {
    t.Skip("Skipping long-running test.")
}

// Executes the files with a tag `short_test`
go test -v -tags=sort_test

go test has two running modes. Understanding them is essential to having an easy time working with the tool:
Local directory mode, or running without arguments
Package list mode, or running with arguments
In the local directory mode, go test compiles the package sources and tests found in the current directory and then runs the resulting test binary. This mode disables caching. After the package test finishes, go test prints a summary line showing the test status (‘ok’ or ‘FAIL’), the package name, and elapsed time.
To run your tests in this mode, run go test in your project's root directory.
In the package list mode, go test compiles and tests each of the packages listed as arguments to the command. If a package test passes, go test prints only the final ‘ok’ summary line. If a package test fails, go test prints the full test output.
To run your test in this mode, run go test with explicit package arguments. For example, we can run go test PACKAGE_NAME to test a specific package or go test ./... to test all packages in a directory tree or go test . to run all tests in the current directory.
In our daily work with go test, the difference between the two modes is caching.
When we run go test in package list mode it will cache successful package test results to avoid unnecessary reruns. When it can find the result of a test in the cache, go test will redisplay the cached result instead of running the tests again. When this happens, go test will annotate the test results with (cached) in place of the elapsed time in the summary line.
-short in other ways besides skipping a test. For example, mocking networks calls instead of opening a connection or loading simple fixtures instead of loading them from a database. The options are many, it all depends on the function that the test is covering.
go test supports tags that are used to run (or skip) a special type of test files from our test suite.
There are a couple of rules on build tags.

build tags are special comments, with the format // +build TAGNAME
we have to place the tag on the first line of the file
we have to add an empty line after the tag
the tag name comment cannot have a dash, but it allows underscores

Some other useful features:

List tests with -list: to list tests, benchmarks, or examples matching a regular expression passed as the argument. The usage of the -list flags is analogous to the -run flag that we discussed before. When we use this flag go test will not run any tests, benchmarks or examples.

Disabling caching with -count: as we discussed before, go test by default caches test results for packages. It then uses them to skip running tests that have are not modified between two runs. Although can improve the performance, there are times when we would like to disable the caching using the -count=1 flag.

Get JSON output using -json: if we would like to take the output of go test and process it using a program, having it in a JSON format is better than normal text. This flag will convert the output to JSON, so processing it with a program is less cumbersome.

Use more CPU cores using -cpu: this flag will set the GOMAXPROCS variable to the argument that we pass to the flag. It limits the number of operating system threads that can execute user-level Go code simultaneously.

Detect race conditions using -race: since it's very easy to write concurrent code in Go, race conditions are always a risk. Go's tooling is great in this regard - it has a fully integrated race conditions detector in its toolchain.
https://blog.golang.org/race-detector

Resources:

https://golang.org/pkg/testing
https://blog.golang.org/cover
https://blog.golang.org/examples

[  ] Error Handling

https://blog.logrocket.com/error-handling-in-golang

https://blog.golang.org/defer-panic-and-recover

defer keyword
They will execute in reverse order when the program executes to the end of functions. In the case where the program opens some resource files, these files would have to be closed before the function can return with errors. There can be more than one defer in a function.

func ReadWrite() bool {
    file.Open("file")
    defer file.Close()
    if failureX {
        return false
    }
    if failureY {
        return false
    }
    return true
}

for i := 0; i < 5; i++ {
    defer fmt.Printf("%d ", i)
}

// Output: 4 3 2 1 0

panic, recover
Panic is a built-in function to break the normal flow of programs and get into panic status. When a function F calls panic, F will not continue executing but its defer functions will continue to execute. Then F goes back to the break point which caused the panic status. The program will not terminate until all of these functions return with panic to the first level of that goroutine. panic can be produced by calling panic in the program, and some errors also cause panic like array access out of bounds errors.
Recover is a built-in function to recover goroutines from panic status. Calling recover in defer functions is useful because normal functions will not be executed when the program is in the panic status. It catches panic values if the program is in the panic status, and it gets nil if the program is not in panic status.
// panice/recover usage

var user = os.Getenv("USER")

func init() {
    if user == "" {
        panic("no value for $USER")
    }
}

func throwsPanic(f func()) (b bool) {
    defer func() {
        if x := recover(); x != nil {
            b = true
        }
    }()
    f() // if f causes panic, it will recover
    return
}

Concurrency
Resource

[ ] Explained by Kavya https://www.youtube.com/watch?v=tjpncm3xTTc
[ ] https://golang.org/ref/mem
[ ] https://blog.golang.org/context
[ ] https://blog.golang.org/pipelines
[ ] https://rakyll.org/scheduler
[ ] https://golang.org/pkg/runtime
[ ] https://golang.org/pkg/context
[ ] https://golang.org/pkg/sync
[ ] https://godoc.org/golang.org/x/sync/syncmap
[ ] https://blog.golang.org/race-detector
[ ] https://blog.golang.org/laws-of-reflection
[ ] https://golang.org/pkg/reflect
[ ] https://harryho.github.io/coding/golang/go-note-6
[ ] https://golangbot.com/channels
[ ] https://gist.github.com/YumaInaura/8d52e73dac7dc361745bf568c3c4ba37
[ ] https://zhuanlan.zhihu.com/p/138011753
[ ] https://www.quora.com/What-is-difference-between-Goroutines-vs-OS-threads
[ ] https://divyanshushekhar.com/golang-goroutines-concurrency-waitgroups-mutexes/
[ ] https://rcoh.me/posts/why-you-can-have-a-million-go-routines-but-only-1000-java-threads/
[ ] https://medium.com/a-journey-with-go/go-goroutine-os-thread-and-cpu-management-2f5a5eaf518a
[ ] https://quii.gitbook.io/learn-go-with-tests/go-fundamentals/sync
[ ] https://medium.com/a-journey-with-go/go-how-does-the-goroutine-stack-size-evolve-447fc02085e5
[ ] https://itnext.io/refactoring-in-go-goroutine-concurrency-fccbe7093c04
[ ] https://segment.com/blog/5-advanced-testing-techniques-in-go/
[ ] https://blog.detectify.com/2019/09/05/how-we-tracked-down-a-memory-leak-in-one-of-our-go-microservices/
[ ] https://www.linode.com/docs/development/go/go-context/
[ ] https://go101.org/article/channel.html
[ ] https://go101.org/article/channel-closing.html
[ ] https://medium.com/a-journey-with-go/go-buffered-and-unbuffered-channels-29a107c00268
[ ] https://www.oreilly.com/library/view/concurrency-in-go/9781491941294/ch04.html
[ ] https://blog.labix.org/2011/10/09/death-of-goroutines-under-control
[ ] https://medium.com/rungo/achieving-concurrency-in-go-3f84cbf870ca
[ ] https://medium.com/rungo/understanding-the-context-package-b2e407a9cdae
[ ] https://www.youtube.com/watch?v=f6kdp27TYZs
[ ] https://www.youtube.com/watch?v=QDDwwePbDtw
[ ] https://golang.org/doc/codewalk/sharemem
[ ] https://www.quora.com/Where-does-Gos-concurrency-CSP-fall-short-What-are-some-examples-of-concurrency-problems-that-are-significantly-more-difficult-to-express-in-Go-compared-to-other-concurrency-models


the sponsor entrance is wrong

the sponsor channel is wrong, please check!

Hi @code-tomorrow Which one do you mean?
This:

Or the other one at the bottom of the README:

I just tried both of them, and they work for me. They bring you to: https://buymeacoffee.com/thepirateking
Do you get an error?

There was something wrong with those two links, but now it is working properly.


What's the status of Jit compiler?

Hey Perlin guys:
In "Features" section, I saw "JIT support for x86-64 and ARM is planned". But In "Benchmarks" section, I saw the test result of life(JIT).  So what's the current status of life's jit compiler?
Thanks!

Life currently includes a very simple JIT compiler which barely works. It will be rewritten for real-world use in the future.

Thanks!
What's the plan? How non-perlin guys can join the development?

@lizhengxing Feel free to open a PR request to contribute. Read the Contribute section in the readme


E-star EIPs for discussion

Please comment with EIPs to be discussed for inclusion in E-star name upgrade (name coming soon)
For discussion:

EIP-7002 Execution layer triggerable exits

EIP-7251: Increase the MAX_EFFECTIVE_BALANCE

If this is the Verkle fork, some form of SSZ for the other _root beside state_root.

EIP-6404: SSZ Transactions Root
EIP-6465: SSZ Withdrawals Root
EIP-6466: SSZ Receipts Root

Still have to revamp the EIPs based on the latest feedback from #typed-transactions, but tracking them here for awareness.

Upgrade was named Electra on ACDC 113 when Danny was away: https://github.com/ethereum/pm/issues/823#issuecomment-1635053770

EIP-7549: Move committee index outside Attestation

Add EIP7594: PeerDAS
https://github.com/ethereum/EIPs/pull/8105/files

Potential EIP proposal

https://ethereum-magicians.org/t/track-historicalblockroots-in-beacon-state-accumulators/18201

The complete list of the "SSZ-ification" section:

EIP-7495: SSZ StableContainer
EIP-6493: SSZ Transaction Signature Scheme
EIP-6404: SSZ Transactions Root
EIP-6466: SSZ Receipts Root
EIP-6465: SSZ Withdrawals Root

The one that @g11tech mentioned above is EIP-7495: SSZ StableContainer -- I think the idea is to also transition BeaconBlockBody, ExecutionPayload and so on to a format where members retain their location in the merkle tree across forks (e.g., right now, in whisk, some gindex has to be re-assigned from Capella, changing tree shape).
Having a stable tree shape means that clients that want to validate presence of specific information can do so without continuously updating their Merkle proof validation logic, as long as the queried information retains its semantic meaning.

another think which I think would greatly benefit solo stakers:

https://ethereum-magicians.org/t/el-triggered-validator-pause/18218

The complete list of the "SSZ-ification" section:
1. [EIP-7495: SSZ StableContainer](https://eips.ethereum.org/EIPS/eip-7495)

2. [EIP-6493: SSZ Transaction Signature Scheme](https://eips.ethereum.org/EIPS/eip-6493)

3. [EIP-6404: SSZ Transactions Root](https://eips.ethereum.org/EIPS/eip-6404)

4. [EIP-6466: SSZ Receipts Root](https://eips.ethereum.org/EIPS/eip-6466)

5. [EIP-6465: SSZ Withdrawals Root](https://eips.ethereum.org/EIPS/eip-6465)

The one that @g11tech mentioned above is EIP-7495: SSZ StableContainer -- I think the idea is to also transition BeaconBlockBody, ExecutionPayload and so on to a format where members retain their location in the merkle tree across forks (e.g., right now, in whisk, some gindex has to be re-assigned from Capella, changing tree shape).
Having a stable tree shape means that clients that want to validate presence of specific information can do so without continuously updating their Merkle proof validation logic, as long as the queried information retains its semantic meaning.

+1, least we can do in Electra is StableContainers for BeaconBlockBody and ExecutionPayload

EIP-6466, SSZ receipts, is incredibly impactful for its small scope: it makes receipt-proving a lot more viable.
Currently EVM receipts just concatenate log events of completely different contracts, which means applications have no control over their ability to make their log event provable without the user having to prove a potentially multi-megabyte preimage (worst-case does not fit in EVM).
That said, merkleizing to separate log events, each with their contract address source as a mix-in, would also work for some use-cases.

Another interesting addition could be:

https://gist.github.com/karalabe/e106ac58afc1d611641e543312cf41e3

This does not have to be tied to a fork specifically, but most of the work is necessary as preparation for Verkle anyway, and adding support for minority ELs to use an eth_getProof based "database" (without locally storing anything) would grant them veto power, drastically reducing the possibility of a Geth bug to issue a VALID verdict for an incorrect block. Geth is the only EL that can finalize a fake-valid block, so it would have to be the only one providing efficient eth_getProof access while processing engine_newPayload (before engine_forkchoiceUpdated).


Modify ConvenientLine to work with unicode

This changes how ConvenientLines are calculated with a breaking API change.
ConvenientLine used to assume that all content coming back was ASCII characters and
a uniform byte length. This is no longer the case. Now we use the byte length coming
back from libgit2 to extract the string from a buffer using the correct byte length. This
will give back the correct line everytime.
The breaking API change is that we no longer return the new line character with the line
nor do we include that character in the contentLen calculation either. I'm on the fence
about that change but it seems like it's what we ought to be doing instead of force all of
the consumers of the library to account for that everywhere.

This fixes #785

cc @nodegit/owners anybody want to chime in on the line ending stuff?

Seems like a pretty large breaking change, major version bump? If this brings us closer in alignment to libgit2 (I think you're saying it is since we're using the byte length returned), then I'm :+1:.

@tbranyen so the byte count calc is definitely in line with what we should be doing. The removal of the \n isn't in line with libgit2 however. After thinking about it more I feel like it should probably be left in and let the consumer of the lib deal with it how they want to.
We might want to do a major version bump at this point anyways since it would be nice to adhere to semvar and not break people's code with a release. Especially if we going to start releasing more often.
So I just argued myself out of cutting off the line endings. I'll change that and push it. If there are no objections from @nodegit/owners then I'll go ahead and merge this.

Wait so did this not already trim the newline here? https://github.com/nodegit/nodegit/commit/74c19f86eb3903b8971a872da54695a7dc60d02e#diff-3af6ec85ce097f4106d101a2f0f41c9cL71

Ah nvm, it's then manually reappended each time. Now we just get the utf8 string and don't trim that off, but don't re-add it. I'm all for it :+1:


Nick: Watch dibiz.com

Nick requests the watch of the watch_keyword dibiz\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

dibiz\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Cody Gray in Charcoal HQ


Support formatting with club story

Previously only club find stories were formattable.

I updated the docs.

Published in v1.6.0


Add Keycloak OAuth login

PULL REQUEST
Summary
This adds an OAuth login flow to the app. Instead of using the sign in page, the sign in button in the Header now redirects to Keycloak. When you login with Keycloak successfully, it redirects back to the app at /query.
To test this locally, be sure to npm install to get auth.js, then you can run Keycloak via the configuration I added to the docker compose dev file. EG docker compose -f docker-compose-dev.yaml up keycloak. Once it's running, you'll need to go to http://localhost:8080 and create a client named query-connector. Then you'll need to grab the client secret and set the following variables in .env:
AUTH_KEYCLOAK_ID=query-connector
AUTH_KEYCLOAK_SECRET=your-client-secret
AUTH_KEYCLOAK_ISSUER=http://localhost:8080/realms/master

More info on this page: https://authjs.dev/getting-started/providers/keycloak
Related Issue
Fixes https://linear.app/skylight-cdc/issue/QUE-22/spike-for-supporting-key-cloak

Is there supposed to be an option to create a user on the localhost:8080 page? I can only see a login:

@robertandremitchell @m-goggins I updated the PR to automatically import the needed client configuration now you can just grab the needed environment variables from .env.sample, and login with qc-admin and QcDev2024!. I also updated the README!


Add type hints

This adds type hints to every function not deprecated. Should fix #213 .
I've had to refactor some of the code to get mypy to stop complaining on python 3.8. It isn't configured in Tox yet because I am waiting on #247 to be merged to avoid conflicts.

@tlaferriere Thanks Thomas for investigating that. As I did lots of changes lately with the upcoming 3.0.0-alpha0, I'd suggest to add your work into one of the next alphas or betas.
I think, your work and effort should be preserved. :+1: We only need to make sure we fix all the conflicts. :wink:

Is there a branch for 3.x development I can merge this in?

You could use the feature/3.0.0-alpha0 branch. However, maybe we should try this with alpha1 to make the changes a bit more manageable. Would that be an option for you?

Alright I'll point a pr to the Alpha 0 branch so I can start fixing the conflicts.

That would be awesome! Thanks and sorry for all the conflicts.

Closing in favor of tomschr/python-semver#6


Stew boosting incorrectly resets boost timer

With "Boosts Information" plugin enabled at default settings and a boost currently active, consuming an orange spicy stew will incorrectly reset the boost timer back to 60 seconds.

Is this any stew, or just stews that lowers levels?

I encountered the issue for sure with orange stew, but if I recall correctly it happened with brown as well so most likely all of them.

I specifically meant whether it happens all the time, or just when you get your stats lowered.

Understood. Upon my testing the reset only occurs when a stew lowers a level. boosts and other forms of lowering levels like beers seem to be functioning as intended.

Duplicate of #3394
Sounds like the same issue.


Problem validate plugin in IE 10

Using IE 10, jquery 1.9.1 and version 1.11 of your validate plugin i see this error

If I don't include the validate plugin I don't get the error

You get the solution in this tutorial Link


Strange view in Terminal window

Type: Bug
Hello. I have very strange fonts after opening the terminal tab. To fix it, I create a new terminal session.

Another (and easier) workaround is to maximize the terminal view. Once fixed, the issue does not happen again, you can restore the view panel back.
This often happens for resumed sessions and sessions first launched in the new window.

To fix it, I create a new terminal session.

Another (and easier) workaround is to maximize the terminal view. Once fixed, the issue does not happen again, you can restore the view panel back.
This often happens for resumed sessions and sessions first launched in the new window.

You're right. Resizing also helps.

/duplicate https://github.com/microsoft/vscode/issues/157585

That's not quite the same issue. The issue you are linking to is about incorrectly applied decoration.
This one is about incorrectly detected encoding (thus you see "sparse" lines - it's "\0"'s rendered as spaces between letters).

@Black-water-side not the same issue.

Note this is very first session in the list. Simply resizing the terminal view or main window itself sets the render back to normal.

@meganrogge Sorry to ping you directly but I'd like to point again that the two issues (effects) are not looking the same.


Question: Random reads

From the readme it has become clear that random writes are a no-go; how is the performance of random reads, is that covered by the S3 API and the goofys implementation to be approximately as fast as reading from the beginning of the file?

Random read is bad, as each read will be translated to a S3 GET request, and S3 doesn't have the best/predictable latency. Your performance will be limited by your read size and latency (which can be 100s of ms but is usually lower). Assuming 4K read and 100ms latency, your throughput would be 40KB/s, more if you issue the reads in parallel (goofys serializes reads from the same fd but you can open the file multiple times).
Sequential read is typically only bounded by your network bandwidth.


Visual Studio 2015 - XAML errors for all Metro* resources

I'm not certain of the precipitating cause of my errors.  I've been using MahApps Metro for about a year without any issues but very suddenly, possibly after upgrading from 1.2.x to 1.4.1, I see XAML errors stating "The resource "[metro resource here]" could not be resolved.".
My googling this suggests the following:
Ensure the App.xaml contains the metro merged dictionaries correctly.  Check. (file attached)
Delete the ComponentModelCache.  Check, no effect.
Do a "Repair Install" of Visual Studio.  Check, no effect.
Reinstall MahApps.Metro from GitHub.  Check. no effect.
Reboot. Check (numerous), no effect.
Running the program and everything works flawlessly, the Visual Studio designer does not display correctly and shows errors for all references to Metro resources.  See screenshot.
This is driving me CRAZY!!

Expected outcome
There shouldn't be resource errors.  Once corrected, the designer will display correctly.
--
Environment

MahApps.Metro v1.4.1
Windows 7
Visual Studio 2015
.NET Framework 4.5.2

@MrCroix VS is sometimes... nah, ok, try these steps

override MahApps styles after original styles
clear the VS shadow cache C:\Users\<USER>\AppData\Local\Microsoft\VisualStudio\14.0\Designer\ShadowCache
cleab obj/bin folders
build all and look if it's now working

Can you tell me what you mean by "override MahAps styles after original styles".
And
Yes, I know this isn't MahApps metros fault but it is still a problem.

I tried everything else, no effect, still broken.

Oh, and, thank you.

@MrCroix Sorry about this nasty issue with your VS.

Can you tell me what you mean by "override MahAps styles after original styles".

In your screen first screenshot you change TextBox style inheirted from MahApps MetroTextBox. This should be done after defining the resources from MahApps, not before.

I tried everything else, no effect, still broken.

Do you cleared the shadowcache? Also check your references if they correct with the dlls in the output.
Sorry, I don't know what's going wrong on your machine... (do you have VS 2015 Update 3?)...

Moving the one MetroTextBox reference above or below the resource declarations makes no difference.  Must be a two pass compile.
Yes, Visual Studio 2015 Update 3.
Still have the errors.

Same in Visual Studio 2019, but VS2015 is OK

Same here. Last update VS2019 Community. Mahapps 1.6.5, Controlz <IP_ADDRESS>
Full of error in designer preview, compilation and run ok.


Fix incorrect deserialization

The deserialization of struct TokenAccountData in the Solana library is incorrect. This PR fixes the issue and tests the deserialization of both struct TokenAccountData and struct MintAccountData.

This really needs a test against a real spl-token to make sure it is correct.

We already use both TokenAccountData and MintAccountData in simple_collectible.sol during integration tests, although we do not read all of their fields.
What kind of test do you have in your mind? Checking all fields of the structs?

What kind of test do you have in your mind? Checking all fields of the structs?

Ideally, yes. We don't know if it works unless we test against the real thing.


Unify console to support pre and post 4.9 OXID versions

https://github.com/EllisV/oxid-console/commit/4bb000a743d52c37d6927da6560500baf011cae2


Minor Misc Changes

Upgrade JDK Wrapper. Upgrade Mockito. Remove searching for ArpNetworking sinks; defaults to HttpSink.

Abandoning. Will include in the periodic metrics integration review.


Support for using measured data in emitters

This isn't really a feature request, more of a query to see if there is an easier way to do what I'd like.
I'm trying to design a TIR lens for a high power LED. Instead of trying to approximate the angular power distribution of the LED with the emitters provided by OpticSim, I would like to use the actual measured data provided by the manufacturer.
I have an IES file from the manufacturer that contains actual measurements of the LED's photometric parameters. A simple visualization of the file and its contents is attached below. Most importantly, it contains actual angular power measurements, specifically the recorded photometric intensity for each degree in an 180 degree arc.
Is there any way to cleanly create an emitter in OpticSim that would use this measured data? I have a rough sketch of an idea below:

Read in the IES file as a matrix with dimensions 180x2, with the first column being 1..180 and the second column containing the photometric intensity for the given angle (parsed from the IES file).
Create new OpticalRays by taking randomly sampling a row of the matrix and using the given angle and intensity.
Pass the optical rays to the rest of the modeled system through a custom Emitter.
There's some details omitted here (2D vs. 3D data, position of the actual emitter surface etc.) but I think they're not relevant right now.

I have noticed that there is a mention of CSV support (close enough to an IES file) in the Emitter.Spectrum docstring. Perhaps that could be adapted for this use case. In any case, perhaps there is no need for kludgy code to do this and there is a way to hack together a struct that dumps OpticalRays to do what I'd like. Any advice is appreciated.
I apologize if my question is poorly formulated, I am an optics novice.

sorry it's taken me so long to respond, I didn't get email notification of this issue. we don't have direct support for this but it wouldn't be hard to add (famous last words :)). Here  is an example of specializing the power distribution as a function of angle. You could define your own subtype of AbstractAngularPowerDistribution that takes a table of power vs. angle as input and then interpolates between those values given an angular value.
If you feel up to taking a first shot at the code I will help you. It would look roughly like this:
struct AngleTable{T} <: AbstractAngularPowerDistribution{T}
    angle_table::Matrix{T}

    function AngleTable(angle_table::Matrix{T}) where {T<:Real}
        new{T}(angle_table)
    end
end

function Emitters.apply(d::AngleTable, tr::Transform, power::Real, ray::OpticSim.Ray{<:Real,3})
   #here's where your new code would go
  #find the nearest neighbors to ray in the angle_table and interpolate the power then return that power
    return power*interpolate(d,tr,ray)
end

The interpolate function has to to use the transform to transform the entries in the angle table, or probably more efficient to transform the ray, find the closest entries in the angle table to the ray and then interpolate between the powers.
Let me know if you have more questions.

@ekmecic let me know if you are still interested in this. I don't have time to do it myself but I will help you do it.

@ekmecic ok i will close and we can reopen when you have time to work on it.


types(inject): allow inject key to be number

https://github.com/vuejs/vue-next/pull/2616 add number type to provide key, so should inject key.

This looks good but I wonder if it makes sense to allow numbers at all for keys with inject/provide

This looks good but I wonder if it makes sense to allow numbers at all for keys with inject/provide

It's necessary for https://github.com/vuejs/vue-next/blob/master/packages/runtime-core/src/componentOptions.ts#L704, otherwise TS will report error.

It's necessary for https://github.com/vuejs/vue-next/blob/master/packages/runtime-core/src/componentOptions.ts#L704, otherwise TS will report error.

@posva Can we move this PR forward?

I'm not sure we should allow injecting numerical keys because they are very likely to collision and hard to debug. So overall a bad practice that is better not to be supported.
Like you said, the number was added to inject to make it pass typings but I wonder if we shouldn't even remove that instead

I agree, I'm closing this, and open #3196


fix: Make sure settings not undefined in processing hook

Thanks for this @markvocala , a great spot! Apologies for not approving sooner, I need to get better at checking for PRs in here.

No worries @jlews, glad I could help!


Wrong calculation of a polygon inside an another one

Hi,
I have a problem with the collision of a box with another polygon
Here is an example of it : http://jsfiddle.net/oxc5f428/5/
When my mouse gets inside the bounding-box, the response['aInB'] is "true" and even when my mouse is on the top-left position, I still get "true"
Could you fix this please ?

Sorry, it's a convexe polygon.

Yeah, the Separating Axis Theorem only works for convex polygons, not concave ones. You can usually models a concave polygon as a set of smaller convex ones though.


[KARAF-6728] Upgrade to Aries Proxy API 1.1.1 & Proxy Impl 1.1.7

retest this please

retest this please

retest this please

retest this please

retest this please


Personal pocket keeps getting wiped

It keeps getting wiped, it's awful. I worked for hours last night and it was gone this morning.

What version of the mod are you using? If it's the latest one, send us all your logs (of last night and this morning).
Also, your pocket is likely not gone, but just disconnected. You can find it in the personal pocket dimension at a position where x and z are positives multiples of 500, with positions being ordered by taxicab distance from center (so the first pocket created would be at (0, 20, 0), the second at (0, 20, 500), the third at (500, 20, 500), the fourth at (500, 20, 500), and so on).


Rename package to not use Obsidian name

https://github.com/gytis/spring-boot-http-booster/commit/450d85ff2d65057277479f2247f0099f7d1a75df


Undocumented Source Code

Almost the complete source code is uncommented. We seriously need to be able to create meaningful Javadoc content. Therefore comments are mandatory!

@c-schuhmann is currently working on this!

I've updated GetAlbumRequest.java in v2_requests as a reference for documentation work in general. Please pay attention to

links (both @link and )
full coverage
closeness to beta.developer.spotify.com
120 characters per line limit

Completed in #122. Thanks once more for your great work!
To everyone: Of course the Javadoc can still change. If you find something missing or wrong, just add/correct it.


Feat/ Venue: publication chair

Addresses #1589
Needs https://github.com/openreview/openreview-api-v1/pull/2906 and https://github.com/openreview/openreview-web/pull/1530

Can I merge this?

Can I merge this?

Yes, this is ready!


Uncaught (in promise) Error: Invalid account discriminator

Hey, I prepared everything as you described in the readme, but after connecting the wallet, I get the message:
account.ts:135 Uncaught (in promise) Error: Invalid account discriminator
    at AccountClient.fetch (account.ts:135)
    at async getCandyMachineState (candy-machine.ts:170)
    at async Home.tsx:148

Do you have an idea what could cause this error?

Getting same error
Yesterday worked fine

My bad, was using wrong id.


Linux build, .NETCore 2.0, various improvements

Adds support for:

Linux
.NETCore 1.0, 2.0
.NET Fx versions 4.5.2, 4.6, 4.6.1, 4.6.2

Fixed a few skipped tests.
Fix to reject leading zeroes, but allow solo zero; added tests for them.

@jburnett Do you want to add something else, or is it safe to merge your changes?


T265 camera is not detected when i open realsense-viewer.

Before opening a new issue, we wanted to provide you with some useful suggestions (Click "Preview" above for a better view):

Consider checking out SDK examples.
Have you looked in our documentations?
Is you question a frequently asked one?
Try searching our GitHub Issues (open and closed) for a similar issue.

All users are welcomed to report bugs, ask questions, suggest or request enhancements and generally feel free to open new issue, even if they haven't followed any of the suggestions above :)

Required Info

Camera Model
{ T265 }

Firmware Version
(<IP_ADDRESS>1)

Operating System & Version
{Ubuntu 22.04 LTS}

Kernel Version (Linux Only)
(5.15.0)

Platform
Raspberry Pi

SDK Version
{ 2.53.1)

Language
{python}

Segment
{others }

Issue Description
When I open the realsense viewer i get this output
25/05 17:06:47,633 ERROR [281473491857632] (librealsense-exception.h:52) /dev/video10 is no video capture device Last Error: Invalid argument
25/05 17:06:47,647 ERROR [281473491857632] (sensor.cpp:664) acquire_power failed: /dev/video10 is no video capture device Last Error: Invalid argument
25/05 17:06:47,679 WARNING [281473491857632] (rs.cpp:310) null pointer passed for argument "device"
25/05 17:06:47,680 WARNING [281473491857632] (rs.cpp:2704) Couldn't refresh devices - /dev/video10 is no video capture device Last Error: Invalid argument
The viewer opens, it does not detec a camera and presents the 2 same erros and warnings in the command line. If i unplug and plug the camera again, it is detected and everything runs smoothly. What kind of issue is this? Is it only a detection failure?
Btw, i installed it via source code

hi, I am facing the same issue, my friend once solved this problem, but I forgot the method...., I am trying to fix it.

@DragonOnGit Good to know that I'm not the only one. If you manage to solve it I'd like to know the solution.

By checking the issues before, I found that T265 on Raspi has been given up now. The issues related like #4681 and #4979 said they were moving on to a new product. So if we still want to use this old one, the issue needs to be fixed by ourselves.
Furthermore, I tried many other methods online, while I finish make codes and plug in the camera, use the lsusb command in the terminal, the output is
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 03e7:2150
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

And use command dmesg the output is
[ 5469.101857] usb 1-1.2: new high-speed USB device number 4 using xhci_hcd
[ 5469.202637] usb 1-1.2: New USB device found, idVendor=03e7, idProduct=2150, bcdDevice= 0.01
[ 5469.202654] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 5469.202666] usb 1-1.2: Product: Movidius MA2X5X
[ 5469.202677] usb 1-1.2: Manufacturer: Movidius Ltd.
[ 5469.202686] usb 1-1.2: SerialNumber: 03e72150

So still trying to fix it. Do you or anybody have some other solutions?

I don't know why but reinstalling librealsense again solved it for me. I dont know why but it is working just fine

I'm seeing the same issue on the T264 in Ubuntu 20.04 with the latest v2.54.1 version of the RealSense ADK. dmesg shows:
[  522.301524] videodev: Linux video capture interface: v2.00 [  522.307186] usb 3-5: Found UVC 1.00 device Integrated_Webcam_HD (0c45:6720) [  522.314602] input: Integrated_Webcam_HD: Integrate as /devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5:1.0/input/input34 [  522.314684] usbcore: registered new interface driver uvcvideo [  577.814598] usb 3-1: new high-speed USB device number 7 using xhci_hcd [  577.963883] usb 3-1: New USB device found, idVendor=03e7, idProduct=2150, bcdDevice= 0.01 [  577.963886] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [  577.963888] usb 3-1: Product: Movidius MA2X5X [  577.963888] usb 3-1: Manufacturer: Movidius Ltd. [  577.963889] usb 3-1: SerialNumber: 03e72150
and lsusb shows:
Bus 003 Device 007: ID 03e7:2150 Intel Myriad VPU [Movidius Neural Compute Stick]
It seems to be misidentifying the T265 for some reason. This is on the latest version of RealSense ADK and I already rebooted and reinstalled RealSense.

For my life I won't buy nevermore a Intel product.

SOLVED
sudo sh -c "echo 141a0000.pcie > /sys/bus/platform/drivers/tegra194-pcie/unbind"
sudo sh -c "echo 141a0000.pcie > /sys/bus/platform/drivers/tegra194-pcie/bind"

Find the PCIe card to which the USB is connected. In my case 141a0000.pcie. The above command will turn the power supply to the PCIe card off and then on thereby making my T265 tracker camera detectable.

SOLVED
sudo sh -c "echo 141a0000.pcie > /sys/bus/platform/drivers/tegra194-pcie/unbind"
sudo sh -c "echo 141a0000.pcie > /sys/bus/platform/drivers/tegra194-pcie/bind"

Find the PCIe card to which the USB is connected. In my case 141a0000.pcie. The above command will turn the power supply to the PCIe card off and then on thereby making my T265 tracker camera detectable.

Hello,
I also had the same problem. How to search for "141a0000.pcie". Thank you

RESOLVIDO
sudo sh -c "echo 141a0000.pcie > /sys/bus/platform/drivers/tegra194-pcie/unbind"
sudo sh -c "echo 141a0000.pcie > /sys/bus/platform/drivers/tegra194-pcie/bind"

Encontre a placa PCIe à qual o USB está conectado. No meu caso 141a0000.pcie. O comando acima desligará e ligará a fonte de alimentação da placa PCIe, tornando minha câmera rastreadora T265 detectável.

Resolvi da mesma forma, reiniciando a fonte de energia do hub usb. Em controladoras que não conseguem reiniciar a fonte de energia do hub, é necessário seccionar a alimentação do cabo usb da câmera, adicionando um relé acionado por uma gpio. Assim é possível reiniciar a câmera e utilizá-la sem problemas.
Eu utilizava essa resolução quando usava a câmera com uma Raspberry PI 4, no entanto quando mudei para Jetson Orin Nano, que tem a função de reiniciar a fonte de alimentação do seu hub usb via terminal, não precisei mais.

SOLVED
sudo sh -c "echo 141a0000.pcie > /sys/bus/platform/drivers/tegra194-pcie/unbind"
sudo sh -c "echo 141a0000.pcie > /sys/bus/platform/drivers/tegra194-pcie/bind"

Find the PCIe card to which the USB is connected. In my case 141a0000.pcie. The above command will turn the power supply to the PCIe card off and then on thereby making my T265 tracker camera detectable.

Hello, I also had the same problem. How to search for "141a0000.pcie". Thank you

Hi,
Sorry for the late reply.
This method works only if the USB is connected to a separate PCIe card whose power can be turned off and on programmatically. To find the PCIe card info, if I remember correctly, you can open the realsense-viewer and connect the camera. On the left side, there would be an information panel where you could click on the info button and see the complete path to the USB port including the PCIe card information in the physical port section.

SOLVED
sudo sh -c "echo 141a0000.pcie > /sys/bus/platform/drivers/tegra194-pcie/unbind"
sudo sh -c "echo 141a0000.pcie > /sys/bus/platform/drivers/tegra194-pcie/bind"

Find the PCIe card to which the USB is connected. In my case 141a0000.pcie. The above command will turn the power supply to the PCIe card off and then on thereby making my T265 tracker camera detectable.

Hello, I also had the same problem. How to search for "141a0000.pcie". Thank you

Hi,
Sorry for the late reply.
This method works only if the USB is connected to a separate PCIe card whose power can be turned off and on programmatically. To find the PCIe card info, if I remember correctly, you can open the realsense-viewer and connect the camera. On the left side, there would be an information panel where you could click on the info button and see the complete path to the USB port including the PCIe card information in the physical port section.

Do you mean that the power supplement is the reason that the driver recognizeing the camera?

SOLVED
sudo sh -c "echo 141a0000.pcie > /sys/bus/platform/drivers/tegra194-pcie/unbind"
sudo sh -c "echo 141a0000.pcie > /sys/bus/platform/drivers/tegra194-pcie/bind"

Find the PCIe card to which the USB is connected. In my case 141a0000.pcie. The above command will turn the power supply to the PCIe card off and then on thereby making my T265 tracker camera detectable.

Hello, I also had the same problem. How to search for "141a0000.pcie". Thank you

Hi,
Sorry for the late reply.
This method works only if the USB is connected to a separate PCIe card whose power can be turned off and on programmatically. To find the PCIe card info, if I remember correctly, you can open the realsense-viewer and connect the camera. On the left side, there would be an information panel where you could click on the info button and see the complete path to the USB port including the PCIe card information in the physical port section.

Do you mean that the power supplement is the reason that the driver recognizeing the camera?

I am not very sure about the internal software stack. But when the power to the T265 camera is received before the host system is fully booted up, the camera goes into low power mode. So by diagnosing the USB ports, we could see the USB connection to the camera is in 2.0 mode instead of the expected 3.0 mode. As a result, we had to make sure the camera power was received only after the host system was booted up.

I've reached this discussion after testing my RealSense T264 on Windows 11 and finding out it's not recognized in the RealSense Viewer (v2.55.1). Do I need to revert back to an older version in order to use the camera?

Hi @ntsarb T265 support was removed in version 2.54.1 as it is a retired camera model. You should be able to use your T265 with the Viewer if you download version 2.51.1 of Intel.RealSense.Viewer.exe in the 'Assets' file list at the link below.
https://github.com/IntelRealSense/librealsense/releases/tag/v2.51.1
As T265 is no longer supported, I will close this issue. You are welcome to respond in the comments though.

Thanks for letting me know. However, these are expensive devices, intended for robotic applications, which are also expensive, and we need to be able to support them for much longer. Please give it some thought because I will be avoiding Intel Realsense devices going forward, if software support is dropped like this.

To use T265 with Ubuntu 22.04, we can use v2.51.1 with a small fix
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense
./scripts/setup_udev_rules.sh
mkdir build && cd build
cmake ../ -DBUILD_EXAMPLES=true -DBUILD_WITH_CUDA=true -DBUILD_WITH_TM2=ON
sudo make uninstall && make clean && make && sudo make -j$(($(nproc)-4)) install
If you get a error related to  Unicode character ´ in file src/libusb/libusb.h
use this patch https://github.com/IntelRealSense/librealsense/pull/10818/files
and run the make command again and the camera should work fine
note: the latest version of SDK does not have examples like rs-pose


more flexible layout api?

Could draw inspiration from matplotlib subplots api. Might want to have options to span multiple rows, instead of the somewhat rigid n rows with a variable number of widgets per row.

with merging css grid and the new api i'm closing this.


React: Invalid hook call

Do you want to request a feature or report a bug?
Bug
What is the current behavior?
When adding the Turnstyle component to my component, I am receiving an "invalid hook call".  I'm rendering the component as follows:
<Turnstile siteKey='1x00000000000000000000AA' />
What is the expected behavior?
The turnstile widget should render.
Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?
React 18.2
This is a new implementation of this component so not sure if this has worked for us in the past.

Closing this due to inactivity. Feel free to re-open with more details, if needed.


⚠ Secret Website 3 has degraded performance

In e248bb5, Secret Website 3 ($SECRET_WEBSITE_3) experienced degraded performance:

HTTP code: 200
Response time: 2600 ms

Resolved: Secret Website 3 performance has improved in 5e2f128.


Using the SideBySide flag with an overlay causes eye texture behavior issues.

So I am attempting to make a 3D overlay application, and it's clear steam planned something like this, as they implemented the SideBySideParallel flag. But the behavior is all over the place and erratic in terms of the texture for each eye being updated in time. When using it in the unity editor and pressing play in unity, only the right eye has rendering problems such as jittering/tearing/artifacting, and I've confirmed it has to be something deeper and not my code, as I've swapped cameras, swapped textures per eye, swapped positions and methods, and the right eye always has problems, while the left eye remains relatively stable with only occasional jitters, and I've seen it work almost flawlessly so it's not that the program is simply too slow, the profiler says I am running at about 250 fps in terms of cpu timings.
Another issue comes into effect when making a build of it, the behavior changes completely, it feels like the program isn't getting enough resources to render or something, as both eyes become extremely jittery, and what's even more strange is it performs slightly better when the window is not focused, and can even crash when the window is left as the top window on the computer. I will provide example builds below, but I want to explain a tiny bit more.
I'm using dantman's pull request code (seen here: https://github.com/ValveSoftware/steamvr_unity_plugin/pull/336 ) along with some minor changes of my own that make it easier to use and changes to make the overlay easy to move around in 3D space, to match the user's head position. I have a build using his code, to make it able to launch and not close other VR applications, but I have another build that is it as a registered steamVR program, using the normal code paths with unity XR enabled and such. Another strange behavior is that only when using the editor and pressing play while it's not using standalone mode, it sometimes performs better than usual, but wasn't reliable and sometimes also performed just as bad, often.
To also prove it's not a camera/sync issue in my program, when setting it to side-by-side crossed overlay and changing nothing else, it still has issues on only the right eye in the editor, showing it is something steamVR/the plugin is doing.
Build samples here: https://www.mediafire.com/file/hkzu9o1mm8gfpep/OverlayTesting.zip/file
two folders are inside, one "non-overlay" build which is the program registered as a steamVR game, showing the same issues occur even if it's not using dantman's code, and a testing build that is one that can run as an overlay application, showing the intended mode of the overlay where it runs as an overlay for any application/environment.
The distortion/controllers may be a little wonky, as it's hard-coded right now to my 70mm ipd, but the distortion is a separate issue to my jittering. The controllers outline are also an attempt to make normal controllers show in front of objects, since it's actually close to your eyes.
I hope all my information helps, and let me know if you need anything else, I listed everything I could think of in terms of behavior, to try and narrow it down and make it easy for you all.

Oh yes, and this was requested to be opened by Joe Ludwig as I posted on another topic and he recommended I separate it into a new issue.

Update with some more research:
I ended up adding a FPS counter to prove the program itself wasn't slow/lagging, but then I had the idea that it may be sending too much information to the overlay, causing issues, so I attempted to cap the framerate to 90, which improved it drastically but it seems it still only performs better when you minimize the window, which gives semi-perfect results but doesn't reproduce what I see in the editor pressing play, which is the right eye has more artifacts/update issues, and the left eye has the normal occasional jumps. Here is an updated version, https://www.mediafire.com/file/ss0hsrl5jzlu20d/TestingBuild.zip/file
Is there any way to hook into steamVR's rendering loop and regulate the overlay update framerate that way?

Again with some more research, I streamlined the render process a bit, which helped, but it still has random artifacts in-editor, and when built and as a window that's focused, it goes crazy laggy, but then when minimized it performs actually almost perfect, but my tracking seems to be consistently a frame behind, as the whole thing sways just a bit in the direction of my motion, meaning the screen is not updating till one frame late. Any ideas or other known problems? I know unity is dropping support for openVR and valve will be picking it up, will they be making a better/more functional version of the Overlay class?


feat: Lemma for fderiv of scalar function

Adds lemma for simplifying the Fréchet derivative when applied to a function maping scalars to scalars.
This (currently named fderiv_deriv') is a special case of fderiv_deriv. Neither of simp, fun_prop, aesop, exact? , apply? currently seems to make progress on it.
Possibly, it should be instead stated as (fderiv 𝕜 f x : 𝕜 → 𝕜) = ((deriv f x) * ·) if that makes it more likely to be applied by simp?
I think it should be marked @[simp] because one would basically always prefer the right hand side to the left hand side of the equality. Does that make sense?
I also think fderiv_deriv should be marked @[simp], though maybe there is a reason why it isn't. Marking it such requires a change to the proof of deriv_fderiv, which was using a simp rather than a simp only (not a non-terminal simp but still to be avoided, I would assume?). Maybe other things are also likely to break, however, if those are added to simp?

Thanks for your contribution to mathlib! I guess you'd like code to be reviewed - hence I have labelled it awaiting-review. (You can read more about this and related labels here.

This lemma looks good to me. I would like a different name though (we want to avoid primes, and also the other two names are not great).

Actually, can you add a version for f : 𝕜 → F where the right-hand-side is y \bu deriv f x?

And it makes sense to me to make fderiv_deriv a simp-lemma. Feel free to do that. That might need some fixes in other places.

I don't really understand why adding new simp lemmas breaks a lot proofs. How to judge if adding a simp lemma makes the situation overall better or worse?

Thanks!
bors merge


AttributeError: 'EfficientNetFeatures' object has no attribute 'act1'

Thank you for sharing the code for your great work!
I had this problem when I tried to run demo_imgs.py！
self.act1 = model.act1
AttributeError: 'EfficientNetFeatures' object has no attribute 'act1'
look forward to your reply.

Thank you for your attention, this is caused by the inconsistency of the timm version. Please pip install timm==0.5.4. I have introduced how to install environment in README.md.

Thank you for reminding me that I ignored this information before.
Problem has solved.


change readme instructions for roundrobin usage with Plivo SMS provider

Hi @Abhishek-plivo I removed references to other providers to avoid favoring anyone.


Dynamic lookup of "latest" CRDs

We've got some hard-coded maps of our CRD group version kinds. There are some APIs in the SDK to fetch models if you know GVKs, but there doesn't seem to be a helper available to looking up "latest" GVKs, where you have a known group + kind. Add a helper to look this up, and replace our static GVK maps.

Want to tackle this as we'll rev our APIs soon (with no real API changes), and I'd rather the UI work without a rebuild

Parked some changes to do this in helper-function-for-gk. Have parked for now however, as I think these changes are a bit risky to land right now.


Training leads to image collapse

Hello~Thank you for your amazing work. I obtained good editing results using your script, but when I tried to train using your training demo data and script, the generated image quality was poor. Can you please take a look at what could be causing this?

The training examples we provide are just a demo. To train a model with similar performance, you need to prepare the relevant data yourself. Training the ACE model requires a large scale of training data and a considerable training duration.

However, if you fine-tune the open-source model based on ACE using a small amount of your own pair data (through LoRA or fully fine-tuning), you can quickly integrate some new capabilities into the ACE model.

Thank you for your reply. I can use the training code provided by scepter to obtain the fine-tuning results I want through Lora. But I have recently encountered two new problems: 1. I obtained worse editing results using the 1024 model; 2. How to construct data to achieve high fidelity when editing.


Unity mesh to Polyhedron3 is not working

It seems the conversion to Polyhedron3 is not working. I cannot get a valid closed triangle mesh for any Unity mesh. You can try with a cube.

I've managed to transfer some of my meshes to valid closed triangle polyhdron3 by using StitchBorders function. However, there were some meshes for which StitchBorders function kills Unity.

Hi- I found a similar issue with the cube in unity- I think it has something to do with the fact that a unity cube has 24 points (not 8).
I wrote a simple function to check this, and to convert to polyhedra:
`GameObject createCube(float x_scale = 1, float y_scale = 1, float z_scale = 1, Vector3 offset = default)
{
//Create triangles
var indices = new int[36]
{
//front
0, 3,1,
1, 3,2,
//back
4, 5,7,
5, 6,7,
//top
3,7,2,
7,6,2,
// bottom
0,1,4,
1,5,4,
//left
3,4,7,
4,3,0,
//right
1,2,6,
1,6,5
};
//The triangles points.
var points = new Vector3[8]
{
new Vector3(0, 0, 0),
new Vector3(1x_scale, 0, 0),
new Vector3(1x_scale, 1y_scale, 0),
new Vector3(0, 1y_scale, 0),
new Vector3(0, 0, 1z_scale),
new Vector3(1 * x_scale, 0, 1z_scale),
new Vector3(1 * x_scale , 1y_scale, 1z_scale),
new Vector3(0, 1y_scale, 1z_scale)
};
for (int i = 0; i < points.Length; i++)
{
points[i] = points[i] + offset;
}
    GameObject go = new GameObject();
    Mesh m = go.AddComponent<MeshFilter>().mesh;
    m.vertices = points;
    m.triangles = indices;
    MeshRenderer m_r = go.AddComponent<MeshRenderer>();
    m_r.material = Resources.Load("Materials/TransparentRed", typeof(Material)) as Material; ;
    return go;
}

Polyhedron3<EEK> ConvertGoToPolyhedron(GameObject go)
{
    // this takes a unity gameobject, and turns it into an EEK polyhedron (middle accuracy, middle speed).
    // to convert back, just call .toUnityMesh() on the polyhedron itself.
    Vector3[] unityMeshPoints = go.GetComponent<MeshFilter>().mesh.vertices;
    Point3d[] cgalMeshPoints = new Point3d[unityMeshPoints.Length];
    for (int i = 0; i < unityMeshPoints.Length; i++)
    {
        cgalMeshPoints[i] = unityMeshPoints[i].ToCGALPoint3d();
    }
    var polyhedron = new Polyhedron3<EEK>(cgalMeshPoints, go.GetComponent<MeshFilter>().mesh.triangles);
    polyhedron.Translate(new Point3d(go.transform.position.x, go.transform.position.y, go.transform.position.z));

    return polyhedron;
}

`

I spent some time on this topic. I had a large 3D model of a building imported into Unity, and 15% of all objects could not be transferred to polyhedrons. There were many issues with the imported geometry. I had stairs where the steps and risers were merged into one object, and they needed first to be split, which is not an easy to do. When it comes to the Unity cube, you are right. The problem is there are more vertices, which cgal considers as an object which self-intersect.


fixed entities path bug of the connection in the dev mode

related to this issue https://github.com/javieraviles/node-typescript-koa-rest/issues/37

I really like this idea, is simple but never bothered to automate it... was causing some pain though, so I'm glad you made it.
One point here is; why the Function part in line 11? I might be overlooking it but can't understand why is there? I'm not proficient in Typescript either :)
Second point: will move the base branch for the PR to develop
Third and last one: as you already created a const to establish whether is dev mode or note, should we use it for debugLogging and  dbsslconn?
Thanks again!


Proper way to use .rdp file with gateway

I am trying to use freerdp through a gateway.  I have built from a recent git clone:
1.2.0-beta1+android9-3106-gea24c1f
which is working fine.  I have been given the .rdp file to use, and it works except I am prompted for the gateway credentials on the console before it starts the GUI:
GatewayUsername:
GatewayDomain:
GatewayPassword:

I have tried to pass these parameters on the command line:
xfreerdp dev.rdp /gu:username /gd:domain /gp:password

but then I see a message that it is using the logged in user, and prompts for domain and password (and doesn't work).  If I supply the user, domain, and password on the command line:
xfreerdp dev.rdp /gu:username /gd:domain /gp:password /u:username /d:domain /p:password

then I will get an error SPNEGO failed with NTSTATUS: C000006D
Here is the .rdp file contents
# dev.rdp
redirectclipboard:i:1
redirectprinters:i:1
redirectcomports:i:0
redirectsmartcards:i:1
devicestoredirect:s:*
drivestoredirect:s:*
redirectdrives:i:1
session bpp:i:32
prompt for credentials on client:i:1
server port:i:3389
allow font smoothing:i:1
promptcredentialonce:i:1
videoplaybackmode:i:1
audiocapturemode:i:1
gatewayusagemethod:i:2
gatewayprofileusagemethod:i:1
gatewaycredentialssource:i:0
full address:s:SAMPLE.SERVER.COM
gatewayhostname:s:gateway.server.com
workspace id:s:SAMPLE.SERVER.COM
use redirection server name:i:1
use multimon:i:1
alternate full address:s:SAMPLE.SERVER.COM

I have tried to change 'prompt for credentials on client' to :i:0 but that didn't do anything.
The problem I have is that I am creating a little automation to gather connection information from the user (through a separate admin console) then launch/start a connection to remote services (kiosk style interface), dropping to a console to enter this gateway information cannot be done.  Is there a recommended way to pass gateway credentials via command line or inclusion within the .rdp file?

@pitatus 1.2.0 versions have some problems with that, you can try our nightlies for more recent versions. https://github.com/FreeRDP/FreeRDP/wiki/PreBuilds

Thanks.  I assume the PreBuilds are based on the most recent merges so getting more recent source should help?  (I need to build from source for an ARM platform).  I'll try the most recent git pull and build from that.
Should I be able to pass the gateway credentials on the command line like I was trying?

I pulled the recent code and built (1.2.0-beta1+android9-3119-g1571669) but still unable to use command line args for gateway credentials:
$ xfreerdp cpub-Trial_Desktop-Trial_Desktop-CmsRdsh.rdp /gu:theUser /gd:theDomain /gp:thePassword
[04:39:19:115] [12675:12675] [INFO][com.freerdp.utils] - Registering signal hook...
[04:39:19:134] [12675:12676] [INFO][com.freerdp.client.common.cmdline] - loading channel rdpdr
[04:39:19:134] [12675:12676] [INFO][com.freerdp.client.common.cmdline] - loading channel rdpsnd
[04:39:19:134] [12675:12676] [INFO][com.freerdp.client.common.cmdline] - loading channel cliprdr
[04:39:19:137] [12675:12676] [INFO][com.freerdp.client.x11] - No user name set. - Using login name: user
Domain:
Password:
[04:40:48:278] [12675:12676] [ERROR][com.freerdp.core.nla] - SPNEGO failed with NTSTATUS: C000006D
[04:40:48:278] [12675:12676] [ERROR][com.freerdp.core] - freerdp_set_last_error Unknown error class [0xC000006D]
[04:40:48:278] [12675:12676] [ERROR][com.freerdp.core.rdp] - rdp_recv_callback: CONNECTION_STATE_NLA - nla_recv_pdu() fail
[04:40:48:278] [12675:12676] [ERROR][com.freerdp.core.transport] - transport_check_fds: transport->ReceiveCallback() - -1
[04:40:48:278] [12675:12676] [ERROR][com.freerdp.client.x11] - Freerdp connect error exit status 1

if I provide all user credentials on command line so that it doesn't try to guess the user I still get:
$  xfreerdp cpub-Trial_Desktop-Trial_Desktop-CmsRdsh.rdp /gu:theUser /gd:theDomain /gp:thePassword /u:theDomain\theUser /p:thePassword
[04:42:17:759] [12677:12677] [INFO][com.freerdp.utils] - Registering signal hook...
[04:42:17:778] [12677:12678] [INFO][com.freerdp.client.common.cmdline] - loading channel rdpdr
[04:42:17:778] [12677:12678] [INFO][com.freerdp.client.common.cmdline] - loading channel rdpsnd
[04:42:17:778] [12677:12678] [INFO][com.freerdp.client.common.cmdline] - loading channel cliprdr
[04:42:38:837] [12677:12678] [ERROR][com.freerdp.core.nla] - SPNEGO failed with NTSTATUS: C000006D
[04:42:38:838] [12677:12678] [ERROR][com.freerdp.core] - freerdp_set_last_error Unknown error class [0xC000006D]
[04:42:38:838] [12677:12678] [ERROR][com.freerdp.core.rdp] - rdp_recv_callback: CONNECTION_STATE_NLA - nla_recv_pdu() fail
[04:42:38:838] [12677:12678] [ERROR][com.freerdp.core.transport] - transport_check_fds: transport->ReceiveCallback() - -1
[04:42:38:838] [12677:12678] [ERROR][com.freerdp.client.x11] - Freerdp connect error exit status 1

build version
$ xfreerdp /version
[04:43:17:884] [12679:12679] [INFO][com.freerdp.utils] - Registering signal hook...
This is FreeRDP version 2.0.0-dev (git 1571669

is there any other unmerged code that may help with this, different build options, or other recommendations?

@pitatus are you sure you can use /u:theDomain\theUser ?
Did you try with /u:theUser /d:theDomain ?

you should also try master branch, 1.2 is old.

@akallabeth I am using the master branch:

@pitatus Ah, ok. The base tag from git describe did confuse me. Just looked through the RDP parser, the passwords options are not supported. See client/common/file.c. So this is indeed a bug still there.
As for passing in credentials via stdin, there is the /from-stdin easing reading from stdin in a script.

#3756 tracks the password issue.

I tried the follow format:
xfreerdp /cert-ignore /v:<IP_ADDRESS>:3389 /d:domain /u:user /p:passwd /g:gateway /gd:gatewaydomain
But xfreerdp report error:
[02:41:38:574] [18117:18118] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[02:41:48:594] [18117:18118] [ERROR][com.freerdp.core] - freerdp_set_last_error ERRCONNECT_DNS_NAME_NOT_FOUND [0x00020005]
[02:41:48:594] [18117:18118] [ERROR][com.freerdp.core] - getaddrinfo: Name or service not known
So, how to solve this error ?

Is it possible to use an .rdp file these days?


Unable to find timestamp for a transcribed audio for python

Hello everyone,
I'm trying to find a solution for timestamps for specific audio file. I have implemented the Colab example for transcription which has a bug for transcribing longer audios but I've worked my way with that through batching the audio.
Now, I'm trying to find timestamps for an audio file. Please recommend me a source on how to do it in flashlight? if not possible through that shall I import any script from wav2letter? Any guidance will be highly appreciated, thank you!

Hey, please check in this tutorial https://github.com/facebookresearch/flashlight/blob/master/flashlight/app/asr/tutorial/notebooks/InferenceAndAlignmentCTC.ipynb alignment section "Check align result" which shows the output file of the alignment with timestamps on each token.
Or do you mean something else?

Right, after writing this response I was looking around and found the solution within "Check Align". This is amazing, but the issue with this is that it requires a separate call for getting the timestamps.
Do we have a parameter within the inference method that we can pass and the model not only returns the transcribed text but a JSON file that gives transcription and a word to word time stamps where the start and end time is mentioned for each word. An example is:
"words": [{"startTime": "0s", "endTime": "6.400s", "word": "Brooke"}, {"startTime": "6.400s", "endTime": "6.500s", "word": "is"}, {"startTime": "6.500s", "endTime": "7s", "word": "daunting"}

You can merge two cpp files to do so, we didn't do them jointly (you can do whatever format you want then).

oh interesting, since the InferenceAndAlignmentCTC notebook that uses these two files "fl_asr_tutorial_inference_ctc" and "fl_asr_align" are two files that are present in some bytecode I believe and I can't read them, Could you point me to the files they use? Secondly, will changing those files will affect the files I use? or will I have to recompile these files?

The source cpp of these binaries are here https://github.com/facebookresearch/flashlight/tree/master/flashlight/app/asr/tutorial, see in this dir *cpp files. You can change them (even in colab) and then you need to rerun make command only (no need to rerun cmake). So you can copy/emulate functionality from one file to another, rerun cmake and use only one binary.

awesome thank you so much
I have just one optional question and I believe the answer to it is "Yes" as well. Is code for both "fl_asr_tutorial_inference_ctc" & "fl_asr_align" written in InferenceCTC.cpp?
Again, thank you for all your help. Much appreciated

Ahh, sorry, forgot about alignment (messed it with finetune). It is here https://github.com/facebookresearch/flashlight/tree/master/flashlight/app/asr/tools/alignment - Align.cpp. So fl_asr_tutorial_inference_ctc and  fl_asr_align are two different cpp files and we compile each cpp to its own binary. Because mainly align is a tool and very general (can be used for VAD or other tasks).

Absolutely makes sense, can I custom combine these files and expect it to work or will there be other file dependencies. Mainly my idea is to have another parameter in "fl_asr_tutorial_inference_ctc" that calls "fl_asr_align" so instead of loading the model separately and inferencing again it does all of it in one go.
You also might have a better understanding of should I invest my time in this or go with the current flow? I have made this current functionality work to my usecase

Everything is in these two files, so just combine them.
If you managed to set the workflow, then go ahead with him, otherwise you need to understand a bit of code and be sure you can program in c++ =).

@tlikhomanenko just for better understanding, could you please tell me what are these files are compiled? fl_asr_tutorial_inference_ctc and fl_asr_align. I have implemented them in jupyter notebook and they work just fine but not in Pycharm, so trying to better understand them. Thank you

Sure, here it is definition https://github.com/flashlight/flashlight/blob/master/flashlight/app/asr/CMakeLists.txt#L67-L68.

Is there no method to get an alignment as part of the python based decoding? It seems wasteful to have to make a separate call when the timing information should already be contained within the decoding graph.


Accept lists for tested-with (close #407)

@andreasabel can you please give this a try?

Works great for me!


Class prop doesn't work for components

@pournasserian class prop doesn't have any problem.
you can test in fix/class branch

@TheHadiAhmadi thanks


[SPARK-22899][ML][Streaming] Fix OneVsRestModel transform on streaming data failed.

What changes were proposed in this pull request?
Fix OneVsRestModel transform on streaming data failed.
How was this patch tested?
UT will be added soon, once #19979 merged. (Need a helper test method there)

Test build #85375 has started for PR 20077 at commit 1216100.

Test build #85375 has finished for PR 20077 at commit 1216100.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/85375/
Test PASSed.

LGTM
Merging with master
Let's just add a test as part of https://issues.apache.org/jira/browse/SPARK-22882


Please remove my repo from the measurement overview 🙏

Hi everyone,
again I want to thank you for your great GHA. It's running in my repos and I also generate nice graphs since we can consume the measurements as json now. I just noticed that our repo Staffbase/testio-management is visible at the very bottom here. Can you please remove it from there since the measures were contributed before one could opt-out from uploading the data. I would appreciate that.

absolutely. Has been removed


Upgrade guppy to styled components v4

Related Issue:
https://github.com/joshwcomeau/guppy/issues/213
Summary:

Replace injectGlobal by the new createGlobalStyle
Replace innerRef for ref

This also made me have to use React.forwardRef in the TextInput component in order to be able to forward the ref through the wrapper. This lead to a flow error as the flow types are not up to date with React > 16.3, hence the addition of the $FlowFixMe annotation.
This also made me have to declare the respective ref variables as maybe instance types (https://flow.org/en/docs/react/refs/) which in result led to some extra conditional checking before their usage.

Replace .extend for styled()
Update the Heading component to use the new as prop, instead of withComponent

Hey @joshwcomeau!
I hope you had a great time at React Boston, looking forward to seeing your whimsy talk! :)
I updated the PR with the changes you request. In the meantime, while https://github.com/joshwcomeau/guppy/pull/265 doesn't get merged, i will also try to investigate into the reason for the performance constraint with the usage of forwardRef in the TextInput.

Oh! Something really interesting: I was assuming the problem was with <CircularOutline>, since the only visible animation is the outline around the project icons in the sidebar... but when I disable that animation, the performance problem still exists in the profiling tools.
So, there's clearly a <Spring> somewhere re-rendering a bunch when it doesn't have to 🤔
Will continue looking later, but feel free to do some digging if it interests you :D

I'm afraid master has diverged too substantially to be able to reasonably recover this PR. I'm going to open a new PR and do my best to cherry pick all novel contributions from this PR. @rfbotto please feel free to critique/add to the new PR - I will link it here when it's open.


No alert sound on multiple machines, except on the first I installed to.

Steps to reproduce
At the Powershell prompt I type New-BurntToastNotification -Text 'My message' -Sound 'Alarm8'
On my computer, the one that I first installed BurntToast to, I get a pop-up and I hear the alert sound. On any of the other computers to which I installed I get the pop-up, but no sound.  Other sounds on these computers are working, like the Windows startup sound, so I know the speakers are on.
There is some difference in the installation of my computer in that I have versions 0.8.2 and 0.8.3 both installed in the *C:\Program Files\WindowsPowerShell\Modules\BurntToast* directory.  I also tinkered with the module code to discover how to keep the sound from looping on for the entirety of the pop-up display.  With each change that didn't work I meticulously returned it to the original form (never really removed lines, just commented out and placed an altered line below it). When I finally discovered removing the -loop switch in line 1966 of version 0.8.3 I proceeded to duplicate that with the installs to the other machines.
In short, the machine on which I did the most tinkering and have installed what could be potentially conflicting versions is the only one that works to give me sound.  The others on which I minimally made alterations (the aforementioned line 1966) don't work.
I verified that the BurntToast\lib folders were complete with the necessary files, comparing mine to another. I rebooted. I'm not sure what else to look for.  What am I missing?  It seems that the over a dozen other machines must have something I missed.
Maybe one other thing.  As a shortcut I downloaded the burnttoast.zip file only once to my machine.  From there I copied to my other computers; I found that I didn't have to worry about the Unblock attribute. But did that do something to disable the sound?
I am utilizing the module in a little bit more complicated manner, but I have troubleshooted to this basic task which is giving the different behaviors on different machines.

Expected behavior
I expect to see a pop-up with "My Message" and hear the alert sound.
Actual behavior
On my computer, the one that I first installed BurntToast to, I get a pop-up and I hear the alert sound as expected. On any of the other computers to which I installed I get the pop-up, but no sound.  Other sounds on these computers are working, like the Windows startup sound, so I know the speakers are on.
Environment data

Mine (computer with alert sounding):
Name                           Value

PSVersion                      5.1.18362.1110
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.18362.1110
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
Other (computer on which there are no alerts sounding):
Name                           Value

PSVersion                      5.1.18362.1110
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.18362.1110
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
Identical output.

Mine:
OsName                   OsVersion  OsArchitecture

Microsoft Windows 10 Pro 10.0.18363 64-bit
Other:
OsName                   OsVersion  OsArchitecture

Microsoft Windows 10 Pro 10.0.18363 64-bit
They are the same,too.

Mine:
Directory: C:\Users\Robert\Documents\WindowsPowerShell\Modules
ModuleType Version    Name                                ExportedCommands

Script     0.7.2      BurntToast                          {Get-BTHistory, New-BTAction, New-BTAppId, New-BTAudio...}
Directory: C:\Program Files\WindowsPowerShell\Modules

ModuleType Version    Name                                ExportedCommands

Script     0.8.3      BurntToast                          {Get-BTHistory, New-BTAction, New-BTAppId, New-BTAudio...}
Script     0.8.2      BurntToast                          {Get-BTHistory, New-BTAction, New-BTAppId, New-BTAudio...}
Other:
Directory: C:\Users\Robert\Documents\WindowsPowerShell\Modules
ModuleType Version    Name                                ExportedCommands

Script     0.7.2      BurntToast                          {Get-BTHistory, New-BTAction, New-BTAppId, New-BTAudio...}
Directory: C:\Program Files\WindowsPowerShell\Modules

ModuleType Version    Name                                ExportedCommands

Script     0.8.3      BurntToast                          {Get-BTHistory, New-BTAction, New-BTAppId, New-BTAudio...}
Only the aforementioned difference in having two versions on mine.

UPDATE:  The issue may not have anything to do with BurntToast.  I have looked further into the particular non-alert-sounding machine and it appears there is a Windows issue.  Yes, the Windows startup sound is heard, but any of the other sounds in the System Sounds control panel applet are not heard.  Even pressing the Test button as sounds are selected gives no sound.  Interestingly, clicking on Test for the speakers in the output setup DOES give a test sound.  Perhaps this was a casualty of the Win7 to Win10 upgrade...  I will continue investigating this machine as well as others that have given no sound, as I have time and access to them.

Sorry, have been meaning to reply but works had me swamped!
There was an update (or particular update path) at some point which turned off the sound schemes in Windows. What fixed this for me is heading into the "Sound" in the control panel, then the "Sound" tab inside that. Toggle to a random scheme, click apply, toggle back to the Windows Default scheme and click apply again... that should get the sounds back again.

Thanks for the reply.  I would say that your fix is close to the truth.
What I have found is simpler than that!  I opened “Open Volume Mixer” from
the System Tray speaker icon, and there it was – System Sounds were muted
(Duh!).  Unmuted and we’re poppin’ Singin’ Toasts!  I fixed two machines
this way so far.
The simplest things can be so easily overlooked (“Is your machine plugged
in?”) ;-P
Robert L Knapp
Technical & Support Services Manager
McCandless Enterprises, LLC
From: Joshua King<EMAIL_ADDRESS>Sent: Thursday, November 19, 2020 2:46 PM
To: Windos/BurntToast<EMAIL_ADDRESS>Cc: RLK3<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Windos/BurntToast] No alert sound on multiple machines,
except on the first I installed to. (#137)
Sorry, have been meaning to reply but works had me swamped!
There was an update (or particular update path) at some point which turned
off the sound schemes in Windows. What fixed this for me is heading into
the "Sound" in the control panel, then the "Sound" tab inside that. Toggle
to a random scheme, click apply, toggle back to the Windows Default scheme
and click apply again... that should get the sounds back again.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Windos/BurntToast/issues/137#issuecomment-730596876,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARX4NTIDDGDQRGAMXAT7P5LSQVYZFANCNFSM4TVEUZFA
.


Ability to rebuild an indvidual stream's projections

Issue:  A bug was introduced that affected a severe minority of projections (600/3,300,000).  The events needed fixed, and projections re-built.  The current capability to rebuild an individual stream's projection requires the use of the Async Daemon, which can rebuild projections of a Type, but not specific streams.
Proposed Solution: Introduce a new method(s) that allow the refresh of a stream's projection directly. e.g: RefreshProjection(Guid streamId)

Found a work around.  If you aggregate the stream, then call store on the session and save changes, the projection will be updated.  I don't know if this satisfies all use cases, but it worked for us:
public async Task<T> RefreshProjection<T>(Guid StreamId) where T: class, IProjection, new()         {             if (StartSession())             {                 T stream = await _session.Events.AggregateStreamAsync<T>(StreamId);                 _session.Store<T>(stream);                 await _session.SaveChangesAsync();                 return stream;             }             else             {                 throw new UnableToStartSessionException("An error occurred while attempting to create session.");             }         }


Fix direct export of project in setup

This PR fixed the direct export of the project in setup status. This issue was accidentally introduced in #1052

@J535D165 Do we allow downloading a project with the error status?

Yes, this helps when a user runs into a problem and we want to debug.


TZInfo::Timezone.get returns TZInfo::DataTimezone instead of TZInfo::Timezone

TZInfo::Timezone.get returns TZInfo::DataTimezone instead of TZInfo::Timezone when tzinfo-data is installed.
This means I cannot access a lot of the functionality provided by TZInfo::Timezone.
ex:
[9] pry(main)> TZInfo::Timezone.get('America/Los_Angeles').base_utc_offset
NoMethodError: undefined method `base_utc_offset' for #<TZInfo::DataTimezone: America/Los_Angeles>

using:
gem 'tzinfo-data', '~> 1.2019.3'

TZInfo::DataTimezone is a subclass of TZInfo::Timezone.
Which version of the tzinfo gem are you using (tzinfo provides the interface, tzinfo-data supplies time zone data for tzinfo to use)?
The TZInfo::Timezone#base_utc_offset method was added in tzinfo version 2.0.0. If you're using tzinfo v1, you'll need the following instead:
TZInfo::Timezone.get('America/Los_Angeles').period_for_utc(Time.now.utc).utc_offset
=> -28800

At the moment the '~> 1.2019.3' version constraint you have on the tzinfo-data gem will be restricting you to time zone data released in 2019. So far there have been 4 releases since then.
I'd suggest just removing the version constraint:
gem 'tzinfo-data'


205: ComputeEngine discovery refactoring

Data after refactoring:

See the ticket description for the motivation of that refactoring:
https://github.com/openraven/magpie/issues/259


Compare to funfix

I think it is worth to compare to funfix (https://github.com/funfix/funfix) in order to help people choosing an 'IO'.

I agree that makes sense. Would you be willing to review a readme blurb?

@rzeigler sure!

Going to close as I have merged the documentation changes.


Move away from operation queue which was simply in place to limit the…

… number of downloads.

Thanks for the review @appleguy, will address feedback and get landed. Next is replacing NSOperation entirely (code is done, just wanted to land this first).


Question about the SIGN implementation

❓ Questions & Help
Hi, @rusty1s , I found that there is an SIGN implementation in this repo, are you guys implement this by the description of the original paper or is there any original code (since I didn't find a code link in the paper)? BTW, it seems that there has been only 1 operator while the original paper described up to 8 ops, is there any plan to add the rest ops in the future? Thanks a lot!

I just implemented it directly from the description in the paper. It seems that the paper changed quite a bit since I last looked at it. The current implementation only supports the "standard" formulation where node features are pre-computed via A^k @ X (with A being the symmetrically normalized adjacency matrix).


[feature request] Translation to local languages (French, German...)

Hello,
I'd gladly help building a translation file to propose locale translation for the front end (if it already exists, did not find it yet...)
Let me know how I can help !
T

Currently there is no localization, all texts are hard-coded. Implementing localization would require replacing all the hard-coded texts in templates and other code that produces texts (like date formatting) with calls to Djangos localization API. After that localization files could be added.

Perfect, when this enhancement is up, i will offer support for spanish translation.

支持一下，望早实现

any progress yet?

There doesn't seem to be any progress at the moment? I believe if there is localization, it will have more users and Github Stars!