[stable/janusgraph] bump k8s api to stable

What this PR does / why we need it:
In k8s >v1.9 the "apps/v1beta2" API was superseeded by "apps/v1", and deprecated.
For kubernetes versions later than 1.15 the old API does not work anymore at all. This PR is making janusgraph run again.
Which issue this PR fixes

fixes #22877

Special notes for your reviewer:
I don't expect this to get merged, as the janusgraph chart is currently unmaintained. This is mostly for reference, in case anyone wants to fix it.
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

To complete the pull request, please assign mattfarina
/assign @mattfarina

@ailox on Helm we use a Developer Certificate of Origin (DCO). Commits need signoff. If you look at the checks tab at the top of the PR you will see directions on amending the commits with signoff.

/ok-to-test
/assign

/lgtm


Create fallback to using HTML5 canvas if TK isn't available

So ever since Peterc first introduced this gem to me, I thought it was really neat, but I could never get it to work on my platfrom due to the status of the tk package on windows and linux.  It must work much nicer on macs?  I would like to humbly propose we implement the canvas in HTML5 in the case that the TK package isn't accessible.
How about this:

In the gemspec, we conditionally require tk, but failing that we require HTML5 deps (so bundle install and tests can run for non-tk users)

In the Gem itself, we require 'tk' and failing that, we instantiate a 1:1 compatible interface that draws to an HTML5 canvas instead of TK (so alternative TkRoot, TkCanvas, TkcLine, TkcOval, TkTimer, TkSleep static methods are loaded)

Now you're probably wondering at this point, "How is old Notary Sojac going to draw to an HTML5 canvas in a ruby library."  And that is where it gets tricky, but not too tricky.
Rendering to an HTML Canvas instead of a TK Canvas
Architecture

When we start trtl, it will actually boot some web app stuff in child threads (assuming TK isn't available)
** Sinatra will begin listening on port 4567.
** Faye, my websocket server of choise will start listening on 9696
** Sinatra will serve a page containing some javascript that will connect to faye on 9696

System Flow

From within the existing ruby code, when we call, say, TkRoot, that will actually send data to faye, such that any active javascript clients will be notified of a graphics call
Then in javascript, any commands such as TkRoot will call the javascript-native functionality to, in this case, create a canvas element on the HTML page.
All commands sent over faye will be cached and made available to Faye, such that when the user closes there browser to <IP_ADDRESS>:4567 and reopens it, they will see the data they left off with.

What do you think?  This proposal is minimally invasive (requires only the addition of lines of code: an extra .rb file tucked away, Gemfile, Gemspec, require conditionality, etc).  If you're really excited about the idea, we can re-write the Tk* function calls to Canvas* calls and upon initialization, define what Canvas* translates to (either the actual TK library commands or the ruby commands that delegate that same functionality to javascript).
P.S.
Peter, I tried to get a hold of you over email, but looks like you're enjoying the summer holiday.  I hope you're having a good time in Sweden!  Maybe we can touch base when you get back?  I'll gently spam you another email when you're back to your routine.  Also is it possible for folks to arrange for a seat at your App Academy lectures?

I was on holiday, yeah, but unfortunately I don't recall getting an email from you. Feel free to resend to<EMAIL_ADDRESS>:) Things to my GitHub email account are more likely to go to spam considering how many people spam these addresses nowadays :( Regarding App Academy, no, I'm not currently doing anything with them.
On the idea presented here, it sounds like a good one! I wonder if there's already some sort of Canvas abstraction for Ruby out there? If so, using it would be a good idea. But otherwise it's not particularly complex and I'm keen on your overall idea for increasing the accessibility of the code (although I must admit I'd generally just jump ship to JavaScript for something like this if browser support were considered a must).

Btw, I sent you that email from<EMAIL_ADDRESS>(an old gamer handle).  I'll follow up there.
"Some sort of canvas abstraction for ruby"
I think this will be the first effort in bridging ruby CLI and web canvases.
So with your comments, I'll outline my plan for adding HTML support to this gem:

Create an html/javascript project to implement the TK rendering in js
Add web sockets
Build a gem, say, RubyTube for handling the sinatra server, websocket server, and rendering code

RubyTube's API might look something like
rt = RubyTube.new

# Point RubyTube to where the html public directory is
rt.www_root = "gui/"

# Possibly some routes setup for Sinatra
# rt...

# start sinatra, faye/websockets and prints "browse to <IP_ADDRESS>:4567"
rt.run!

Finally, RubyTube is included into the trtl and we can see it in action.  I might need to do something to 'cache' commands, those 10.times {up} commands might give the websockets some trouble, but this is unknown to me.  Once we can see it in action, if you think it's progress, I can put together a follow up commit to pull out the TK code alltogether (instead of writing code to support both).

I've got a working prototype on github now.  Checkout the html-canvas branch: html-canvas
So to use it now:
$  irb
require 'trtl'

t = Trtl.new

