refactor: sharky free slot handling and recovery support

This PR ended up a major overhaul of the sharky package which also affects he API.
New:

API change:

sharky.New now takes data size argument,  (also no swarm dependency)
Read now takes read buffer arfument for caller control of data allocation allowing chunk random access

corrected concurrency and persistance test

recovery support for disaster + crash recovery

free slot handling is now based on bitvectors, thanks to @acud for the great idea

free slot handling is a separate slots type

the read-write forever loop is corrected and read priority is properly handled

read and write operations more intuitive and sync.pool is not abused

more rigorous handling of close and quit

This change is

something deadlocks in the tests
=== RUN   TestSingleRetrieval
=== RUN   TestSingleRetrieval/write_and_read
=== RUN   TestSingleRetrieval/write_and_read/short_data
=== RUN   TestSingleRetrieval/write_and_read/exact_size_data
=== RUN   TestSingleRetrieval/write_and_read/exact_size_data_2
=== RUN   TestSingleRetrieval/write_and_read/long_data
=== RUN   TestSingleRetrieval/write_and_read/exact_size_data_3
=== RUN   TestSingleRetrieval/write_and_read/capacity_reached
--- PASS: TestSingleRetrieval (1.00s)
    --- PASS: TestSingleRetrieval/write_and_read (1.00s)
        --- PASS: TestSingleRetrieval/write_and_read/short_data (0.00s)
        --- PASS: TestSingleRetrieval/write_and_read/exact_size_data (0.00s)
        --- PASS: TestSingleRetrieval/write_and_read/exact_size_data_2 (0.00s)
        --- PASS: TestSingleRetrieval/write_and_read/long_data (0.00s)
        --- PASS: TestSingleRetrieval/write_and_read/exact_size_data_3 (0.00s)
        --- PASS: TestSingleRetrieval/write_and_read/capacity_reached (1.00s)
=== RUN   TestPersistence
SIGQUIT: quit
PC=0x467081 m=0 sigcode=128

goroutine 0 [idle]:
runtime.futex()
	/usr/local/go/src/runtime/sys_linux_amd64.s:519 +0x21
runtime.futexsleep(0xc00002b000, 0x40aff3, 0x1e)
	/usr/local/go/src/runtime/os_linux.go:44 +0x36
runtime.notesleep(0x616430)
	/usr/local/go/src/runtime/lock_futex.go:160 +0x87
runtime.mPark()
	/usr/local/go/src/runtime/proc.go:1441 +0x2a
runtime.stopm()
	/usr/local/go/src/runtime/proc.go:2408 +0x78
runtime.findrunnable()
	/usr/local/go/src/runtime/proc.go:2984 +0x865
runtime.schedule()
	/usr/local/go/src/runtime/proc.go:3367 +0x239
runtime.park_m(0xc0001131e0)
	/usr/local/go/src/runtime/proc.go:3516 +0x14d
runtime.mcall()
	/usr/local/go/src/runtime/asm_amd64.s:307 +0x43

goroutine 1 [chan receive]:
testing.(*T).Run(0xc000112000, {0x52a1ca, 0x467993}, 0x532820)
	/usr/local/go/src/testing/testing.go:1307 +0x375
testing.runTests.func1(0xc0000682a0)
	/usr/local/go/src/testing/testing.go:1598 +0x6e
testing.tRunner(0xc000112000, 0xc000043d18)
	/usr/local/go/src/testing/testing.go:1259 +0x102
testing.runTests(0xc000110000, {0x611e60, 0x3, 0x3}, {0x474ded, 0x52a031, 0x615ec0})
	/usr/local/go/src/testing/testing.go:1596 +0x43f
testing.(*M).Run(0xc000110000)
	/usr/local/go/src/testing/testing.go:1504 +0x51d
main.main()
	_testmain.go:49 +0x14b

goroutine 18 [select]:
github.com/ethersphere/bee/pkg/sharky.(*Shards).Write(0xc000068bd0, {0x554db0, 0xc00001a0f8}, {0xc00001a438, 0xc00006b860, 0xc00001a430})
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:142 +0x147
github.com/ethersphere/bee/pkg/sharky_test.TestPersistence(0xc00012c000)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/sharky_test.go:110 +0x5d3
testing.tRunner(0xc00012c000, 0x532820)
	/usr/local/go/src/testing/testing.go:1259 +0x102
created by testing.(*T).Run
	/usr/local/go/src/testing/testing.go:1306 +0x35a

goroutine 8 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010190, 0xc00005e240)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 20 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010460, 0xc00005eb40)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 10 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0000101e0, 0xc00005e240)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 39 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0001ac050, 0xc0001a20c0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 85 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0001ac1e0, 0xc0001a27e0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 41 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0001ac0a0, 0xc0001a20c0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 37 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0001ac000, 0xc0001a20c0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 22 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0000104b0, 0xc00005eb40)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 78 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000218140, 0xc00020c780)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 24 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010500, 0xc00005eb40)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 60 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0000a6050, 0xc000098120)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 26 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010550, 0xc00005eb40)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 83 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0001ac190, 0xc0001a27e0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 66 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000218000, 0xc00020c060)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 43 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0001ac0f0, 0xc0001a20c0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 28 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0000105f0, 0xc00005f260)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 81 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0001ac140, 0xc0001a27e0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 87 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0001ac230, 0xc0001a27e0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 58 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0000a6000, 0xc000098120)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 68 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000218050, 0xc00020c060)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 30 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010640, 0xc00005f260)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 70 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0002180a0, 0xc00020c060)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 72 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0002180f0, 0xc00020c060)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 32 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010690, 0xc00005f260)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 120 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010780, 0xc00005f9e0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 80 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000218190, 0xc00020c780)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 62 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0000a60a0, 0xc000098120)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 64 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0000a60f0, 0xc000098120)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 114 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0000106e0, 0xc00005f260)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 140 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0002183c0, 0xc00020cea0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 166 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000218500, 0xc00020d620)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 130 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0002181e0, 0xc00020c780)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 162 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000218460, 0xc00020d620)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 132 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000218230, 0xc00020c780)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 136 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000218320, 0xc00020cea0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 138 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000218370, 0xc00020cea0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 122 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0000107d0, 0xc00005f9e0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 179 [select]:
github.com/ethersphere/bee/pkg/sharky.(*shard).process(0xc000068c60)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shard.go:54 +0x1af
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:111 +0x40f

goroutine 124 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010820, 0xc00005f9e0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 134 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0002182d0, 0xc00020cea0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 126 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010870, 0xc00005f9e0)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 148 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010910, 0xc00013c180)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 164 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0002184b0, 0xc00020d620)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 150 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010960, 0xc00013c180)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 168 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000218550, 0xc00020d620)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 178 [select]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010af0, 0xc00013c900)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:118 +0x165
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 181 [select]:
github.com/ethersphere/bee/pkg/sharky.(*shard).process(0xc000068c90)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shard.go:54 +0x1af
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:111 +0x40f

goroutine 152 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc0000109b0, 0xc00013c180)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 180 [select]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010b40, 0xc00013c900)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:118 +0x165
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 154 [chan receive]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process.func1()
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:103 +0x48
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010a00, 0xc00013c180)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:127 +0x21a
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 177 [select]:
github.com/ethersphere/bee/pkg/sharky.(*shard).process(0xc000068c30)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shard.go:54 +0x1af
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:111 +0x40f

goroutine 160 [select]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010aa0, 0xc00013c900)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:118 +0x165
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

goroutine 159 [select]:
github.com/ethersphere/bee/pkg/sharky.(*shard).process(0xc000068c00)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shard.go:54 +0x1af
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:111 +0x40f

goroutine 182 [select]:
github.com/ethersphere/bee/pkg/sharky.(*slots).process(0xc000010b90, 0xc00013c900)
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/slots.go:118 +0x165
created by github.com/ethersphere/bee/pkg/sharky.(*Shards).create
	/home/growlie/go/src/github.com/ethersphere/bee/pkg/sharky/shards.go:112 +0x47d

rax    0xca
rbx    0x0
rcx    0x467083
rdx    0x0
rdi    0x616430
rsi    0x80
rbp    0x7ffe7adf9788
rsp    0x7ffe7adf9740
r8     0x0
r9     0x0
r10    0x0
r11    0x286
r12    0xc
r13    0x0
r14    0x616140
r15    0x0
rip    0x467081
rflags 0x286
cs     0x33
fs     0x0
gs     0x0
exit status 2
FAIL	github.com/ethersphere/bee/pkg/sharky	70.750s

