Establish monitoring for network health

eta: 2023-02-13
We aim to develop a point of view on what cryptoecon health means, more generally, and specifically in the context of Filecoin. We will present a report defining the metrics used to track cryptoecon health while designing a plan to monitor these metrics for Filecoin and publish status for the community as needed. We will then execute the monitoring plan to create dashboards, alerts, and the like.

Work Plan Draft: https://docs.google.com/document/d/1rfI4GiocOxjZwmnA_IZyn1wTEm9TrwcgGs_ZC3end2Y/edit#heading=h.snean4nnfof9
Specific Monitoring Project Planning Draft:
https://docs.google.com/document/d/1Kq_PW785rsfePYyFGy6hnpCKY4SzUP8pgUrEHzHxfbs/edit#heading=h.snean4nnfof9


Better BaseClass names?

https://github.com/cogeotiff/rio-tiler/blob/c051e8ca9deb6d54cbae4a66faf91647f600e2fd/rio_tiler/io/__init__.py#L3
BaseReader: Simple Reader
MultiBaseReader: Concatenate reponse from Multiple BaseReader Calls
MultiBandReader: Special Reader for case where assets == bands

I kinda feel the name could be confusing (especially now that we have MultiBandReader)

will re-open if someone has ideas


Uniform networking api on all platforms

For web platform, thread may reference
http://stackoverflow.com/questions/5408406/web-workers-without-a-separate-javascript-file

Documentation of XMLHttpRequest https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

Documentation of NSURLSession https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSURLSession_class/

https://github.com/keithwhor/multithread.js An multithreaded implementation with blob and worker

https://github.com/Alamofire/Alamofire/blob/master/README.md Elegant Alamofire api

How about this way?
networking = new CB.Networking
networking.base_uri = "http://www.example.com"
CB.Networking.sharedNetworking().request(method:"post", path: "abc.php", encoding: "multipart/form-data", parameters: object).response(function(){})


AMBARI-25207 The Ubuntu repository id for the cached apt package list  is generated wrong in case if were used URL with https protocol (dgrinenko)

What changes were proposed in this pull request?
Add ubuntu repo_id generation independent from url protocol used. Port of #2887
How was this patch tested?
Life cluster.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/5040/
Test PASSed.


Code scanning default setup makes it possible to use security-extended CodeQL query suite

Summary
Users can optionally select the security-extended query suite for analyzing their code code through the code scanning default setup configuration.
Intended Outcome
Allow repositories to increase query suite coverage in their default setup analysis.
How will it work?
Users can manually choose to analyze the security-extended query suite in the code scanning default setup configuration. This query suite will be in addition to the default query suite. security-extended query suite will not be analyzed unless explicitly included in the configuration settings by the user. It will also be possible to change the query suite selection after initial setup.

🚢 This has shipped to dotcom: https://github.blog/changelog/2023-03-21-you-can-now-use-the-security-extended-query-suite-in-code-scanning-default-setup-with-codeql/. Leaving open to track for GHES release.


feat!(twitter): update twitter spec

Hi!
I added a twitter update.
I create this PR as a draft.
If this is okay, |'ll generate a changeset

@oekazuma done!
Plz review it!

I missed some elements in test, so I added

@ryoppippi
Thank you!


TFS On-Prem

Hey man, are you going to make Bug Bash Manager Pro available for on-prem users?

I test my extensions only on Azure Devops Service, not on-prem. I tend to use latest rest apis and framework provided by extensibility service, so some features may not work on on-prem, depending on its version.
You are welcome to fork this repo, and generate a vsix for your on-prem use and validate that it works for you.


unable to set enabled params to the helm chart

Hi, in my org we set all of our helm chart with enabled params to control deployment in argocd
how ever in atlantis values schema file there is not enabled param and we can't set additional properties.
we would like to either have a enabled param or just be able to use additional properties

https://github.com/runatlantis/helm-charts/pull/387#issuecomment-2106269871


Mount popup displaying in it a buffer that already exists

Hi, thanks for making plugin
I'd like to create a popup to display inside a buffer that already exists, so I've tried the following
local popup = nui_popup(popup_settings)
popup:mount()
vim.api.nvim_win_set_buf(popup.winid, already_existing_bufnr)

Everything looks ok but when I try to unmount the popup it isn't closed and its content gets deleted.
No idea why no error message is printed.
So what's the right way to do this?

Not sure if the same but check  #29

I'd like to create a popup to display inside a buffer that already exists

Hey @xeluxee , I've been thinking of additing support for this use-case for quite some time... but haven't yet started to work on it. So, currently it is not possible to do so. But this feature will be available soon. 😃

Not sure if the same but check #29

@vuki656 that's not the case since I've already set a keymap to close popup
Here's full code
local nui_popup = require("nui.popup")

local popup_settings = {
  enter = true,
  focusable = true,
  border = {
    style = "rounded",
    text = {
      top = " NUI Popup ",
      top_align = "center",
    },
  },
  relative = "editor",
  position = "50%",
  size = "50%",
  buf_options = {
    modifiable = false,
    readonly = false,
  },
  win_options = {
    number = true,
    relativenumber = true,
  },
}

local popup = nui_popup(popup_settings)
popup:mount()
vim.api.nvim_win_set_buf(popup.winid, 20)

popup:map('n', 'q', function()
  popup:unmount()
end, { noremap = true })

@MunifTanjim the issue is that when another buffer is displayed inside popup the keybindings associated with that buffer are considered, so keymaps created with popup:map are ignored and pressing q doesn't close the popup

@xeluxee Now you can pass bufnr in the popup options:
local popup = Popup({
  -- instead of `vim.api.nvim_win_set_buf(popup.winid, 20)`
  bufnr = 20,
  ...
})

@MunifTanjim thanks, it works


Replace assert! by debug_assert! for release build

Replacing assert! by debug_assert! for release build can prevent panic! from being called and cause a crash. We should figure out what assert! should be replaced.

The assert! here:
https://github.com/ChunMinChang/cubeb-coreaudio-rs/blob/6e3e8e8359be7247f96495376f99073196449c3a/src/backend/mod.rs#L2210-L2211
can be replaced by debug_assert! to see if BMO 1083664 is still a problem.


watch-fs on nfs

I think a common usecase for watch-fs would be having the tiddlers stored on an nfs share where the tiddly-server is running, then mounting the same share on a client. In cases like this inotify events are lost.
https://github.com/linonetwo/tiddlywiki-plugins/blob/master/plugins/linonetwo/watch-fs/watch.js#L372 uses nodes fs.watch (https://nodejs.org/api/fs.html#fs_fs_watch_filename_options_listener), which does not support nfs very good.
Alternative would be to have an option to say "use polling", then use node fs.watchFile (https://nodejs.org/api/fs.html#fs_fs_watchfile_filename_options_listener) instead, which looks like is slower, but supports nfs somewhat.
A second way would be to have a little helper daemon running with the server that does a simple touch on the file based on mtime. This triggers the fs.watch event, even inside a container, inside kubernetes using nfs.
I'll do some more thinking and fiddling with this to see if I can come up with a good solution :)

Actually the fs library part is copied from node-watch, it is ok to replace it with other impl.
I choosed it because it is dependency free, so easy to cpoy into tw.
If you find any other good watcher library, feel free to tell me, or try replace node-watch yourself.
I wanted to use chokidar actually, but it havr too many dependencies, make it uneasy to copy into tw as a plugin's dependency.

 I'll dig around a little and see if I can find a good solution, or maybe an option to fallback on native poll-based.

It seams like everywhere I look, chokidar is the solution. It is down to 7 dependencies and they have taken away a ton of deps since v2 it seams..
It looks solid, and watch-fs needs a solid watch'er. I don't think it is that bad using it even tho it adds some deps.
Maybe rollup.js can be used to package it, so it will be a single file?
Alternative is to use fs.watchFile nativly..?
What do you think? I can try to make something around chokidar and rollup if you want. Or if you are totally against it, I will try to do watchFile instead :)

Hi, if you can get rollup and chokdir work, that would be great!

I've tested this some at https://github.com/xeor/tiddlywiki-plugins/commit/fc4bca72141fd6075381915e3e0fcd10f43a9436, and you can now do
npm install
npm run bundle

and copy the built 3rds.js as a tiddler, then it chokdir will be available using:
const ext = require('./3rds');
ext.chokidar.watch('/tiddlywiki/data/tiddlers').on('all', (event, path) => {
  console.log(event, path);
});

it looks like it might work, however, some things are crashing now. Trying to iron out :)
3rds.js ended up taking around 171K, it is not minified, but I'm not sure it should.. 171K is not that much..

Ok, I think it is ready for some testing.. It works, but I'm not sure if anything is broken.
I'll do some more testing as well..
To test
npm install
npm run bundle

copy in the generated 3rds.js and it's .meta
Use the modified FileSystemMonitor.js

The complete diff is at https://github.com/linonetwo/tiddlywiki-plugins/compare/master...xeor:master
I changed the isNotNonTiddlerFiles to be a list of glob's instead, more readable and chokidar had a lot of things to watch out for when doing filtering using functions..

LGTM, I Will try use this in my wiki today to test it, and you cam make a PR here, I will merge it. Thanks for making this!

Oh, to be used as a tw plugin, maybe you have to do some cleanup, or place things into a sub-folder, I don't know which one is better.
And maybe we don't need to ignore 3rds.js, otherwise this file won't be able to commit into github in github based wiki.

I'll do some cleaning:) removing old code, writing some notes about pollbased watching, and not ignoring 3rds.js. will submit a pr later today..
I'm not sure how those github wikis work.. is it enough to just put everything in a folder called 3rds, then keep the generated file in the root?

I think after bundle, you can copy everything we need to plugins/linonetwo/watch-fs/watch-fs. So there will be a copy of most of the files. And in Readme we can inform user this folder is generated...
I know this sounds kind of "dirty", but that will enable user to quickly copy a folder to their plugins folder. What do you think?

And I recommend SyncThing, it is a opensource software to sync folder p2p, I'm using it to sync my game saves, maybe I will try use it to sync TW tiddlers, replacing git sync oneday.

I think syncthing has the files locally, doesnt it? In that case, the nfs problem won't hit.
I use nfs as a shared volume between some kubernetes workers, and I want tiddlywiki to float around and live on one of them.. Then mounting the same nfs share on my main desktop so I can edit the files. Syncing would be a way, but it feels flaky :p
Maybe the folder can be named plugins/linonetwo/watch-fs/dist, dist stands for distributable, and normally used.
Where you thinking about moving everything from where it is today over to this folder? I can create the copy logic and put it in the package.json file so npm run build will do it all at once.
Basically, it is every file that have a corresponding .meta?

I just did some basic tests for how long it takes for an vscode edit to show up on web. vscode via nfs node running on another server mounting the same nfs share and around 900 files for it to watch (and CHOKIDAR_INTERVAL=200, default 100).

vscode to web: everything from 5 to 20 seconds (sometimes even 40 seconds). Always got there tho..
web to vscode: instant if you have the note in focus in vscode
vscode to web, then change note before it edited the web: web wins, file overwritten with web-info

I don't think the goal for this sort of filesync to be fast, but reliable. I think most usecases here are single-users that just want their notes in vscode, nfs and mobile.