After you make a new turtle, it will spin up the web/websocket servers (I haven't cleaned up the garbage output that spams the screen yet).
Now you should be able to navigate to <IP_ADDRESS>:4567 and see a mostly blank canvas (there should be a trtl arrow).  In the irb shell, you can control the trtl, and almost immediately, your updates should be reflected in the browser view thanks to websockets on port 4555.
What do you think?
To was having a lot of trouble getting the gem's gemspec and Gemfile working properly.  There wasn't a Trtl module wrapped around all the code, and after I added that (and the rake dependency to the gemspec) I was able to bundle the magic_mirror gem I was developing locally.  I'm not 100% sure what was going on, or if adding modules was the right move, but at the end of the day, I seem to have broken the InteractiveTurtle code that was able to streamline using trtl from within ruby shells.  Do you have any thoughts on restoring that functionality with the new module wrapping I've done?

Unfortunately I haven't got time to check it out properly yet but from the way you describe it sounds like a reasonable approach, so yes!

I threw together a quick demo of it in action.  The one problem is that the tree example is kind of hard on the rendering system.  Sometimes it goes through fine, and sometimes it crashes fire fox.
Btw, reduce your volume level before starting the demo, youtube seems to have hidden the volume controls somewhere new in the video manager.
https://www.youtube.com/watch?v=P3ySQWH47Ks

That is really cool!!
On Mon, Aug 17, 2015 at 4:56 PM, TheNotary<EMAIL_ADDRESS>wrote:

I threw together a quick demo of it in action. The one problem is that the
tree example is kind of hard on the rendering system. Sometimes it goes
through fine, and sometimes it crashes fire fox.
Btw, reduce your volume level before starting the demo, youtube seems to
have hidden the volume controls somewhere new in the video manager.
https://www.youtube.com/watch?v=P3ySQWH47Ks
—
Reply to this email directly or view it on GitHub
https://github.com/peterc/trtl/issues/2#issuecomment-131871920.

--
Peter Cooper
http://peterc.org/
http://twitter.com/peterc

Ok, I've made all the changes to Magic Mirror that I think I'm going to be making in the near future, and also made awesome optimizations to the javascript rendering system within trtl.
https://github.com/TheNotary/trtl/commit/0582b2f35dc148b2187b77fbfffa43df60e02e06
I think now we wait till you have a moment to look things over, check that you think this way is so good that it can replace the TK dependency, and add any spec changes you'd like to see.  After that I'll either completely remove the old references to TK in trtl, or hook up a fallback solution if preferred. Finally I'll issue a final pull request and we call it a feature =)

OK, I've finally given it a go. Some observations:

Initially you said this would be a fallback if Tk wasn't present, but it appears to be replacing Tk at this point. Is this something that'll be resolved in the cleanup?

It's been a long while since I looked at the Trtl code but some DRYing up would probably be useful. I'm sure the classes in canvas.rb could look a lot better with some refactoring and inheritance.

It worked, which is great, but it did seem a bit slow. The messages being sent over the wire don't seem to be particularly efficient, although I appreciate not a lot may be possible to do here without significant work, so it's not a killer.

It's great to hear back from you, Peter.  In order:

My apologies, I may have slightly misinterpreted you when you said ...I'd generally just jump ship to JavaScript... but I see what you meant now.  The code is still in a good position to be set back into a fall back pattern and I'll commence that now --it's mostly a matter of a couple conditionals and uncommenting/ commit history copy/pasting.

I'll begin a refactoring pass on the canvas class to clean up those multiple occurrences of meta-programming blocks.

The performance can actually be improved in an elegant way.  It's not so much passing the data down the virtual wire (which must be >= gigabit speed?) it's actually the time that the javascript client and websocket server waste queuing messages and overhead to send over a single command.  If I buffered it to only send the websocket packet every 5 commands, the tree would finish 5x faster I suspect (the tree results in thousands of trtl movement/ paint commands, btw).  The tree was SO time consuming to test, lol.  The trick will be keeping the quick responsiveness of sending single turtle commands over the ruby shell, while still allowing some buffering to take place in scenarios where trees and tree-like artworks are being rendered.

I want this feature to be perfectly inline with your vision for the project, so thank you for getting the feedback to me.  I'll get back to you with a new commit within the next week or so based on this input.

Hi Peter,

The code is now in a fallback pattern, favoring TK.  There's a caveat: I haven't been able to get TK on my system yet, so the TK side of things is untested.  If it doesn't 'just work' on your end, let me know along with the error and I'll try to set up an environment on a windows machine.  I'm hopeful the time I spent double checking the TK code was worth while and it will run fine on your end.

I've cleaned up the code.  The app will try to require 'tk' and upon a LoadError, it will instead load MagicMirror and go the MagicMirror route with things.  (https://github.com/TheNotary/trtl/blob/html-canvas/lib/trtl.rb#L1-L7)[highlighting on first lines of trtl.lib]

I've increased the performance by caching when the websocket server is 'bogged down'.  The tree will render in 3 seconds on my machine.  That performance is on par with what html5's canvas is capable of at present time (google's is having trouble figuring out how to make concurrent thread safe writes to it I think.. probably an absolute nightmare to work on).

Btw, what is the aproximate rendering time of the tree example with TK support?


[FEATURE] support new build-function

this command should be triggered on the file level only!
it supports the -m way of specifying multiple types and keys
it should have (ideally a single) pop-up asking for
--buFrom
--marketFrom
--bulk (use marketlists and buildDefinitionBulk if set)
--buTo (not required if bulk is enabled)
--marketTo (marketList if bulk is enabled, market if not)
--dependencies (include dependencies in package or only build package for items explicitly selected)

@JoernBerkefeld buFrom should be automatically assumed as the parent business folder where the file is being clicked with the build command right ? So I don't think we need to ask about this field...


ARROW-4826: [Go] export Flush method for CSV writer

@sbinet

Codecov Report

Merging #3865 into master will decrease coverage by 19.26%.
The diff coverage is 100%.

@@             Coverage Diff             @@
##           master    #3865       +/-   ##
===========================================
- Coverage   87.83%   68.57%   -19.27%
===========================================
  Files         725       60      -665
  Lines       87601     4127    -83474
  Branches     1252        0     -1252
===========================================
- Hits        76948     2830    -74118
+ Misses      10539     1187     -9352
+ Partials      114      110        -4

Impacted Files
Coverage Δ

go/arrow/csv/writer.go
95.65% <100%> (+0.33%)
:arrow_up:

go/arrow/memory/memory_avx2_amd64.go
0% <0%> (-100%)
:arrow_down:

go/arrow/math/uint64_avx2_amd64.go
0% <0%> (-100%)
:arrow_down:

go/arrow/math/int64_avx2_amd64.go
0% <0%> (-100%)
:arrow_down:

go/arrow/math/float64_avx2_amd64.go
0% <0%> (-100%)
:arrow_down:

go/arrow/memory/memory_amd64.go
28.57% <0%> (-14.29%)
:arrow_down:

go/arrow/math/math_amd64.go
31.57% <0%> (-5.27%)
:arrow_down:

go/arrow/math/uint64_amd64.go
33.33% <0%> (ø)
:arrow_up:

go/arrow/math/int64_amd64.go
33.33% <0%> (ø)
:arrow_up:

go/arrow/math/float64_amd64.go
33.33% <0%> (ø)
:arrow_up:

... and 669 more

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 750896f...19a2569. Read the comment docs.


Get-Content Piped Requiring -Raw

Not sure if this is by design but I noticed that if I try to run the following I get several errors. If I add the -Raw flag to Get-Content it works fine.
Example:
> Get-Content ./.config/starship.toml | ConvertFrom-Toml
Name                           Value
----                           -----
$schema                        https://starship.rs/config-schema.json
ConvertFrom-Toml: Cannot validate argument on parameter 'InputObject'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain any null values and then try the command again.
ConvertFrom-Toml: (1,12) : error : Invalid End-Of-File found for multi-line string
ConvertFrom-Toml: (1,2) : error : Unexpected token `\` for a base key
(1,3) : error : Unexpected token found `uE0B6` (token: `basickey`) while expecting `]` (token: `closebracket`)
(1,8) : error : Unexpected token found `]` (token: `closebracket`) while expecting token `newline`
(1,9) : error : Unexpected token [(] found
(1,12) : error : Expecting `=` after a key instead of :
ConvertFrom-Toml: Cannot validate argument on parameter 'InputObject'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain any null values and then try the command again.
add_newline                    True
ConvertFrom-Toml: Cannot validate argument on parameter 'InputObject'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain any null values and then try the command again.
directory                      {}
style                          bg:#1C4961 fg:white
ConvertFrom-Toml: Cannot validate argument on parameter 'InputObject'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain any null values and then try the command again.
git_branch                     {}
format                         [ $symbol$branch ]($style)
style                          bg:#2F79A1 fg:white
ConvertFrom-Toml: Cannot validate argument on parameter 'InputObject'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain any null values and then try the command again.
git_status                     {}
format                         [ $all_status$ahead_behind ]($style)
style                          bg:#3A95C7 fg:white
ConvertFrom-Toml: Cannot validate argument on parameter 'InputObject'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain any null values and then try the command again.
time                           {}
disabled                       False
format                         [ $time ]($style)
style                          bg:#40A9E0 fg:white
ConvertFrom-Toml: Cannot validate argument on parameter 'InputObject'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain any null values and then try the command again.
username                       {}
disabled                       True
ConvertFrom-Toml: Cannot validate argument on parameter 'InputObject'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain any null values and then try the command again.
ruby                           {}
disabled                       True
ConvertFrom-Toml: Cannot validate argument on parameter 'InputObject'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain any null values and then try the command again.
shell                          {}
disabled                       False
powershell_indicator           
bash_indicator                 
zsh_indicator                  %_
cmd_indicator                  
unknown_indicator              
style                          cyan bold
format                         [$indicator]($style)
ConvertFrom-Toml: Cannot validate argument on parameter 'InputObject'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain any null values and then try the command again.
hostname                       {}
ssh_only                       False
format                         [$ssh_symbol](bold blue) on [$hostname](bold red)
ConvertFrom-Toml: Cannot validate argument on parameter 'InputObject'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain any null values and then try the command again.
battery                        {}
full_symbol                    🔋
charging_symbol                🔌
discharging_symbol             ⚡
ConvertFrom-Toml: Cannot validate argument on parameter 'InputObject'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain any null values and then try the command again.
battery                        {[display, System.Collections.Specialized.OrderedDictionary[]]}
threshold                      30
style                          bold red

Yea that is true, maybe I should change the behaviour for piping the input to be joined together like ConvertFrom-Json rather than treat it as each individual TOML entry. It would make more sense for this scenario which is probably super common.


@turbo can't find index when looping over sparse arrays

I am trying to use turbo in this function to multiply A'x when A is sparse
function my_mul_lv!(y::Vector{Float64}, A::SparseMatrixCSC{Float64,Int64}, x::Vector{Float64})
    @turbo for i in eachindex(y)
        tmp = 0.0
        for j in nzrange(A, i)
            tmp += A.nzval[j] * x[A.rowval[j]]
        end
        y[i] = tmp
    end
    return
end

The function works without the @turbo macro but when I add it, it throws this an error that i isn't defined: UndefVarError: i not defined

To provide further details if I define
function my_mul_lv!(y::Vector{Float64}, A::SparseMatrixCSC{Float64,Int64}, x::Vector{Float64})
    @turbo for i in eachindex(y) # for each branch
        tmp = 0.0
        nzrange = nzrange(A, i) # non zero bus indices
        for j in nzrange
            tmp += A.nzval[j] * x[A.rowval[j]]
        end
        y[i] = tmp
    end
    return
end

I get the error
ERROR: LoadError: ArgumentError:   `@turbo` only supports loops iterating over ranges, and not objects of type `typeof(nzrange)`.

However,
julia> typeof(nzrange(A, 1))
UnitRange{Int64}

It looks like sparse arrays are currently not supported. This is not surprising, as they lead to irregular memory access.
However, once the random access loads have been performed, the computation (in this case, a multiplication) can still be performed using SIMD instructions.
It would be great to have a special macro for loops over columns of a sparse matrix , that can parallelize those parts that can be. And also send each column to a different thread, if using @tturbo.

This is something I'd like to work on eventually in LoopModels, but it'd be a long time. LoopModels is currently very coupled with affine representations of loop nests and indices.
You may be interested in https://github.com/willow-ahrens/Finch.jl


Disable prescient for some commands

Hey.
I was wondering if there's a possibility to enable ivy-prescient for most counsel commands, but disable for some specific ones (e.g. counsel-find-file, so the file list is neatly sorted).
Adding counsel-find-file to ivy-prescient-sort-commands does not seem to have the desired effect.
Thanks in advance.

No, this feature is not currently supported. I would gladly merge a pull request adding it, for example via a new user option ivy-prescient-inhibit-sort-commands.

Oh, okay, thanks.
My elisp hacker skills are rudimentary at best, but I'll give it a try.

I was able to get desired behaviour by manually modifying ivy-sort-functions-alist after calling (ivy-prescient-mode t).
Thanks for the lovely package anyways!

For anyone else wondering, the change lockie made was to set the sorting function for read-file-name-internal to ivy-sort-file-function-default in ivy-sort-functions-alist.


Initial rendering of the HTML View is very slow

See title. Due to:
Removing disallowed attribute <TD cell''="">

Fixed in d944b72296fbb49d3aaec0ed6310b27a52a548f8


UDP Proxy device crashes

Required information

Distribution: Ubuntu (server)
Distribution version: 18.04.1 LTS
The output of "lxc info" or if that fails:
lxc info output with certificate and addresses removed
config: {}
api_extensions:

storage_zfs_remove_snapshots
container_host_shutdown_timeout
container_stop_priority
container_syscall_filtering
auth_pki
container_last_used_at
etag
patch
usb_devices
https_allowed_credentials
image_compression_algorithm
directory_manipulation
container_cpu_time
storage_zfs_use_refquota
storage_lvm_mount_options
network
profile_usedby
container_push
container_exec_recording
certificate_update
container_exec_signal_handling
gpu_devices
container_image_properties
migration_progress
id_map
network_firewall_filtering
network_routes
storage
file_delete
file_append
network_dhcp_expiry
storage_lvm_vg_rename
storage_lvm_thinpool_rename
network_vlan
image_create_aliases
container_stateless_copy
container_only_migration
storage_zfs_clone_copy
unix_device_rename
storage_lvm_use_thinpool
storage_rsync_bwlimit
network_vxlan_interface
storage_btrfs_mount_options
entity_description
image_force_refresh
storage_lvm_lv_resizing
id_map_base
file_symlinks
container_push_target
network_vlan_physical
storage_images_delete
container_edit_metadata
container_snapshot_stateful_migration
storage_driver_ceph
storage_ceph_user_name
resource_limits
storage_volatile_initial_source
storage_ceph_force_osd_reuse
storage_block_filesystem_btrfs
resources
kernel_limits
storage_api_volume_rename
macaroon_authentication
network_sriov
console
restrict_devlxd
migration_pre_copy
infiniband
maas_network
devlxd_events
proxy
network_dhcp_gateway
file_get_symlink
network_leases
unix_device_hotplug
storage_api_local_volume_handling
operation_description
clustering
event_lifecycle
storage_api_remote_volume_handling
nvidia_runtime
container_mount_propagation
container_backup
devlxd_images
container_local_cross_pool_handling
proxy_unix
proxy_udp
clustering_join
proxy_tcp_udp_multi_port_handling
network_state
proxy_unix_dac_properties
container_protection_delete
unix_priv_drop
pprof_http
proxy_haproxy_protocol
network_hwaddr
proxy_nat
network_nat_order
container_full
candid_authentication
backup_compression
candid_config
nvidia_runtime_config
storage_api_volume_snapshots
storage_unmapped
projects
candid_config_key
network_vxlan_ttl
container_incremental_copy
usb_optional_vendorid
snapshot_scheduling
container_copy_project
clustering_server_address
clustering_image_replication
container_protection_shift
snapshot_expiry
container_backup_override_pool
api_status: stable
api_version: "1.0"
auth: trusted
public: false
auth_methods:
tls
environment:
architectures:

x86_64
i686
driver: lxc
driver_version: 3.1.0
kernel: Linux
kernel_architecture: x86_64
kernel_version: 4.15.0-45-generic
server: lxd
server_pid: 85189
server_version: "3.10"
storage: btrfs
storage_version: "4.4"
server_clustered: false
server_name: homeserver
project: default

Issue description
Trying to host a teamspeak server on container. To do that I added a UDP proxy device to forward the port, and after a uncertain amount of time the proxy seems to crash.
lsof -i -n | grep 9987 returns nothing
and the proxys log files contains following message:
`panic: runtime error: racy use of timers
goroutine 36 [running]:
time.startTimer(0xc0001c42d8)
/build/lxd/parts/go/build/src/runtime/time.go:114 +0x2b
time.(*Timer).Reset(0xc0001c42d0, 0x1a3185c5000, 0xc0001b6c00)
/build/lxd/parts/go/build/src/time/sleep.go:130 +0x81
main.proxyCopy(0x1379ee0, 0xc00000e030, 0x1379ee0, 0xc0001ba028, 0x0, 0x0)
/build/lxd/parts/lxd/go/src/github.com/lxc/lxd/lxd/main_forkproxy.go:778 +0x68b
created by main.proxyCopy
/build/lxd/parts/lxd/go/src/github.com/lxc/lxd/lxd/main_forkproxy.go:733 +0xb9e`
Steps to reproduce
Not sure how to reproduce. Installed and configured Teamspeak3 on the container, added the proxy devices and then connected with multiple clients on to the server. After some time it just disconnects.
Information to attach

[ ] Any relevant kernel output (dmesg)
[ ] Container log (lxc info NAME --show-log)

Name: teamspeak
Location: none
Remote: unix://
Architecture: x86_64
Created: 2019/01/27 19:05 UTC
Status: Running
Type: persistent
Profiles: default
Pid: 63900
Ips:
lo:   inet    <IP_ADDRESS>
lo:   inet6   ::1
eth0: inet    <IP_ADDRESS>   vethQT39LV
eth0: inet6   fd42:3b06:828a:7517:216:3eff:fe16:a6be  vethQT39LV
eth0: inet6   fe80::216:3eff:fe16:a6be        vethQT39LV
Resources:
Processes: 41
CPU usage:
CPU usage (in seconds): 224
Memory usage:
Memory (current): 95.78MB
Memory (peak): 109.88MB
Network usage:
eth0:
Bytes received: 6.12MB
Bytes sent: 116.36kB
Packets received: 56089
Packets sent: 1463
lo:
Bytes received: 25.99MB
Bytes sent: 25.99MB
Packets received: 238899
Packets sent: 238899
Log:
lxc teamspeak<PHONE_NUMBER>3957.970 WARN     conf - conf.c:lxc_map_ids:2970 - newuidmap binary is missing
lxc teamspeak<PHONE_NUMBER>3957.970 WARN     conf - conf.c:lxc_map_ids:2976 - newgidmap binary is missing
lxc teamspeak<PHONE_NUMBER>3958.298 WARN     conf - conf.c:lxc_map_ids:2970 - newuidmap binary is missing
lxc teamspeak<PHONE_NUMBER>3958.298 WARN     conf - conf.c:lxc_map_ids:2976 - newgidmap binary is missing
lxc teamspeak<PHONE_NUMBER>3958.413 WARN     conf - conf.c:lxc_setup_devpts:1641 - Invalid argument - Failed to unmount old devpts instance

[ ] Container configuration (lxc config show NAME --expanded)

architecture: x86_64
config:
boot.autostart: "1"
image.architecture: amd64
image.build: "20181129_07:43"
image.description: Ubuntu bionic amd64 (20181129_07:43)
image.distribution: ubuntu
image.name: ubuntu-bionic-amd64-default-20181129_07:43
image.os: ubuntu
image.release: bionic
image.serial: "20181129_07:43"
image.variant: default
limits.cpu.allowance: 10%
limits.memory: 1024MB
limits.memory.enforce: hard
volatile.base_image: 1bae1c087cedd4f169f5e3cd9e0a088116460a0bc0f2ea25741a6bf997634171
volatile.eth0.hwaddr: 00:16:3e:16:a6:be
volatile.idmap.base: "0"
volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":100000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":100000,"Nsid":0,"Maprange":65536}]'
volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":100000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":100000,"Nsid":0,"Maprange":65536}]'
volatile.last_state.power: RUNNING
devices:
FileTransfer:
connect: tcp:<IP_ADDRESS>:30033
listen: tcp:<IP_ADDRESS>:30033
type: proxy
ServerQuery:
connect: tcp:<IP_ADDRESS>:10011
listen: tcp:<IP_ADDRESS>:10011
type: proxy
Voice:
connect: udp:<IP_ADDRESS>:9987
listen: udp:<IP_ADDRESS>:9987
type: proxy
eth0:
name: eth0
nictype: bridged
parent: lxdbr0
type: nic
root:
path: /
pool: default
type: disk
ephemeral: false
profiles:

default
stateful: false
description: ""

[ ] Main daemon log (at /var/log/lxd/lxd.log or /var/snap/lxd/common/lxd/logs/lxd.log)
t=2019-02-12T02:13:01+0000 lvl=info msg="LXD 3.10 is starting in normal mode" path=/var/snap/lxd/common/lxd
t=2019-02-12T02:13:01+0000 lvl=info msg="Kernel uid/gid map:"
t=2019-02-12T02:13:01+0000 lvl=info msg=" - u 0 0<PHONE_NUMBER>"
t=2019-02-12T02:13:01+0000 lvl=info msg=" - g 0 0<PHONE_NUMBER>"
t=2019-02-12T02:13:01+0000 lvl=info msg="Configured LXD uid/gid map:"
t=2019-02-12T02:13:01+0000 lvl=info msg=" - u 0 1000000<PHONE_NUMBER>"
t=2019-02-12T02:13:01+0000 lvl=info msg=" - g 0 1000000<PHONE_NUMBER>"
t=2019-02-12T02:13:01+0000 lvl=warn msg="CGroup memory swap accounting is disabled, swap limits will be ignored."
t=2019-02-12T02:13:01+0000 lvl=info msg="Kernel features:"
t=2019-02-12T02:13:01+0000 lvl=info msg=" - netnsid-based network retrieval: no"
t=2019-02-12T02:13:01+0000 lvl=info msg=" - uevent injection: no"
t=2019-02-12T02:13:01+0000 lvl=info msg=" - unprivileged file capabilities: yes"
t=2019-02-12T02:13:01+0000 lvl=info msg="Initializing local database"
t=2019-02-12T02:13:01+0000 lvl=info msg="Starting /dev/lxd handler:"
t=2019-02-12T02:13:01+0000 lvl=info msg=" - binding devlxd socket" socket=/var/snap/lxd/common/lxd/devlxd/sock
t=2019-02-12T02:13:01+0000 lvl=info msg="REST API daemon:"
t=2019-02-12T02:13:01+0000 lvl=info msg=" - binding Unix socket" inherited=true socket=/var/snap/lxd/common/lxd/unix.socket
t=2019-02-12T02:13:01+0000 lvl=info msg="Initializing global database"
t=2019-02-12T02:13:01+0000 lvl=info msg="Updating the LXD global schema.

I may be having a similar problem with UDP in a container as this (lxd 3.10 via snap, ubuntu 18.04).
If I use socat as follows, the UDP connection seems to be rock solid:
socat UDP-LISTEN:6050,fork UDP:<IP_ADDRESS>:6050
However, if I use the UDP proxy via LXD, as follows:
lxc config device add mycontainer udp6050 proxy listen=udp:<IP_ADDRESS>:6050 connect=udp:<IP_ADDRESS>:6050 bind=host
While it works fine at first (albeit with a few more "request timed out" on ping requests) than socat, eventually the proxy fails completely and the only way I can get it going again is by removing and adding it back again.  Unfortunately, I could not seem to find any appropriate log file entries to share in this case, but I will keep an eye out and add any relevant entries if I find some.
lxc config device remove mycontainer udp6050
lxc config device add mycontainer udp6050 proxy listen=udp:<IP_ADDRESS>:6050 connect=udp:<IP_ADDRESS>:6050 bind=host


Separate test dependencies

This change moves the python modules that are only required for testing Shared Services into their own section in setup.py so they are no longer installed by default.
Relevant files (eg .travis.yml) have also been updated.
Please let me know if I should move any other modules into this new section.

Very nice.  Can you please also update the README instructions?
I would think these packages are also only needed for tests:

swagger_spec_validator
Flask-WebTest


Incompatibility with Julia 1.10 due to zombie I/O resources

x-post https://github.com/comonicon/Comonicon.jl/issues/249 and https://github.com/JuliaLang/julia/issues/50839
It seems like on Julia 1.10, this package is causing precompilation/builds of downstream dependencies to hang. According to Tim Holy, this is due to I/O resources being opened during module definition:

If you open an I/O resource during module definition, you now (Julia 1.10+) have to close it before exiting the module. Example of a fix:

Close timers in ondestroy JuliaGizmos/GtkObservables.jl#46

followed by more thorough housecleaning during precompilation: More explicit finalization JuliaGizmos/GtkObservables.jl#47

I can't remember if the 2nd PR was needed to fix precompilation, but I don't think so. But digging turned up more evidence that we were doing a bad job of freeing resources, so responding to the changes in 1.10 made the package better.

Does anything stand out as causing this issue? I'd be happy to submit a PR.

Should be fixed with #6


add a potential warning on incidence range for the user

need to add a test that all incidences of the product are contained in both LUTS
=> warning in this case

#79 will solve


Goal positon is far away from the agent

if goal position is far away from the agent (out of the observation area), what is represented by the third layer of the observation? How can agent understand where to move?

In this case, the environment provides a projection of the target, as highlighted in Figure 2 of https://doi.org/10.48550/arxiv.2206.10944.

Thank you!


Tb add mongo configuration

PR to add in MongoDB configuration, have not integrated with the index page yet but have finished configuring MongoDB setting in the app.
CS48 Links for reference :
Setting up MongoDB user: https://ucsb-cs48.github.io/topics/mongodb_cloud_atlas_setup/
Sharing MongoDB to team: https://ucsb-cs48.github.io/topics/mongodb_cloud_atlas_sharing/
Configuring MongoDB with app: https://ucsb-cs48.github.io/topics/mongodb_nextjs_setup/

Looks good to me


Missing from lean 4: auto_params in structure fields

structure foo (A : Type) :=
(bla : inhabited A . mk_inhabited)

The . tac notation allows a structure field to be synthesized by a tactic. This is used heavily in the category theory part of mathlib via the obviously tactic, but it is syntactically disallowed in lean 4.

The new syntax is:
structure Foo (A : Type) where
  bla : Inhabited A := by mkInhabited

Upstream bug: leanprover/lean4#461

Leo added support for this @ https://github.com/leanprover/lean4/commit/3f22d5f6247af1380a4aa156744ab989b97bddba


VLAZ: Watch kliksatu.pler.pro

VLAZ requests the watch of the watch_keyword kliksatu\.pler\.pro. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

kliksatu\.pler\.pro has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by cigien in Charcoal HQ


malloc() issue with more  than 3 values

Hi @octo,
I ran into a strange error when trying to implement a plugin using collect.org/api/plugin.
When I send more than 3 values in []api.Value{}, I get malloc() errors in Collectd.
For example:
package main

import (
    "time"

    "collectd.org/api"
    "collectd.org/plugin"
)

type Realloc3 struct{}

func (Realloc3) Read() error {
    if err := plugin.Write(&api.ValueList{
        Identifier: api.Identifier{
            Host:         "example",
            Plugin:       "realloc3",
            Type:         "realloc3",
            TypeInstance: "demo",
        },
        Time:     time.Now(),
        Interval: 10 * time.Second,
        DSNames:  []string{"a", "b", "c"},
        Values:   []api.Value{api.Derive(1), api.Derive(2), api.Derive(3)},
    }); err != nil {
        plugin.Error(err)
    }

    return nil
}

func init() {
    plugin.RegisterRead("realloc3", &Realloc3{})
}

func main() {}

gives me:
# CGO_CPPFLAGS='-I/usr/include/collectd/core/daemon -I/usr/include/collectd/core' go build -buildmode=c-shared -o realloc3.so realloc3.go

# collectd -f
Initialization complete, entering read-loop.
tcpconns plugin: Reading from netlink succeeded. Will use the netlink method from now on.
^CExiting normally.
collectd: Stopping 5 read threads.
collectd: Stopping 5 write threads.

but with (which basically adds a fourth value):
package main

import (
    "time"

    "collectd.org/api"
    "collectd.org/plugin"
)

type Realloc4 struct{}

func (Realloc4) Read() error {
    if err := plugin.Write(&api.ValueList{
        Identifier: api.Identifier{
            Host:         "example",
            Plugin:       "realloc4",
            Type:         "realloc4",
            TypeInstance: "demo",
        },
        Time:     time.Now(),
        Interval: 10 * time.Second,
        DSNames:  []string{"a", "b", "c", "d"},
        Values:   []api.Value{api.Derive(1), api.Derive(2), api.Derive(3), api.Derive(4)},
    }); err != nil {
        plugin.Error(err)
    }

    return nil
}

func init() {
    plugin.RegisterRead("realloc4", &Realloc4{})
}

func main() {}

I get:
# CGO_CPPFLAGS='-I/usr/include/collectd/core/daemon -I/usr/include/collectd/core' go build -buildmode=c-shared -o realloc4.so realloc4.go

# collectd -f
Initialization complete, entering read-loop.
collectd: malloc.c:2372: sysmalloc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 *(sizeof(size_t))) - 1)) & ~((2 *(sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long) old_end & pagemask) == 0)' failed.
Aborted

# collectd -f
Initialization complete, entering read-loop.
*** Error in `collectd': malloc(): memory corruption: 0x00007fca08000900 ***
tcpconns plugin: Reading from netlink succeeded. Will use the netlink method from now on.
Aborted