The race detector is complaining. It seems that there is synchronization missing on shutdown inside the individual shards.

@zelig
=== RUN   TestRecovery
panic: test timed out after 10m0s

There is still data-race, see the Go build.

@mrekucci thanks a lot for you thorough review.
I think i left two issues unaddressed yet:

ioutil->io
size argument in slots initialisation

this is a well known concurrency pattern that go channels allow.  https://golangbyexample.com/select-with-nil-channel-golang/
i cannot live without it.
i will add a thorough explanation of whats going on

pkg/sharky/recovery.go, line 31 at r8 (raw file):
Previously, mrekucci wrote…
The size is already initialized in the constructor.

will delete

pkg/sharky/recovery.go, line 32 at r8 (raw file):
Previously, mrekucci wrote…
No need to init to 0 since it's zero value for the uint32.

will delete

pkg/sharky/recovery.go, line 70 at r18 (raw file):
Previously, mrekucci wrote…
This will panic with panic: interface conversion: error is nil, not *multierror.Error if there are no shards.

which should not happen by contract. i will document

pkg/sharky/recovery.go, line 78 at r18 (raw file):
Previously, mrekucci wrote…
The same as above.

Done.

pkg/sharky/shard.go, line 58 at r18 (raw file):
Previously, acud (acud) wrote…
I find it unclear on why this is needed. It also increases the mental taxation of reading this method by orders of magnitude. Without any evidence of usage patterns that require this prioritization I would simply remove this part and have a flat for select that prioritizes reads and writes equally. I think we are light years away from needing this sort of optimization. I would also avoid the notorious channel hotswapping pattern here. It is very difficult to follow and understand. The only other place this was used (pusher) was also very difficult to understand and reason about.

sorry if this causes frustration. the pattern is quite straightforward: until we consume reads, not bother with writes. i can rid of it if you insist :)