vscode to web: everything from 5 to 20 seconds (sometimes even 40 seconds). Always got there tho..

Notice there is a "canSync"
https://github.com/linonetwo/tiddlywiki-plugins/blob/1083f2141613d9ccb49984abb8ddedc493f289aa/plugins/linonetwo/watch-fs/FileSystemMonitor.js#L126-L137
And sync client in the web https://github.com/linonetwo/tiddlywiki-plugins/blob/master/plugins/linonetwo/watch-fs/trigger-sync.html check this.
This is because change may be frequent, and sometimes frequent change caused race condition... So I wait till disk get stable.

yea, but I don't think this was waiting for code. I think it was the poll logic that was slow. But it really doesn't matter :) I know poll is far from optimal regarding file-watching.
Agree on the dist folder and an npm job that copy/generate and puts everything in it. All files that got the corresponding .meta?

Yes, every file with a .meta, or you can try advanced json meta like the way flibbles does https://github.com/flibbles/tw5-relink/blob/master/plugins/relink/js/tiddlywiki.files

Is https://github.com/xeor/tiddlywiki-plugins/tree/master/plugins/linonetwo/watch-fs/watch-fs what you ment?  Or did I misunderstand something?
Everything is generated and put in place in that folder now by npm run make see https://github.com/xeor/tiddlywiki-plugins/blob/master/plugins/linonetwo/watch-fs/package.json for info..
Any other things left to fix? I did some minor updates to the readme as well :)

I think this makes it easier for user to drag&drop it right into their wiki's plugins folder, without the need to rename it.
 Now please send a PR and I will merge it.


DOC: Add Estimate Release Schedule

URL
No response
Checklist

[X] I added a very descriptive title to this issue.
[X] I included a link to the documentation page I am referring to (if applicable).

Issue with current documentation:
Hi, I wonder if it would be possible to add a rough estimate of future release schedules for reference. In particular I'm waiting for a version flag to be released so that we can use GraphRAG with Langchain without dependency version issues. If we have a set release schedule we can plan our work accordingly (waiting for the official release vs. pulling the repo and resolving ourselves).
Idea or request for content:
No response

Which packages are blocking right now? Is this due to the tenacity dep?

Which packages are blocking right now? Is this due to the tenacity dep?
Yes, I saw the PR to fix it here last week, and was waiting for it to be released!


Replacing logo

@keybase/react-hackers Review please!


test: fix to skip the gsheet test for EE

Description

Fix to skip the test for EE

Type of change

Cypress

How Has This Been Tested?

Cypress

Checklist:
QA activity:

[ ] Test plan has been approved by relevant developers
[ ] Test plan has been peer reviewed by QA
[ ] Cypress test cases have been added and approved by either SDET or manual QA
[ ] Organized project review call with relevant stakeholders after Round 1/2 of QA
[x] Added Test Plan Approved label after reveiwing all Cypress test

/ok-to-test sha=523f0dc

/ok-to-test sha=523f0dc

/ok-to-test sha=523f0dc

/ok-to-test sha=303e0c7

/ok-to-test sha=d7e59d5

/ok-to-test sha=a12b925

/ok-to-test sha=be07bea

/ok-to-test sha=543b718

/ok-to-test sha=991b1fe


Corrected Policy name

Fixed in the following PR:
https://github.com/mulesoft/docs-api-manager/pull/71


Added a config variable to default to the leader epoch

Recently I've been encountering an issue where I get a non-retriable error stating
topic <topic name> partition <partition> lost records; the client consumed to offset <last offset> but was reset to offset <earliest offset>
After some digging I found the consumer group was stuck on epoch 0. I forced to onto the leader epoch and everything seemed to start working again. But on restart of the service, it encountered the same error. I'm not setting the epoch anywhere in my code for this so I'm not sure why it would jump back to epoch 0.
This is only occurring with a specific topic (the topic only has 1 partition). To commit we're calling CommitRecords with the record after processing. We don't alter the record at all.
The "unique" thing about the specific topic thats encountering this error is that we only consume messages every 3 hours. So during that 3 hours I call PauseFetchPartitions and put the goroutine to sleep. After the 3 hours I call ResumeFetchPartitions, process the records, and call CommitRecords.
My initial thought was that during the 3 hour window, the epoch leader changes but I then commit a record to the older epoch, but that doesn't make sense for it to be stuck on the epoch 0. I would also assume that a change in the epoch would likely trigger a rebalance, in which case we wouldn't commit the stale records.
I made these changes to help bypass that specific error but I'm guessing theres a risk of data loss in doing this but I'm not super familiar with how epochs work.

Adding this for future reference for anyone else that has the same issue. These changes can help you get back on the correct epoch but you shouldn't need them.
My issue was that the sleeping goroutine was blocking the quit channel. To fix this I created a separate goroutine to listen to the quit signal closure. I'm using a context in my code so I utilize the cancel but you could do this with just the quit channel if you prefer.
func (pc *pconsumer) consume(ctx context.Context) {
	defer close(pc.done)

	ctx, cancel := context.WithCancel(ctx)
	defer cancel()

	// creates a goroutine for listening for quit signals
	// the separate goroutine is needed because the goroutine will be blocked while sleeping.
	go func() {
		<-pc.quit
		cancel() // cancel the context when the quit signal is received
	}()

	for {
		select {
		case <-ctx.Done():
			return // Exit function if context was cancelled
		case recs := <-pc.recs:
			if err := ctx.Err(); err != nil {
				return // check if the context is cancelled here just incase
			}

			for _, rec := range recs {
				// pause the partition and resume after the delay
				pc.cl.PauseFetchPartitions(map[string][]int32{pc.topic: {pc.partition}})
				if !sleepOrCancel(ctx, time.Duration(3)*time.Hour) {
					return // Exit function if context was cancelled
				}
				pc.cl.ResumeFetchPartitions(map[string][]int32{pc.topic: {pc.partition}})

				// process the record
			}

			err := pc.cl.CommitRecords(ctx, recordsToCommit...)
			if err != nil {
				// handle the error
			}
		}
	}
}

func sleepOrCancel(ctx context.Context, duration time.Duration) bool {
	select {
	case <-time.After(duration):
		// Duration passed, continue
		return true
	case <-ctx.Done():
		// Context was cancelled, exit function
		return false
	}
}


[stable/prometheus-operator] Update prometheus-node-exporter version

What this PR does / why we need it:
In order to get support of 1.16 node-exporter we need to use
appropriate version of prometheus-node-exporter
Signed-off-by: Dmitriy Rabotyagov<EMAIL_ADDRESS>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/chart])

/ok-to-test
/lgtm

Ok, stuff looks like be broken before that PR...

/retest

/test pull-charts-e2e

/test pull-charts-e2e

Could you please update from latest, the tests should work
/test all

/lgtm


Consice pod security policy template

I am deploying falco on a set of clusters that all have PSPs enabled, we use a default fairly restrictive PSP across the whole cluster which causes this deployment to fail. For the time being I have created an exclusive pod security policy for the falco components to use which allows me to install them without the deployments being invalidated. What I would prefer is a tailored PSP that only allows the features that falco needs and disables the others for security purposes.
I am not sure if this should be a documentation request or a feature request as we could include this in either the helm chart as a true/false value that automatically applies the policy to the target namespace or as an entry in the documentation that lists the required permissions for falco so that users can create the policy themselves.