Did I miss something important or did I do something wrong?
Kind regards,
Vincent

I forgot to mention that Collectd version is 5.5.2.

Hi @vbatoufflet, thank you for reporting this issue! With your information I managed to reproduce the problem:
#0  0x00007ffff7623c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
        resultvar = 0
        pid = 22624
        selftid = 22638
#1  0x00007ffff7627028 in __GI_abort () at abort.c:89
        save_stage = 2
        act = {__sigaction_handler = {sa_handler = 0x7fffed7f9b60, sa_sigaction = 0x7fffed7f9b60}, sa_mask = {__val = {0, 0, 6595232,<PHONE_NUMBER>65568,<PHONE_NUMBER>98554,<PHONE_NUMBER>43080,<PHONE_NUMBER>95280,<PHONE_NUMBER>0,<PHONE_NUMBER>, 0,<PHONE_NUMBER>51272,<PHONE_NUMBER>51232, 6595232, 1,
              6597776, 6596912}}, sa_flags = -469762016, sa_restorer = 0x7ffff79ac1c0 <_IO_2_1_stderr_>}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007ffff766a6ed in __malloc_assert (
    assertion=assertion@entry=0x7ffff776ebe8 "(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offs"...,
    file=file@entry=0x7ffff776a768 "malloc.c", line=line@entry=2372, function=function@entry=0x7ffff776aae6 <__func__.11321> "sysmalloc") at malloc.c:293