pkg/sharky/shard.go, line 75 at r18 (raw file):
Previously, acud (acud) wrote…
it would be good to have documentation on what is the intention here. there's a lot of channel swapping but the bigger picture is missing: what are you trying to achieve here? there's a lot of indirection and multiple components involved, communicating solely by channels, and it is very difficult to unpack (there's no comment anywhere on how these channels interact). Perhaps documenting how the method works would make the onboarding easier for others.

ok ill add the big picture explanation

pkg/sharky/shard.go, line 86 at r18 (raw file):
Previously, acud (acud) wrote…
how do you know that the slot is still in limbo...? not really clear how do you determine that (there's not state change to slot after a write). is it determined only by checking whether a channel is plugged into the writes channel?

writes require 2 steps,  first we acquire  a free slot: only if we got somewhere to write then we make the shard available as a worker to pick write instructions from the write channel sharred betweenn shards. this means that we never pick a shard to write only to reallise it is full

pkg/sharky/sharky_test.go, line 260 at r8 (raw file):
Previously, mrekucci wrote…
The 500*time.Millisecond is not enough on my machine sometimes and I'm getting: context deadline exceeded.

increased to 800

pkg/sharky/slots.go, line 18 at r18 (raw file):
Previously, acud (acud) wrote…
having some documentation on how in, out and rest interplay would be helpful, I am not 100% sure I understand this

will add doc

pkg/sharky/slots.go, line 66 at r18 (raw file):
Previously, acud (acud) wrote…
does this mean that s.limit also has to be multiple of 8? is the edge case covered by a unit test?

yes it does. i will add errors to the constructor

pkg/sharky/slots.go, line 94 at r18 (raw file):
Previously, acud (acud) wrote…
please document the semantics of the boolean return value, is it full? free? etc, returns true when .....

ok

pkg/sharky/slots.go, line 120 at r18 (raw file):
Previously, acud (acud) wrote…
I find this sort of channel hotswapping pattern is extremely complicated to understand and would avoid it altogether. I honestly have no idea what's going on here. the other downside is that if you look at this from a goroutine dump you have absolutely no chance of figuring out if something is wrong, since you have no clear indication of what channel is loaded into which slot. This could be so much simpler with just a counter of free slots and just calling next() every time we need a slot. we can optimize later (but also please optimize on readability)

i will add explanation. but again channel swapping and nil-ing is a well established go pattern

pkg/sharky/slots.go, line 127 at r18 (raw file):
Previously, acud (acud) wrote…
no documentation?

wlll add

pkg/sharky/shards.go, line 160 at r8 (raw file):
Previously, mrekucci wrote…
Unused ctx param.

Done.

pkg/sharky/shards.go, line 176 at r8 (raw file):
Previously, mrekucci wrote…
This might result in a data-race, since the modification of the location isn't guarded and it's used in other places for reads, e.g.:
func (sh *shard) read(op *operation) {
	_, err := sh.file.ReadAt(op.buffer[:op.location.Length], offset(op.location.Slot))
...

Done.

pkg/sharky/store.go, line 65 at r18 (raw file):
Previously, acud (acud) wrote…
:+1: not sure why to use this ErrorOrNil at all here... why are you not using the actual multierror type directly?

@mrekucci showed this. i guess we dont want to return a typed nil in the happy case

@acud @aloknerurkar @mrekucci @janos i fixed the flow control as we agreed,

Codecov Report

:exclamation: No coverage uploaded for pull request base (sharky-pkg@84d8333). Click here to learn what that means.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             sharky-pkg    #2708   +/-   ##
=============================================
  Coverage              ?   63.73%
=============================================
  Files                 ?      240
  Lines                 ?    26856
  Branches              ?        0
=============================================
  Hits                  ?    17116
  Misses                ?     8205
  Partials              ?     1535

Continue to review full report at Codecov.

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

see some notes on sharky https://hackmd.io/k7NRajAdQRSnG7ndRCf6aA


Fix send nil value when creating an entity

This is @jodosha 's work, He told me finish the PR:
reference #155 #156

@lotus/core-team @7even @luishurtado


Update lnd script installes now the update to 0.11.1

lnd Version is changed from 0.11.0-beta to 0.11.1-beta

+cp into dev branch


Added Autotesting

Added auto-testing script under /autotest that does the following:

Verifies that the Arduino is connected
Reads from both temperature sensors
Verifies that readings are within normal operating conditions (250 K - 450 K)
Outputs voltage through each transistor and checks that the transistor is heating.

Script runs in a loop for testing multiple boards.

I moved the autotest script inside the Python device test folder for clarity.  We can add an autotest for Matlab as well if needed.


[web] does not open on android in Edge Chromium

Originally reported in Gitpod: https://github.com/gitpod-io/gitpod/issues/4537#issuecomment-903104166

Can you open https://vscode-web-test-playground.azurewebsites.net/?enter=true and see if there is anything logged to devtools that could help diagnose the problem further?

@shaal Could you try above please? 🙏

This issue is caused by an extension, please file it with the repository (or contact) the extension has linked in its overview in VS Code or the marketplace for VS Code. See also our issue reporting guidelines.
Happy Coding!

Hi @bpasero & @akosyakov, sorry for the long delay.
I didn't have a chance to add information to this issue before.
The title is of this issue is not accurate, because the problem I encountered is specifically when these 3 conditions are met:

Using Edge Chromium
On an Android mobile device (I tested it on various Android mobile phones and on Amazon Fire tablet)
Open any version of vscode-in-the-browser

I don't think it's related to any specific extension.
Here are the errors in devtools, using remote debugging -
Testing with the link you suggested:

Testing with github.dev:

Testing with github1s.com:

But when testing with Chrome (NOT Edge Chromium) on the same device, vscode in browser is working as expected:

Ok then please file a bug against Edge on Android, they probably do something wrong.

FYI, I tested github.dev on my Android device (Pixel 3 XL) in both Edge and Edge Canary and it loaded and worked for me.

Thank you @eamodio
I tested with Edge Canary on my onePlus 7T Android phone, and it works! No errors like in standard Edge Chromium.
Should I just assume Edge Chromium will catch up with Edge Chromium Canary and soon it's not going to be a problem?


Base path mapping of API GW custom domains is added to path

I'm not sure what the proper solution for this is but,
If you set up custom API gateway domain with a base path mapping, then the path mapping and stage are added to the path flask receives. So instead of it dispatching on /foo/bar it dispatches on /v1/Prod/foo/bar.

If I go to https://qanda.llolo.lol/v1/Prod/foo/bar - then I get a 404 because it tries to send it to /v1/Prod/foo/bar instead of /foo/bar.
What's the best way to deal with this?

@revmischa sorry, I don't have a solution. I hope you were able to figure it out.


Add warning about missing libjsonrpccpp-dev package on Ubuntu 15+

I ran into an issue with the install instructions on Ubuntu 16.

The new package name is libjsonrpccpp-dev


drivers: hwinfo: Fix mcux device id

This fixes an issue where the unique device identifier is incorrectly
copied from an address on the AHB bus to memory using memcpy.
I verified corrected behavior by comparing hwinfo devid command
output to memory view of the SoC using the debugger.
Fixes #48447
Signed-off-by: Bryce Wilkins<EMAIL_ADDRESS>

Looks good now. Thanks for the fix!

@alexanderwachter I had to push again to fix a style issue I didn't check for earlier. I'm not sure why but after pushing it says I dismissed your (stale) review. I think this needs your ✅ again. Sorry about that!


Completed API Implementation for M3

This PR adds the remaining functionality for Milestone 3. It includes citation, publication, and relevancy metrics. It includes returning collaborators for an expert. It also includes getting the details for a given expert.

I closed this pull request when doing a rebase. The changes are sent in a subsequent PR.


updated bluebird & aws-sdk to latest versions, imported just S3 clien…

…t from aws-sdk instead of whole SDK.  All tests passing

Coverage decreased (-50.0%) to 32.895% when pulling eb1d7fac9f5f36c02665f73d172fed7ccfba2a78 on parallaxisjones:master into 26fb419f1ad5847507e4a6a6f637051bb11a9ff8 on RiptideElements:master.

Coverage decreased (-50.0%) to 32.895% when pulling eb1d7fac9f5f36c02665f73d172fed7ccfba2a78 on parallaxisjones:master into 26fb419f1ad5847507e4a6a6f637051bb11a9ff8 on RiptideElements:master.


Transactions between deployments seems to fail incrementing the nonce (Next deployment fails trying to reuse the nonce)

I have this deploy script:
module.exports = async ({ getNamedAccounts, deployments, network }) => {
  const { deploy, log } = deployments;
  const { deployer } = await getNamedAccounts();

  if (network.tags.local || network.tags.testnet) {
    await deploy('PriceOracleMock', {
      from: deployer,
      log: true,
      args: [],
    });

    log('Initializing the oracle...');
    let oracle = await ethers.getContract('PriceOracleMock');
    await oracle.setPrice(oracle.address, '1');
  }
};

module.exports.tags = ['price_oracle_mock'];

and this one depending on that:
const { networkConfig } = require('../helper-hardhat-config');

module.exports = async ({ getNamedAccounts, deployments, network, getChainId }) => {
  const { deploy, log } = deployments;
  const { deployer } = await getNamedAccounts();
  const chainId = await getChainId();

  // get previously deployed contracts
  let marketplace = await ethers.getContract('ReserveMarketplace');
  let protocolParameters = await ethers.getContract('ProtocolParameters');

  let priceOracleAddress = networkConfig[chainId].priceOracleAddress;

  if (network.tags.local || network.tags.testnet) {
    priceOracleAddress = (await ethers.getContract('PriceOracleMock')).address;
  }

  // ! IN PRODUCTION THE OWNERSHIP OF THIS CONTRACT SHOULD BE TRANSFERRED TO GOVERNANCE

  // this contract is upgradeable through uups (EIP-1822)
  let manager = await deploy('ReservesManager', {
    from: deployer,
    proxy: {
      proxyContract: 'UUPSProxy',
      execute: {
        init: {
          methodName: 'initialize',
          args: [priceOracleAddress],
        },
      },
    },
    log: true,
    args: [marketplace.address, protocolParameters.address],
  });

  if (manager.newlyDeployed) {
    log('Initializing the Marketplace...');
    await marketplace.initialize(manager.address);
  }
};

module.exports.tags = ['reserves_manager'];
module.exports.dependencies = ['reserve_marketplace', 'price_oracle_mock'];

The deployment of the proxy is failing with provider error: replacement fee too low, and when I comment the Initialization of the priceOracle then it works, it looks like the nonce is not being incremented when I call the ethers transaction between deployments

Important thing I forgot to say, is that this only seems to fail in testnets (I tested with Mumbai and rinkeby), in local hardhat node it works

By default, hardhat-deploy do not use pending nonce, it use confirmed nonce. this allow hardhat-deploy to be fully deterministic, allowing the deployment procedure to be reexecuted even if in case of abort
And because your tx here : await oracle.setPrice(oracle.address, '1'); is not waiting for confirmation, the deploy call will reuse the same nonce
You can fix it by doing await (await oracle.setPrice(oracle.address, '1')).wait();

and it works on hardhat because currently hardhat perform tx and inclusion synchrnously

got it, that's perfect, thank you for the quick response


kubeadm config images pull in k8s v1.23.8 using cri v1

What happened:
W1211 00:43:48.226058   12722 strict.go:55] error unmarshaling configuration schema.GroupVersionKind{Group:"kubeproxy.config.k8s.io", Version:"v1alpha1", Kind:"KubeProxyConfiguration"}: error unmarshaling JSON: while decoding JSON: json: unknown field "detectLocal"
[init] Using Kubernetes version: v1.23.8
[preflight] Running pre-flight checks
	[WARNING FileExisting-socat]: socat not found in system path
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
error execution phase preflight: [preflight] Some fatal errors occurred:
	[ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-apiserver:v1.23.8: output: time="2022-12-11T00:43:48+08:00" level=fatal msg="pulling image: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.ImageService"
, error: exit status 1
	[ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-controller-manager:v1.23.8: output: time="2022-12-11T00:43:48+08:00" level=fatal msg="pulling image: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.ImageService"
, error: exit status 1
	[ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-scheduler:v1.23.8: output: time="2022-12-11T00:43:48+08:00" level=fatal msg="pulling image: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.ImageService"
, error: exit status 1
	[ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-proxy:v1.23.8: output: time="2022-12-11T00:43:48+08:00" level=fatal msg="pulling image: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.ImageService"
, error: exit status 1
	[ERROR ImagePull]: failed to pull image k8s.gcr.io/pause:3.6: output: time="2022-12-11T00:43:48+08:00" level=fatal msg="pulling image: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.ImageService"
, error: exit status 1
	[ERROR ImagePull]: failed to pull image k8s.gcr.io/etcd:3.5.1-0: output: time="2022-12-11T00:43:48+08:00" level=fatal msg="pulling image: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.ImageService"
, error: exit status 1
	[ERROR ImagePull]: failed to pull image k8s.gcr.io/coredns/coredns:v1.8.6: output: time="2022-12-11T00:43:48+08:00" level=fatal msg="pulling image: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.ImageService"
, error: exit status 1
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher

What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

Container runtime or hardware configuration:
crictl v1.23.0
OS (e.g: cat /etc/os-release):
Kernel (e.g. uname -a):
Others:

hi,
this seems like you have a container runtime image service that no longer has cri alpha2. you can downgrade the runtime...or better get latest k8s and containerd.
for more feedback try asking in #sig-node on k8s slack.
/kind support
/close

this seems like you have a container runtime image service that no longer has cri alpha2. you can downgrade the runtime...or better get latest k8s and containerd.

Yes, that's right. But from the compatibility of k8s, shouldn't the "v1alpha2" and "v1" be compatible from 1.23? Should crictl v1.23.0 be upgraded to v1?


Login Failed for user 'sa'

You should use MSSQL_SA_PASSWORD instead of sa_password

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

ID: b152444b-dfb8-5cbe-cf45-9830bd085a68
Version Independent ID: 31719660-d4d0-7f63-efcc-846c822a63c2
Content: Docker: Install containers for SQL Server on Linux - SQL Server
Content Source: docs/linux/quickstart-install-connect-docker.md
Product: sql
Technology: linux
GitHub Login: @vin-yu
Microsoft Alias: vinsonyu

@UelisonSantos -- thank you for your feedback.  I am looking into this article.

@UelisonSantos -- thank you for your feedback.  I am looking into this article.

@vin-yu -- Vin, please review this change in private PR 18345.

@vin-yu -- Vin, please review this change in private PR 18345.

@WilliamAntonRohm link is dead bro

@thanhmanci -- Thanh, thank you for your followup.  That PR is in a private repo that we use for staging content before it goes live.

@UelisonSantos -- the response from our expert is that SA_PASSWORD is correct.
I am closing this issue now.  You are welcome to @ mention me for any followup.
We hope to hear from you again.
cc @vin-yu @dzsquared for awareness

strangely MSSQL_SA_PASSWORD worked for me.


feat(cleanup): add startup cleanup

Changes:

cleanup job on startup for invalid files or in progress json files

Closes #127

in addition how are long lasting files handled?

the audio files should be removed once a transcription is finished
json that are finished should have a lifetime?

https://github.com/shuffle-project/melvin-asr/blob/964617c5d7aa6a1ab0c424d7645957f1f84e77e5/src/helper/data_handler.py#L117
that already exists


Add bld own dependencies to dependency-tree

Including extension dependencies, etc.

This was implemented for 2.0.0


feat(http2.js): add support for HTTP2

@galbash thanks - please re-review

@galbash all fixed.
I've added also the right way to extract the request body in http, since it wasn't being made right so far.
all changes tested with got, fetch, axios, request, superagent, http2, fetch-h2, Wreck.

:tada: This PR is included in version 1.52.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


hdbcli>2.5 cannot bind parameters by name (Python)

Hi there
Because this, it's also not possible to do this with sql-alchemy (hana).
Since the hdbcli>=2.5 it's not possible to bind parameters by name.
In version hdbcli==2.4.202 it's still working.
With unnamed params it's working (using of ?).
I'm using conda with python 3.8 on windows.
I tested the behaviour with:

2.5.111
2.6.64

Minimal example:
from hdbcli import dbapi

conn = dbapi.connect(...)
cursor = conn.cursor()

sql = 'SELECT count(*) FROM sys.tables where table_name like :xx'
params = {
    'xx': '%'
}

cursor.execute(sql, params)
for row in cursor:
    print(row)

Error message:
SystemError: d:\bld\python-split_1602094606092\work\objects\dictobject.c:2469: bad argument to internal function

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "S:/cdwh-prefect/test.py", line 12, in <module>
    cursor.execute(sql, params)
SystemError: <built-in method parsenamedquery of pyhdbcli.Cursor object at 0x0000026BB89892F0> returned a result with an error set

Also posted here with no answer:
https://answers.sap.com/questions/13209720/hdbcli25-cannot-bind-parameters-by-name-python.html

It's fixed with the last update


TimeoutException with hot reload. Hot restart works fine

Steps to Reproduce
When I click the hot reload button in IntelliJ I get timeouts most of the time. I stick with hot restart which works fine.
I have this issue since a while and don't know with what version it started (didn't much UI work until recently)
Logs
Run your application with flutter run and attach all the log output.
Run flutter analyze and attach any output of that command also.
Flutter Doctor
[✓] Flutter (Channel dev, v0.3.5, on Mac OS X 10.13.4 17E199, locale en-AT)
[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[✓] iOS toolchain - develop for iOS devices (Xcode 9.3)
[✓] Android Studio (version 3.1)
[✓] IntelliJ IDEA Ultimate Edition (version 2018.1.2)
[✓] Connected devices (1 available)

IntelliJ 2018.1.2 with Flutter plugin 23.2.3.

For more information about diagnosing and reporting Flutter bugs, please see https://flutter.io/bug-reports/.

@aam @rmacnak-google @a-siva - can we think about any sort of logging we could add to diagnose this problem? I think in the original comment @zoechi was pasting logs which indicated that _listViews is timing out.

There is known issue where hot-reload hangs if the Flutter code is sitting on the breakpoint.
We had https://github.com/flutter/engine/pull/4939 to fix that, but landing of it had to wait to unblock engine refactor land.

@zoechi could you check if you are on the breakpoint when reload times out?

This also happens when no breakpoint is set.

There are also #7310 and #17372 which seem related but they do look like being caused by breakpoints.

Still experiencing this problem on latest master 0.4.5-pre.6
Last time I clearly didn't experience this was on beta pointing to v 0.2.8. I can still roll back to that version and everything goes smooth.
I tried different versions of Android Studio, also latest Intellij, forcing eiter dart 1 or 2, in different projects and flutter versions. Nothing makes it better, usually the first 1 or 2 hot reloads work normally but after about a minute all attempts to hot reload from IDE never finishes. Attempts to hot reload from command line seem to "finish" but no side effects are shown on emulator.
I avoid breakpoints as much as I can in general, until hot reload is 100% back.
Is there any way to mitigate it?

can you add the '--verbose' option to the 'flutter run' command and post the output here.

Android Studio 3.1.1 • Flutter plugin io.flutter 24.0.1 • Dart plugin 173.4700
Flutter 0.3.2 • channel beta • https://github.com/flutter/flutter.git
Framework • revision 44b7e7d3f4 (4 weeks ago) • 2018-04-20 01:02:44 -0700
Engine • revision 09d05a3891
Tools • Dart 2.0.0-dev.48.0.flutter-fe606f890b

Things I tried on flutter beta 0.3.2 today:

Ran from command line with --verbose. Hot reload works as expected.
flutter clean. Ran from command line without --verbose. Hot reload works as expected.
flutter clean. Ran debug from AS 3.1.1 with shortcut assigned to hot reload, no verbose logging. Hot reload stuck, console window shows "Performing hot reload..." and never goes past it.

The test was the following:

Have new Text('abc');
Add one more letter to that string, in a way that across all tests that string is still unique. Hot reload.
Repeat step above 5 times.
Delete last letter. Hot reload.
Repeat step above 5 times.

My experience varies, but usually when Android Studio I can add about 2 or 3 characters.
In this test the command line showed to be reliable, but in a typical use I also have problems with it.
https://gist.github.com/fmatosqg/7a643451d39a760464b8b64ea9019ca8
These are the lines immediately before the timeout manifests itself:
[   +3 ms] Compiling dart to kernel with 1 updated files
[ +110 ms] Updating files
[   +7 ms] DevFS: Sync finished
[        ] Synced 0.0MB.
[        ] _reloadSources: {pause: true, rootLibUri: /data/user/0/au.com.safescripts.chemist/cache/safescript_chemistDBIBEA/safescript_chemist/lib/main.dart.dill, packagesUri: /data/user/0/au.com.safescripts.chemist/cache/safescript_chemistDBIBEA/safescript_chemist/.packages, isolateId: isolates/674528656}
[  +79 ms] reloaded 8 of 403 libraries
[        ] Sending reload events to Android SDK built for x86
[        ] Sending reload event to "main.dart$main-674528656"
[        ] getIsolate: {isolateId: isolates/674528656}
[  +13 ms] _flutter.listViews: {}
[+60005 ms] Request to Dart VM Service timed out: _flutter.listViews({})
[{"event":"app.progress","params":{"appId":"1ff2ccda-52ee-438e-b064-4c7f6785a7f5","id":"10","progressId":"hot.reload","finished":true}}]
[{"id":9,"error":"TimeoutException: Request to Dart VM Service timed out: _flutter.listViews({})"}]

After that I hit stop, that is clearly indicated in the gist.

A few more details:

I noticed from the gist that the emulator says its memory is full, so I reran it after deleting a couple of apps.
The emulator is not responsive: app bar, TextField, button don't show any signs that I'm interacting with them
SW back button (emulator) gives me visual feedback but nothing in app shows it received that command
qemu is typically 7% when idle either on home or with flutter app opened, but raises to 29-30% when hot reload is stuck.
If I take too long to type / hot reload I can have fewer successfull cycles (as in, less characters show). But if I do it too fast it also makes more problems.
I can still press home button, then recent button and swipe the app to kill it, when AS buttons go back to normal (stop button grays out, debut and run buttons get enabled again).

A few more details that seem to make a difference but I still can't be sure:
Having a small Scaffold with a single element and triggering hot reload with cmd+s (save file) seems to work better than
a relatively big tree, using the shortcut for hot reload and changing content in a nested text like so:
new Text(
                   'text',
                   style: textTheme.body1,
                 ),

Perhaps we can consolidate this into https://github.com/flutter/flutter/issues/17434 where folks are reporting similar problem with hot reload in VSCode.

Moving my discovery over that thread (#17434 )

It seems it depends on what part of the UI is shown.
I started working on a simpler page and here hot-reload is working fine, but on a more complex page it still "_listViews is timing out."

As far as I see @aam is working on fixing #17434 which looks similar.
Alex, is this the same issue or are they different issues? Should these two bugs be merged?

Merging with #17434


Cluster: Adds cluster member state API endpoint

Part of my work on https://github.com/lxc/lxd/pull/11180
Adds GET /1.0/cluster/members/<member>/state API endpoint for returning state info about the cluster member and its local storage pools.

@stgraber would an associated lxc cluster info <member> command be useful with this PR?

Documentation preview available at: https://linuxcontainers.org/lxd/docs/pr.11284/

@stgraber would an associated lxc cluster info <member> command be useful with this PR?

I think so, yeah. We usually provide one whenever we have a /state

@stgraber would an associated lxc cluster info <member> command be useful with this PR?

I think so, yeah. We usually provide one whenever we have a /state

@stgraber have added that now.

jenkins: test this please


support klaytn-deploy

I got reported klaytn-deploy is using Dockerfile of klaytn-load-tester to get Ubuntu binary file.
So new Dockerfile need keep legacy binary path, /locust-docker-pkg/klayslave.

tested with klaytn-deploy and this enhancement worked well.


Challenge: Create a JavaScript slot machine

Create a JavaScript slot machine
There appears to be a bug in this. My code is passing the first three tests, but the last reads:

assert((function(){if(editor.match(/Math.floor(\sMath.random()\s*\s*(\s3\s-\s1\s+\s1\s)\s*)\s*+\s1/gi) !== null){return editor.match(/slot.?=.?(.?).*?/gi).length >= 3;}else{return false;}})(), 'You should have used Math.floor(Math.random() * (3 - 1 + 1)) + 1; three times to generate your random numbers.')

This message, "You should have used Math.floor(Math.random() * (3 - 1 + 1)) + 1; three times to generate your random numbers", describes exactly what I did.
I've tried browser refresh and even cut and pasted from the error message to make sure there are no typos.

@kfrn thanks for the issue. This was already brought up in https://github.com/FreeCodeCamp/FreeCodeCamp/issues/10528. Closing as duplicate issue. Happy coding!

I think I opened the window to type before that was up! Apologies and thanks for your responsiveness.


xWebAppPool: Remove example from README.md

We should remove this example from README.md https://github.com/PowerShell/xWebAdministration#create-and-configure-an-application-pool since there already is an example in the Examples folder that covers this.

Should I remove the last example alone?

Remove the entire section create-and-configure-an-application-pool. The other examples should be moved.

Ok I am on it.

Done and did a pull request. :)

This is open for any contributor again since there are currently no PR open to resolve this.


ioquake3: fix missing .so files at startup and clean-up

The current version of ioquake3 in nixpkgs is broken. Missing .so files when running the main binary:
❯ nix shell nixpkgs#ioquake3
❯ ioquake3.x86_64
ioq3 1.36 linux-x86_64 Jan  1 1980
SSE instruction set enabled
----- FS_Startup -----
We are looking in the current search path:
/home/pol/.q3a/baseq3
/home/pol/.q3a/baseq3/pak8.pk3 (9 files)
/home/pol/.q3a/baseq3/pak7.pk3 (4 files)
/home/pol/.q3a/baseq3/pak6.pk3 (64 files)
/home/pol/.q3a/baseq3/pak5.pk3 (7 files)
/home/pol/.q3a/baseq3/pak4.pk3 (272 files)
/home/pol/.q3a/baseq3/pak3.pk3 (4 files)
/home/pol/.q3a/baseq3/pak2.pk3 (148 files)
/home/pol/.q3a/baseq3/pak1.pk3 (26 files)
/home/pol/.q3a/baseq3/pak0.pk3 (3539 files)
./baseq3

----------------------
4073 files in pk3 files
execing default.cfg
execing q3config.cfg
couldn't exec autoexec.cfg
Hunk_Clear: reset the hunk ok
----- Client Initialization -----
Couldn't read q3history.
----- Initializing Renderer ----
Trying to load "renderer_opengl2_x86_64.so" from "."...
Loading "renderer_opengl2_x86_64.so" failed
failed:
"Failed loading ./renderer_opengl2_x86_64.so: ./renderer_opengl2_x86_64.so: cannot open shared object file: No such file or directory"
Failed to load renderer
~ ✘

Also, the binaries should not be suffixed with the arch it has been compiled for.
Description of changes
ioquake3:

Fix ioquake3
Remove the arch suffix from the binaries (ioquake3.x86-64 -> ioquake3, ioq3ded.x86-64 -> ioq3ded)
Add .desktop file
Remove unneeded dependencies
Clean-up installation phase
Add meta.mainProgram attribute
Add myself in the maintainer list

nixos/quake3-server:

add package config option
remove top-level with lib;

Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-in-distress/3604/65


Remove OCSP/CRL hosts

@konklone recently started publishing an OCSP/CRL exclusion list.  These changes pull down that list and use it to remove matching hosts from the list to be scanned.
We exclude OCSP/CRL hosts from scanning because they do not fall under the scope of the BOD.

I agree these hosts are out-of-scope -- but it would be nice if they were still represented in the HTTPS Report as OCSP/CRL hosts.

@h-m-f-t and @dav3r, would you be happy if we added an attachment containing all the skipped OCSP/CRL hosts and added a blurb to the report explaining that?

@jsf9k that sounds like a reasonable and relatively easy way to accomplish this.  It would be nice to have the attachment only include the skipped OCSP/CRL hosts owned by the organization receiving the HTTPS report (and not include the attachment at all if there were no OSCP/CRL hosts for that org) , but I understand that is more work.  I think your solution is a fine starting point.

@dav3r and @h-m-f-t (and anyone else who wants to respond):

Are we fine with including the whole OCSP/CRL CSV attachment in the HTTPS report for now?  I think @dav3r said he was OK with that, but I want to make sure we're all on board.  It's a little complicated to create that OCSP/CRL exclusion CSV separately for each agency, so my thought was that we should get it out there, get agencies to start contributing their OCSP/CRL hosts to the exclusion list, and make agency-specific lists in a future pull request.
Since we currently use the same CSV of hosts to scan for the HTTPS and Trustworthy Email scans, the OCSP/CRL hosts will also excluded from the Trustworthy Email scans.  Is this OK, or should I make different CSVs for the two scans?  I'm leaning toward the latter, since folks still wouldn't want evil-doers sending emails from their OCSP/CRL domains, but I wanted your input.

@jsf9k I agree with you that we should have a different CSV for Trustymail for the reason you mentioned.

I think the more we can do the hard work to make it easy for users to user our info, the better for everyone. If I had my druthers, I'd love for the HTTPS Report to indicate in line that a host is an OCSP/CRL host and for pshtt results to indicate that a host was OCSP/CRL according to a checked exception file. But adding a holistic OCSP/CRL CSV as a temporary step to alleviate the compliance pain agencies feel  seems ok to me.
Presuming a complete exclusion list, I think it'd be comprehensive for all agencies' digital services. I think a single list would be ok, and don't see the need to separate them for web v. email.

...make agency-specific lists in a future pull request

I feel like I'm missing something. If the OCSP/CRL host is on something.gov and we know something.gov is owned by e.g., the Department of Administrative Affairs, is making it so that the OCSP/CRL attachment that hits agencies consists solely of their hosts a challenge?

@h-m-f-t

Presuming a complete exclusion list...

The question wasn't whether to generate separate exclusion lists, but whether OCSP/CRL hosts should be exempt from Trustworthy Email scanning.  @dav3r and I were thinking not.  Do you feel otherwise?

I feel like I'm missing something...

It's not a challenge, but it will require writing some code.  I'll try to get to it this weekend.

@jsf9k ah I understand now. No, I don't think these hostnames should be exempt from Trustworthy Email scanning.

It's not a challenge, but it will require writing some code. I'll try to get to it this weekend.


/Feature/issue 103 implement vector view map

Summary:
Implementation of container_view class for usage in OperandsAndPartials.
Intended Effect:
When used in conjunction with OperandsAndPartials, allows for vectorization and precomputed gradients in multivariate distributions.
How to Verify:
./runTests.py test/unit/math/prim/scal/meta/container_view_test.cpp
./runTests.py test/unit/math/prim/mat/meta/container_view_test.cpp
./runTests.py test/unit/math/prim/arr/meta/container_view_test.cpp
./runTests.py test/unit/math/rev/scal/meta/container_view_test.cpp
./runTests.py test/unit/math/rev/mat/meta/container_view_test.cpp
./runTests.py test/unit/math/rev/arr/meta/container_view_test.cpp
./runTests.py test/unit/math/mix/scal/meta/container_view_test.cpp
./runTests.py test/unit/math/mix/mat/meta/container_view_test.cpp
./runTests.py test/unit/math/mix/arr/meta/container_view_test.cpp
Side Effects:
None.
Documentation:
Doxygen doc added for template class and its specializations
Reviewer Suggestions:
Daniel or Bob.

@bob-carpenter Any chance you'd have time to walk through this PR with me later today so we can get this merged?

Let's wait until after the dust settles from 2.7.  It looks like
other fixes are already cascading into errors on the Intel compiler.

Bob

On Jul 9, 2015, at 8:40 AM, Rob Trangucci<EMAIL_ADDRESS>wrote:
@bob-carpenter Any chance you'd have time to walk through this PR with me later today so we can get this merged?
—
Reply to this email directly or view it on GitHub.

I went through this all with Rob and other for some doc, it all looks OK, so I'm going to mark it reviewed.

Jenkins, retest this please.


Import environment variables into systemd in NixOS modules

Description
Issue
Frankly speaking, using the nixos modules without modification is a XDG-"nightmare".
This is because almost all XDG/GIO calls happen through portals. The problem being that the portals are being started as a user session service by systemd. This means that important environment variables like PATH and XDG_DATA_DIRS are not accessible. Then again there are many applications that ignore default mime applications completely and look at Well-known Message Bus Instances instead.
To bring order into this situation I personally did 2 things:

Some packages install well-known bus type dbus services (usually located in .../share/dbus-1/) . To select a default I will symlink the corrects one the most dominant name (usually something like org.freedesktop.BasicFoo1).
I add the following line  in my config after declaring variables and before starting any services:

exec-once = ${pkgs.dbus}/bin/dbus-update-activation-environment --systemd --all

Proposal
I would like to:

Add this information to documentation. Even the first point is necessary because Hyperland does not ship with any default tools, so every n00b will throw together their own distro and cry about XDG issues.
Add the line in the config by default (at least when using nix module). Home-manager already provides a way to declare environment variables for a session, so it should be fine to add the line at the top of the config.

Related Issues
NixOS/nixpkgs

Are you running home-manager?
To my knowledge, something similar is already handled for those running HM: https://github.com/hyprwm/Hyprland/blob/main/nix/hm-module.nix#L138

I think I remember seeing that. However it still still is not enough.
Important variables for xdg are missing like XDG_DATA_DIRS and PATH. If
there isn't any security issue I would just shorten the line by using the
flag --all.
On Tue, Jul 25, 2023, 08:22 Patrick Shaw @.***> wrote:

Are you running home-manager?
To my knowledge, something similar is already handled for those running
HM: https://github.com/hyprwm/Hyprland/blob/main/nix/hm-module.nix#L138
—
Reply to this email directly, view it on GitHub
https://github.com/hyprwm/Hyprland/issues/2800#issuecomment-1649195432,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUQFFF4Y53X72GHIW3B3DFDXR5Q4DANCNFSM6AAAAAA2V5XKLI
.
You are receiving this because you authored the thread.Message ID:
@.***>

Are you sure we want to import all environment variables when starting the session? I don't have info on this so I just kept the var list small so as not to potentially conflict with other things.

I wasn't too concerned about any side effects because greetd is started by a greetd user anyways. I agree, in general it might be better to import only the ones you need. However right now some seems to be missing. I actually based my config off of yours and I still encountered the 25sec issue when regreet starts.

Are you sure we want to import all environment variables when starting the session? I don't have info on this so I just kept the var list small so as not to potentially conflict with other things.

I have been deliberating this with myself as well. I think maybe it would be the most painless way to do. If we do import all environment variables, programs started from waybar click handlers would actually use my QT_QPA_PLATFORMTHEME. Right now they don't, and I haven't found an easy way to handle this without carefully wrapping each individual program (or having waybar be wrapped and pass along the environment).
Considering that most distros would have every variable imported, it wouldn't be unreasonable to do. However, I know that this isn't "the NixOS way".

This seems to be it. I don't use Sway, so I don't know if anything else works as I expect or if it has the same problems I do on HL.
https://github.com/nix-community/home-manager/blob/master/modules/services/window-managers/i3-sway/sway.nix#L311

Unfortunately the above link again is intended for a sway session started by systemd with a proper user. The sway session I launch is before any login and just to run regreet for greetd. While I don't know why, in this particular use-case those variables are not enough (it's actually one of the first things I tried).

I am sorry for the confusion in my last two comments for some reason I was thinking about this issue rharish101/ReGreet#34 which had a very similar workaround. As again environment variables where missing.

Another option is to allow us to specify a list of variables to import.
(I'm a total newbie at Nix so bear with me here.)
systemdIntegration.enable = lib.mkEnableOption "Hyprland wayland compositor";

systemdIntegration.variables = lib.mkOption {
  type = with lib.types; listOf (string);
  default = [ "DISPLAY" "HYPRLAND_INSTANCE_SIGNATURE" "WAYLAND_DISPLAY" "XDG_CURRENT_DESKTOP" ];
};

systemdIntegration.extraVariables = lib.mkOption {
  type = with lib.types; listOf (string);
  default = [ ];
};

xdg.configFile."hypr/hyprland.conf" = let
      # ...
    systemdVars = cfg.systemdIntegration.variables ++ cfg.systemdIntegration.extraVariables;
    updateEnvironment = "${pkgs.dbus}/bin/dbus-update-activation-environment --systemd ${lib.concatStrings systemdVars " "}";

    in lib.mkIf shouldGenerate {
      text = lib.optionalString cfg.systemdIntegration.enable ''
        exec-once = ${updateEnvironment} && systemctl --user start hyprland-session.target
      '' + lib.optionalString (combinedSettings != { })
        (toHyprconf combinedSettings 0)
        + lib.optionalString (cfg.extraConfig != "") cfg.extraConfig;
      # ...
    };

Then users can configure it like this:
wayland.windowManager.hyprland = {
  enable = true;
  systemdIntegration = {
    enable = true;
    extraVars = [ "PATH" "QT_QPA_PLATFORMTHEME" ];
  };
};

Another option is to allow us to specify a list of variables to import.
...

This is totally viable and definitely something that we should do. However, this can already be accomplished by another config.exec_start, if you need it now.
I think the goal of this issue is to get the defaults correct, not to offload that responsibility to the user (which is what we would effectively do if we allowed extraVars without getting the defaults correct).

Since then options seem to have been created and I can't reproduce the issues anymore, so closing for now.


Add samneatherlin to Contributors list

Thank you for the tutorial.

Hi  @sneatherlin, I'm quite elated about your pull request. I wanna evolve this project to addresses various problems faced by first-time contributors. I'd love to learn about your journey in open source community, the problems, pain points you had etc.
Could you explain how you felt when you went through the tutorial, made a pull request and learned that I merged it?
We’ve recently added social share  to our web app. Could you please go to https://roshanjossey.github.io/first-contributions/#social-share and share your first contribution to open source?
Also, check out projects with easy issues while you’re there.


Is it possible to programmaticaly hide a toast ?

I have a toast with the property "alwaysVisible" to true and would like to hide it programmaticaly.
I am showing a "Internet lost" error toast when connection is lost and would like to remove the toast when connection is back.

Any update ?

Any update ?

I am planning to send a new release regarding the issue

@AurelienBdl Thank you for the issue, now you can use hideToastable method, to hide the most current one.

Hi again,
I couldn't see the hideToastable method in v.0.4.0 so i installed the version 0.3.0 but couldn't import it the same way as showToastable. Can you provide a small example ?
Thanks in advance !

Hi again,
I couldn't see the hideToastable method in v.0.4.0 so i installed the version 0.3.0 but couldn't import it the same way as showToastable. Can you provide a small example ?
Thanks in advance !

Hi again,
I couldn't see the hideToastable method in v.0.4.0 so i installed the version 0.3.0 but couldn't import it the same way as showToastable. Can you provide a small example ?
Thanks in advance !

Thank you for letting me know, I forget to export the method globally, now you can import and use the method just like showToastable.
import { hideToastable, showToastable } from 'react-native-toastable';
https://github.com/rnheroes/react-native-toastable?tab=readme-ov-file#usage
Please upgrade to the latest version -> 0.4.1

Thanks a lot !


[SPARK-23299][SQL][PYSPARK] Fix repr behaviour for Rows

This is PR is meant to replace #20503, which lay dormant for a while.  The solution in the original PR is still valid, so this is just that patch rebased onto the current master.
Original summary follows.
What changes were proposed in this pull request?
Fix __repr__ behaviour for Rows.
Rows __repr__ assumes data is a string when column name is missing.
Examples,
>>> from pyspark.sql.types import Row
>>> Row ("Alice", "11")
<Row(Alice, 11)>

>>> Row (name="Alice", age=11)
Row(age=11, name='Alice')

>>> Row ("Alice", 11)
<snip stack trace>
TypeError: sequence item 1: expected string, int found

This is because Row () when called without column names assumes everything is a string.
How was this patch tested?
Manually tested and a unit test was added to python/pyspark/sql/tests/test_types.py.

Can one of the admins verify this patch?

If this can get merged then it would be great to also backport the patch to the currently supported stable version(s) of Spark (2.4 and 2.3?).  What do I need to do to make that happen?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

@HyukjinKwon

ok to test

Test build #104890 has started for PR 24448 at commit 8c448dc.

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/testing-k8s-prb-make-spark-distribution-unified/10198/
Test PASSed.

Test build #104890 has finished for PR 24448 at commit 8c448dc.

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/104890/
Test PASSed.

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/testing-k8s-prb-make-spark-distribution-unified/10250/
Test PASSed.

Test build #104949 has started for PR 24448 at commit ae011c0.

Test build #104949 has finished for PR 24448 at commit ae011c0.

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/104949/
Test PASSed.

Merged to master. Thanks for making your first pull request to Spark @tbcs  :) Do you have a JIRA username I can assign the issue to now that it's fixed for tracking?

Merged to master. Thanks for making your first pull request to Spark @tbcs  :) Do you have a JIRA username I can assign the issue to now that it's fixed for tracking?

I'll open a PR for the stable branches when I get a chance to do so.
@holdenk: I created a user on Jira: tbcs

I also wouldn't mind back-porting this. I used the varargs Row constructor, which seems normal, and hit this too. But I get that it may break doctests so, hm, unclear.


Append doc-title and doc-version to scaladocOptions by default

Appending doc-title and doc-version to scaladocOptions by default would be nice. The generated scaladoc pages would have proper title OOTB.

Mark, ref your comment above. Are you still interested in this? If yes, I would send out a fresh patch for this one.
Have been away from this. And GitHub apparently auto-closed the ticket as a result of another pull request.

In any case, a passive helper like so would be limited.
object DefaultOptions {
  val encoding: Seq[String] = Seq("-encoding", "UTF-8")
  val scalac: Seq[String] = encoding ++ ...
  val scaladoc: Seq[String] = ...
}

For defaults to be more useful, we would need to bring in other SettingKey at the least. For example,
scalacOptions ++= encoding
scalacOptions in doc <++= (name in doc, version in doc) map(Seq("-doc-title", _, "-doc-version", _))

Yes, I can't reopen this either, so open a new pull request.


paper-icon-theme: 2016-05-25 -> 2016-06-08, paper-gtk-theme: 2016-05-25 -> 2016-05-27

Things done

[x] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] OS X
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Tested locally. Thanks!


Reduce required float precision of times and durations

Not all systems record event timestamps in 64-bit float. Storing them as 64-bit float when they were not originally may be misleading.

[x] Update spec
[x] Run tests

Thanks @h-mayorquin !


Combined struct Word's whitespace and penalty fields to PostFix enum

Replacing the fields with the enum. This is minimal invasive. The tests are unchanged as far as possible. Notice, how I had to make several distinctions in Word::from and Word::break_apart to get the tests working.
It remains confusing for me, when an empty whitespace and when an empty penalty are appropriate...
Also, I wasn't able to run the benchmark. Cargo Criterion breaks down for me with https://github.com/bheisler/criterion.rs/issues/466

Hey Navid, thanks a lot!
I won't be able to review and merge this today, but I have an initial comment: there are some spurious whitespace changes — perhaps one of us is using an old rustfmt? :-)
It would be great if you could revert those changes so the diff only contains your actual changes. Thanks!

Hi Navid,
I'm sorry this didn't work out — it sounded like a nice idea at first, but seeing it in action makes me think that it doesn't improve the complexity like we hoped.


Scale TextButton's Label

It would be nice to have scaling Label as TextButton scales.

Not enough info, died out.


bug: kflex ctx does not work after that context is renamed

Describe the bug
I am debugging deploy-on-k3d.md and having trouble with the kubeflex hosting context after it is renamed. Here is a demonstration of the problem, showing that kflex ctx switches the current context to the original hosting context name regardless of any renaming that it has been through since then.
mspreitz@mjs13 testks % kubectl config get-contexts | fgrep \*
*         kubeflex                                                                               k3d-kubeflex                                     admin@k3d-kubeflex

mspreitz@mjs13 testks % kubectl config rename-context kubeflex kf
Context "kubeflex" renamed to "kf".

mspreitz@mjs13 testks % kubectl config current-context
kf

mspreitz@mjs13 testks % kflex ctx
✔ Checking for saved initial context...
✔ Switching to initial context...

mspreitz@mjs13 testks % kubectl config current-context
kind-kubeflex

mspreitz@mjs13 testks % kubectl config get-contexts | grep kubeflex
          kf                                                                                k3d-kubeflex                                     admin@k3d-kubeflex

Steps To Reproduce
See above.
Expected Behavior
Not sure.
Additional Context
No response

@pdettori
@eaepstein

For background, here is some info on how the initial context is maintained in the kubeconfig file: https://github.com/kubestellar/kubeflex/blob/main/docs/users.md#initial-context
Since kflex cannot know that that initial context has been renamed by another command (in  this case kubectl), I think that there are couple of possible (non exclusive) approaches around this issue:

Document that if the user renames the context for the KubeFlex hosting cluster, will need also to manually edit the Kubeconfig file to set the value of kflex-initial-ctx-name to the renamed context name.

Add a new subcommand to kflex to allow renaming context so that it automatically does the update of kflex-initial-ctx-name.

wdyt ?

I do not like (1) because it is very tedious and very fragile. I do not like (2) because it is fragile. I think that there may be more possibilities. Could we make kflex ctx search the kubeconfig and find the right context by looking at attributes of all the contexts? Is there an extensions field in a kubeconfig "cluster"?

It might perhaps be possible to come up with some heuristic to figure out the difference between a context for a kubeflex control plane vs. context for "real" kube clusters. But if there is more than one context for a "real" cluster (e.g. kind-kubeflex, cluster1, cluster2) I do not know how it would be possible to figure this out.  Another possibility could be to store in preferences not only the original context name but also the name of the user and of the cluster that were used in the original context and use those to identify the re-named context. Would that work ?

Why does KF need to know the CP(s) "contexts" ?   Isn't it the client that use KF that are using the context to access specific CP ?

This is about UX with the kflex CLI. The kflex ctx command is used to automatically switch back to the hosting cluster context. It is also used when users does repeated commands such as kflex create <cp-name>, where the CLI automatically switches back to the hosting cluster context so it can create the CP object in the hosting cluster. The alternative is to have the user to manually do the extra steps (e.g. do kflex ctx <name of hosting cluster context before each kflex create or kflex delete command.

@pdettori I think this is a little  risky in any case. I always thought that solution that change the context implicitly (like KIND or KCP) is good for simple "playing" but become a potential issue on a more complex scenarios.
I still don't understand why KF need to change context in order  to push the CP object

CP objects are only available on the hosting cluster (e.g. kubeflex cluster). The kflex CLI is using the Kubeconfig and whatever context is set there to communicate with the hosting cluster.

@pdettori: remember that, as you said, the problem here is identifying the hosting cluster context; it is not identifying control plane contexts. Remember that a general user's kubeconfig has contexts for many "real" clusters (e.g., mine does), so we can not plan to identify the hosting cluster context by simply expecting that only one context is NOT for a control plane.
Yes, I just mixed up contexts and clusters, but I hope my point is clear.
But it is worth remembering that renaming a context does not rename a cluster or a user. So perhaps remembering the cluster and user names associated with the hosting context would be a possible approach.
Another idea that may help a lot is: allow kflex init to be told what to name the hosting cluster context, so that the user is not motivated to rename it later.

@pdettori the hosting cluster is where the KF controllers are running right ?  So in theory we can try to get the controllers on all clusters pointed by the contexts in the kubeconfig and use the one where we find the controllers.   We can even code this into a kflex get hosting-ctx  or something

On the bare metal machines I have been running k3s on, after cluster create the only kube config context is "default".
The initial uses of kflex are:

kflex init
kflex create its1 -t host

At this point kflex-initial-ctx-name is set to its1.
My suggestion for improvements would be:

on kflex init, set kflex-initial-ctx-name to the name of the first cluster in kube config
add a new command: kflex set-default-ctx  some-existing-context
add another command to list all contexts: kflex list

@eaepstein it makes sense to me, but for the first point I think it's best to set kflex-initial-ctx-name to the name of of the current context used to run kflex init. The first context in the kubeconfig could be for a different cluster not used for installing kubeflex.  I would also add a check for the existence of the initial context (after the re-naming) when switching to initial context, which would throw an error if not found.
In summary:

on kflex init, set kflex-initial-ctx-name to the name of the current context
add a new command: kflex set-initial-ctx <some-existing-context>
add another command to list all contexts: kflex ctx list, showing which one is the initial context and which one is the default context
Throw error when kflex tries to switch to an initial content that does not exist

@MikeSpreitzer @ezrasilvera - would that work ?

Completely agree with @pdettori summary above.

We could have kflex ctx-list to avoid that trap. I thought also about kflex ctx --list but that does not sound right as list is a command not an option, and a list command can have also options.

The grammar problem was created by using kflex ctx $name to mean "switch to the context named $name". The more usual approach (e.g., the cobra documentation says this) would be to use a command like kflex ctx use $name to switch contexts, leaving kflex ctx list, kflex ctx create, and so on available.

BTW, I think the critical concept here is not initial cluster but rather hosting cluster.

@MikeSpreitzer something I did not know and found just by mistake:
$ kubectl ctx --help
USAGE:
  kubectl ctx                       : list the contexts
  kubectl ctx <NAME>                : switch to context <NAME>
  kubectl ctx -                     : switch to the previous context
  kubectl ctx -c, --current         : show the current context name
  kubectl ctx <NEW_NAME>=<NAME>     : rename context <NAME> to <NEW_NAME>
  kubectl ctx <NEW_NAME>=.          : rename current-context to <NEW_NAME>
  kubectl ctx -d <NAME> [<NAME...>] : delete context <NAME> ('.' for current-context)
                                  (this command won't delete the user/cluster entry
                                  that is used by the context)
  kubectl ctx -u, --unset           : unset the current context

  kubectl ctx -h,--help             : show this message

so it looks like kubectl ctx <context> has a similar behavior to kflex ctx <cp>. Should we try to align to this kubextl subcommand (also for other features) rather than trying  to do kflex ctx use <cp> (maybe more cobra-friendly but less user friendly as users hate to type more)


Move to https://docusaurus.io/

We want to move from GitBook to https://docusaurus.io/.
docusaurus have nice feature for library documentation.
Blocker:

docusaurus is beta software

Now, https://github.com/facebook/docusaurus is opened.


add support for body regex

Thanks for the amazing lib.
I add a new bodyRegex filter to list sms feature.
Hope it can help others too.

Hi, @TisnKu. Thanks for the PR!
Going to take a look.

Hey, @TisnKu. Few comments; should be able to 👍 once those are addressed.

Yes, it's working for me. I tested it out on a real android device.

Awesome! Going to get it merged soon.


Add reference for device gateway PKI

Signed-off-by: Andy Doan<EMAIL_ADDRESS>

Hey guys, I'm not real happy with this, but its a really difficult topic for me to articulate clearly. fioctl keys ca and fioctl keys ca create --help both provide a lot of context.
@MatthewCroughan - I think ricardo will have to first help with the technical writing, and then we can get you involved on polishing this.

Docs for 5d022a129d9a3d29424d50e4aa71d453f1729df3 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/737/docs/artifacts/html/index.html


vue 2 is dead

Note for others reviewing this thread later on:
I modified the commit message, based on this notice.


Clean up animation-related files.

Surface all the constructor arguments of AnimationTiming in all its subclasses.
Remove some pointless casts.
Fix some typos.
Put constructors first in class declarations.
Remove some blank lines where they just confused the structure of the code.

LGTM


Router does not show second not-found page

Why router does not show second not-found page when it is selected at menu?
http://plnkr.co/edit/OAnEIBi9SwYgTSQDeGp8?p=preview

@AlexRadch,
Thank you. I will fix this bug.


Support query values masking

Hello!
First of all, absolute fan of your courses!
I have a suggestion to support masking query values from logging when using the database package. At this moment (I might not have figured it out), I cannot mask values in logs when executing queries. Resulting in password hashes being present in my logs.
Here is an easy way to change the pgx.go file to support masking.
func NamedExecContext(
	ctx context.Context,
	log *zap.SugaredLogger,
	db sqlx.ExtContext,
	query string,
	data any,
	mask bool,
) error {
	q := queryString(query, data)

	qlog := q
	if mask {
		qlog = query
                qlog = strings.ReplaceAll(qlog, "\t", "")
		qlog = strings.ReplaceAll(qlog, "\n", " ")
	}

	if _, ok := data.(struct{}); ok {
		log.WithOptions(zap.AddCallerSkip(3)).Infow("database.NamedExecContext", "trace_id", web.GetTraceID(ctx), "query", qlog)
	} else {
		log.WithOptions(zap.AddCallerSkip(2)).Infow("database.NamedExecContext", "trace_id", web.GetTraceID(ctx), "query", qlog)
	}

........rest of code
}

this parameter would need to be added to the other pgx methods but would maintain the logging of the query. Only would not log the parsed query but the raw one. Almost the same debugging power, only no security risks.
Let me know If I missed something here.

I would argue that it's better not to log the query if there are fields that should not be shown.  If I was going to do this, I would define a field tag the queryString function could use to perform the mask.

@mwitteveen I would like to close this. Did you understand my thoughts on using tags?

Yes thank you for your input. I wanted to try to make it before reacting but didn’t find the time yet.


Stop kicking ourselves

If pollset_kick is called, and it's trying to kick the pollset that is currently flagged as polling, then we can be certain there is no work to do, so we should do nothing instead of queuing a kick that we need to read later.
The concrete case where this happens is when a poll results in a read that completes a batch, queuing something on to the originating completion queue (and forcing a kick in case that completion queue is currently polling).

I should note, this change makes a 20us difference (70us --> 50us) for localhost requests on my Mac laptop.

Everything looks good. One minor comment above, but it is safe to ignore. I would be glad to merge as soon as Travis clears.

Would you mind moving the explanatory information at the start of this pull request into the commit log message(s) of your commit(s) so that it becomes part of the repository history? At the moment the two log messages are both very terse.

Given the amount of cross-cherry-picking I have between branches currently, I'd be strongly in favor of not rewriting history on this.

History rewriting is a bad practice anyway. Although it looks nicer to the human eye, it's causing git to lose valuable merge metadata.


⚠ Bofrost.es has degraded performance

In f8e32e3, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1446 ms

Resolved: Bofrost.es performance has improved in 55ff64e after 6 minutes.


mem_alloc: Optimize allocation conflict checking

This is a port of an optimization I did for rpcs3 here: https://github.com/RPCS3/rpcs3/commit/5a049d41fd06fb4f75cfb0d955cdbe8f0c5d921e
Basically, avoids scanning suballocations when there is no need to. When allocAlignment and bufferImageGranularity are the same, a lot of time can be saved when managing thousands of small allocations frequently.

When aligning resulting offset, the alignment is already done beforehand to the allocAlignment. The whole reason to check for conflicts is to align the result to the bufferImageGranularity as a worst case fallback, but this is clearly not needed when allocAlignment = bufferImageGranurality.
When checking for conflicts after allocation, there is no need to check suballocations if the 'page' is perfectly aligned start and end.

Combining this with always using allocAlignment equal to bufferImageGranurality when making allocation requests significantly speeds up performance on non-AMD hardware, where bufferImageGranurality is typically not 1 (saved 50ms in one awful scene for example). As long as bufferImageGranurality is not expected to change during runtime, this works nicely. If I missed some corner case, let me know and we can just close this. I'd just rather not maintain separate patches if possible :p

Thank you for this contribution! It looks good. I merged it.


Can not use lambda parameter

It seems lambda is a reserved python word. I tried lambda=0.5 and the script won't run => invalid syntax
R59, Win10 x64
EDIT
clip.ils.ILS(0.5) works

it's lambda_=0.5

argh I tried lambda but not lambda xD
lambda_ works

I can't remember exactly.
_lambda is for api3 while lambda_ is for api4.


Support default dtype in L.Maxout

This PR is a part of #4582, makes L.Maxout use the default dtype to initialize its initial bias when a scalar value is supplied for it.

It is, strictly speaking, not related to this change, but the documentation says initialW and initial_bias can be initializers, but actually the code looks assuming that they are scalars or ndarrays. Could you fix it? It's ok to do it either in this PR or in another PR.

Yes, I will do it in another PR!

jenkins, test this please.

Jenkins CI test (for commit 287e980651d8cc5711234d65ced3b74548d0cf19) succeeded without errors!

LGTM!


Remove www.googleapis.com!

Commit f9d7072 added www.googleapis.com to, among others
https://osint.digitalside.it/Threat-Intel/lists/latestdomains.txt

This destroys much of the internet, including basic authentication in thunderbird to gmail accounts

Domain added to the whitelist