Hello @Champ-Goblem, I really like this idea and I'd love you to contribute this to our community!
I think the correct place to provide PSP for Falco and Falco components would be the helm chart (https://github.com/falcosecurity/charts), as a starting point.
Then, since not everyone uses Helm to install Falco, I think that a documentation section on the website (https://github.com/falcosecurity/falco-website) will be needed too.
Strong +1 from me and thanks for proposing it! :)

@leodido here is the PSP that I found that works with falco, is there anything you think I may be missing?
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: psp.falco
  annotations:
    seccomp.security.alpha.kubernetes.io/allowedProfileNames: "docker/default,runtime/default"
    apparmor.security.beta.kubernetes.io/allowedProfileNames: "runtime/default"
    seccomp.security.alpha.kubernetes.io/defaultProfileName:  "runtime/default"
    apparmor.security.beta.kubernetes.io/defaultProfileName:  "runtime/default"
spec:
  privileged: true
  hostNetwork: true
  hostPID: false
  hostIPC: false
  allowPrivilegeEscalation: true
  requiredDropCapabilities:
  - "*"
  seLinux:
    rule: RunAsAny
  supplementalGroups:
    rule: MustRunAs
    ranges:
    - min: 1
      max: 65535
  runAsUser:
    rule: RunAsAny
  fsGroup:
    rule: RunAsAny
  runAsGroup:
    rule: RunAsAny
  volumes:
  - hostPath
  - emptyDir
  - configMap
  - secret

What do you think would be the best to apply this via the helm chart, I think we should create a new role and role binding that binds the PSP to the falco service account? Something like:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: psp.falco
rules:
- apiGroups:
  - policy
  resources:
  - podsecuritypolicies
  resourceNames:
  - psp.falco
  verbs:
  - use
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: psp.falco
roleRef:
  kind: Role
  name: psp.falco
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
  name: falco

I also believe we should have this under the deploy folder in the https://github.com/falcosecurity/evolution repository.
cc @maxgio92 WDYT

https://github.com/falcosecurity/evolution will work too!

@leogr I agree. I think that evolution should contain also the PSP+RBAC resources.
Anyway, also the Helm chart should integrate this, in my opinion, as in a scenario where PSP are already hardened it becomes necessary.

What do you think to migrate this issue to evolution or charts repo?
Thanks

/help

@leogr:
This request has been marked as needing help from a contributor.
Please ensure the request meets the requirements listed here.
If this request no longer meets these requirements, the label can be removed
by commenting with the /remove-help command.

In response to this:

/help

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

I'm transferring this issue to the https://github.com/falcosecurity/evolution repository since as per this proposal we are keeping in the main repo only the "official supported" artifacts. And it seems to me that we all agree on that :)


Cannot connect to drone

I am trying to connect my drone to an app built with Flutter and DJI Mobile SDK. The app runs on iOS and registers successfully, but when I try to connect to my drone, I get the following error:
[dji.flutter] connectDrone requested
=== DjiPlugin iOS: Connect Drone Started
Returning connectedAccessories count 0

I have followed the steps in the plugin documentation and checked the App Key and the build settings. I have also tried different devices and cables, but nothing works. My drone model is Mavic Air 2 and my iOS version is 16.5.
Please help me fix this issue. Thank you.

Hi,
I can successfully connect to my drone with the DJI Fly app. I connect to my remote control with USB cable.

Hey @SSIvanov19
Are you using the Example project in the plugin?
Can you share the full logs?

Closing due to no response.
Please re-open if needed @SSIvanov19

I had the same error and solved it already, I spent an enormous time and effort to get it work though.
I managed to solve the issue, although it wasn't mentioned in the documentation. By adding the following line to Info.plist, the problem was resolved. I'm not entirely sure why this works. I've also found that the documentation can be quite unhelpful in other areas, so I recommend checking out the forum for more information.
https://github.com/dji-sdk/Mobile-SDK-iOS/blob/master/Sample Code/SwiftSampleCode/DJISDKSwiftDemo/Info.plist
https://forum.dji.com/thread-231089-1-1.html


CAMEL-10087 Fix for kafka partitioner static initializer in OSGI env

Sorry missed this:
We need to put the same fix (setting classloader to null) for the Producer as well. The kafka ProducerConfig has a static initializer that creates the DefaultPartiioner by default no matter what.
Here is the kafka path:
Static initializer:
https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/producer/ProducerConfig.java#L293
Defines default partitioner:
https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/config/ConfigDef.java#L110
Creates default instance of partitioner
https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/config/ConfigDef.java#L663
Since this is a static it only gets call on the first reference to the class, so it doesn't take into account what is passed in from the camel-kafka producer.

I wonder if you can add a // comment in the source that this classloader change is due to OSGi so its easier for us to remember and know why

Good idea

Thanks for the PR it has been merged. Do you mind closing this?


Fix: test execution terminates on non-unicode systems

After git clone I tried to run test by "ruby test.rb". But I execute on a Japanese Windows XP system and test suite terminates by encoding error in lexer.rb (line35) regex is UTF-8 but string is Windows-31J.
The issue is that input file format of test files is not set and default to system encoding is taken.

Thanks for fixing this


Fix pretty JSON generation

see: http://stackoverflow.com/questions/2567670/ruby-json-pretty-generate-is-pretty-unpretty
It would be really nice for reading and editing the backups before restoring them.

Which version are you using and which data are you referring to?

I am using version v0.0.11 and i am referring to the minified JSON, for example in the roles backup files.

@DarkGigaByte - thx, by any chance did you look into other files that you backed up?
Will look into it.

Yeah, i did. The data bags are fine and pretty formatted. The other categories are all not/unpretty formatted.

@DarkGigaByte  Send me an example if can. Mine look fine...

Example of unpretty environment "development" exported on Linux Mint:
{"name":"development","description":"development","cookbook_versions":{"foobar_cookbook":"= 0.1.0"},"json_class":"Chef::Environment","chef_type":"environment","default_attributes":{},"override_attributes":{}}
How it should look pretty formatted:
http://pastebin.com/Ju7m7FUt

it was prettified in 0.0.8, but something changed between 0.0.8-0.0.10
please add prettifying back, as i'm commiting the backup versions to git, it would be easier to see changes if prettified.

i don't get it. if i read and invoke JSON.pretty_generate, it works fine:
file_name = 'nodes/example.json'
data = File.read(file_name)
some_data = JSON.parse(data)
encoded = JSON.pretty_generate(some_data)
yourfile = '/tmp/out.json'
File.open(yourfile, 'w') { |file| file.write(encoded) }

and the code uses same method: https://github.com/mdxp/knife-backup/blob/v0.0.12/lib/chef/knife/backup_export.rb#L127

i'm even more puzzled, i updated 0.0.10 to 0.0.12 and the output is prettified.
versions (mostly note to myself):
$ rpm -q ruby knife-backup ruby-json
ruby-2.4.4-12.x86_64
knife-backup-0.0.12-1.noarch
ruby-json-2.0.4-<IP_ADDRESS>.x86_64

so, imho it can be closed. as output is prettified


Changes to text method resulting in content not being output

Perhaps this is intentional but it feels like a step backward.
Before 1.0.0-rc1, the following worked as expected:
class Test < Phlex::HTML
  def initialize(object) = @object = object # @object is an ActiveRecord model object that responds to #to_s

  def template
    text @object
  end
end

Now, each such call needs an explicit to_s added or no content is output.
Again, this could be intentional and my misunderstanding, but I thought the primary use of text was to guarantee output where it might not otherwise happen.  Is this incorrect?

I don't want to output anything that can be represented as a String with to_s.
Take this view for example.
class Example < Phlex::HTML
  def initialize(items) @items = items

  def template
    @items.each do |item|
      h1 { item }
    end
  end
end

If we send it an Array of items.
render Example.new([1, 2, 3]

We'll get

1

1

So your example doesn’t use text… I take your point about not wanting to automatically output anything as a string, but what would be the reason for wanting text @object to have no output?  It would seem that by calling text you’re declaring that you expect some output, right?

That’s a good point, the behavior of text could be different to the implicit output from a block.


Ts repoitory library

Q
A

Bug fix?
no

New feature?
no

New sample?
yes

What's in this Pull Request?
New sample show how you can implement a repository pattern library.

Awesome stuff on this one as well, thanks @AhmadiRamin.


potentially issue with &ZST with enqueued events

I see it must contain data. I don't know if this is related. oddly it seems to work if I have a ZST
but not for &Zst
https://github.com/Indra-db/flecs-ecs-rs/blob/9266f1ad2c140749aaa86d61973e17f4d870cb0e/flecs_ecs/src/core/entity_view/entity_view_const.rs#L2181
technically though I am calling this directly (should add docs too imo)
https://github.com/Indra-db/flecs-ecs-rs/blob/acadca5bd9dd05d1b778f255f58084b47df5a128/flecs_ecs/src/core/event.rs#L197
kinda confused why it cannot be a Zst... shouldn't we also panic if it is a Zst if it truly breaks things? should not
affect performance as compiler should be able to remove it I reckon.

Fixed + Const asserted. The docs were outdated, thanks!


Broken link in Getting started > App registration

The link in the Register your app with Microsoft section might be broken. The page redirects users to an Azure portal page.

You can no longer manage converged applications here. Go to the Azure portal.

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

ID: f02010cc-2715-86ca-b3fe-e4f92e934fdb
Version Independent ID: 27b3e16e-f80f-32f4-0e4f-69cfcd1cf769
Content: Create an app with Microsoft Graph - OneDrive API - OneDrive dev center
Content Source: docs/rest-api/getting-started/app-registration.md
Product: onedrive
GitHub Login: @rgregg
Microsoft Alias: rgregg

This item is on our documentation backlog. See also #1297 . If you wish, you may also contribute a PR to address this issue.


add file operator for ToolAgent

🚀 Feature Request
Add file operator like langchain file operator.
We seem need the following tools:
WriteFileTool
AppendFileTool # Attach information to an existing file
ReadFileTool
DeleteFileTool
ListDirectoryTool
CopyFileTool
MoveFileTool

ToolKit maybe a better solution if you want to use multiple tools at once.
ref: https://python.langchain.com/docs/integrations/tools/filesystem
Example Usage
Here is a possible way to use it.
from promptulate.tools.file import WriteFileTool, ReadFileTool
from promptulate.agent import ToolAgent

def main():
    tools = [WriteFileTool(), ReadFileTool()]
    agent = ToolAgent(tools=tools)
    agent.run("Please help me write a poetry in poetry.txt")

Challenges

initialize work directory.

Goal

ToolAgent can use file operator
Provide relevant docs
Add a example
Add relevant unittest

Can you do that? @Hizeros

Now we should use function type declaration to build Tool.
ref: https://undertone0809.github.io/promptulate/#/modules/tools/custom_tool_usage?id=custom-tool

🚀 Feature Request
Add file operator like langchain file operator.
We seem need the following tools:
WriteFileTool
AppendFileTool # Attach information to an existing file
ReadFileTool
DeleteFileTool
ListDirectoryTool
CopyFileTool
MoveFileTool

ToolKit maybe a better solution if you want to use multiple tools at once.
ref: https://python.langchain.com/docs/integrations/tools/filesystem
Example Usage
Here is a possible way to use it.
from promptulate.tools.file import WriteFileTool, ReadFileTool
from promptulate.agent import ToolAgent

def main():
    tools = [WriteFileTool(), ReadFileTool()]
    agent = ToolAgent(tools=tools)
    agent.run("Please help me write a poetry in poetry.txt")

Challenges

initialize work directory.

Goal

ToolAgent can use file operator
Provide relevant docs
Add a example
Add relevant unittest

The upper proposal is banned. Now  Promptulate use function declaration to define custom tool. We should build a function type tool for File Operation.


Additional environment variables support for container specs

Now there are  only 4 environment variables that can be set in container specs: CHT_API_TOKEN, CHT_CLUSTER_NAME, CHT_INTERVAL and CHT_JVM_MEM. Is it possible to implement support for additional environment variables? Something like :
(values.yaml)
...
env: []
- name: <ENV_VAR_NAME>
value: <ENV_VAR_VALUE>
(deployment.yaml)
...
containers:
...
env:
- name: CHT_API_TOKEN
valueFrom:
secretKeyRef:
name: {{ include "cloudhealth-collector.secretName" . }}
key: apiToken
- name: CHT_CLUSTER_NAME
value: {{.Values.clusterName | required "A valid clusterName required!" | quote }}
- name: CHT_INTERVAL
value: {{ .Values.collectionIntervalSecs | quote }}
- name: CHT_JVM_MEM
value: {{ .Values.jvmMemory }}
{{- toYaml .Values.env | nindent 12 }}
...

Interesting. I am wondering what your use case for env variables is? would it be labels of some sort? Wouldn't the existing customLabels cover that scenario?

We have a centralized cluster which needs to route traffic through a proxy in order to access the clusters in some regions. In order to have that we need to set additional options for JAVA like http.proxyHost / http.proxPort / https.proxyHost / https.proxyPort. For this I modified the deployment.yaml in templates adding
...
{{- toYaml .Values.env | nindent 12 }}
and in values.yaml we added
...
env:

name: JAVA_OPTS
value: -Dhttp.proxyHost=xx -Dhttp.proxyPort=xx -Dhttp.nonProxyHosts="xx" -Dhttps.proxyHost=xx -Dhttps.proxyPort=xx -Dhttps.nonProxyHosts="xx"

Added support for this in Helm Chart version 1.1.2


[Feature]: Add GUI in KSP to show connection state and disconnect/reconnect

Is your feature request related to a problem? Please describe.
When developping the Arduino code, it is uploaded to Arduino via the serial link. So the code cannot be uploaded while the Arduino is connected to KSP. This usually mean that I have to restart KSP between each code update and this is tedious (especially with modded KSP).
Describe the solution you'd like
I'd like a GUI menu that shows if the Arduino is connected and the option to close the connection (to upload a new Arduino code or disable the controler if something strange happen) and to re-open the connection (to test the new code without having to reload a save).
Describe alternatives you've considered
The only option is currently to close the game, upload the code, and relaunch KSP. It is doable but tedious.

I did actually right some code that fixed this issue about 2 years ago, and submitted it as a PR to the original repo. It did not use a GUI, as I opted to just do it with an ingame terminal command. I will just have to rework that code to match the recent changes to the Serial code in this mod, and it should be good to go.

Right, well now that my code for the runtime connect/disconnect has been added to the Dev branch, I will be looking into this soon!

This has been merged into the dev branch


Removing Duplicate requests for details pages

:nut_and_bolt: Description: What code changed, and why?
Updating the policy details and team details pages to not request data when the page's internal tabs are changed. This solution combines two observers that are triggered off URL updates. Added the "distinctUntilChanged" filter to prevent extra data request when the internal tabs are changed. The "distinctUntilChanged" filter prevents multiple events from being sent when the data has not changed.
:chains: Related Resources
https://github.com/chef/automate/issues/2104
:+1: Definition of Done
The data on the policy details and team details pages is only requested once when the page is first loaded. Changing the page's internal tabs does not re-request data.
:athletic_shoe: How to Build and Test the Change

build components/automate-ui && start_all_services
Open the Teams detail page for the admin https://a2-dev.test/settings/teams/admins
Open the Chrome inspect tool then select the network tab.
On the page move between the "Users" and "Details" tab.
Ensure that there are no calls to the https://a2-dev.test/apis/iam/v2beta/teams/admins API.
Do the same for the Policies details page https://a2-dev.test/settings/policies.

:white_check_mark: Checklist

[ ] Tests added/updated?
[ ] Docs added/updated?

:camera: Screenshots, if applicable

@msorens Thank you for the review. I will look into fixing the other problems in the next PR.

@bcmdarroch That is a funny story. I was watching the below video to figure out what the rxjs pluck function is.
https://www.youtube.com/watch?v=IVBJ3-M_YsQ&t=136s


Add Element.classList

A rough implementation of Element.classList.
Related w3c/web-platform-tests do not pass. Didn't know how to get some to work, so I just wrote my own based on the DOM standard that I think represent a reasonable attempt at the feature.
Didn't see a clean way to integrate my code, so I just stuck it in level1/core.js.

Defined classList on the prototype and used the _attrModified hook on Element to maintain a single instance of DOMTokenList rather than recreate it whenever requested.
DOMTokenList is not a subclass of Array, but that's the only way I know to add indexed properties.

Still have to start using some of the newer js constructs, add/play around with benchmarks, and take another stab at the w3c tests...

DOMTokenList is not a subclass of Array, but that's the only way I know to add indexed properties.

You can just assign them: this[3] = thirdItem; this.length = 4. You can also use a lot of the array functions as follows:
var arrayPush = Array.prototype.push;

function Foo() { }

var myObject = new Foo();
arrayPush.call(myObject, "stuff");
arrayPush.call(myObject, "more stuff");
console.log(myObject.length === 2);
console.log(myObject[0] === "stuff");

Didn't know you could use functions pulled off array on non array-like objects. Thanks for that. Wasn't really in the mood to manage the properties manually, but I'll definitely scavenge array instead of inheriting from it.

Over all this is looking quite nice. Great structure. Thanks for doing the work. The major to-do left is to update to use ES2015 features: namely class syntax and const/let instead of var. (Prefer const wherever possible.)

Not going to play around with new benchmarks. Would take me awhile to accomplish anything and I don't think it's that important here.
Only one w3c test is failing; that requiring length to be readonly. Guess I'll do that tomorrow.  Or doing anything particularly heinous with js. No promises.

Only one w3c test is failing; that requiring length to be readonly.

Amazing!!

I did stuff to make length readonly. So now all the tests pass. For the main classList file anywho.

Thank you so much for this amazing work!! Merged as ad6c555587db2f314624c2fdaad07043a4076548 with a few minor tweaks. Also followed up with a33632cc03213c448b99543bdec4eda2d8eb6f9b.


added a welcome page

Added the main welcome page and had to make some change to the sidebar as it was conflicting with the earlier changes that I had made.And Also I had to comment out the Sidebar in App.tsx

@unknown91tech please provide screenshots of what you did

@namansharma3007 can you add the labels of hacktoberfest and gssoc

@unknown91tech DONE 💪


Card Layout "Large" - different sizes for Button & Select

When changing the Styling Option for A Button and a Select Card to "Large" the Select card is way too big. See screenshot:

Hi, it seems that I forgot to adapt this one. Thank you for the feedback!

This issue is now fixed! Thanks again!
https://github.com/Clooos/Bubble-Card/releases/tag/v2.2.4


Wrap long README.md lines

This PR makes all README.md lines (except links) fit in 80 Unicode characters limit.

README is written that way on purpose. Unlike code, prose wraps very well if your editor is configured to do so, so there's no reason to do hard wrapping. This means that you can use your preferred 80 columns, and I can use my preferred 120 columns.

I actually prefer hard wrapping as it works the same in all editors and other tools like pagers. But that’s just my personal taste, let’s simply keep it formatted the way you want it.


Unable to build a project

Hi, I wanted to jump in this project, play with it a bit and learn some go while solving some issues in the process. Unfortunately, I am not able to build this project and as I am new to Go and its ecosystem, I could use some help, if you would.
I have Go installed. I have cloned this repo to $GOPATH/src, but when I try to download dependencies with dep ensure, I get ths error:
Solving failure: No versions of github.com/docker/docker met constraints:
	d58ffa0364c04d03a8f25704d7f0489ee6cd9634: Could not introduce github.com/docker/docker@d58ffa0364c04d03a8f25704d7f0489ee6cd9634 due to a case-only variation: it depends on "github.com/Sirupsen/logrus", but "github.com/sirupsen/logrus" was already established as the case variant for that project root by the following other dependers:
	(root)

(6)	? attempt github.com/docker/docker with 14 pkgs; at least 1 versions to try
(6)	    try github.com/docker/docker@d58ffa0364c04d03a8f25704d7f0489ee6cd9634
(7)	✗   case-only variation in dependency on "github.com/Sirupsen/logrus"; "github.com/sirupsen/logrus" already established by:
(7)	  (root)
(7)	  github.com/docker/cli@master
(6)	    try<EMAIL_ADDRESS>(7)	✗<EMAIL_ADDRESS>not allowed by constraint d58ffa0364c04d03a8f25704d7f0489ee6cd9634:
(7)	    d58ffa0364c04d03a8f25704d7f0489ee6cd9634 from (root)
(6)	    try<EMAIL_ADDRESS>
make vendor does not help either as it runs dep ensure before the sed. Running the sed  manually does not help.
I am running Ubuntu 18.04.
I tried to solve it last three days with no success. What am I missing? I tried to find the uppercase Sirupsen package in the dependencies, but I did not find it anywhere.
Thanks for your help. I can't wait to get it working and do some PRs.

Hi @vsobotka, since dependencies are already checked into the project there is no need to run dep. Try just running make, it should launch dry from your local version of the code.
Please, let me know if it works, I am looking forward for those PRs :)

I have to run go get it and then go to $GOPATH/src/github.com/moncho/dry and there I should run make - it works that way. Is this the correct way to go about it?
It does not work when I clone it to $GOPATH/src/dry and run make on it. That gives me this error:
go run ./main.go
main.go:12:2: cannot find package "github.com/moncho/dry/app" in any of:
	/home/vaso/go/src/dry/vendor/github.com/moncho/dry/app (vendor tree)
	/home/vaso/.go/go1.10.2.linux-amd64/src/github.com/moncho/dry/app (from $GOROOT)
	/home/vaso/go/src/github.com/moncho/dry/app (from $GOPATH)
main.go:13:2: cannot find package "github.com/moncho/dry/appui" in any of:
	/home/vaso/go/src/dry/vendor/github.com/moncho/dry/appui (vendor tree)
	/home/vaso/.go/go1.10.2.linux-amd64/src/github.com/moncho/dry/appui (from $GOROOT)
	/home/vaso/go/src/github.com/moncho/dry/appui (from $GOPATH)
main.go:14:2: cannot find package "github.com/moncho/dry/docker" in any of:
	/home/vaso/go/src/dry/vendor/github.com/moncho/dry/docker (vendor tree)
	/home/vaso/.go/go1.10.2.linux-amd64/src/github.com/moncho/dry/docker (from $GOROOT)
	/home/vaso/go/src/github.com/moncho/dry/docker (from $GOPATH)
main.go:15:2: cannot find package "github.com/moncho/dry/ui" in any of:
	/home/vaso/go/src/dry/vendor/github.com/moncho/dry/ui (vendor tree)
	/home/vaso/.go/go1.10.2.linux-amd64/src/github.com/moncho/dry/ui (from $GOROOT)
	/home/vaso/go/src/github.com/moncho/dry/ui (from $GOPATH)
main.go:16:2: cannot find package "github.com/moncho/dry/version" in any of:
	/home/vaso/go/src/dry/vendor/github.com/moncho/dry/version (vendor tree)
	/home/vaso/.go/go1.10.2.linux-amd64/src/github.com/moncho/dry/version (from $GOROOT)
	/home/vaso/go/src/github.com/moncho/dry/version (from $GOPATH)
Makefile:23: recipe for target 'run' failed
make: *** [run] Error 1

Great that you solved it, go get is correct, yes :)
With git clone would had worked as well by cloning the repo in the expected destination within the go workspace, that is $GOPATH/src/github.com/moncho/dry.