No locals.
#3  0x00007ffff766db58 in sysmalloc (av=0x7fffe4000020, nb=48) at malloc.c:2369
        old_top = 0x7fffe40008f0
        snd_brk = 0x0
        front_misalign = <optimized out>
        remainder = <optimized out>
        tried_mmap = <optimized out>
        old_size = 0
        size = <optimized out>
        old_end = 0x7fffe40008f0 "\003"
        brk = 0x0
        correction = <optimized out>
        end_misalign = <optimized out>
        aligned_brk = <optimized out>
        p = <optimized out>
        remainder_size = <optimized out>
        pagemask = 4095
#4  _int_malloc (av=av@entry=0x7fffe4000020, bytes=bytes@entry=32) at malloc.c:3800
        iters = <optimized out>
        nb = 48
        idx = <optimized out>
        bin = <optimized out>
        victim = <optimized out>
        size = <optimized out>
        victim_index = <optimized out>
        remainder = <optimized out>
        remainder_size = <optimized out>
        block = <optimized out>
        bit = <optimized out>
        map = <optimized out>
        fwd = <optimized out>
        bck = <optimized out>
        errstr = 0x0
        __func__ = "_int_malloc"
#5  0x00007ffff76701dc in __libc_calloc (n=<optimized out>, elem_size=<optimized out>) at malloc.c:3219
        av = 0x7fffe4000020
        oldtop = 0x7fffe40008f0
        p = <optimized out>
        bytes = 32
        sz = 32
        csz = <optimized out>
        oldtopsize = 132880
        mem = <optimized out>
        clearsize = <optimized out>
        nclears = <optimized out>
        d = <optimized out>
        hook = <optimized out>
        __func__ = "__libc_calloc"
#6  0x00007ffff73ea690 in _dlerror_run (operate=operate@entry=0x7ffff73e9fd0 <dlopen_doit>, args=args@entry=0x7fffed7f9c70) at dlerror.c:141
        result = <optimized out>
#7  0x00007ffff73ea0c1 in __dlopen (file=file@entry=0x0, mode=mode@entry=1) at dlopen.c:87
        args = {file = 0x0, mode = 1, new = 0x36, caller = 0x7ffff6f0585c <dispatch_values_wrapper+44>}
#8  0x00007ffff6f0585c in dispatch_values_wrapper (vl=0xc4200be000) at /home/octo/go/src/collectd.org/plugin/c.go:30
        hnd = <optimized out>
#9  0x00007ffff6f05adb in _cgo_75a6c6751aff_C2func_dispatch_values_wrapper (v=0xc420040c08) at /home/octo/go/src/collectd.org/plugin/plugin.go:142
        _cgo_errno = <optimized out>
        a = 0xc420040c08
        stktop = 0xc420040fd0 ""
        r = <optimized out>
#10 0x00007ffff6eacbe8 in runtime.asmcgocall () at /opt/go/src/runtime/asm_amd64.s:590
No locals.
#11 0x000000c420040b80 in ?? ()
No symbol table info available.
#12 0x00007ffff6e5c9f3 in runtime.cgocall (fn=0x0, arg=0x7fffed7f9d78, ~r2=-152384386) at /opt/go/src/runtime/cgocall.go:115
        errno = 0
        mp = 0xc420000680
        _g_ = 0x7ffff6eaaf22 <runtime.systemstack+114>
#13 0x00007fffed7f9d38 in ?? ()
No symbol table info available.
#14 0x0000000000000000 in ?? ()
No symbol table info available.

Hi @octo,
Do you know if there is any workaround?

Hi @octo,
Did you had a chance to take look at this issue yet?

I looked, I could reproduce, but I have no idea what's going on. Any help is welcome :)

Well, at least that's honest 😅

FWIW I've been hit by the same bug, 3 DSNames and Values, all clear. 4 DSNames and Values, segfault.


[openssl] Add cmake wrapper to handle OPENSSL_ROOT_DIR

Since OPENSSL_ROOT_DIR may be defined externally, add cmake wrapper to specify the value as CURRENT_INSTALLED_DIR to avoid FindOpenssl.cmake to find openssl elsewhere.
Fixes #16709.
Fix kf5holidays baseline issue caused by the parallel configure:
CMake Error: Could not open file for write in copy operation D:/buildtrees/kf5holidays/src/v5.81.0-8d1b566dfd.clean/.clang-format.tmp
CMake Error: : System Error: Permission denied
CMake Error at D:/installed/x86-windows/share/ECM/kde-modules/KDEClangFormat.cmake:67 (configure_file):
  configure_file Problem configuring file
Call Stack (most recent call first):
  D:/installed/x86-windows/share/ECM/kde-modules/KDEFrameworkCompilerSettings.cmake:79 (include)
  CMakeLists.txt:18 (include)

@Krzmbrzl @SamuelMarks  Can you please test this PR?
Thanks.

@JackBoosY Perfect
src/main.c
#include <stdio.h>

#include <openssl/crypto.h>

int main(void) {
    printf("OpenSSL_version_num: %lu\n", OpenSSL_version_num());
}

CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
project(pp VERSION 0.0.0 LANGUAGES C)

find_package(OpenSSL REQUIRED)

add_executable("${PROJECT_NAME}" "src/main.c")

target_include_directories("${PROJECT_NAME}" PRIVATE "${OpenSSL_INCLUDE_DIRS}")

target_link_libraries("${PROJECT_NAME}" PRIVATE OpenSSL::SSL OpenSSL::Crypto)

sh
$ git clone --depth=1 https://github.com/microsoft/vcpkg && cd vcpkg
$ gh pr checkout 18042
$ ./bootstrap-vcpkg.sh
$ ./vcpkg install openssl
$ cd /<source_root>/build
$ cmake -DCMAKE_TOOLCHAIN_FILE=[path]'/vcpkg/scripts/buildsystems/vcpkg.cmake' ..
-- The C compiler identification is AppleClang <IP_ADDRESS>50022
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found OpenSSL: /tmp/vcpkg/installed/x64-osx/debug/lib/libcrypto.a (found version "1.1.1k")
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/openssl-ver/build
$ cmake --build .
[ 50%] Building C object CMakeFiles/pp.dir/src/main.c.o
[100%] Linking C executable pp
[100%] Built target pp
$ ./pp
OpenSSL_version_num: 269488319

It always worked on my machine. We only received reports of some users that were having issues with this.
From the changes this seems to includes the workaround that we always told them to use, so LGTM :+1:

I wonder if:
https://github.com/microsoft/vcpkg/blob/a3db16a4475b963cacf0260068c497fb72c8f3c0/scripts/buildsystems/vcpkg.cmake#L522-L548
can be moved into the wrapper?

(reading on my phone) unless I missed something, OpenSSL is being installed to C:\OpenSSL? - That doesn't seem super standard, and sounds more like a CMake contribution so their FindOpenSSL.cmake knows more places to look…

Yeah it is the upstream CMake module.
https://gitlab.kitware.com/cmake/cmake/-/blob/master/Modules/FindOpenSSL.cmake#L167-L172

@strega-nil-ms Please review and merge this PR first if it's suitable for us.

@JackBoosY could you update the versions files?

Thanks @JackBoosY :)

Breaks consumers of static openssl on windows.


Add support for Doorbell sensor type

Before submitting this form

[X] I have checked that this sensor type was not suggested for addition before; I know that it could
be in open or closed issues, and if there was another issue mentioning this sensor type I could
simply comment in it instead

[X] I have updated the <sensor type> mention in the title of the issue, but left the issue title
as it was otherwise

[X] I understand that if I want to suggest the addition of more than a single sensor type, I need
to file that form for each separate type

Sensor type
Doorbell
Home Assistant device class
door
Does the panel send sensor status updates?

[ ] Yes, I can see the Open/Close messages (I have been able to capture ZONE_ACTIVE messages)
[ ] No, it seems to only tell us the sensor exists, but never update its state

Sensor data from an INFO message
{"id": "6006A7", "type": "Doorbell", "name": "Door Bell", "group": "localsafety", "status": "Closed", "state": "0", "zone_id": 18, "zone_physical_type": 1, "zone_alarm_type": 3, "zone_type": 109, "partition_id": 0}

Sensor data from a ZONE_EVENT's ZONE_UPDATE message
{"event":"ZONE_EVENT","zone_event_type":"ZONE_UPDATE","zone":{"id":"6006A7","type":"Doorbell","name":"Door Bell","group":"localsafety","status":"Closed","state":"0","zone_id":18,"zone_physical_type":1,"zone_alarm_type":3,"zone_type":109,"partition_id":0},"version":1,"requestID":"09352e90-9993-4def-aa25-77010ff7e3ac"}

Sensor data from a ZONE_EVENT's ZONE_ACTIVE message
Can't capture
Additional context
No response

For what it's worth, by making these changes, I can use the doorbell and setup notifications:
https://github.com/agelwarg/qolsysgw/commit/82196f53f013a594d1f4728172981ecaeae96310
However, I'm not sure if making it a device_class door makes sense.

Do you see any change in state when your doorbell is being used? Or does it just appear in home assistant but does not ever change state?

Looks like it changes state

Do those open/close correspond to someone using the doorbell? I'm surprised since you mentioned not seeing any ZONE_ACTIVE messages, which are the ones leading to open/close status of a sensor!

Yes, there are -- I apologize as I didn't see "doorbell" in the ZONE_ACTIVE messages, but I now see that those only contain the zone_id:
2023-03-29 11:31:58.999447 DEBUG qolsys_panel: Data received (len: 155): {"event":"ZONE_EVENT","zone_event_type":"ZONE_ACTIVE","version":1,"zone":{"status":"Open","zone_id":18},"requestID":"c0bc9c44-e534-4287-a156-6c18ac2fb202"}
2023-03-29 11:31:59.003813 DEBUG qolsys_panel: Qolsys callback for event: <QolsysEventZoneEventActive zone=namespace(id=18, status='Open') version=1>
2023-03-29 11:31:59.005266 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'topic': 'qolsys/qolsys_panel/event', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Open", "zone_id": 18}, "requestID": "c0bc9c44-e534-4287-a156-6c18ac2fb202"}'}
2023-03-29 11:31:59.022027 DEBUG qolsys_panel: Received MQTT_MESSAGE with data={'topic': 'qolsys/qolsys_panel/event', 'wildcard': '#', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Open", "zone_id": 18}, "requestID": "c0bc9c44-e534-4287-a156-6c18ac2fb202"}'} and kwargs={'topic': 'qolsys/qolsys_panel/event', '__thread_id': 'MainThread'}
2023-03-29 11:31:59.029230 DEBUG qolsys_panel: MQTT callback for event: <QolsysEventZoneEventActive zone=namespace(id=18, status='Open') version=1>
2023-03-29 11:31:59.034817 DEBUG qolsys_panel: ACTIVE zone=namespace(id=18, status='Open')
2023-03-29 11:31:59.041689 DEBUG qolsys_panel: Sensor '6006A7' (Door Bell) status updated to 'Open'
2023-03-29 11:31:59.047743 DEBUG qolsys_panel: Notifying <QolsysSensorDoorbell id=6006A7 name=Door Bell group=localsafety status=Open state=0 zone_id=18 zone_type=109 zone_physical_type=1 zone_alarm_type=3 partition_id=0> observers with: {'change': 'update_status', 'prev_value': 'Closed', 'new_value': 'Open'}
2023-03-29 11:31:59.052573 DEBUG qolsys_panel: Received update from sensor 'Door Bell' for CHANGE=update_status, from prev_value=Closed to new_value=Open
2023-03-29 11:31:59.057859 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'retain': True, 'topic': 'homeassistant/binary_sensor/door_bell/state', 'payload': 'Open'}
2023-03-29 11:31:59.225466 DEBUG qolsys_panel: Data received (len: 157): {"event":"ZONE_EVENT","zone_event_type":"ZONE_ACTIVE","version":1,"zone":{"status":"Closed","zone_id":18},"requestID":"ffa9966d-c346-4388-9098-129c447b4d5f"}
2023-03-29 11:31:59.232103 DEBUG qolsys_panel: Qolsys callback for event: <QolsysEventZoneEventActive zone=namespace(id=18, status='Closed') version=1>
2023-03-29 11:31:59.233757 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'topic': 'qolsys/qolsys_panel/event', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Closed", "zone_id": 18}, "requestID": "ffa9966d-c346-4388-9098-129c447b4d5f"}'}
2023-03-29 11:31:59.575661 DEBUG qolsys_panel: Received MQTT_MESSAGE with data={'topic': 'qolsys/qolsys_panel/event', 'wildcard': '#', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Closed", "zone_id": 18}, "requestID": "ffa9966d-c346-4388-9098-129c447b4d5f"}'} and kwargs={'topic': 'qolsys/qolsys_panel/event', '__thread_id': 'MainThread'}
2023-03-29 11:31:59.581306 DEBUG qolsys_panel: MQTT callback for event: <QolsysEventZoneEventActive zone=namespace(id=18, status='Closed') version=1>
2023-03-29 11:31:59.586527 DEBUG qolsys_panel: ACTIVE zone=namespace(id=18, status='Closed')
2023-03-29 11:31:59.592288 DEBUG qolsys_panel: Sensor '6006A7' (Door Bell) status updated to 'Closed'
2023-03-29 11:31:59.598043 DEBUG qolsys_panel: Notifying <QolsysSensorDoorbell id=6006A7 name=Door Bell group=localsafety status=Closed state=0 zone_id=18 zone_type=109 zone_physical_type=1 zone_alarm_type=3 partition_id=0> observers with: {'change': 'update_status', 'prev_value': 'Open', 'new_value': 'Closed'}
2023-03-29 11:31:59.605279 DEBUG qolsys_panel: Received update from sensor 'Door Bell' for CHANGE=update_status, from prev_value=Open to new_value=Closed
2023-03-29 11:31:59.612442 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'retain': True, 'topic': 'homeassistant/binary_sensor/door_bell/state', 'payload': 'Closed'}
2023-03-29 11:32:17.501915 DEBUG qolsys_panel: Data received (len: 318): {"event":"ZONE_EVENT","zone_event_type":"ZONE_UPDATE","zone":{"id":"6006A7","type":"Doorbell","name":"Door Bell","group":"localsafety","status":"Closed","state":"0","zone_id":18,"zone_physical_type":1,"zone_alarm_type":3,"zone_type":109,"partition_id":0},"version":1,"requestID":"9e8e27e5-373d-4858-908b-6b080d8c1303"}
2023-03-29 11:32:17.510730 DEBUG qolsys_panel: Qolsys callback for event: <QolsysEventZoneEventUpdate zone=<QolsysSensorDoorbell id=6006A7 name=Door Bell group=localsafety status=Closed state=0 zone_id=18 zone_type=109 zone_physical_type=1 zone_alarm_type=3 partition_id=0> version=1>
2023-03-29 11:32:17.512434 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'topic': 'qolsys/qolsys_panel/event', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_UPDATE", "zone": {"id": "6006A7", "type": "Doorbell", "name": "Door Bell", "group": "localsafety", "status": "Closed", "state": "0", "zone_id": 18, "zone_physical_type": 1, "zone_alarm_type": 3, "zone_type": 109, "partition_id": 0}, "version": 1, "requestID": "9e8e27e5-373d-4858-908b-6b080d8c1303"}'}
2023-03-29 11:32:17.658220 DEBUG qolsys_panel: Received MQTT_MESSAGE with data={'topic': 'qolsys/qolsys_panel/event', 'wildcard': '#', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_UPDATE", "zone": {"id": "6006A7", "type": "Doorbell", "name": "Door Bell", "group": "localsafety", "status": "Closed", "state": "0", "zone_id": 18, "zone_physical_type": 1, "zone_alarm_type": 3, "zone_type": 109, "partition_id": 0}, "version": 1, "requestID": "9e8e27e5-373d-4858-908b-6b080d8c1303"}'} and kwargs={'topic': 'qolsys/qolsys_panel/event', '__thread_id': 'MainThread'}
2023-03-29 11:32:17.663111 DEBUG qolsys_panel: MQTT callback for event: <QolsysEventZoneEventUpdate zone=<QolsysSensorDoorbell id=6006A7 name=Door Bell group=localsafety status=Closed state=0 zone_id=18 zone_type=109 zone_physical_type=1 zone_alarm_type=3 partition_id=0> version=1>
2023-03-29 11:32:17.667150 DEBUG qolsys_panel: UPDATE zone=<QolsysSensorDoorbell id=6006A7 name=Door Bell group=localsafety status=Closed state=0 zone_id=18 zone_type=109 zone_physical_type=1 zone_alarm_type=3 partition_id=0>
2023-03-29 11:32:19.614396 DEBUG qolsys_panel: Data received (len: 318): {"event":"ZONE_EVENT","zone_event_type":"ZONE_UPDATE","zone":{"id":"6006A7","type":"Doorbell","name":"Door Bell","group":"localsafety","status":"Closed","state":"0","zone_id":18,"zone_physical_type":1,"zone_alarm_type":3,"zone_type":109,"partition_id":0},"version":1,"requestID":"b1054c31-cb49-49f1-9d20-6825845aa56e"}
2023-03-29 11:32:19.619422 DEBUG qolsys_panel: Qolsys callback for event: <QolsysEventZoneEventUpdate zone=<QolsysSensorDoorbell id=6006A7 name=Door Bell group=localsafety status=Closed state=0 zone_id=18 zone_type=109 zone_physical_type=1 zone_alarm_type=3 partition_id=0> version=1>
2023-03-29 11:32:19.621226 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'topic': 'qolsys/qolsys_panel/event', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_UPDATE", "zone": {"id": "6006A7", "type": "Doorbell", "name": "Door Bell", "group": "localsafety", "status": "Closed", "state": "0", "zone_id": 18, "zone_physical_type": 1, "zone_alarm_type": 3, "zone_type": 109, "partition_id": 0}, "version": 1, "requestID": "b1054c31-cb49-49f1-9d20-6825845aa56e"}'}
2023-03-29 11:32:19.682178 DEBUG qolsys_panel: Received MQTT_MESSAGE with data={'topic': 'qolsys/qolsys_panel/event', 'wildcard': '#', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_UPDATE", "zone": {"id": "6006A7", "type": "Doorbell", "name": "Door Bell", "group": "localsafety", "status": "Closed", "state": "0", "zone_id": 18, "zone_physical_type": 1, "zone_alarm_type": 3, "zone_type": 109, "partition_id": 0}, "version": 1, "requestID": "b1054c31-cb49-49f1-9d20-6825845aa56e"}'} and kwargs={'topic': 'qolsys/qolsys_panel/event', '__thread_id': 'MainThread'}
2023-03-29 11:32:19.687148 DEBUG qolsys_panel: MQTT callback for event: <QolsysEventZoneEventUpdate zone=<QolsysSensorDoorbell id=6006A7 name=Door Bell group=localsafety status=Closed state=0 zone_id=18 zone_type=109 zone_physical_type=1 zone_alarm_type=3 partition_id=0> version=1>
2023-03-29 11:32:19.691698 DEBUG qolsys_panel: UPDATE zone=<QolsysSensorDoorbell id=6006A7 name=Door Bell group=localsafety status=Closed state=0 zone_id=18 zone_type=109 zone_physical_type=1 zone_alarm_type=3 partition_id=0>

Amazing! Thanks for the data :)

Amazing! Thanks for the data :)

Anything else I can do to get this into next releaes?

I'm moving from Hubitat and the Doorbell feature doesn't work with their 3rd party integration either.

Thank you agelwarg and XaF for this feature, I was missing this and really am looking forward to this update. I was puzzling with getting the data needed to make this request. But the the feature request form works really well with the checks to see if the issue already has been filed, so kudos for that! I hacked an IQ remote to show a browser for a HA dashboard, and I want to make a pop up when the doorbell is pressed (see video for test). Unfortunately I can't get an updated WebView to work on it so the HA companian app can work on it. But I'm already happy that it can show a dashboard.