Ok then. Thanks for your time :)


Disconnect a bluetooth device action

This would be a very useful feature for me.
I can switch my mouse between multiple devices. My plan is to connect the keyboard to the notebook when the mouse is connected and disconnect it when the mouse is not connected.

+1 from me, too.

@dustinrue can you please give an update on this?


Lua Hooks

I'm opening this issue as a place to discuss the very likely addition of lua hooks to Lua in Etterna.
Heres my thoughts on it:

It should not break any compatibility whatsoever.
They would work similar to how branches do right now. For example, there's a table called Hooks in which there are a series of functions which are called from C++ at certain points. This table could be extended in the Scripts directory of a theme. So branches apparently work using _fallback and metrics. That is definetely not what i mean to address in this issue
The syntax I'd like to have is something like Hooks:Add("HookName(Like 'OnSongReload' )", "Unique Identifier", function)
My first idea for the implementation is a Hooks manager in fallbacks /Scripts/ which has a table with functions or something similar for each hook. Then there's a function for each hook that simply calls all of the hooks added by the hooks manager to its respective table of functions, and the c++ core only calls these functions. There's a Hooks.Run("hook", args) function that runs the hook, which is called from c++ with the proper hook name.

Please leave your ideas on possible hooks or their implementation here.

I would like feedback from theme writers about what their current pain points are in terms of boilerplate code they have to implement themselves due to limitations with the current Lua bindings that are in place.

00 hooks.txt
I'm just gonna drop this here, a first idea/concept on how this could be done (The lua code would go in fallback's scripts, and the example in a theme, while the c++ call would go in the proper event for each hook)


Error Message for NamespaceInterface Get Should Use Namespace Not Namespaces

The error message from Get in namespace.go uses the plural namespaces even though the function only can return one namespace object.
When a namespace does not exist using Get(), the error message returned is what is shown below:
Error: namespaces "doesnotexist" not found
The error message should return Error: namespace "n2" not found.

Thanks for the report, but the plural resource name is how the api server refers to resources internally, so that is the error message it includes in notfound error messages. This maps to the url path segment for the resource request as well.
/close


fix(lnd): only connect to single btcd host

The lnd sync process doesn't currently handle multiple btcd connections well. Remove the alternate btcd hosts for testnet and mainnet.
See https://github.com/lightningnetwork/lnd/issues/1752

utACK d13c4f2


Allow failing of steps based on return value, not just caught exceptions

Right now, using a try step and catching an exception is the only straightforward way to fail a transaction. However, exceptions won't always be available, nor always desirable, as an indicator of an operation's failure.
I added the "inline procs" example to the README as a way to fail a transaction based on the result of the previous operation, but it's not very nice, and may perhaps encourage too much custom logic to go into the transaction object (when all of that logic should really reside purely in the operations).
I'd like to offer a slightly more declarative way of failing a step based on its return value.
Maybe something like this:
save_user = CallSheet(container: container) do
  # send `:locked?` to the output of the `find_user` operation and failed the step if t's truthy
  map :find_user, fail_if: :locked?