https://github.com/XaF/qolsysgw/assets/71702374/476333f5-9cc6-479d-8cab-9bfd5442f7fa

I see this was merged, but do you have any timeframe for when you are going to make a release (that includes this)?

Thank you agelwarg and XaF for this feature, I was missing this and really am looking forward to this update. I was puzzling with getting the data needed to make this request. But the the feature request form works really well with the checks to see if the issue already has been filed, so kudos for that! I hacked an IQ remote to show a browser for a HA dashboard, and I want to make a pop up when the doorbell is pressed (see video for test). Unfortunately I can't get an updated WebView to work on it so the HA companian app can work on it. But I'm already happy that it can show a dashboard.

https://github.com/XaF/qolsysgw/assets/71702374/476333f5-9cc6-479d-8cab-9bfd5442f7fa

What is this sorcery? How do I get my HASS dash on there?

Sorry for the time it took to release. Was hoping to put in there some of the other sensor requests also but didn't happen to pan out. Happy this is helpful!
I'll +1 @ifeign's question about your dark magic: did not know there was a way to load a custom page on the panel, how does this work? Or did you have to override something?

This is not an IQ panel 2 or IQ panel 4, but the IQ remote. The IQ remote has two buttons which gets you to the recovery menu, like any Android device, and from there you have access to Android Debug Bridge (ADB). Connect it with USB so with a command line on a pc you can uninstall the Qolsys app, install a browser and a launcher and get access to the settings menu. The Home Assistant companion app doesn't work properly, probably because of an old version of Webview, but that is hard coded it the system and I haven't found a way to update that. Maybe someone smarter than me can tackle that issue 😎


Unknown plugin add-module-exports specified in ./babelrc

Trying to use hashids on react native app, but got error.
TransformError:  ../node_modules/hashids/dist/hashids.js: Unknown plugin "add-modules-exports" specified in "../node_modules/hashids/./babelrc" at 0, attempted to resolve relative to "../node_modules/hashids"
"hashids": "^1.1.2",
"react": "16.0.0-alpha.12",
"react-native": "^0.49.3",

Thanks!

Solved by run npm install in ../node_modules/hashids

is this fixed in the latest release?


[List] Allow adding multiple secondary actions

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Summary 💡
The ListItem component provides a property for setting a secondary action. This works fine if you only add a single IconButton, but if multiple buttons are added, the content of the ListItem can overlap with the left IconButton. This is caused by the padding of the ListItem which is set to a fixed 48px if a secondary action is set.
The secondary action should allow setting an array of IconButtons. Depending on the length of the array, the padding should be calculated. As an alternative, it could also be a fragment which is checked for the amount of IconButtons inside it.
A workaround at the moment would be to override the padding, but I think it would be much more convenient to have this handled by mui, especially because this is not directly documented.
Examples 🌈
Current Behavior:
Code Sample

New Behavior:

Motivation 🔦
We have applications which often contain lists of objects which can be edited or deleted. To allow both actions, we add two IconButtons to the list items (see example above). Our application is mainly used on desktop browsers, so we have enough room for both buttons to be displayed all the time.
I have already tried to implement this, and it looks to be easy to support this case. If you think this feature could be integrated into mui I could create a PR. 😊

Hey @DanielBretzigheimer, thanks for dropping the request! I totally agree we should do this, it seems something intuitive to support. Though I only think we could experiment using text-overflow displaying an ellipsis instead of breaking the line. But anyway, this is a conversation for the PR. Feel free to open it!
cc @siriwatknp to think about Joy as well having the same feature — think we touched the List component recently, right?!

@danilo-leal I could not find a perfect solution yet. This is because the action has position absolute which there is no way for the child ListItemButton to know how much padding-right it should have.
<ListItem secondaryAction={...two icon button}> // when ListItem receive secondaryAction, it forces ListItemButton to have specific padding-right (48px)
  <ListItemButton>
    ...
  </ListItemButton>
</ListItem>

The best approach I have so far for Joy is using CSS variables to make customization easier but you still have to manually specify the actual width.
<List sx={{ '--List-item-endActionWidth': '64px' }}> // you have to manually custom the width equal to the action
  <ListItem endAction={...}> // you can add elements many as you like
    <ListItemButton>...</ListItemButton>
  </ListItem>
</List>

Isn't it better just to keep the old (deprecated) API ListItemSecondaryAction instead?


observations varies when fetched with two env methods

Hi there,
I used the following two methods to obtain the observations and get slightly different results:
obs_list, reward, done, info = env.step(action, project=True, obs_as_dict=False).
Just after this line, use another function to get observation,
obs_list2 = env.get_observation().
But obs_list is not equal to obs_list2, with abs error around 1e-4. Not sure what happens between these two lines that changes the observation values.

@bmmi Sorry for the delayed response. The errors in v_tgt_field are due to the observation giving v_tgt_field based on the previous position. Thus, you should not see errors in other fields. Please let us know if this description does not match your observations.
We are aware of the lag in v_tgt_field. We thought a good solution should not be sensitive to how v_tgt_field is updated but will consider fixing it (or at least will make .get_observation() to give the correct values) in Round 2.

It is the same issue as #199.
@spMohanty Has it been fixed ?

@kiwi-byte This is not the same issue as #199, which was about the differences in docker and server submissions. #199 is fixed.

@bmmi The v_tgt_field lagging issue is solved in a new commit. It will be applied for Round 2 (not applied to the server yet).


The color of any selected value in the drop-down list does not match the color scheme

Select a value from any drop-down list (for example, VM filtering). The selected value is always blue.
I think it should match the color scheme.

Not needed


Overflow Issue and audio not playing

Hello,
I am getting an overflow on the right and cannot see the send button. Also when I send the voice I cannot play it.

Hello @kostricanitechnology
Can you check permissions if added well  ? And Can you send your code section please