end

With support for this too:
save_user = CallSheet(container: container) do
  # fail the operation if the proc returns something truthy
  map :find_user, fail_if: -> output { output.created_at < Time.local(2014,1,1) }
end

If we went for an approach like this, we'd want to offer the fail_if: option on both the map and try steps.

We could also add fail_unless: to match Ruby's two if/unless flow control options.

@timriley to be honest I don't think it's a good idea and it's one of the reasons why I didn't add any "conditionals" as options to the DSL in transflow and used Either from kleisli, it's so much cleaner to do it like that. I want the transaction DSL to be clean, focusing on the flow rather than details like conditional logic. It boils down to using monads as values and relying on that interface rather than some complicated DSL setup.

@solnic Yes, I think you're right. In fact, I think it might be nice to provide an alias for raw called step so you could have a more natural word to build up a series of steps that are already returning result monads in Call Sheet.
However, the tricky thing is that I'd also like Call Sheet to be usable for people who don't have monads as return values all across their application's operations. That's the reasoning behind the step adapters, to provide some way to build a mostly declarative flow of steps, even if those steps aren't quite perfectly suited to being chained together in the first place. I think this would help Call Sheet be a usable option in a greater number of circumstances, which is probably a net win.
So they're the two sides of the issue. I hear you about the risk of conditional logic complicating the transaction, but I see its benefits in certain cases too. Can you thin of any other ways we might be able to serve both purposes nicely?

I think number 1 priority is to keep the flow DSL clean and logic-less free. You could introduce a concept of a step that's only purpose is to make a decision whether another step should be executed or an error should be raised. Maybe it should be called "a contract step"? Something like:
map :find_user, contract: :verify_user

This way people could keep their existing logic, theoretically :)

You've convinced me, @solnic. Even if the rest of the operations don't Result monads, it's easy enough to add extra steps to make verification checks on the value an return Success/Failure objects as necessary. I don't even think we need a special contract: option here, since they work just as well as top-level steps like everything else.
I've also removed the feature of supporting procs passed to the step with: option, so now there's no facility whatsoever to inject custom logic into the transaction object. Everything must be in a step!

@timriley sounds good! :)


[5.5] Don't try to load abstract console command classes

This prevents Artisan failing with an error if there is an abstract subclass of Illuminate\Console\Command in the Commands/ directory.
  [Illuminate\Contracts\Container\BindingResolutionException]
  Target [App\Console\Commands\Download\DownloadCommand] is not instantiable.

See #20742

@devcircus Thanks, didn't see that one


Caption on grid looking aweful

When activating the caption it shows on the grid, but looks disgusting.
The should be an improvement on this.

+1 I think its more for debugging than actually using in a final project.

It would also be nice to specify where they start.
I would have a use for these in a final project, but would want to be able to configure it to my needs (in my case, I would need them to start in the bottom left corner).

just added horizontalLines and verticalLines switch


Aya Neo Founders 4500u only 3 cpu cores Chimera OS

Original Aya Neo is limited to 3 cpu cores when plugin is loaded in Chimera OS.

fixed on 2.2.7


Add space between LRs when the instruction FIFO is full.

We have local read instruction stall if issued consecutively.
Add some spaces between LRs.

This is an example to add spaces.

This is an example to add spaces.

Can you add a simple example of an asm comparison?

This is an example. We will add some space to wait the previous LR instruction to be finished.
So that in some of the MFMAs we will not issue LR.

CI gfx90a ubuntu pass

CI gfx94x rhel9 pass

[----------] Global test environment tear-down
[==========] 48206 tests from 13 test suites ran. (3307013 ms total)
[  PASSED  ] 48206 tests.
Gfx942 passed

Add a comment about how to calculate the latency.

[----------] Global test environment tear-down
[==========] 48206 tests from 13 test suites ran. (2821727 ms total)
[  PASSED  ] 48206 tests.
still pass after refine


Packets from ethernet adapters in packet captures

Packets are being captured that originate from the 2x ethernet adapters and not from the device under test. Ideally we want to remove any packets that are not from the devices under test or the network services so that the packet captures are easier to interpret.

I don't believe this is an issue anymore. Closing this for now.


Factor out protocol join from Ringpop ahead of damping

Another refactor ahead of damping. Trying to make send/recv pattern uniform across the board. No logic change here. Just moving code.
@Raynos

lgtm.


Is it for MUI or Material UI?

I have a question regarding the scope of this extension. I'm wondering: is the vision to support Material UI only (@mui/material) or MUI at large, like Joy UI or MUI X?

I only had Material UI in mind back in the days before y'all decided to rebrand to MUI.  It's unfortunate how ambiguous the name "MUI" is, being an abbreviation of Material UI.
There wouldn't be much of a problem with snippets for Joy UI living here, though I think it might make more sense to have a joy-ui-snippets package?
Btw why isn't Joy UI listed under the Products tab in mui.com?  It's only listed under the docs tab...

It's unfortunate how ambiguous the name "MUI" is, being an abbreviation of Material UI.

True, it can be confusing.

though I think it might make more sense to have a joy-ui-snippets package?

Sounds good, my main goal was to raise this for potential clarification.

Btw why isn't Joy UI listed under the Products tab in mui.com? It's only listed under the docs tab...

We don't yet have marketing pages for it. So far, we link the product family it's part of MUI Core. I believe that @danilo-leal is working on some clarification for it on the marketing pages.


Remove seed on rails server start in development.

In a production setting, evmserverd will be resposible for seeding the
database.  In a development setting, we should not be seeding when we
start the UI.  Developers should instead be encouraged to use bin/update
or call db:seed directly when changes are made.  Since most developers
need to call bin/update before starting a rails server, in order to
build the UI assets, this is part of the normal workflow.
This change should eliminate about 1 second at rails server boot in
development.
Some more:

Seeding the database will change records in the database, and if pointing to someone else's database (say a customer database or a testing database), then we are modifying the target environment, making diagnostics harder by dirtying the source.
Seeding the database is a blocking operation as it takes a lock on critical tables.  While in development this doesn't really matter much, it's better to remove it to avoid that.

cc @jrafanie @kbrock

cc @h-kataria @himdel I'm not sure if anyone was depending on rails s automatically seeding the primordial tables but if so, they'd need to rake db:migrate db:seed OR bin/update whenever they pull new code

cc @himdel @skateman @h-kataria @martinpovolny
I'd like your input here and make sure I'm not making too many assumptions, particularly since this might affect the flow of UI developers.
In my mind this is the way it always should have been (I was actually surprised to find we did any seeding at all when calling rails s)

@jrafanie i have always been running seeding manually either by running rake db:migrate db:seed or just running commands in rails console to seed any specific models

@jrafanie Marking as WIP cause I'm changing it as discussed above in https://github.com/ManageIQ/manageiq/pull/19535#discussion_r348117771 , with tests.

@jrafanie Updated.  Thoughts?

@jrafanie Updated. Thoughts?

This makes sense to me.
I mentioned in chat that I believe the original logic for automatically seeding primordial was added to rails server processes back when bundler might have been the only dependency management we had to do frequently.  Back then, the UI workflow was update your code,  bundle update, rake the database, and run rails server.
Now that bin/update is required often with javascript library dependency changes, you can't get around seeding properly as bin/update does the seeding for you.

I'm good with this, but we might want to focus on the remaining 9 seconds :trollface: :laughing:

@skateman I'll update the OP, but there's a few other reasons for this...

Seeding the database will change records in the database, and if pointing to someone else's database (say a customer database or a testing database), then we are modifying the target environment, making diagnostics harder by dirtying the source.
Seeding the database is a blocking operation as it takes a lock on critical tables.  While in development this doesn't really matter much, it's better to remove it to avoid that.

I'm good with this, but we might want to focus on the remaining 9 seconds :trollface: 😆

@skateman Want to talk routes with me?  I can give you all the fun details

Let's do that when I'm in Mahwah!

@Fryguy I'm seeing one potentially big issue... MiqDatabase.seed sets session_secret_token and csrf_secret_token.
If we only do primordial seed once on the appliance, those tokens are not really secure anymore, right?

@himdel do we care about that in development?

Not really, but does this only affect development though?

BTW we're also seeding region twice .. Zone.seed calls MiqRegion.seed

This also means changing the GUID file will need a bin/update / db:seed. (I'm fine with that.)

BTW we're also seeding region twice .. Zone.seed calls MiqRegion.seed

There are a number of these interdependencies...definitely needs to be fixed / cleaned up.

Not really, but does this only affect development though?

Yes this only affects development.  In production, evmserverd is doing all of the seeding up front, and then we use forking, which bypasses Vmdb::Initializer.init

Can we drop the primordial concept and just say seeded?

Can we drop the primordial concept and just say seeded?

Maybe but that not in this PR :wink:


Trying to load SmileyCoin into the pool like I have Auroracoin. Mining info is different.

smileycoin-cli -datadir=/home/~~~~~~/wallets/.smileycoin -conf=smileycoin.conf getmininginfo
{
"blocks" : 1046618,
"currentblocksize" : 0,
"currentblocktx" : 0,
"pow_algo_id" : 1,
"pow_algo" : "scrypt",
"difficulty" :<PHONE_NUMBER>1,
"difficulty_sha256d" : 2097476.05500964,
"difficulty_scrypt" :<PHONE_NUMBER>1,
"difficulty_groestl" :<PHONE_NUMBER>0159,
"difficulty_skein" : 9895.63098475,
"difficulty_qubit" : 18406.90589763,
"errors" : "",
"genproclimit" : -1,
"pooledtx" : 0,
"testnet" : false,
"generate" : false,
"hashespersec" : 0
}
auroracoin-cli -datadir=/home/~~~~~~~/wallets/.auroracoin -conf=auroracoin.conf getmininginfo
{
"blocks": 3589956,
"currentblockweight": 5488,
"currentblocktx": 1,
"pow_algo_id": 1,
"pow_algo": "scrypt",
"difficulty": 1474.529962653542,
"difficulty_sha256d": 9478975.891303785,
"difficulty_scrypt": 1474.529962653542,
"difficulty_groestl":<PHONE_NUMBER>286807,
"difficulty_skein": 10684.10099753725,
"difficulty_qubit": 6832.552903782092,
"errors": "",
"pooledtx": 1,
"chain": "main",
"warnings": ""
}

Does not current block size.


screenshots feature

hi,
when I'm using the screenshots feature, I need to install manually a web driver and browser,
I installed chromedriver and chromium.
but I'm getting a lot of timeouts, do you have any recommendation of chromebrowser's/browser's version that will work better with the dnstwist package. I'm working with Dndtwist python package.
this is the error:
Message: timeout: Timed out receiving message from renderer: -0.002
(Session info: headless chrome=106.0.5249.61)
Stacktrace:
#0 0x562c90c07343
#1 0x562c90a1154a
#2 0x562c909fdcc5
#3 0x562c909fd9d0
#4 0x562c909fc6cb
#5 0x562c909fcbfc
#6 0x562c90a093e2
#7 0x562c90a0a032
#8 0x562c90a18f40
#9 0x562c90a1ce54
#10 0x562c909fd139
#11 0x562c90a18c92
#12 0x562c90a80638
#13 0x562c90a68a73
#14 0x562c90a3d4f3
#15 0x562c90a3e731
#16 0x562c90c5562e
#17 0x562c90c58ac2
#18 0x562c90c3bf4e
#19 0x562c90c59743
#20 0x562c90c3036f
#21 0x562c90c79a28
#22 0x562c90c79ba6
#23 0x562c90c93d52
#24 0x7fc9e5947ea7
thanks!

In order to reproduce the issue could you please provide input domain which triggers this error?

Closing due to lack of activity.


Don’t allow other users to connect by default

This is the most secure default configuration, and prevents local
privilege escalation vulnerabilities. On Unix, permissions are set to
0o600, while on Windows, the DACL of the process’s token is used.

Thanks @DemiMarie-parity
I am not sure this should be default.
Have you researched how other libraries are organised and what users expect to be default (deny or allow all)?

@NikVolf Personally, I expect the default to be to deny access.  Furthermore, overly strict permissions will be caught during testing, while overly loose permissions will not unless explicitly checked for.  Finally, secure-by-default means defaulting to strict permissions.

@NikVolf I looked at permissions and found:

Connecting to an AF_UNIX socket requires write access to the socket.  Since default umasks deny write access to other users, this is safe.  It also means that using 0o600 permissions does not change anything in normal situations.
On Windows, default permissions for a named pipe give read access to everyone, and full control to the creator of the pipe, LocalSystem, and administrators.  LocalSystem and Administrators can do anything, so that is fine.  Read-only access is useless in most cases.

Could you release a new version including these changes on crates.io? It will allow us to get rid of some workarounds.


Avoid using Completable#join to synchronously wait for results

Motivation
Avoid using Completable#join to synchronously wait for the result,
Modifications

Use CompletableFuture#get with timeout to instead of CompletableFuture#join

Verifying this change

[x] Make sure that the change passes the CI checks.

Documentation

[x] no-need-doc

/pulsarbot rerun-failure-checks

/pulsarbot rerun-failure-checks


exact_match in drawDiscrete can be better supported

The drawDiscrete method has an optional boolean argument exact_match = False, which appears to be designed to draw from a distribution such that the points will always be drawn such that their frequency will be as close as possible to their expected value.
https://github.com/econ-ark/HARK/blob/8edcebf067ebd1913f13f79c2b1bbd221f980f1b/HARK/simulation.py#L264-L276
This is a somewhat strange operation.
There is only one instance in the code where this argument is set to True. It is here, and I believe it is a mistake:
https://github.com/econ-ark/HARK/blob/master/HARK/ConsumptionSaving/ConsAggShockModel.py#L479
I wonder if this functionality can be removed.

It's not a mistake, and please don't remove it.  Chris prefers that all
discrete draws work like this, and there are reasons to use it.  It's a way
to "fake" the law of large numbers with a much smaller sample, so that
idiosyncratic shocks don't aggregate to generate what looks like an
aggregate shock.
On Wed, Apr 8, 2020 at 8:23 AM Sebastian Benthall<EMAIL_ADDRESS>wrote:

The drawDiscrete method has an optional boolean argument exact_match =
False, which appears to be designed to draw from a distribution such that
the points will always be drawn such that their frequency will be as close
as possible to their expected value.
https://github.com/econ-ark/HARK/blob/8edcebf067ebd1913f13f79c2b1bbd221f980f1b/HARK/simulation.py#L264-L276
This is a somewhat strange operation.
There is only one instance in the code where this argument is set to True.
It is here, and I believe it is a mistake:
https://github.com/econ-ark/HARK/blob/master/HARK/ConsumptionSaving/ConsAggShockModel.py#L479
I wonder if this functionality can be removed.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/econ-ark/HARK/issues/614, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADKRAFIYGX47OKK5F666SLDRLRUF5ANCNFSM4MD4MZIA
.

Ok. It is only used once, and inconsistently, in the code base.
The place where it is used, it is hard-coded into one part of a model class and not otherwise documented.
If this is truly a feature, it should probably be better documented at in the more user-facing classes.

Yes, it's quite a valuable trick, and should be preserved.  Actually, should be used more widely.  But certainly should be documented.
Probably somewhere in the literature someone has proved that it's OK to do this, but it couldn't be hard to prove it asymptotically:  It's hard to see any reason it could hurt to impose on your data restrictions

Are approximately true in small samples and become exactly true as the sample size approaches infinity
Produce a set of draws that would, themselves, be equally likely to have appeared as the actual draws that did appear

It would be good to add a comment in the code soliciting anyone reading it to provide a reference to any relevant literature they might know about.   Actually, that's an idea that we should implement generally: Whenever we do something that is not a completely standard and familiar operation, we could have a tag in the code asking any reader for any references they might find.  In fact, probably the way to do this would be to add a section to the "Contributor's Guide" about exactly what we'd like (ideally, a link to a doi), and a bibtex entry.  Then the code could just contain a link to that section of the contributor's guide explaining what we want.  I guess another part of the workflow would be to make an "Issue" in the issue tracker and mark it as something an outsider could help with.
@sbenthall, can you make an Issue of this?

Code comments that ask questions is a bit non-standard, I think.
Forcing a simulated population to have the exact distribution of
discretized shocks is a good idea if and only if the person running the
code know that's what's happening.  It also only works exactly if the
discrete probabilities are rational numbers, which isn't necessarily the
case.
Simulating on discretized shocks also reduces the variance of shocks
actually experienced, which might be an undesirable property.
On Wed, Apr 8, 2020 at 1:14 PM Christopher Llorracc Carroll <
<EMAIL_ADDRESS>wrote:

Yes, it's quite a valuable trick, and should be preserved. Actually,
should be used more widely. But certainly should be documented.
Probably somewhere in the literature someone has proved that it's OK to do
this, but it couldn't be hard to prove it asymptotically: It's hard to see
any reason it could hurt to impose on your data restrictions

Are approximately true in small samples and become exactly true as
the sample size approaches infinity
Produce a set of draws that would, themselves, be equally likely to
have appeared as the actual draws that did appear

It would be good to add a comment in the code soliciting anyone reading it
to provide a reference to any relevant literature they might know about.
Actually, that's an idea that we should implement generally: Whenever we do
something that is not a completely standard and familiar operation, we
could have a tag in the code asking any reader for any references they
might find. In fact, probably the way to do this would be to add a section
to the "Contributor's Guide" about exactly what we'd like (ideally, a link
to a doi), and a bibtex entry. Then the code could just contain a link to
that section of the contributor's guide explaining what we want. I guess
another part of the workflow would be to make an "Issue" in the issue
tracker and mark it as something an outsider could help with.
@sbenthall https://github.com/sbenthall, can you make an Issue of this?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/econ-ark/HARK/issues/614#issuecomment-611081962, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ADKRAFI6F5QIEBVNH2SFIBDRLSWHHANCNFSM4MD4MZIA
.

Code comments that ask questions is a bit non-standard, I think.

That's OK with me.  It is doing a favor to the user of the code to flag items where we have done something that perhaps should be thought about carefully in case there's some circumstance under which it might not be a good idea.

Forcing a simulated population to have the exact distribution of discretized shocks is a good idea if and only if the person running the code know that's what's happening.

Right -- again this is a reason to flag this as something that could use some more backup/thinking.

It also only works exactly if the discrete probabilities are rational numbers, which isn't necessarily the case.

It definitely not the case in the usual theory, in which we are discretizing a continuous distribution.  But I feel that this is well understood by everyone doing this kind of thing.

Simulating on discretized shocks also reduces the variance of shocks actually experienced, which might be an undesirable property.

Well, it does so only because the sample is finite.  As the sample size approaches infinity, it has no effect.  And everybody is always trying to approximate an infinite population with a finite number of agents, so the reduction in variance is a feature not a bug (in that it causes the variance to be closer to what you would get if you could really do an infinite population).

Sorry, I should have been cleared on that last point.  I meant that
discretizing using your "partitioned inverse CDF" method and then drawing
from that (rather than the true continuous dstn) will reduce variance.  I
used bad shorthand.
On Wed, Apr 8, 2020 at 2:04 PM Christopher Llorracc Carroll <
<EMAIL_ADDRESS>wrote:

Code comments that ask questions is a bit non-standard, I think.
That's OK with me. It is doing a favor to the user of the code to flag
items where we have done something that perhaps should be thought about
carefully in case there's some circumstance under which it might not be a
good idea.
Forcing a simulated population to have the exact distribution of
discretized shocks is a good idea if and only if the person running the
code know that's what's happening.
Right -- again this is a reason to flag this as something that could use
some more backup/thinking.
It also only works exactly if the discrete probabilities are rational
numbers, which isn't necessarily the case.
It definitely not the case in the usual theory, in which we are
discretizing a continuous distribution. But I feel that this is well
understood by everyone doing this kind of thing.
Simulating on discretized shocks also reduces the variance of shocks
actually experienced, which might be an undesirable property.
Well, it does so only because the sample is finite. As the sample size
approaches infinity, it has no effect. And everybody is always trying to
approximate an infinite population with a finite number of agents, so the
reduction in variance is a feature not a bug (in that it causes the
variance to be closer to what you would get if you could really do an
infinite population).
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/econ-ark/HARK/issues/614#issuecomment-611106907, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ADKRAFJMZUEOIDW2L5N25WTRLS4DJANCNFSM4MD4MZIA
.

@sbenthall, can you make an Issue of this?

I don't really understand what you are asking me to do.
Maybe we should discuss it on a call.

functionalize out the exact_match functionality to support the equiprobable permutation use case for seeding the simulation with the ergodic distribution.

this is now a documented feature of DiscreteDistribution, which seems fine.

this is now a documented feature of DiscreteDistribution, which seems fine.


Links in Code; Local wiki link in typewritter font in Redmine

How to format link to local wiki page in Redmine to be in typewriter (code) font, please? Consider
[[`Wiki`]] or `[[Wiki]]` vs. *[[Wiki]]* and **[[Wiki]]**

Is / Would be there a way how to make (implicit/explicit) links in inline code or code blocks?
Implicit link example:
sub reorder {…} # see http://www.redmine.org/boards/2/topics/45051

For example if 4 backtics would be used?
Explicit links could be started with deprecated unicode character Latin Small Letter N preceded by apostrophe (U+0149) or ZERO WIDTH SPACE (U+200B) or ZERO WIDTH NO-BREAK SPACE (BOM, U+FEFF).

How to format link to local wiki page in Redmine to be in typewriter (code) font, please?

I'm not sure to understand what you want to do but this is certainly what you are looking for:
[`Wiki page`](link_to_wiki_page.html)

Is / Would be there a way how to make (implicit/explicit) links in inline code or code blocks?

Unfortunately not at the moment and the case seems a bit too specific for inclusion in Redcarpet. By default, all the HTML tags are escaped for security concerns. However, you can implement a custom render object to avoid escaping a tags like this for instance:
require 'cgi'

class CustomRender < Redcarpet::Render::HTML
  def block_code(code, lang)
    code = CGI::escape_html(code)
    code = CGI::unescape_element(code, "a") if lang != "html"

    "
" \
      "#{code}" \
    "
"
  end
end