hello,
I added all the permissions as per the documentation. Im not sure if the code will help but here it is
Builder(builder: (context) {                                         return GestureDetector(                                             onLongPress: () {                                               setState(() {                                                 showsheet = true;                                               });                                             },                                             onLongPressEnd: (details) {                                               Navigator.pop(context);                                             },                                             onTap: () {                                               Okitel.toast(                                                   'Hold to Record Audio, Tap to switch Video');                                               setState(() {                                                 showvideo = false;                                               });                                             },                                             child: Stack(                                               children: [                                                 Icon(Icons.video_camera_back,                                                     color: Colors.blue,                                                     size: 30),                                               ],                                             ));                                       }
Also there is the overflow issue with it.

In this code you don't use my package

Sorry, I have sent the wrong one. Here is your code
RecordButton(                                             releaseToSend: true,                                             color: Colors.blue,                                             size: 35,                                             recordButtonColor: okitelchatgreen,                                             recordBgColor:                                                 Color.fromARGB(0, 255, 255, 255),                                             allTextColor: Colors.white,                                             controller: controler!,                                             arrowColor: Colors.white,                                             onRecordEnd: (String value) {                                               setState(() {                                                 filepath = value;                                                 readOnly = true;                                               });                                               getFileData(File(filepath));                                               onSendMessage(                                                   context,                                                   filepath.toString() +                                                       '-BREAK-' +                                                       DateTime.now()                                                           .millisecondsSinceEpoch                                                           .toString(),                                                   MessageType.audio,                                                   DateTime.now()                                                       .millisecondsSinceEpoch);                                             },                                             onRecordStart: () {                                               setState(() {                                                 readOnly = false;                                               });                                             },                                             onCancelRecord: () {                                               setState(() {                                                 readOnly = false;                                               });                                             },                                           )

when i send the voice from Android to Android it works, when I send from Android to iPhone it doesn't work and also from iPhone to Android it doesn't work as well

@kostricanitechnology
Are you sure you used my own package ?
This code not for my package my own package link
https://pub.dev/packages/social_media_recorder
Can you check again please

Sorry I got confused, there are two packages with same name. Here is your code
Align(                                         alignment: Alignment.centerLeft,                                         child: SocialMediaRecorder(                                           // maxRecordTimeInSecond: 5,                                           startRecording: () {                                             setState(() {                                               showunshow = true;                                             });                                           },                                           stopRecording: (_time) {                                             setState(() {                                               showunshow = false;                                             });                                           },                                           sendRequestFunction:                                               (soundFile, _time) {                                             print(                                                 "the current path is ${soundFile.path}");                                             getFileData(File(soundFile.path));                                             onSendMessage(                                                 context,                                                 soundFile.path +                                                     '-BREAK-' +                                                     DateTime.now()                                                         .millisecondsSinceEpoch                                                         .toString(),                                                 MessageType.audio,                                                 DateTime.now()                                                     .millisecondsSinceEpoch);                                           },                                           encode: AudioEncoderType.AAC,                                         ),                                       )

@kostricanitechnology
Over flow show because you put centerLeft and unfortunately package support only from right to left from now
But for File if it's work on android or ios it should work on several devices can you check file please and check what the style it send throw server
Because it's file should work in same for both without any diffrent

let me try and will let you know

OK

Can you check file inside your phone please if will work well or not
If work well then the issue not from file else from file
On Wed, Jan 24, 2024, 9:18 PM kostricanitechnology @.***>
wrote:

the output on the database is like this /cache/2024-01-24-13:38.m4a I
think the format is wrong
—
Reply to this email directly, view it on GitHub
https://github.com/Subhi-Khalife/social_media_recorder/issues/26#issuecomment-1908768072,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AITJMLNCQKGPD7JSTGZQELLYQFNB3AVCNFSM6AAAAABCGWOTTWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMBYG43DQMBXGI
.
You are receiving this because you commented.Message ID:
@.***>

On my phone I cannot play it. The message send but cannot be played

I saved all sound inside save directory you can found there all your records
On Wed, Jan 24, 2024, 10:22 PM kostricanitechnology <
@.***> wrote:

On my phone I cannot play it. The message send but cannot be played
—
Reply to this email directly, view it on GitHub
https://github.com/Subhi-Khalife/social_media_recorder/issues/26#issuecomment-1908858056,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AITJMLNVDGN7ZBMAXV3A3N3YQFURJAVCNFSM6AAAAABCGWOTTWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMBYHA2TQMBVGY
.
You are receiving this because you commented.Message ID:
@.***>


Consider using a tool to generate c bindings over manual creation

Right now the api is generated by hand by referencing the wasmtime c library headers.  We could automate this process which would make it easier to catch issues and make updates.
See:
Doing a little more digging, and it seems we could use a tool like https://github.com/dotnet/clangsharp?tab=readme-ov-file#generating-bindings  to point at header files and generate c#.  This would require a bit of changes to the project but would help catch the changes to files.
Originally posted by @jsturtevant in https://github.com/bytecodealliance/wasmtime-dotnet/issues/315#issuecomment-2211240505

I looked into using the generator.  The generator takes the approach of doing low level bindings (https://github.com/dotnet/ClangSharp/issues/509#issuecomment-1846163712 and https://github.com/dotnet/ClangSharp/issues/427#issuecomment-1836370041).
This requires a slightly different approach and use of unsafe in a few places since it prefers to generate raw pointers over IntPtr and using things like SafeHandle.
As an example, I converted one of the Table calls to the generated bindings:
https://github.com/bytecodealliance/wasmtime-dotnet/compare/main...jsturtevant:wasmtime-dotnet:code-generation?expand=1
I still think there might be value in going this approach so it isn't manual to look up the c api's then map them back to this repo but as you can see with https://github.com/bytecodealliance/wasmtime-dotnet/pull/328 some of the changes are not that difficult.
Going to think on it a bit more and explore how many changes have happened since the last release here (case in point; finding the diffs is one of the harder aspects of the doing this manually).  Would love to hear others thoughts as well.

This would be great, exposing both unsafe low-level bindings and higher level semantic constructs would be a boon to making this more usable for my needs.

Interesting, I wasn't thinking of this use case (although the binding generator calls this out as one reason for this approach).   We don't currently expose those bindings in a public way so would need some changes.
@Hypatech would you mind sharing some more details on your use case?

Interesting, I wasn't thinking of this use case (although the binding generator calls this out as one reason for this approach). We don't currently expose those bindings in a public way so would need some changes.
@Hypatech would you mind sharing some more details on your use case?

Gladly!
I really want to be able to use WASM in Unity as a scripting platform for game mods, by offering WIT files for modders to implement new functionality / content.

If all upstream APIs would quickly be exposed on the low-level layer, I wouldn't have to wait for a C#-ified wrapper. Specifically, I'm waiting for the C API component model to be exposed, but I also understand there will then be additional delay for this to be exposed on the C# side.
The current marshalled bindings have unnecessary overhead for code that is still functionally unsafe.
Creating alternate wrappers around these low-level bindings would be much simpler


dep does not seem to respect a project's packages setting in the Gopkg.lock file

Creating a simple app with a testing dependency adds the entire project, not just the requested package.
I've created a simple repository with a use case:
https://github.com/jgeiger/dep_bug/tree/single_package_include
If you remove the 2nd commit and run
dep init
dep ensure

You see it includes all of onsi/gomega and not just onsi/gomega/format. It seems the lock file is also specifically showing only the format package.
Gopkg.lock
[[projects]]
  name = "github.com/onsi/gomega"
  packages = ["format"]
  revision = "c893efa28eb45626cdaa76c9f653b62488858837"
  version = "v1.2.0"

[solve-meta]
  analyzer-name = "dep"
  analyzer-version = 1
  inputs-digest = "5e0de845bb486cf6d10bd90820c209918c72ab17ca60b1824309f496393de40e"
  solver-name = "gps-cdcl"
  solver-version = 1

What version of Go (go version) and dep (git describe --tags) are you using?
go version
go version go1.8.3 linux/amd64

git describe --tags
v0.1.0-257-g12d69a9

What dep command did you run?
dep init
dep ensure

What did you expect to see?
It should only vendor the single package I've required and is listed in the Gopkg.lock file.
 create mode 100644 vendor/github.com/onsi/gomega/format/format.go
 create mode 100644 vendor/github.com/onsi/gomega/format/format_suite_test.go
 create mode 100644 vendor/github.com/onsi/gomega/format/format_test.go

What did you see instead?

If you want your vendor to only contain the sub-packages that you are currently using, run dep prune -v.
Prune is being reworked and will eventually move to the dep ensure command, but for now this the way to do it. 😀

Thanks for the feedback! I've #875 to track documenting how prune works today.


Page not fully rendering before page_source() is available

I'm having an issue where content on a page I'm accessing isn't populated when I start to interact with its dom. (it's actually inconstant, sometimes it is ready, sometimes it's not).
Is this something I need to deal with at the phantomjs end, or is there something hound can do to help here? I've looked through the docs and nothing has jumped out at me. I guess I need a kind of 'when the page has finished loading' condition.
Edit: :timer.sleep(5000) does the job for me, but it feels a bit dirty. Maybe this is the best approach though?

Based on other retry schemes present in Hound, I came up with an idea of writing an "oscillator", wherein I can continually check for several different conditions which might be true before I proceed to do something.
defmodule MyApp.Retryer do
  @retry_time 1000

  def oscillate(function_list, retries \\ 60) do
    # Allows you to check multiple things that might be true at a given time
    results = Enum.map(function_list,
      fn x -> (try do x.() rescue _ -> false end)
    end)

    if retries > 0 do
      if Enum.any?(results) do
        results
      else
        :timer.sleep(@retry_time)
        oscillate(function_list, retries - 1)
      end
    else
      results
    end
  end
end

You would pass a list of functions into it like this:
results = Retryer.oscillate([
  fn() -> Text.visible_on_page?("Condition 1 visible text", 0) end,
  fn() -> Text.visible_on_page?("Condition 2 visible text", 0) end
])

It should return a list with a true in the position of the condition that ended up being true:
[true, false]

You can also use other things that are truthy like element finders:
results = Retryer.oscillate([
  fn() -> Page.find_element(:css, "#object1", 0) end,
  fn() -> Page.find_element(:css, "#object2", 0) end
])

Note: Always use 0 as the number of retries in your passed functions.

That's really neat - thanks for sharing!

On 7 Feb 2016, at 22:02, Don Pflaster<EMAIL_ADDRESS>wrote:
Based on other retry schemes present in Hound, I came up with an idea of writing an "oscillator", wherein I can continually check for several different conditions which might be true before I proceed to do something.
defmodule MyApp.Retryer do
@retry_time 1000
def oscillate(function_list, retries \ 60) do
# Allows you to check multiple things that might be true at a given time
results = Enum.map(function_list,
fn x -> (try do x.() rescue _ -> false end)
end)
if retries > 0 do
  if Enum.any?(results) do
    results
  else
    :timer.sleep(@retry_time)
    oscillate(function_list, retries - 1)
  end
else
  results
end

end
end
You would pass a list of functions into it like this:
results = Retryer.oscillate([
fn() -> Text.visible_on_page?("Condition 1 visible text", 0) end,
fn() -> Text.visible_on_page?("Condition 2 visible text", 0) end
])
It should return a list with a true in the position of the condition that ended up being true:
[true, false]
You can also use other things that are truthy like element finders:
results = Retryer.oscillate([
fn() -> Page.find_element(:css, "#object1", 0) end,
fn() -> Page.find_element(:css, "#object2", 0) end
])
Note: Always use 0 as the number of retries in your passed functions.
—
Reply to this email directly or view it on GitHub.

I think this is the way to go.
I will close the issue for now, please reopen if you are still having some issues.


Bounce effect when scrolling

No JSFiddle as the demo site seems adequate but I have provided a short video that hopefully demonstrates what I am seeing - https://cl.ly/lMlW
When scrolling the translateY value of floatThead-container is updated and this lags slightly behind the scroll so the table head seems to 'bounce' in position as the user scrolls up and down.
OS: macOS
Browsers used:

Chrome 60
Firefox 55
Safari 10

Is it possible to leave the floatThead-container static in the page until it becomes necessary to apply fixed (once the user has scrolled past)?

this PR might be a fix for that:
https://github.com/mkoryak/floatThead/pull/357
I havent really had much time to spend here as I used to, I should really look at it soon.
also, there is another way to work around that issue, used position:'absolute' instead of fixed
does this table exhibit the same bouncyness for you:
http://mkoryak.github.io/floatThead/examples/window-scrolling/

@mkoryak Same problem with position: absolute however when trying the code from that PR the issue seems to be fixed.

That's good, the pr might break some other scrolling type (there are a total of 16 code paths to test) so keep that in mind

anyone noticed that when you switch to position: absolute, it doesn't respect the bottom offset? In fact, when it hits the bottom offset it "jumps" down to the bottom of the container actually (instead of stopping it's translateY increment).  I'll jsfiddle this in a second under a new ticket...

@herringtown Did you solve the problem, How do you solve it?

In case it helps anyone else, I ended up creating a very simplistic version of this plugin - https://github.com/simonsmith/jquery.stickyTableHeader
Not as full featured as floaThead but it did meet my strict requirement for accessibility

@simonsmith floatthead creates aria attributes, but it is true that I do not clone the existing thead into the hidden one because it creates a lot of problems in certain tables.
Also you should probably figure out how to support horizontal scrolling in your plugin ;)

@mkoryak Yep, it's by no means perfect but I had a hard requirement to support screenreaders and from what I could tell any solution that didn't leave an existing thead behind caused the user to be lost in a table with no column announcements.
Thanks for the issues you opened also :)

@mkoryak what about this issue?

It's an issue I have not fixed

I should note that there exists a workaround for this issue:
use position:'absolute' instead of fixed. This is sometimes not ideal, hence this issue.
Also when I originally wrote this plugin back in 2013, I did not anticipate anyone using it on mobile. You really shouldn't use it on mobile.

If you use position:'absolute', the bounce effect will be fixed before the window hits thead.... however,  unfortunately, it's transfered to the floating element, while the window is scrolling in the table.
In both cases, it's all about the translateY transform, triggered when window.scroll is changed. For some reason, mobile browsers don't deal well with that, thus the delay.
A potential solution to stop this effect in mobile devices is a mix of both: position:'absolute' if window scroll position is less than the table header position, and position:'fixed' otherwise.

Here is my quick solution, if someone needs
var observer = new MutationObserver(function(mutationsList, observer){
    for(let mutation of mutationsList) {
        if (mutation.type === 'attributes') {
            if (mutation.target.style.cssText.match(/translateY\((.*)\)/g)[0].replace(/\D/g, "") > 0) {
                $(".floatThead-container").removeClass("floated")
            } else {
                $(".floatThead-container").addClass("floated")
            }
        }
    }
});

observer.observe($(".floatThead-container")[0], {
    attributes:    true,
    attributeFilter: ["style"]
});

<style>
    .table-responsive {
        position: relative;
    }
    .floatThead-container:not(.floated) {
        position: absolute !important;
        transform: none !important;
    }
</style>

it worked for me, but there was a big delay between floated and not floated state so I've decided to use mutation observer instead


change useEffect second argument to allow for comparrison

This change prevents the problem described here: https://github.com/chrisrzhou/react-wordcloud/issues/25#issue-521251684

@camlough @chrisrzhou  Are there plans to merge this PR?
re-rendering is so annoying.. https://github.com/chrisrzhou/react-wordcloud/issues/25#issue-521251684

Fixed in #36


Updated document headings

Updated headings to reflect new documents created
Edited instructions on how to access TABL.

@JohanFreelancer9


Optimized clifford synthesis for up to 3 qubits

Summary
Adds optimal compilation of Cliffords into circuits with the minimal number of CX gates for N <= 3 qubits.
Details and comments
This method is based on Bravyi & Maslov (arXiv:2003.09412 [quant-ph]), but does not require lookup tables for the 2 and 3 qubit case.
For N > 3 qubits, synthesis is done using general non-optimal decomposition from Aaronson and Gottesman.

@kdk i think you're more familiar than me with this, can you take a look?


Add user-oriented compute resource doc.

Adds docs/compute_resources.md with user-oriented
explanation of compute resources.
Reveals detail gradually and includes examples
and troubleshooting.  Examples are tested.
Moves design-focused docs/resources.md to docs/design/resources.md.
Updates links to that.

Closes #10103

@dchen1107 or @lavalamp suggested as reviewer.

Okay, thanks for the review.  I've either responded to or accepted all comments.

Found a couple more things.

All comments have been dealt with.

@erictune im done with my review, only a few small comments, LGTM from my perspective (with my comments implemented)

oncall: this is just docs and has an lgtm.  Should be good to merge?

Richie's comments addressed.


Make page.image url relative to site rather than absolute

Fixes #24
Tests pass when https://github.com/benbalter/jekyll-seo-tag/pull/43 is merged,

Thanks @boturnbow! I believe the failing tests are unrelated and due to https://github.com/benbalter/jekyll-seo-tag/pull/43.

Thanks to @pathawks for answering my question about the failing tests. This was my first pull request for a public project - yall made it easy.

:tada: Cool!
Thanks for contributing :+1:

@boturnbow :confetti_ball: :star2: Congrats on your first merged pull request! May this be the beginning of a wonderful adventure.


Option to add custom event listeners to the CodeFlask textarea

Hello, I really like this library for it's small size. I was hoping to be able to add hotkeys to my editor, e.g. ctrl+enter to "execute" code. I tried to implement this by adding a "keydown" listener on the textarea generated by codeflask, but I was unable to prevent a newline from being inserted to the code due to the default behavior of the enter key. I tried, e.preventDefault(), but that was insufficient. Apparently I need to stop the "keydown" listener that codeflask added in order to prevent that. This is possible using e.stopImmediatePropagation(), but only if I call that method from an event handler that triggers before the other one. Since event handlers are triggered in the order they are added, this is impractical for the user. It would be nice if the CodeFlask constructor provided a way for users to add custom event handlers before the ones added by the library. I propose an implementation in my pull request #122 which allowed me to implement my hotkey. Please let me know if this is a welcome feature. I'm happy to help design this.

I forked it, added the option, and published under my namespace for now. Let me know if you want to merge.
https://github.com/acarl005/CodeFlask


adam2bam - command for converting from adam format right to regular BAM/SAM file

Can one of the admins verify this patch?

quick drive-by comment: can't transform do this?

It' based on transform, but it replace outputPath directory by part-* file
located in
пн, 1 июня 2015, 18:21, Ryan Williams<EMAIL_ADDRESS>
quick drive-by comment: can't transform do this?
—
Reply to this email directly or view it on GitHub
https://github.com/bigdatagenomics/adam/pull/689#issuecomment-107577562.

cool, that makes sense @antonstamov.
One suggestion: what if we made this "replace directory with part-r0000 file" functionality an option to adamSAMSave?
I would certainly use this capability during longer adam-shell sessions, for example.
Such functionality would probably be useful beyond just saving SAMs/BAMs, too, e.g. for VCFs and various other file formats.
I'm not saying I think you need to do all of that here, we can do it later, but if you wanted to that would be great, and I'm going to file an issue for it either way.

Filed #692 ^^

One suggestion: what if we made this "replace directory with part-r0000 file" functionality an option to adamSAMSave?

That would be my preference, instead of adding a second command.

That shouldn't be too difficult; how does it sound, @antonstamov?

please checkout last commit

Thanks for this update @antonstamov, much better! I left a few questions, lmk what you think.

Can you rebase? Thanks!

Another thing that occurred to me: can we force a .coalesce(1) before writing the "single file"? Or are we already guaranteed that it will just have one partition somehow?
I just had a BAM get written out in many partitions yesterday by ADAM and was coalescing manually after that since I hasn't realized I needed that step previously; saving that step and doing the file rename will be a very nice improvement to this flow!

+1 to @ryan-williams's point.  I don't see how this feature can work without coalescing.

Can somebody make code review of last changes and merge this pull request?

@ryan-williams, ok I fixed this message

Cool, thanks! I'm just finishing running a test of this functionality reading from and writing to HDFS…

OK this looks good. It did take me >1hr to write a 14GB bam file this way though, which is sort of a shame… I wonder if we wrote it to many part-* files, without the header on ones past the first, and then used hadoop cat to make them one file, if that would be faster?
Anyway that can be follow-on work, having this work slowly is a nice start.
I'll wait for @fnothaft or someone to chime in before merging.
Thanks @antonstamov

LGTM! I will squash down and merge.

Thanks @antonstamov! Manually committed as https://github.com/bigdatagenomics/adam/commit/dd9dc3aaf13b816d2c5c634eb15caddf3fc512c7.

@ryan-williams , do you have any idea how to save BAM/SAM "without the header on ones past the first"?

@antonstamov good q; it seems like it would be possible to mapPartitionsWithIndex and set some state on the first partition, off the top of my head.

seems like we'd have to make changes to hadoop-bam to allow it to write partitions without headers though: https://github.com/HadoopGenomics/Hadoop-BAM/blob/7.1.0/src/main/java/org/seqdoop/hadoop_bam/KeyIgnoringAnySAMOutputFormat.java#L121-L123

@ryan-williams yes, and instead of mapPartitionsWithIndex that I don't understand how to use for this case, I found solution with: https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/rdd/PartitionPruningRDD.scala

ADAM currently uses mapPartitionsWithIndex to set the SAM/BAM headers on each executor, which is relevant to the code paths you've been looking at.
Have you used a PartitionPruningRDD to write a SAM/BAM file with only a header on the first partition? If so, how? It seems to me that hadoop-bam's insistence on every partition having a header means we can't do it unless we change it there or reimplement that functionality.

I create two PartitionPruningRDDs, one with head partition and second with tail partitions, and save them with saveAsNewAPIHadoopFile, but for tail I use modified output format with writeHeader_=false flag from https://github.com/HadoopGenomics/Hadoop-BAM/blob/master/src/main/java/org/seqdoop/hadoop_bam/KeyIgnoringAnySAMOutputFormat.java

I tested this with SAM format, but I'm not sure that merging of part-r-* files will work with BAM files, cause of their compression. Anyway tommorrow I will test this and in case of success will make PR.

awesome, thanks for continuing to push on this!


Remove datasource model, add url column to metric

We are punting on datasrc.
Need url column on metric to provide additional info

 Remove datasource model, add url column to metric


Ticket Cancellations: Enable the organizers and users to cancel tickets of an order individually

Currently it is possible that a user or organizer cancels an order of tickets and refunds orders outside of the system. It is not possible to cancel specific tickets of an order though.
This means if a user buys for example 5 tickets in an order the user would be able to cancel only the entire order. If a user buys 5 tickets in separate orders the user would be able to cancel each ticket individually.
Therefore we need a way

to enable the organizers and users to cancel tickets individually. Please implement it in the my tickets page.
Please mark tickets that are canceled by the user or organizer as "Cancellation in Progress"
Provide an option for the organizer to change the status to "Refunding" and "Refunded" as the final status
For free tickets provide the status option "Cancelled"
Log who cancelled the ticket and at what time
Also provide the option for the status changes for the current "Order Cancellation"
Ultimately the user should be able to either cancel their order or cancel single tickets of the order

How should system fees be processed in that case? Our policy should be as follows:

The system should only refund fees for canceled tickets in the current invoice cycle.
If tickets are refunded in a following months they do not need to be refunded.

How do we handle the processing any back payment?

As the open event system does not process payments through its own accounts, we do not process any refunds. Organizers are responsible for refunding ticket buyers according to their refund policy.

I would like to work on this issue. Can I work on this? @mariobehling

@mariobehling  Can I work on this issue


Space in GB Postcode Regex should not be Optional

In the [Royal Mail Programmers Guide] (http://www.royalmail.com/sites/default/files/docs/pdf/programmers_guide_edition_7_v5.pdf), and it states (on page 17):

The first part, or Outward Code, is separated from the second part, the Inward Code, by a single space.

And the British Market Research Society (MRS) guide on postcode format says:

Leave a clear space of one character between the two parts of the postcode and do not join the characters in any way.

====
Querying the Google Address Data Service for the [GB Address Metadata] (http://i18napis.appspot.com/address/data/GB) returns:
{"upper": "CZ", "zipex": "EC1Y 8SY,GIR 0AA,M2 5BQ,M34 4AB,CR0 2YR,DN16 9AA,W1A 4ZZ,EC1A 1HQ,OX14 4PG,BS18 8HF,NR25 7HG,RH6 0NP,BH23 6AA,B6 5BA,SO23 9AP,PO1 3AX,BFPO 61", "key": "GB", "zip": "GIR[ ]?0AA|((AB|AL|B|BA|BB|BD|BH|BL|BN|BR|BS|BT|BX|CA|CB|CF|CH|CM|CO|CR|CT|CV|CW|DA|DD|DE|DG|DH|DL|DN|DT|DY|E|EC|EH|EN|EX|FK|FY|G|GL|GY|GU|HA|HD|HG|HP|HR|HS|HU|HX|IG|IM|IP|IV|JE|KA|KT|KW|KY|L|LA|LD|LE|LL|LN|LS|LU|M|ME|MK|ML|N|NE|NG|NN|NP|NR|NW|OL|OX|PA|PE|PH|PL|PO|PR|RG|RH|RM|S|SA|SE|SG|SK|SL|SM|SN|SO|SP|SR|SS|ST|SW|SY|TA|TD|TF|TN|TQ|TR|TS|TW|UB|W|WA|WC|WD|WF|WN|WR|WS|WV|YO|ZE)(\\d[\\dA-Z]?[ ]?\\d[ABD-HJLN-UW-Z]{2}))|BFPO[ ]?\\d{1,4}", "require": "ACZ", "state_name_type": "county", "id": "data/GB", "posturl": "http://www.royalmail.com/postcode-finder", "locality_name_type": "post_town", "fmt": "%N%n%O%n%A%n%C%n%S%n%Z", "name": "UNITED KINGDOM"}

Postocode Regex should be:
"zip": "GIR[ ]0AA ......"

instead of:
"zip": "GIR[ ]?0AA ......"

The regular expression is used for input validation. We are not going to reject "GIR0AA" because it's clearly intended to be "GIR 0AA".


Add npm install to Trying it out instruction

Otherwise you will get
sh: 1: svelte-kit: not found

What was changed

Why?

Checklist

Closes

How was this tested:

Any docs updates needed?

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


Branch Protection

@dylan-smith
I was using 0.3 then moved to 0.5 and had some issues. If you recall you helped me and I went back to 0.3
A while ago I grabbed 0.9. However I just noticed today after a ado2gh migrate-repo the new migrated repo has branch protection. I swear it did not migrate branch policies before, I actually wrote a script to add them.
The problem is I am trying to do a bunch of changes to files using the repo contents API. These are failing when there is branch protection.
Am I losing my mind did branch protection arrive somewhere between version 0.3 and 0.9? I don't see mention of it in any of the release notes. Which makes me think it was always there?
Dave

branch protection was added as a feature in the backend, so depending on when you did migrations, even with 0.3/0.5 of the CLI branch protections would have started showing up a month or two ago.


enable-cpu-granularity

Investigate enabling the decider to set policies per-CPU and the
platform to give the decider data at per-CPU resolution.  The
platform would provide an abstraction that maps the hardware
domains of control and observation granularity to appear to be
per-CPU.

This functionality is available in PlatformIO for signals and controls with CPU domain.


GitHub Actions + Remark migration

Setting some basic GitHub Actions for code validation
Migrating Remark to v13

📝Changed routes:

/about

(view full size)

Commit 5c340d655acba8dc4223267d8424ea501e68b0ef (https://octoclairvoyant-git-github-actions.belco.now.sh).