If I misunderstood your request, feel free to comment and we can reopen, thanks! :-)


Can we offload syntax highlighting to bat or other external tools?

Looks like syntax highlighting was removed.
Wondering if we can offload the syntax highlighting part to bat or other external tools?

Actually some time ago I'd tried to integrate bat to introduce syntax highlighting, and it did not work as I correctly remember. But things might change, so I'll look at that one more time. Thank you for the suggestion.

I found the hard part is the same as before: In horizontally split preview area, bat  might be work as intended, but not in vertically split preview (you can switch between them by s). because bat does not provide the option to adjust the starting position of the output.

@kyoheiu Is there something wrong with the syntect solution from earlier? For me it works fine.

The biggest reason to drop it is the maintainability: IMO,having a syntax highlighting was not the role of a simple file manager like this, and the code was bloated by the feature.
As relatively minor issue, syntect cannot properly handle the wide char such as CJK for now, which is kind of irritating but not critical though.

Maybe they fixed this by CHANGELOG.md
but I'm not sure.

That was another problem of syntect, and I fixed it by this PR https://github.com/trishume/syntect/pull/456 .
But still, syntect cannot handle the width of wide chars properly, so texts containing them are wrapped before reaching the end of the line.

@kyoheiu @cloud-on-prem
Maybe its naïve, but does the terminal-width and offset option of bat:
      --terminal-width <width>
          Explicitly set the width of the terminal instead of determining it automatically. If
          prefixed with '+' or '-', the value will be treated as an offset to the actual terminal
          width. See also: '--wrap'.

not exactly what is needed?

@rafo Thank you for the suggestion...
Wow. I've done it:

I use bat <file-path> -fpP --wrap character --terminal-width {preview_space_x} -r {preview_space_y}.
I'm debugging, but it seems to way smoothly work.

Created PR #250

Thank you for the suggestion...

I'm happy to help! Looks good!

Merged and published as v2.10.0. Thank you all!


If this is an official Loggly repo, then please put it under github/loggly

If this is an official Loggly repo, then please put it under https://github.com/loggly
Otherwise, please make it very clear that this is not an official repo.

No it´s not. And since it's not under https://github.com/loggly makes i very clear that it´s a repo from the community not from loggly.


feature(landing page when no wallets exist):

landing page design:

demo of flow through account creation/import:
generate new account

import account from json

fixes #362
todo:

[ ] colors + css needs some refactoring + max width for text
[ ] link for "More About Ethereum Classic"
[ ] tests

Codecov Report

Merging #370 into master will decrease coverage by 0.3%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #370      +/-   ##
==========================================
- Coverage   18.08%   17.78%   -0.31%
==========================================
  Files         185      186       +1
  Lines        2825     2873      +48
  Branches      473      485      +12
==========================================
  Hits          511      511
- Misses       1958     1994      +36
- Partials      356      368      +12

Impacted Files
Coverage Δ

src/index.js
0% <ø> (ø)
:arrow_up:

src/store/store.js
0% <ø> (ø)
:arrow_up:

src/components/ledger/ImportAccount/buttons.js
0% <0%> (ø)
:arrow_up:

src/components/layout/Main/main.js
0% <0%> (ø)
:arrow_up:

...c/components/ledger/ImportAccount/importAccount.js
0% <0%> (ø)
:arrow_up:

src/components/landing/landing.js
0% <0%> (ø)

...c/components/accounts/add/ImportJson/importJson.js
0% <0%> (ø)
:arrow_up:

src/components/dialog.js
0% <0%> (ø)
:arrow_up:

src/containers/Screen/screen.js
0% <0%> (ø)
:arrow_up:

...s/GenerateAccount/PasswordDialog/passwordDialog.js
0% <0%> (ø)
:arrow_up:

... and 3 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 7716760...2fdffe8. Read the comment docs.

Looks like a runaway pencil icon...

Password needs for confirm all wallet operations
should be
This password will be required to confirm all account operations

@whilei I think we'll fix the pencil icon stuff with #342


Fixed 'why_section'

In a grid layout, only direct children of the container with the grid can be placed on the grid layout. So if you want to have each 'why_image' and 'why_text' inside a 'why_card', then you need to lay the 'why_cards' out in the grid defined by 'why_card_panel'

Thank you!


lidar/imu data from Sick PicoScan 150 Core does not recover from a power cycle of the sensor or disconnect and reconnect the cable

Hello,
For my use case, I frequently need to perform a power cycle on the LiDAR or unplug and then replug the Ethernet cable connecting the LiDAR to the PC. However, after doing this, the LiDAR and IMU data do not always reinitialize, and the corresponding topics remain empty. I am using the sick_picoscan.launch file, with the parameter .
I conducted two tests and collected the corresponding logs:
Test 1(plugged.txt) : I unplugged and replugged the Ethernet cable, but the LiDAR data did not come back.
Test 2(lidar_power_cycle.txt) : I performed a power cycle, but again, the LiDAR data was not recovered.
lidar_power_cycle.txt
plugged.txt
I am adding the launch files used in these tests. And in both tests, I am able to ping the IP <IP_ADDRESS> after both actions.
sick_picoscan.launch.txt
main_sick.launch.txt
Please note that I am using ROS2 and version 3.6.0 of sick_scan_xd.
Best regards,
Mohamed

Hi Mohamed, thanks for the request. We will have a look at it.

Thank you for your feedback. Using the latest picoScan firmware version 1.5.0, the driver successfully recovers after both unplugging and replugging the ethernet cable and power cycling. The maximum timeout for the recovery is 60 seconds by default and can be configured using the udp_timeout_ms_initial parameter in the launch file.
Please update the picoScan firmware to the latest version 1.5.0.

Hello,
Thank you for your feedback.
Here is our updated launch file, where we added the following parameter:
<param name="udp_timeout_ms_initial" value="10000" />
sick_picoscan.launch.txt
The results are not entirely conclusive, but here are the trends observed, regardless of the tested versions (1.5.0):

Quick OFF/ON (a few seconds): the system tends to recover correctly.
Slow OFF/ON (tens of seconds or more): nothing happens, but after 1 to 2 minutes, the driver resets and starts working again.

It seems that the driver tends to get stuck during the TCP connection setup with the PC if the LiDAR is not powered on at that moment. Once stuck in this phase, nothing happens for 1 to 2 minutes until it resets.
However, during afresh star (LiDAR powered on before launching the driver), there are never any issues.
Thus:

If the LiDAR is powered on before the driver is launched, it always seems to work correctly.
If the driver is launched before the LiDAR is powered on, the behavior becomes unpredictable. Sometimes there’s a delay of 1 to 2 minutes (2 minutes 20 seconds at worst in my tests) before receiving IMU and LiDAR measurements.

For reference, my firmware version before the update was 1.4.1.
Diagnostic Logs :
SN24360016_1.5.0_1_1_1970-1-28-26AM_DiagnosticDump.zip
SN24360016_1.4.1_1_1_1970-1-11-54AM_DiagnosticDump_2024_1125_00h01.zip
Best regards

Thanks for the files and the follow-up. Your launchfile shows some modifications (parameters imu_topic and tick_to_timestamp_mode are missing, some type qualifiers like type="int" or type="bool" are removed, parameters sopas_tcp_port and laserscan_layer_filter have additional '' characters in their values). To avoid side effects, please use the default launch file sick_picoscan.launch from the github repository.
The zip files are encrypted. Can you send us the password?

Thanks for the files. We also have the password.
Please also activate the UDP output:

Actually, this is enabled by the driver itself during the launch of the driver. If you activate this before (and save them permanently) this could help during the start-up of the picoScan and the driver.

In order to solve our issue, we had to modify the way the TCP connection is established by adding a timeout.
We have set a delay of 2 seconds.  If the timeout is reached, the driver is then resetting and it retries to establish the TCP connection.
To do so, we have added the following piece of code in file "sick_scan_xd/driver/src/tcp/tcp.cpp" at line 170:
// Setting a timeout on the TCP connection
struct timeval timeout;
timeout.tv_sec = 2; // Set timeout seconds
timeout.tv_usec = 0; // Set timeout microseconds
if (setsockopt(m_connectionSocket, SOL_SOCKET, SO_SNDTIMEO, (const char*)&timeout, sizeof(timeout)) < 0) {
ROS_ERROR("Tcp::open: setsockopt failed to set timeout, aborting.");
close();
return false;
}
Do you see any side effects that could lead to issues arising somewhere else in the driver because of this modification?
In our tests it is working perfectly fine but we would like you to validate it.
For your information, we are using the sick_picoscan.launch.py to launch the driver.
Before this modification, we got the following behavior:
Fresh start
...
(Driver running OK)
....
Power cycle OFF on the LiDAR
...
Driver reset and tries to establish the TCP connection:
[sick_generic_caller-1] [INFO] [1732615219.045835717] [sick_scan_xd]: sick_scan_xd: Tcp::open: connecting to <IP_ADDRESS>:2111 ...
...
After a few seconds, power cycle ON on the LiDAR
...
Nothing happens
...
Driver timeout after more than 2 minutes:
[sick_generic_caller-1] [ERROR] [1732615349.462896725] [sick_scan_xd]: Tcp::open: Failed to open TCP connection to <IP_ADDRESS>:2111, aborting.
...
Driver reset and then runs OK
Now we do not have this huge delay anymore thanks to the 2secs timeout.

Thank you for your feedback! We will test and integrate your solution.
We found an alternative by reducing the TCP timeout configured by the tcp_syn_retries system parameter:
Edit the file /etc/sysctl.conf by sudo gedit /etc/sysctl.conf and add the line
net.ipv4.tcp_syn_retries = 2

Reinit sysctl with sudo sysctl -p and check the setting with cat /proc/sys/net/ipv4/tcp_syn_retries. It should show a value of 2.
With this TCP configuration, re-initialisation was successful within a few seconds after the picoScan LED turning green after a power cycle.

The latest sick_scan_xd update in branch feature/issue_update_2412xx now includes your modification to solve the issue. Thanks again for your input!


[CHANGE ME] Re-generated to pick up changes from googleapis.

This PR was generated using Autosynth. :rainbow:

[ ] To automatically regenerate this PR, check this box.

PiperOrigin-RevId: 338646463
Source-Link: https://github.com/googleapis/googleapis/commit/20b11dfe4538cd5da7b4c3dd7d2bf5b9922ff3ed
PiperOrigin-RevId: 338561467
Source-Link: https://github.com/googleapis/googleapis/commit/7391e775fd3620c1306b9677bfbcf6221d42f3c3
PiperOrigin-RevId: 338547917
Source-Link: https://github.com/googleapis/googleapis/commit/28e0d72b1e74a9c7e46349db53ef006540bcbdfb
PiperOrigin-RevId: 338527875
Source-Link: https://github.com/googleapis/googleapis/commit/2131e2f755b3c2604e2d08de81a299fd7e377dcd
PiperOrigin-RevId: 338520351
Source-Link: https://github.com/googleapis/googleapis/commit/b448d7dce89eebc3a4066a9e979a0b96bdb66b62
PiperOrigin-RevId: 338489505
Source-Link: https://github.com/googleapis/googleapis/commit/4b34a0869404af9d83ae89952d28712a4d29eba6
PiperOrigin-RevId: 338201056
Source-Link: https://github.com/googleapis/googleapis/commit/11fd1fb53d03cf4852d3f63d679292e3c7b6e7c8
PiperOrigin-RevId: 338157137
Source-Link: https://github.com/googleapis/googleapis/commit/c7331b75b0b7bbd614373b7d37085db1c80dd4be
Source-Link: https://github.com/googleapis/googleapis/commit/34c5a5c5132a2c5ef46f599550a1195e07f01f80
Source-Link: https://github.com/googleapis/googleapis/commit/b2ad55637dedc1fcd8cb82435a84277615356503
PiperOrigin-RevId: 337925389
Source-Link: https://github.com/googleapis/googleapis/commit/d6f5ad878ccaf59d3a39d12c5e4d9a9a50970748
PiperOrigin-RevId: 335986756
Source-Link: https://github.com/googleapis/googleapis/commit/b58004f465864e30ad015df9ee6b351da189d691
PiperOrigin-RevId: 335923930
Source-Link: https://github.com/googleapis/googleapis/commit/9c00a2f0dc8cc1c8d93b938fc097851335c08692
PiperOrigin-RevId: 335745163
Source-Link: https://github.com/googleapis/googleapis/commit/80eada6dbc452b58b4663fa3ab4f0b6746f49f80
PiperOrigin-RevId: 329973402
Source-Link: https://github.com/googleapis/googleapis/commit/a8c73212a73d460b1edcd0830c4c3e31de33bdc5
PiperOrigin-RevId: 329941383
Source-Link: https://github.com/googleapis/googleapis/commit/de9ba7dc763aab244e20d2ebb7bf897806998441
Source-Link: https://github.com/googleapis/googleapis/commit/02d3ff90a3fff5bd941ca022187ceeed4de1be4f
PiperOrigin-RevId: 329778985
Source-Link: https://github.com/googleapis/googleapis/commit/a8226b2283de22b06a202b12dc932b72ffb9bdab
PiperOrigin-RevId: 329778334
Source-Link: https://github.com/googleapis/googleapis/commit/b513a712932108ede15f294aecfd00e6250b4a49
PiperOrigin-RevId: 329771412
Source-Link: https://github.com/googleapis/googleapis/commit/88d4f10bbe6821a3e16b082f408bc381a73860ff
PiperOrigin-RevId: 329762863
Source-Link: https://github.com/googleapis/googleapis/commit/303f90207bdb344685583ebdb44c1e607782321b
PiperOrigin-RevId: 329758805
Source-Link: https://github.com/googleapis/googleapis/commit/1ee015d872d003637eb47b890930bf3d0d410c61
PiperOrigin-RevId: 328987468
Source-Link: https://github.com/googleapis/googleapis/commit/b267d696cd58bc658b4e4b6cd698b05b5b6a073e
PiperOrigin-RevId: 328959737
Source-Link: https://github.com/googleapis/googleapis/commit/96eb8c021fe574d2fe9840c4990515347274ea82
PiperOrigin-RevId: 328807403
Source-Link: https://github.com/googleapis/googleapis/commit/1163f4953167e7e419db4ae48dd77eadea6ca98b
PiperOrigin-RevId: 328756245
Source-Link: https://github.com/googleapis/googleapis/commit/56f0db80b2378552f0323ac56ed6e35f51b1a53a

@bcoe, this PR was generated with the start_tracking() and stop_tracking() calls we inserted into the code.  Obviously, something went wrong.  I'm trying to figure out what.  I thing watchdog's event queue may not be entirely drained in 2 seconds.

@SurferJeffAtGoogle I wonder if you can make watchdog delay the join() until its drained its immediate work?

I think we were using this to debug, and it's now stale.


Fix DASSERT() introduced in #352

The code is copying from 0,0 in the ch_in channel to x0,y0 in the r
Rect. This updates the assert to match that.

The code this is fixing was introduced in #352 which is not in v0.5.x branch and we are not cherry-picking it, removing label.


07/12/2018 04:14 : Create Pull Request for branch master -> prTesting1_2018071204

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/updateTestCon1.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


question

why in ur fabric projects(this one and oyvey ported) in the main class you use 2 Initializers "ModInitializer" and "ClientModInitializer" you just need to use one so why do you add both?

minecraft dev intellij plugin just auto generated it and i dont rly care. u can make a pr and move everything in a clientmod initializer and it will work :p


Add help text to 'more options' in command palette

Summary of the Pull Request
This adds help text (automation property) to command palette commands that expand to more options.
PR Checklist

[ ] Closes ~#9247~ #7908

Validation Steps Performed
If I have a nested command called "color tab", NVDA reads it as...
"Color tab. More options. 5 of 79."

(just so you know - we cannot close a11y bugs until they validate them, so you cannot use the "closes" verbiage.)

(just so you know - we cannot close a11y bugs until they validate them, so you cannot use the "closes" verbiage.)

(totally forgot. Thanks)

Carlos and I reached a decision:
We will use this version for 1.6 (where the is no Data Template).
We will use a new Data Template based version to delete both converters for main/1.7.

@DHowett this is ready for you now 🙂


add releases to JSR

Adding a step in the release pipeline to update a jsr.json when creating a new release version, and then release to JSR if npm release succeeded.
Just tried shortening the update scripts, I could just put it inline in the scripts if you prefer:
{
    "postversion": "node -e \"let r=require;r('fs').writeFileSync('jsr.json', JSON.stringify({...r('./jsr.json'),version: r('./package.json').version},null, 2)+'\\n');\"",
}

The only other step to be able to release to JSR would be registering the package scope/name and auth on the first upload.
closes #290

@josh-hemphill thanks so much for implementing this! I just merged and published, so https://jsr.io/<EMAIL_ADDRESS>is live!


Remove outdated immigrant terms

@joshbuddy Do you have an opinion on this? I don't believe these words have been used contemptuously since the mid-20th century.

I could see splitting apart the files and not including these in the default.

On Jan 31, 2016, at 09:43, Mike Foley<EMAIL_ADDRESS>wrote:
@joshbuddy Do you have an opinion on this? I don't believe these words have been used contemptuously since the mid-20th century.
You can view, comment on, or merge this pull request online at:
https://github.com/joshbuddy/swearjar/pull/10
Commit Summary
Remove outdated immigrant terms
File Changes
M lib/config/en.yml (4)
Patch Links:
https://github.com/joshbuddy/swearjar/pull/10.patch
https://github.com/joshbuddy/swearjar/pull/10.diff
—
Reply to this email directly or view it on GitHub.

I can't envision such a use case. What would that look like?

You're probably right. Users can already just load a custom yaml if they need to support more swears.


PRIMARY KEY without AUTOINCREMENT

Hi,
I need a database table whose primary key will be a UUID saved in a STRING.
The TableBuilder adds automatically the AUTOINCREMENT keyword while it is only allowed on an INTEGER PRIMARY KEY.
An annotation parameter may be added to the "@id" annotation to make the PRIMARY KEY automatically generated or not.

Keep in mind that SQLite supports a limited subset of the ALTER TABLE command and column modification is not supported. If we had a @Id(autoincrement = false) annotation, a developer would be able to modify the @Id annotation after the initial table creation to @Id(autoincrement = true). The change would have no effect as we can't modify an existing column. So if we want the annotated contract to actually reflect the table schema we need to re-create the table with the AUTOINCREMENT option and provide to the developer a way to handle all the already present data that conflicts with the new primary key column. This will lead to some complicated logic and it will be difficult to understand what does ProviGen do and when.
I feel like it makes more sense to modify the TableBuilder so that it can handle the AUTOINCREMENT option and let the developer manage table creation himself.

The same issue exists for the @Id annotation itself, right ?!! If a developer moves the @Id annotation from one field to another, we would have to re-create the table ...

Hi @VincentFTS,
If you move an @id annotation, ProviGen will continue to work and you don't necessarily need to re-create the table. Basically the last segment of the uri would be used to match the newly annotated column.
If you really need to create the initial table differently, you can just use your own SQLiteOpenHelper.
public class MyContentProvider extends ProviGenProvider {

    @Override
    public Class[] contractClasses() {
        return new Class[]{MyContract.class};
    }

    @Override
    public SQLiteOpenHelper openHelper(Context context) {

        return new SQLiteOpenHelper(getContext(), "databaseName", null, 1) {

            @Override
            public void onCreate(SQLiteDatabase database) {
                // Create the table without the AUTOINCREMENT here.
            }
        };
    }
}

Another option would be to fork ProviGen and modify the TableBuilder so that the AUTOINCREMENT is optional.

@VincentFTS Did you find a solution to your problem ?


MiKo_3065 is now aware of parameters and 'string.Format'

@CodiumAI-Agent /describe
(resolves #1093)

Title
MiKo_3065 is now aware of parameters and 'string.Format'

User description
@CodiumAI-Agent /describe
(resolves #1093)

PR Type
Enhancement, Tests

Description

Enhanced MiKo_3065 to differentiate between message templates and other parameters, focusing on interpolated strings and string.Format.
Updated SyntaxNodeExtensions to include methods for handling identifier expressions and names.
Refactored MiKo_3065_CodeFixProvider to handle InvocationExpressionSyntax and separate logic for interpolated strings and string formats.
Extended MiKo_3065_MicrosoftLoggingMessagesDoNotUseInterpolatedStringsAnalyzer to analyze invocation expressions.
Added comprehensive tests for non-logging calls, Microsoft logging calls, and code fixes involving string.Format.

Changes walkthrough 📝
Relevant filesEnhancement

SyntaxNodeExtensions.csAdd methods to handle identifier expressions and names

MiKo.Analyzer.Shared/Extensions/SyntaxNodeExtensions.cs
Added method GetIdentifierExpression for ExpressionSyntax.  Added method GetIdentifierName for ExpressionSyntax.

+17/-0

MiKo_3065_CodeFixProvider.csEnhance code fix provider to handle string formats

MiKo.Analyzer.Shared/Rules/Maintainability/MiKo_3065_CodeFixProvider.cs
Added handling for InvocationExpressionSyntax in GetUpdatedSyntax.  Refactored code to separate logic for interpolated strings and string format.  Introduced UpdateStringFormatLiteral method for string format handling.

+65/-15

MiKo_3065_MicrosoftLoggingMessagesDoNotUseInterpolatedStringsAnalyzer.csExtend analyzer to handle invocation expressions

MiKo.Analyzer.Shared/Rules/Maintainability/MiKo_3065_MicrosoftLoggingMessagesDoNotUseInterpolatedStringsAnalyzer.cs
Added AnalyzeInvocation method for handling invocation expressions.  Refactored AnalyzeInterpolatedString to use IsLoggingCall.

+26/-17

Tests

MiKo_3065_MicrosoftLoggingMessagesDoNotUseInterpolatedStringsAnalyzerTests.csAdd tests for logging calls and string format handling

MiKo.Analyzer.Tests/Rules/Maintainability/MiKo_3065_MicrosoftLoggingMessagesDoNotUseInterpolatedStringsAnalyzerTests.cs
Added tests for non-logging calls with string.Format.  Added tests for Microsoft logging calls with interpolations and string formats.  Added tests for code fixes involving string.Format.

+193/-3

💡 PR-Agent usage: Comment /help "your question" on any pull request to receive relevant information