Reliability issues when writing multiple files at the same time

Hi, we've been working on an export, which should export 5 files (relatively at the same time).
However we've been experiencing some reliability issues, sometimes a file is being fully written, sometimes not and sometimes the export just gets stuck.
We're running every test with the same data, but we get different results every time. This issue is especially noticable for OSX, but we're now experiencing the same issue with Linux.
The way we have written it in the code is like this:
public function export(FilesystemInterface $filesystem, File $file): PromiseInterface
{
    return new Promise(function (callable $resolve) use ($filesystem, $file) {
        $fullPath = $this->fullPath($file);
        $filesystem->file($fullPath)->open('cwt')->then(function ($stream) use ($resolve, $file) {
            // This part is simplified, just to show an example.
            foreach ($file->lines() as $line) {
                $stream->write($this->format($line));
            }
            $stream->end();
            $resolve();
        });
    });
}

This method gets called 5 times, we collect all the promises and then we start the export with \Clue\React\Block\awaitAll($promises, $loop);.
Is it possible to write multiple files at the same time? Are we doing something wrong here?
Update: We've temporarily modified the export to only export one file, but even this seems to not work. Even on Linux we're experiencing more misfires now, the files are just empty.

You'll need to subscribe to the close event on the stream before calling $resolve(), as writing might not have finished, yet.

Hey @DevMcC,
Do you know which adapter is used? E.g. is it the EIO or the child process adapter?
Currently busy doing a full rewrite, and one of the changes is a promise based writing API. So each write will return a promise and you'll have to wait. This also resolves the issue @kelunik is mentioning now.

@kelunik, I've changed the code into this:
public function export(FilesystemInterface $filesystem, File $file): PromiseInterface
{
    return new Promise(function (callable $resolve) use ($filesystem, $file) {
        $fullPath = $this->fullPath($file);
        $filesystem->file($fullPath)->open('cwt')->then(function ($stream) use ($resolve, $file) {
            $stream->on('close', function () use ($resolve) {
                $resolve();
            });

            // This part is simplified, just to show an example.
            foreach ($file->lines() as $line) {
                $stream->write($this->format($line));
            }
            $stream->end();
        });
    });
}

This has certainly improved the reliability.
However the export is sometimes still getting stuck, the then from ->open('cwt') isn't always called.
@WyriHaximus, we're using the ChildProcess adapter.

This has certainly improved the reliability.
However the export is sometimes still getting stuck, the then from ->open('cwt') isn't always called.

Which means it gets stuck somewhere along the line. Opening the file hmm

@WyriHaximus, we're using the ChildProcess adapter.

The ChildProcess adapter is mainly there as a fallback to ensure it works everywhere. You could try install ext-eio for better performance. Added additional tests to the rewrite to ensure writing to multiple files isn't an issue. Got it up to 2000+ for the ext-uv adapter in there.

Which means it gets stuck somewhere along the line. Opening the file hmm

I did some debugging and it turns out that the file export is a bit slow, some files have a lot of data to export. This slowness seems to cause a TimeoutException for the other files that haven't been run yet.
I don't think going around this TimeoutException would be a good idea, I think it would be better to restructure the export. Instead of winging 5 promises, we could process the files synchronously and then store the content asynchronously. I'll give an update on how that goes.

The ChildProcess adapter is mainly there as a fallback to ensure it works everywhere. You could try install ext-eio for better performance.

Sure, I'll try it.

Added additional tests to the rewrite to ensure writing to multiple files isn't an issue. Got it up to 2000+ for the ext-uv adapter in there.

Cool, I'm looking forward to the rewrite.

Hi, I've got an update.
We didn't go for ext-eio, as according to the GitHub issues, this repo's implementation of that extension is unreliable.

I don't think going around this TimeoutException would be a good idea, I think it would be better to restructure the export. Instead of winging 5 promises, we could process the files synchronously and then store the content asynchronously. I'll give an update on how that goes.

We ended up going with something like this.
Instead of awaitAll, we use await for a single file and then move on to the next file.
The foreach was changed to a periodicTimer, so the file is being written as we're receiving the lines.
This approach made the export very stable, which is really nice.
I consider the reliability issue resolved, I'll be closing this now.


CAMEL-9649: Do not require @XmlRootElement annotation in JAXB FallbackTypeConverter

https://issues.apache.org/jira/browse/CAMEL-9649

@davsclaus, could you please check my fix before I amend my commit? I am not sure how to call context#getClassResolver() when exchange is null. So I use context only in case exchange is set. If it is not set I use org.apache.camel.util.ObjectHelper#loadClass().
I created ThreadLocal<CamelContext> to do no change API of protected methods, is it ok? Is this class expected to be thread-safe?
fix: https://gist.github.com/basovnik/0ac4c0742c291f39bfc3

Ah can you try implementing CamelContextAware in the class. Ideally we should let Camel inject itself to these type converters if they impl that interface, so you have access to Camel.

I fixed it. New version of patch is on the same link as before. If it is ok, I will amend it if not, fell free to add new comments.

Yep looks much better. You are welcome to update this PR

Thanks the code has been merged. Can you close this PR


Data Type: NUMERIC

About
CrateDB gained a new data type NUMERIC. Most probably, we want to support it here in one way or another.
References

https://github.com/crate/sqlalchemy-cratedb/issues/163

It is probably still the right choice to serialize Decimal values as strings, because there is no other way to marshal them through JSON?
https://github.com/crate/crate-python/blob/8a3bf388e07e463a9ea3f451a4bdb6c64f2242fd/src/crate/client/http.py#L95-L96
/cc @matriv, @seut

If we have the same behavior that we encountered here: https://github.com/crate/crate/pull/16843
I agree to go with strings.

Thank you. Then, there will be nothing to update or improve, other than the documentation perhaps, also on the Python driver at a relevant spot?
-- https://github.com/crate/crate/pull/16843
As you advise that HTTP/JSON transport may loose precision, may I ask if it would be expectably different when using the PostgreSQL interface?

As you advise that HTTP/JSON transport may loose precision, may I ask if it would be expectably different when using the PostgreSQL interface?

Yes, the issue is completely related to JSON only.

and to be more precise, http streams the full number, but the application/json MIME type directive is the one that truncates digits.


[bug] Moon doesn't handle files being moved/deleted

It seems like moon will choke until the cache is cleared if you rename or delete any files that are referenced by a file group.
Steps to reproduce issue:

Initialize a git repository
Initialize moon with a project in the root
Populate moon.yml:$schema: https://moonrepo.dev/schemas/project.json
fileGroups:
    myFiles:
    - '**/*.txt'
tasks:
    list:
    command:
    - ls
    - '@files(myFiles)'
    inputs:
    - '@files(myFiles)'
    platform: system

Create some test files that match the file grouptouch file-{1..3}.txt

Run the target:❯ moon run :list
▪▪▪▪ moon-rename-repro:list
./file-1.txt
./file-2.txt
./file-3.txt
▪▪▪▪ moon-rename-repro:list (6ms, 44cbecbc)

Tasks: 1 completed
Time: 16ms

Rename or remove one of those files:rm file-3.txt

Run the target (fails):❯ moon run :list
▪▪▪▪ moon-rename-repro:list
./file-1.txt
./file-2.txt
ls: ./file-3.txt: No such file or directory
▪▪▪▪ moon-rename-repro:list (5ms, b36a2c0c)
Error:   × Process ls failed with a 1 exit code.

Run the target without cache (works):❯ moon run :list --cache=off
▪▪▪▪ moon-rename-repro:list
./file-1.txt
./file-2.txt
▪▪▪▪ moon-rename-repro:list (5ms, ed766218)

Tasks: 1 completed
Time: 15ms

This is a simple example, but you can see how this would come up pretty often when refactoring a code base.

@mrobinsn I looked into this and I'm not sure what the best solution is at the moment.
What's happening is that @files gets expanded to the list of files when creating the task, and then the task is inserted into the project graph with the literal paths. The graph is then cached to .moon/cache/states/projectGraph.json, so subsequent runs are using the cache (which has the literal paths).
That's what's causing the error. The only solution right now is to not cache the project graph, but that'll be a big performance hit. I'll look into other ways to solve this.

Hey @milesj any new thoughts on this issue?

It'll be solved with https://github.com/moonrepo/moon/pull/980 Aiming for next release.

Fixed in v1.11 https://moonrepo.dev/blog/moon-v1.11#unlocked-features


Fix console error in sticky-sidebar

Fixes a console error in sticky-sidebar
Test: Go to conversation tab then go to the files tab. The resize observer was never disconnected so it will error out.

Is this executed in order if the sidebar is regenerated? I'd expect remove to be called before add, but I'm not sure. If it's the opposite, it won't work since .disconnect() will forget all the observed elements

test comment

Seems to be working for me.

I’m a bit lost on this feature at the moment but I trust you tested it so it can be merged

https://github.com/sindresorhus/refined-github
Visit Issues
Resize window

refined-github.js:10773 Uncaught TypeError: Cannot read property 'classList' of undefined
    at updateStickiness (refined-github.js:10773)
    at later (refined-github.js:197)


API Implement vendor modules / branch strategy

Rebased on top of https://github.com/silverstripe/cow/pull/57
Fixes #53
You can specify branching via a --branching option, which is saved into the release plan. You can also modify this value at the planning stage.

cc @sminnee since this came out of a discussion we had a while back. :)

i18n collector step still doesn't work with vendor properly. Will fix later!

Fixed i18n text collector.
Requires https://github.com/silverstripe/silverstripe-framework/pull/7473

Removed DEFAULT and use AUTO instead, since it's really just a redundant synonym.


Fix href of questionsPanel()'s anchors

Clicking on 1rst or 2nd link of FAQ led to a non-existent page.
Because there was a slash in front of the hash of the anchor's href of those links.
This removes those slashes.

I dug in a bit more and realized: I was mistaken. The cause is other. The problem remains that when clicking on those links the page does not show the content of Brave and on Chrome.


java: 找不到符号   符号:   类 QPermissionGroup   位置: 程序包 com.appsmith.server.domains

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Java: symbol not found
Symbol: Class QPermissionGroup
Location: Package com.appsmith.server.domains
Steps To Reproduce
Java: symbol not found
Symbol: Class QPermissionGroup
Location: Package com.appsmith.server.domains
Public Sample App
No response
Environment
Production
Issue video log
No response
Version
V1.9.19

@jynine could you please elaborate the issue you are facing?


os-collect-config failing on packstack --allinone

Fails with timeout:
heat stack-create my_openshift \    --poll \    -e env_aop.yaml \    -P master_count=3 \    -f ~/openshift-on-openstack/openshift.yaml
on infra node:
cat /etc/os-collect-config.conf
[DEFAULT]
command = os-refresh-config

[cfn]
metadata_url = http://<IP_ADDRESS>:8000/v1/
stack_name = my_openshift-infra_host-tki2dadcu7iu
secret_access_key = d8a906856339490188b1bd38f1dbe8c3
access_key_id = d06def507b1947e297cf6969c10a36d1
path = host.Metadata

/var/log/messages - the following repeats forever.
Mar 11 11:04:19 localhost os-collect-config: ----------------------- PROFILING -----------------------
Mar 11 11:04:19 localhost os-collect-config: Target: migration.d
Mar 11 11:04:19 localhost os-collect-config: Script                                     Seconds
Mar 11 11:04:19 localhost os-collect-config: ---------------------------------------  ----------
Mar 11 11:04:19 localhost os-collect-config: --------------------- END PROFILING ---------------------
Mar 11 11:04:19 localhost os-collect-config: [2016-03-11 11:04:19,093] (os-refresh-config) [INFO] Completed phase migration
Mar 11 11:04:19 localhost os-collect-config: INFO:os-refresh-config:Completed phase migration
Mar 11 11:04:23 localhost os-collect-config: 2016-03-11 11:04:23.944 28675 WARNING os_collect_config.heat  [-] No auth_url configured.
Mar 11 11:04:23 localhost os-collect-config: 2016-03-11 11:04:23.944 28675 WARNING os_collect_config.request [-] No metadata_url configured.
Mar 11 11:04:23 localhost os-collect-config: 2016-03-11 11:04:23.944 28675 WARNING os-collect-config [-] Source [request] Unavailable.
Mar 11 11:04:23 localhost os-collect-config: 2016-03-11 11:04:23.944 28675 WARNING os_collect_config.local [-] /var/lib/os-collect-config/local-data not found. Skipping
Mar 11 11:04:23 localhost os-collect-config: 2016-03-11 11:04:23.945 28675 WARNING os_collect_config.local [-] No local metadata found (['/var/lib/os-collect-config/local-data'])

Possible cause of misconfiguration?: Back on the hardware OS, I see this funniness in the logs.  It seems whatever REGEX turned _ into - was a bit too greedy.  Note my-penshift instead of "my-openshift"
2016-03-11 11:04:54.718 2325 DEBUG keystoneclient.session [-] RESP: [200] content-length: 2048 content-encoding: gzip x-subject-token: {SHA1}001999a23705549e8fdd2d11fffa666d1c4fd288 vary: X-Auth-Token,Accept-Encoding server: Apache/2.4.6 (Red Hat Enterprise Linux) connection: close date: Fri, 11 Mar 2016 16:04:54 GMT content-type: application/json x-openstack-request-id: req-038f5070-69e8-4cbc-b916-e08007a54cac
RESP BODY: {"token": {"methods": ["ec2credential"], "roles": [{"id": "5c9d018e88f647d48767443cf7440d2b", "name": "heat_stack_user"}], "expires_at": "2016-03-11T17:04:54.692029Z", "project": {"domain": {"id": "73034a6657a545a0840836b838a5720c", "name": "heat"}, "id": "83bb3dd5e8544022a074c811870cdb32", "name": "cea127b7b5264bb08e7a60570d965445-41f85f30-4d99-48ec-983e-859f326"}, "catalog": "<removed>", "extras": {}, "user": {"domain": {"id": "73034a6657a545a0840836b838a5720c", "name": "heat"}, "id": "cb9b6665d64e4bacb757afc9f7cd815a", "name": "my-penshift-infra_host-tki2dadcu7iu-host-rcog64xdos7i"}, "audit_ids": ["mWpoEXN-T06JHZbkXmv2EQ"], "issued_at": "2016-03-11T16:04:54.692050Z"}}

Or rather, does the hardware host have to have the same domain name as the nodes?
# grep example.com *
env_aop.yaml:  domain_name: "example.com"
# hostname
hw2.openshift.oss.lab

Help?
Thanks,
Judd

Hi Judd,
if it fails on infra node timeout, it means that cloud-init process on infra node didn't finish successfully (this call takes care of signalling back to heat - https://github.com/redhat-openstack/openshift-on-openstack/blob/master/fragments/infra-boot.sh#L86).
Anything interesting in /var/log/cloud-init.log on infra node? You also might get some info from "heat event-list -n 2 my-openshift" and "heat resource-list -n 2 my-openshift|grep FAILED"

cloud-init finishes with a warning, but no failures.
Mar 11 11:04:09 localhost cloud-init: 2016-03-11 11:04:09,365 - templater.py[WARNING]: Cheetah not available as the default renderer for unknown template, reverting to the basic renderer.
Mar 11 11:04:09 localhost cloud-init: Cloud-init v. 0.7.6 finished at Fri, 11 Mar 2016 16:04:09 +0000. Datasource DataSourceOpenStack [net,ver=2].  Up 690.35 seconds

heat signaling seems to have worked OK.
                                                                                | CREATE_COMPLETE    | 2016-03-11T16:08:24 | my_openshift-openshift_m
asters-kw2jwmyxufsv                    |
| wait_handle                                                    | a4ece916-0763-4d81-8fd5-99f7cb15ea0a | Signal: status:SUCCESS reason:OpenShift node has been prepa
red for running ansible.                                                                        | SIGNAL_COMPLETE    | 2016-03-11T16:08:24 | my_openshift-openshift_m
asters-kw2jwmyxufsv-2-6fzkmnsmk36u     |
| wait_condition                                                 | 535cba77-6c5b-4242-9ecf-7e13dbea9b89 | state changed
                                                                                | CREATE_COMPLETE    | 2016-03-11T16:08:24 | my_openshift-openshift_m
asters-kw2jwmyxufsv-2-6fzkmnsmk36u     |
| my_openshift-openshift_masters-kw2jwmyxufsv-2-6fzkmnsmk36u     | 898c844f-3572-4ccc-a541-311e3d7292bc | Stack CREATE completed successfully
                                                                                | CREATE_COMPLETE    | 2016-03-11T16:08:24 | my_openshift-openshift_m
asters-kw2jwmyxufsv-2-6fzkmnsmk36u     |
| openshift_masters                                              | e45ea9f7-91b5-4e04-9c53-abcf15f298db | CREATE aborted
                                                                                | CREATE_FAILED      | 2016-03-11T16:52:00 | my_openshift
                                       |
| my_openshift                                                   | 9e4701bd-442d-474e-be0d-2981c9db47a8 | Create timed out                                                                                | CREATE_FAILED      | 2016-03-11T16:52:00 | my_openshift                                                   |
| wait_condition                                                 | 0ae848a1-5771-4d41-ab90-05bf11f0d8a4 | WaitConditionTimeout: resources.wait_condition: 0 of 1 received                                                                                | CREATE_FAILED      | 2016-03-11T19:04:17 | my_openshift-openshift_masters-kw2jwmyxufsv-1-qz4kosbci4dx     |
| 1                                                              | a1d7ba41-5b3a-42dc-a5c0-5f240afd90c6 | WaitConditionTimeout: resources[1].resources.wait_condition: 0 of 1 received                                                                               | CREATE_FAILED      | 2016-03-11T19:04:18 | my_openshift-openshift_masters-kw2jwmyxufsv                    |
| my_openshift-openshift_masters-kw2jwmyxufsv-1-qz4kosbci4dx     | 4b4be385-33b2-4a4f-b4fd-c793246ff31b | Resource CREATE failed: WaitConditionTimeout: resources.wait_condition: 0 of 1 received                                                                    | CREATE_FAILED      | 2016-03-11T19:04:18 | my_openshift-openshift_m

It seems that it's master node where cloud-init failed, could you check /var/log/cloud-init* on the master node?

I have 3 masters, all on the packstack --allinone deployment.  Masters 0 and 2 deployed OK, but master 2 failed like this:
Looks like it has trouble creating its volume, and docker-storage-setup failed.
Mar 11 11:08:21 localhost cloud-init: Device /dev/vdb1 not found (or ignored by filtering).
Mar 11 11:08:21 localhost cloud-init: 2016-03-11 11:08:21,216 - util.py[WARNING]: Failed running /var/lib/cloud/instance/scripts/part-009 [5]
Mar 11 11:08:21 localhost cloud-init: 2016-03-11 11:08:21,217 - cc_scripts_user.py[WARNING]: Failed to run module scripts-user (scripts in /var/lib/cloud/instance/scripts)
Mar 11 11:08:21 localhost cloud-init: 2016-03-11 11:08:21,217 - util.py[WARNING]: Running module scripts-user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python2.7/site-packages/cloudinit/config/cc_scripts_user.pyc'>) failed

I'm using LVM on local storage.  Disks too slow for the application?

Ah, good catch. BTW, you can control cinder volume sizes by setting heat params:
master_docker_volume_size_gb: 25
node_docker_volume_size_gb: 25


Limit for assigning aggregated base-load profiles

The number of households for which the aggregated profiles should be used should be 30.
For buildings, the edsn are the only profile we have so we need to use those always.

https://github.com/quintel/etmoses/commit/ae2013ec9275e96bcb65b948a06215d6085a85b7

One question though, is it larger than and 30 (>=). Or just more than 30 (>)?

Doesn't matter. Both are fine.


build(deps): update dep @testing-library/react-native from 11.5.0 to 11.5.1

This PR resolves []
Description
build(deps): update dep @testing-library/react-native from 11.5.0 to 11.5.1

PR Checklist

[x] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

update dep @testing-library/react-native from 11.5.0 to 11.5.1 - gkartalis

Need help with something? Have a look at our docs, or get in touch with us.

After a convo on https://github.com/callstack/react-native-testing-library/issues/1305 realized that it is actually an issue that was breaking the tests but at the same time this issue was coming from wrapping fireEvent with act which is not needed and was causing the tests to break, fixed them all and pushed


Fix Apigee PAYG environment node config

Fixed the Node Configuration node_config for Apigee PAYG specific Environments.
Removed current_aggregate_node_count as it is a read-only field and cannot be taken as an input for the Apigee Environment Terraform resource.
Changes committed:

modified:   blueprints/cloud-operations/apigee/README.md
modified:   blueprints/cloud-operations/apigee/variables.tf
modified:   modules/apigee/README.md
modified:   modules/apigee/main.tf
modified:   modules/apigee/variables.tf
modified:   tests/blueprints/cloud_operations/apigee/fixture/variables.tf
modified:   tests/modules/apigee/fixture/variables.tf

LGTM, @danistrebel @apichick can you TAL?


Promtimer fails to start due to unknown option --storage.tsdb.no-lockfile

Environment:

Windows 11 WSL2 running Ubuntu 22.04
Prometheus version 2.31.2+ds1 (branch: debian/sid, revision: 2.31.2+ds1-1ubuntu1)

Running promtimer returns immediately:
# promtimer -p /usr/bin/prometheus
using grafana home path:/usr/share/grafana
starting prometheus server on <IP_ADDRESS>:13301 against ./stats_snapshot; logging to .promtimer/logs/prom-..log
starting grafana server (on localhost:13300; logging to .promtimer/logs/grafana.log)
#

Investigating log:
# cat .promtimer/logs/prom-..log
Error parsing commandline arguments: unknown long flag '--storage.tsdb.no-lockfile'
prometheus: error: unknown long flag '--storage.tsdb.no-lockfile'

Finding the offender:
# grep -R storage.tsdb.no-lockfile
promtimer/cbstats.py:                '--storage.tsdb.no-lockfile',

Commenting the above line from cbstats.py makes things work.

Hey Florian - sorry for the super-delayed response. I assume (hope) you were able to work around your issue by removing the offending line.
As to why you saw this - on that I have no idea. storage.tsdb.no-lockfile has been a flag available in every version of Prometheus I've ever used. (Currently I'm on 2.33.)
This flag appears to have been introduced in 2017 in this patch: https://github.com/prometheus/prometheus/commit/be32afd6df56029737cfafef82990c0cbca712ab
And is still in the code at HEAD today:
https://github.com/prometheus/prometheus/blob/bec68558ba991d28e706d3eaa0b2c4576ab9c9f6/cmd/prometheus/main.go#L325
I'm not quite sure why your version of Prometheus appears not to have this flag.
Suggest running
prometheus -h

And checking the output for the presence of the storage.tsdb.no-lockfile option. Perhaps since it's missing there'll be some explanation as to why.
Where did you get this Prometheus from? Did you follow the instructions to install on Ubuntu?
You could try downloading another binary (from https://prometheus.io/download/) and see if that works. I'd be OK putting in a "don't invoke with the no-lockfile" option to promtimer if we see this is a common situation and can understand why it happens. The reason for the no-lockfile option in the first place is that people often brutally kill promtimer (or it crashes during development) and it's a pain to have to manually clean up the lock files all the time.

I am pretty sure I installed using the Ubuntu package manager. It seems that option does not exist in that

Yes - and it looks like this is the source of the problem.
For some reason, the Ubuntu package management guys have seen fit to disable Prometheus locking by default - along with a host of other patches they apply on top of vanilla prometheus. You can see the list of patches they apply to Prometheus on Ubuntu 22 here:
https://git.launchpad.net/ubuntu/+source/prometheus/log/?h=applied/ubuntu/jammy-devel
Notable among these is this one:
https://git.launchpad.net/ubuntu/+source/prometheus/commit/?h=applied/ubuntu/jammy-devel&id=59e5bfa3d1ac026e008449e382e53694b4d328e9
Unhelpfully, the don't say why they disable the lockfile by default. But I imagine it's for the same reason that we turn it off in Promtimer - for development / single user use cases it's a bit annoying.
If you google "how to install prometheus on ubuntu", you'll notice that in all cases you'll be advised to use the package manager to install nginx and curl or wget and then download a pre-compiled binary from github and use that rather than use the package manager. Actually, for now this is what I'd recommend you do so you can remove your Promtimer patch and have confidence that you're running the same Prometheus as the rest of us.
That said, it would be nice for Promtimer to handle this missing flag on a platform like Ubuntu. Simply, I think prior to starting prometheus, I'd get the help and check for the presence of the no-lockfile option and only include it if found. I don't have time for it right now, but perhaps I'll find some soon or someone else might to add this.

Note also: you don't need to actually install Prometheus to run Promtimer. Downloading the pre-compiled binary and unzipping is sufficient. You can leave your package manager installed Prometheus in place.

Should be addressed by https://github.com/couchbaselabs/promtimer/commit/70db6a289866c44d95398c0a9ae2451e58c55462.
@floriancb : if you have time would be great if you could give it a try. If you do and it doesn't work, please let me know.


Add safari web extension support

It would be nice if the safari web extension support could be added to this plugin.
https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/SafariExtensionsConversionGuide/Chapters/Chrome.html

Please, add support for Safari extension.

+1

+1

+1

+11

+1

+1

+1

+1

+1

There is the handy :+1: thingy to upvote isues, instead of replying. This generates noise for contributor, and won't help your case :/

+1

+1

+1

+1

If someone wants to port the extension over to Safari, I'm happy to support it officially. I may get around to doing this myself eventually but prefer to wait until they support the WebExtension API.

Man, what hot garbage this is.
https://stackoverflow.com/a/52555103/1539442
So it sounds like officially, it'll have to have some kind of Swift code around it to pass messages between the browser and extension. There was a neat workaround listed using a library called JavascriptCore in Swift so you don't have to re-write all that logic, but it still looks like a big haul.

Safari 14 finally supports WebExtensions and I ported Wappalyzer over. I'm in the process of getting it onto the App Store but there are a lot of hoops to jump through.

Wappalyzer for Safari:
https://apps.apple.com/au/app/wappalyzer/id1520333300

Safari support complete.

Safari support complete.


Add gcc/clang flags

Add tpl file with common/gcc/clang warning flags

defs.bzl.tpl is an input file. You need to add these to actually configure it:
https://github.com/oliverlee/turtle/blob/master/configure.bzl
https://github.com/oliverlee/turtle/blob/master/WORKSPACE#L12
Then you actually want to make use of the options when building targets:
https://github.com/oliverlee/turtle/blob/master/BUILD#L1
https://github.com/oliverlee/turtle/blob/master/BUILD#L36
It may be worth writing wrappers for cc_binary,  cc_library,  cc_test so that it automatically applies the options.

I'll take a look at how to define the wrappers

FYI this is not "the right way" but I haven't invested enough time to figure out how to do this properly in Bazel.

I should probably squash everything and restart from zero..

Up to you. This is your repo :)

Replaced by squashed version


drawio graph generation fails with v0.2.0

Description
Drawio graph creation fails  because of missing dependency
# clab graph --drawio
INFO[0000] Parsing & checking topology file: l3.clab.yml
INFO[0000] Generating draw.io diagram with version: latest
ERRO[0000] Command execution failed: exit status 1
ERRO[0000] Command output: Traceback (most recent call last):
  File "/app/clab2drawio.py", line 5, in <module>
    from lib.Grafana import GrafanaDashboard
  File "/app/lib/Grafana.py", line 4, in <module>
    from ruamel.yaml import YAML
ModuleNotFoundError: No module named 'ruamel'
Error: failed to generate diagram: exit status 1
Output: Traceback (most recent call last):
  File "/app/clab2drawio.py", line 5, in <module>
    from lib.Grafana import GrafanaDashboard
  File "/app/lib/Grafana.py", line 4, in <module>
    from ruamel.yaml import YAML
ModuleNotFoundError: No module named 'ruamel'

# docker run -it -v "$(pwd)":/data ghcr.io/srl-labs/clab-io-draw:latest -i l3.clab.yml
Traceback (most recent call last):
  File "/app/clab2drawio.py", line 5, in <module>
    from lib.Grafana import GrafanaDashboard
  File "/app/lib/Grafana.py", line 4, in <module>
    from ruamel.yaml import YAML
ModuleNotFoundError: No module named 'ruamel'

but it works fine with the previous release
# docker run -it -v "$(pwd)":/data ghcr.io/srl-labs/clab-io-draw:v0.1.0 -i l3.clab.yml
Saved file to: l3.clab.drawio

expected result
latest version is expected to generate the drawio file.
proposed fix
add ruamel-yaml==0.18.6 to requirements.txt

What a stupid mistake from me... Thanks @rasanentimo


az login failed

Describe the bug
Run "az login" from Visual Studio Code Terminal results in
Authentication failed
access_denied: $error_description. ($error_uri)
Related command
az login
Errors
Authentication failed
access_denied: $error_description. ($error_uri)
You can log an issue at Azure CLI GitHub Repository and we will assist you in resolving it.
Issue script & Debug output

Expected behavior
Allow login
Environment Summary
azure-cli-2.51.0
Additional context
No response

Thank you for opening this issue, we will look into it.


No Route Error for Carts controller

Carts controller looks correctly set, but carts controller dumps the message No Routing Error, action show, controller carts

I fixed the problem with your route. I am the man you talked to in Facebook group (Ruby on Rails Brasil).


Package php-http/message-factory is abandoned, you should avoid using it. Use psr/http-factory instead

PHP version: x.y.z (hint: php --version) 8.1.9
Description

At the moment HttplugBundle depends on php-http/message-factory
https://github.com/php-http/HttplugBundle/blob/7c638710c3d4d4fe14de9e28e9a98c073a289cea/composer.json#L35
which was deprecated.
How to reproduce

Possible Solution

Additional context

yep, we can't avoid this without a BC break.
we did prepare in https://github.com/php-http/HttplugBundle/pull/427 , exposing the psr stuff for autowiring.
i don't have much time for OS atm, but would not be oposed to people looking into a new major version and getting rid of legacy things. the current version seems really stable - it is used in quite some places and there are very little complaints. so making 2.0 should not impact 1.x users too much as not much is going on anyways.
we could weed out quite a bit of the DI configuration code, and also simplify the documentation because we don't need to explain that much deprecated stuff anymore.

fixed in #439, will be in version 2.

Hello @dbu do you have a date to release 2.0 ? It looks like it's pretty stable, do you need help on something to release it ?

What about adding PHPStan and Easy Coding Standard (it use  PHP-CS-Fixer) to the CI ?
It will help keeping some basic rules for this repository and I think it can take care of some types requirements.
I will start creating the PR you mentioned and then see if PHPStan and ECS can be added and have any benefits.

awesome if you have time to add phpstan and fix easy issues / generate a baseline for the rest. we have it set up in https://github.com/php-http/httplug/ - if you can do it similar that will help with consistency across the repositories. :+1:


After updating to php5.6, replace 5.3 compat language features.

This issue is imported from pivotal - Originaly created at Mar 8, 2016 by Daan van Renterghem
- remove `use($self)` from Closures due to scoping changes

replace FQCN's in instanceof checks (Assertions) with ::class
replace long array syntax with short array syntax

My two cents (JS): don't replace long array syntax with short syntax, it will cause lots of noise in git blame and i don't see the benefit. (bstrooband - Jul 19, 2018)


updating waline from 1.3.8 to 1.3.9

This commit includes the 'pt-br' (lowercase) too in waline new update.
I'm having an issue where the waline is in chinese instead in pt-BR (portuguese brazilian).
I'm learning how to do this git thing to help more, if I can.
Thank you for your job! Your theme is the best. =)

Thank you, again!
Have a nice day.


add course javascript cheatsheets for beginners

What does this PR do?
Add resource(s) | Remove resource(s) | Add info | Improve repo
For resources
Description
Why is this valuable (or not)?
How do we know it's really free?
For book lists, is it a book? For course lists, is it a course? etc.
Checklist:

[x] Read our contributing guidelines
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction)

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

:information_source: NOT VALID
We appreciate your desire to want to contribute but this appears not satisfy video requirements. Please see CONTRIBUTING.md guidelines.

YouTube. We have many courses which consist of YouTube playlists. We do not list Youtube as a platform, we try to list the Youtube creator, which is often a sub-platform.
YouTube videos. We usually don't link to individual YouTube videos unless they are more than an hour long and are structured like a course or a tutorial.


from_name simplification

Should be a noop that just reduces some lines. It's a part of refactoring single-object apps.

Make lookup call from_name
Move the implementation of _hydrate_from_app into from_name

Passes all integration tests too

@prbot approve


Overload signatures are not visible in suggestions when primitive type is in union.

🔎 Search Terms
Let me explain in an example:
When I add string to a union type of other string types, I don't see the available types anymore in IntelliSense of VSCode. But it works, if I create a new overload with the primitive string only. But should be unified-signatures.
🕗 Version & Regression Information
Tested TS version 4.7.2, 5.3.2
VSCode version: 1.84.2 and TypeScript Playground
⏯ Playground Link
I have multiple demos. Please see below.
💻 Code
Demo 1
interface MyInterface {
  on(event: 'one' | 'two' | 'three', fn: () => void): void;
  on(event: 'four', fn: (value: number) => void): void;
  on(event: 'file', fn: (value: string) => void): void;
}

const obj = {} as MyInterface;

obj.on('<test here>')

▶ Playground

This works as expected. But I want to allow any other string too... See next demo.
Demo 2
interface MyInterface {
  on(event: string | 'one' | 'two' | 'three', fn: () => void): void;
  on(event: 'four', fn: (value: number) => void): void;
  on(event: 'file', fn: (value: string) => void): void;
}

const obj = {} as MyInterface;

obj.on('<test here>')

▶ Playground

Now, the suggestions are gone. Missing one, two and three. Why? Next demo...
Demo 3
interface MyInterface {
  on(event: string, fn: () => void): void;
  on(event: 'one' | 'two' | 'three', fn: () => void): void;
  on(event: 'four', fn: (value: number) => void): void;
  on(event: 'file', fn: (value: string) => void): void;
}

const obj = {} as MyInterface;

obj.on('<test here>')

▶ Playground

Now it works as expected. But ESLint unified-signatures is flagged. Is this not the same (Demo 2 and 3)? But only in Demo 3 are the suggestions retained.
🙁 Actual behavior
Please see the demos above. The suggestions are missing, when you add the common type in union.
🙂 Expected behavior
Please see the demos above. The suggestions should stay, even if you add a common type in union.
Additional information about the issue
Not sure if this is a bug, improvement/feature or VSCode issue. Or is this indented?

The type string | 'one' | 'two' | 'three' is identical to the type string (and is simplified to string).


V2.0.0 dev

[x] #59 Create multiple packages, basically one for each function.
[x]  #60 Possibility to install functions separately using npm install strman.replace for example.
[ ]  #61 Each function should return a StrmanType that contains all functions of project, thereby we could make function chains, the result of all functions on the chain should be a string.
[ ]  #62 Update TravisCI to publish project on npm when there a new merge on branch master
[ ]  #63 Create a new website

Coverage remained the same at 100.0% when pulling c528a791b1ea81fc92c2be91c53430895d61fad6 on v2.0.0-dev into 36febeb3551515b7440900624712f7c464cbdd5f on master.

Coverage remained the same at 100.0% when pulling 5b127b27f0174358c68620fbbac43d1331461263 on v2.0.0-dev into 36febeb3551515b7440900624712f7c464cbdd5f on master.

Coverage remained the same at 100.0% when pulling a4cdd1fff3b2d40505eaff1cacc6ffaa06f352bd on v2.0.0-dev into 36febeb3551515b7440900624712f7c464cbdd5f on master.

Coverage remained the same at 100.0% when pulling a4cdd1fff3b2d40505eaff1cacc6ffaa06f352bd on v2.0.0-dev into 36febeb3551515b7440900624712f7c464cbdd5f on master.

Coverage remained the same at 100.0% when pulling 155138bc53b9612d74dca5587030fc596509b93d on v2.0.0-dev into 36febeb3551515b7440900624712f7c464cbdd5f on master.

Coverage remained the same at 100.0% when pulling 96e81b3636ed991e0e743657a5db02028bc10b4d on v2.0.0-dev into 36febeb3551515b7440900624712f7c464cbdd5f on master.

Coverage remained the same at 100.0% when pulling 1c3bc65674a9c7c6dfcf2457fb14d78405b51fdd on v2.0.0-dev into 36febeb3551515b7440900624712f7c464cbdd5f on master.

Coverage remained the same at 100.0% when pulling 678be88586b0673c702bd21de95bfcf322f1b411 on v2.0.0-dev into 36febeb3551515b7440900624712f7c464cbdd5f on master.

Coverage remained the same at 100.0% when pulling 9621c873ea3108641f5248c43bdc17c12c8f6372 on v2.0.0-dev into 36febeb3551515b7440900624712f7c464cbdd5f on master.

Coverage remained the same at 100.0% when pulling 6ad8056ee7371cd440f91177599dd159f8233cae on v2.0.0-dev into 36febeb3551515b7440900624712f7c464cbdd5f on master.

Coverage remained the same at 100.0% when pulling 700e1312532eb3a0d6fc7e4cd54a19f9c139cc9d on v2.0.0-dev into 36febeb3551515b7440900624712f7c464cbdd5f on master.

Coverage remained the same at 100.0% when pulling 53938f8bdb30b25c8cc7ff5bebed1837ada87108 on v2.0.0-dev into 36febeb3551515b7440900624712f7c464cbdd5f on master.


Use static faker as global faker in tests and method local as faker w…

This will speed up tests.
Currently faker is initialized before each test and huge amount of time is spent for yaml parsing.
The PR makes faker static and initialized beforeclass to cope with this

merged as dc3fdac1770258a4ffed838f93d4282e544fe609


⚠ ClamAV has degraded performance

In b14952a, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 468 ms

Resolved: ClamAV performance has improved in d66a078.


minor punctuation fix

The reason for the change might be obvious, but just in case it's not immediately obvious, here's the slightly verbose explanation:
"Let's" (with an apostrophe) means "let us".  For example, "let's eat pizza" or "let's write a cool Ruby app using this awesome gem from Dr. Nic".
"Lets" on the other hand (without the apostrophe) is the verb "to let" conjugated for the third person singular.

He lets the dog sit on his bed.

Your tiny fixes of my grammar are very welcome :)

Your tiny fixes of my grammar are very welcome :)

Thanks!


Update README.md

add DWDS-Kernkorpus in list

Please put you choice at a correct place (alphabetic order).


Added .svn & .hg to directory ignores.

Added .svn & .hg to directory ignores.
Also added *.bak to git ignores.
Addresses #25

Thanks!


Images are missing

In https://dfhawthorne.github.io/home/procedures/install-linux/install-ubuntu16-04-lts-server.html, the images are missing - there are only placeholders.

In install-ubuntu16-04-lts-server.html, there is a widget:
<img src="../../../home/procedures/install-linux/install-ubuntu16-04-lts-server/ubuntu_select_language.png"/>

However, there is no subdirectory, docs/home/procedures/install-linux/install-ubuntu16-04-lts-server/.
It would appear that in my fix for issue #2, I did not create the necessary sub-directories for copying of resources out of the _/rsrc directory tree.


⚠ Bofrost.de has degraded performance

In b9d9038, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1845 ms

Resolved: Bofrost.de performance has improved in 12fcd62.


Proper handling of complex numbers and failures

__findmin ignores NaNs
TR returns ConvergenceFailure if it stops due to shrinking
complex numbers gave a complex abstol/reltol
TR solves an ill conditioned GN step which is not needed.
Test for an infeasible case!
Reworks the Termination Conditions and makes everything type stable (if chunksize and such are specified)!
Return Codes are more meaningful

TODO

[x] Delete the Manifest before merging
[x] https://github.com/JuliaDiff/SparseDiffTools.jl/pull/271
[x] https://github.com/SciML/DiffEqBase.jl/pull/954

Builds off https://github.com/JuliaDiff/SparseDiffTools.jl/pull/271 & https://github.com/SciML/DiffEqBase.jl/pull/954

@ChrisRackauckas this should be good to go


prometheus v2.7.1 does not support storage.tsdb.retention

In prometheus v2.7.1, storage.tsdb.retention is DEPRECATED;but for now, the master branches does not support the new arg 【storage.tsdb.retention.time】; when this arg can bu supported?

@paulfantom you want to give this a shot? All we need to do is starting from v2.7.0 or higher use the new flag and only below that use the old (now deprecated) flag.

Sure, it is in https://github.com/coreos/prometheus-operator/pull/2534

This took some time but as of now it is included in master branch.


Explanation on the implicit messaging code

Hi, I'm new to EIP in general, and from what I understood (please, correct me if i'm wrong), I specify what I want to get from the device and the device then sends data back to the client.
is this even the correct explanation?
either way, do you mind explaining what is happening in the implicit messaging example you provided? what is the instanceID 101 or 100?
This is a non-issue, more of a discussion or QnA, but this was the only place I found contact availability..

I specify what I want to get from the device and the device then sends data back to the client.

yes, you can get values from device though send 'GetAttribute' command.

Control Techniques's a some device family is using 101, 100 as InstanceID.
101 means destination of sending data.
100 is source from reading data.
Each ids (e.g. AseemblyID, InstanceID) are different by each device product, model, maker.
Please ask to maker or check device technical document.

Thanks for the quick reply!
As I understand from a little research and your answer, there's usually some fixed instance ID of an assembly that contains the data that the scanner/client receives (for example, real values of certain parameters).
I also found that devices usually specify a way to change that data. for example, I found that through explicit messaging, I can tell the device "don't send me the X parameter, send the Y parameter" and from that moment on, the implicit messages will contain different data from the default.
Is this correct?


using the cassandra output fails

Hi there,
I build the gem file on a debian and when using it in logstash it fails with the following message:
/usr/bin/java -Djava.io.tmpdir=/var/lib/logstash -Xmx2G -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Djava.awt.headless=true -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -jar /opt/logstash/vendor/jar/jruby-complete-1.7.17.jar -I/opt/logstash/lib /opt/logstash/lib/logstash/runner.rb agent -f /etc/logstash/conf.8 -l /var/log/logstash/logstash8.log --debug --verbose
Sending logstash logs to /var/log/logstash/logstash8.log.
Using milestone 2 input plugin 'redis'. This plugin should be stable, but if you see strange behavior, please let us know! For more information on plugin milestones, see http://logstash.net/docs/1.4.4/plugin-milestones {:level=>:warn}
Using milestone 1 output plugin 'cassandra'. This plugin should work, but would benefit from use by folks like you. Please let us know if you find bugs or have suggestions on how to improve this plugin.  For more information on plugin milestones, see http://logstash.net/docs/1.4.4/plugin-milestones {:level=>:warn}
LoadError: no such file to load -- cassandra_murmur3
require at org/jruby/RubyKernel.java:1071
require at /opt/logstash/vendor/jar/jruby-complete-1.7.17.jar!/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55
require at /opt/logstash/vendor/jar/jruby-complete-1.7.17.jar!/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:53
require at /opt/logstash/vendor/bundle/jruby/1.9/gems/polyglot-0.3.4/lib/polyglot.rb:65
(root) at /opt/logstash/vendor/bundle/jruby/1.9/gems/cassandra-driver-2.1.4/lib/cassandra.rb:565
require at org/jruby/RubyKernel.java:1071
require at /opt/logstash/vendor/jar/jruby-complete-1.7.17.jar!/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:73
require at /opt/logstash/vendor/jar/jruby-complete-1.7.17.jar!/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:71
require at /opt/logstash/vendor/bundle/jruby/1.9/gems/polyglot-0.3.4/lib/polyglot.rb:65
(root) at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-cassandra-0.1.0/lib/logstash/outputs/cassandra.rb:1
each at org/jruby/RubyArray.java:1613
register at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-cassandra-0.1.0/lib/logstash/outputs/cassandra.rb:60
outputworker at /opt/logstash/lib/logstash/pipeline.rb:220
Any ideas why? The cassandra-drive is installed.

Ok...found the issue. The driver was missing after all from the jruby installation.
Ended up doing something like java -jar /opt/logstash/vendor/jar/jruby-complete-1.7.17.jar -S gem install logstash-output-cassandra-0.1.0.gem
Plus also checkout the git from ruby-driver and building using bundle gem..
Now the output is loaded correctly but I still don't see any inserts into the db...

Hello Valentin,
It's possible that cassandra output waits payload from event[message] (source => "message") and configured ignore bad message ( ignore_bad_messages => true), but the payload itself is located somewhere else.

BTW During debugging i ran logstash as:
cat query_log.52.csv.short | /opt/logstash/bin/logstash -f logstash.cfg -v

in most cases it reveals all problems immediately, at least for me
also my test conf can give you a clue:
input {
    stdin {
    }
}
filter {
  mutate {
     split => { "message" => "<{TERM}>" }
  }
  ruby {
        code => '
ret = {}
{
        0 => "id",
        1 => "at",
        2 => "duration",
        3 => "resellerId",
        4 => "username",
        5 => "ip",
        6 => "cmd",
        7 => "args",
        8 => "errno",
        9 => "error",
        10 => "warns",
        11 => "input",
        12 => "output",
        13 => "value",
        14 => "md5",
        15 => "eppTrid",
        16 => "src",
}.each {|key, value|
        v = event["message"][key].sub(/^"/, "").sub(/"$/, "")
        if (v != "" && v != "\\N")
                ret[value] = v
        end
}
ret["date"] = DateTime.parse(ret["at"]).strftime("%F")
event["message"] = ret
'
  }
}
output {
#    stdout {
#       codec => rubydebug
#    }
    cassandra {
#       consistency => "one"
        username => "111"
        password => "111"
        hosts => ["host1", "host2"]
        keyspace => "logs"
        table => "query_log"
        source => "message"
        hints => {
            id => "int"
            at => "timestamp"
            resellerId => "int"
            errno => "int"
            duration => "float"
            ip => "inet"}
        ignore_bad_messages => true
        ignore_bad_values => true
        batch_size => 2000
        retry_delay => 3
        max_retries => 1
        #timeout => 20

    }
}

If you provide an info on your cassandra schema and logstash conf and i have enough time i will tru to reproduce the issue under ubuntu
Oleg

Hi,
Thank you for the fast reply! After turning ignore_bad_messages to false things it started complaining about nil values for the key:
NoMethodError: undefined method `key?' for nil:NilClass
  convert2cassandra_format! at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-cassandra-0.1.0/lib/logstash/outputs/cassandra.rb:203
                       each at org/jruby/RubyHash.java:1341
  convert2cassandra_format! at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-cassandra-0.1.0/lib/logstash/outputs/cassandra.rb:202
                    receive at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-cassandra-0.1.0/lib/logstash/outputs/cassandra.rb:126
                     handle at /opt/logstash/lib/logstash/outputs/base.rb:86
                 initialize at (eval):55
                       call at org/jruby/RubyProc.java:271
                     output at /opt/logstash/lib/logstash/pipeline.rb:266
               outputworker at /opt/logstash/lib/logstash/pipeline.rb:225
              start_outputs at /opt/logstash/lib/logstash/pipeline.rb:152

So you are pretty right on the idea that there is nothing there to be taken and inserted into cassandra.
My configuration is the following
input {
redis {
    host => "logstash-queue.local"
    data_type => "list"
    key => "soap-logs-cassandra"
    password => "local"
    port => "6379"
  }
}

filter {
grok
{
    match => [ "message","%{SPACE:garbage}%{DATA:timestamps} \(%{DATA:transaction_id}\) \[%{DATA:client_ip}\] %{GREEDYDATA:command}"]
    overwrite => [ "message" ]
    tag_on_failure => []
}
mutate
{
   remove_field => [ "message", "timestamp", "program", "type", "host", "path", "@version", "@timestamp", "garbage" ]
}
}

output {
    cassandra {
        username => "user_local"
        password => "local"
        hosts => ["<IP_ADDRESS>"]
        keyspace => "logstash_soap"
        table => "query_log"
        consistency => "all"
        source => "command"
        hints => {
            logsource => "varchar"
            timestamps => "timestamp"
            transaction_id => "varchar"
            client_ip => "inet"
            command => "text"
	         }
        ignore_bad_messages => false
        ignore_bad_values => true
        batch_size => 100
        batch_processor_thread_period => 1
        max_retries => 3
        retry_delay => 3
    }
stdout { codec => rubydebug }
}

The messages that I need to insert into cassandra look like this ( I make them into fields)
This is an stdout with rubydebug:
         "logsource" => "soap3.cc.local", # hostname, using varchar
        "timestamps" => "20150807.074434.78", # timestamp
    "transaction_id" => "00026594", # using text
         "client_ip" => "<IP_ADDRESS>", # always inet 4/6
           "command" => "[0] rollback" # text, can be anything

The original message looks like this:
20150807.074438.63 (00019509) [<IP_ADDRESS>] response: [get_next_bulk] data: {\"firma1\":\"\",\"vergabedatum\":\"20060328\",\"firma2\":\"\",\"telg2\":\"\",\"anlage_user\":\"nic\",\"state\":0,\"ansprechpartner2\":\"\",\"domain\":\"test.at\",\"fax\":\"\",\"ticketno\":\"201508070730.5645456456\",\"invoicetype\":null,\"bulkbezeichnung\":\"564894564\",\"kunden__nr\":null,\"suchbegriff\":\"Red GmbH\",\"uid\":\"\",\"abteilung\":\"\",\"plz\":\"\",\"e__mail\":\"\",\"ansprechpartner1\":\"\",\"leistungscode\":\"X\",\"mobil\":\"\",\"land\":\"\",\"telg1\":\"\",\"ort\":\"\",\"strasse\":\"\",\"anlage_datum\":\"07.08.2015 07:30:38\"}

My cassandra table that I want to insert in, is the following:
cqlsh:logstash_soap> DESCRIBE TABLE query_log

CREATE TABLE query_log (
  logsource text,
  timestamps timestamp,
  transaction_id text,
  client_ip inet,
  command text,
  PRIMARY KEY (logsource, timestamps, transaction_id, client_ip, command)
) WITH
  bloom_filter_fp_chance=0.010000 AND
  caching='{"keys":"ALL", "rows_per_partition":"NONE"}' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  read_repair_chance=0.000000 AND
  default_time_to_live=0 AND
  speculative_retry='99.0PERCENTILE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};

Sorry for the long comment, could you help me with the inserting of the data please? I'm not sure how to structure it to be sent correctly.
Thank you!

Hi Valentin,
I have emulated redis input by echoing the message you provided to "input {stdin {}}".
1/ remove source="command" from the config, because it seems that a payload resides immediately in event not in event[command]
2/ after the change cassandra yielded: Missing mandatory PRIMARY KEY part logsource, probably logsource also should be added in input.

About:
NoMethodError: undefined method `key?' for nil:NilClass

I feel awkward to show such things to users for sure :) and will change it for something more human readable soon. Thank you!
Oleg

master updated with tiny fixes related to the issue.. if something goes dramatically weird, just rollback to tag 0.1.0

Hi Oleg,
Thank you for support and sorry for the late response!
I've made the configuration changes that you suggested and I'm now able to insert the values into cassandra! :)
I have only one issue left, that is looking kind of strange.
The timestamp that I'm using is not being inserted correctly into the db for some reason. If I look into the logs, logstash is complaining about it in the following way:
{:timestamp=>"2015-08-27T12:53:37.702000+0200", :message=>"Cannot convert `timestamps` value (`2015-08-27 12:53:35 UTC`) to `timestamp` type, set to `1970-01-01 00:00:00 +0100`", :exception=>#<NoMethodError: undefined method `gsub!' for "2015-08-27T12:53:35.960Z":Time>, :backtrace=>["/opt/logstash/vendor/jar/jruby-complete-1.7.17.jar!/META-INF/jruby.home/lib/ruby/1.9/date/format.rb:839:in `_parse'", "/opt/logstash/vendor/jar/jruby-complete-1.7.17.jar!/META-INF/jruby.home/lib/ruby/1.9/time.rb:265:in `parse'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-cassandra-0.1.1/lib/logstash/outputs/cassandra.rb:213:in `convert2cassandra_format!'", "org/jruby/RubyHash.java:1341:in `each'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-cassandra-0.1.1/lib/logstash/outputs/cassandra.rb:206:in `convert2cassandra_format!'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-cassandra-0.1.1/lib/logstash/outputs/cassandra.rb:131:in `receive'", "/opt/logstash/lib/logstash/outputs/base.rb:86:in `handle'", "(eval):72:in `initialize'", "org/jruby/RubyProc.java:271:in `call'", "/opt/logstash/lib/logstash/pipeline.rb:266:in `output'", "/opt/logstash/lib/logstash/pipeline.rb:225:in `outputworker'", "/opt/logstash/lib/logstash/pipeline.rb:152:in `start_outputs'"], :level=>:warn, :file=>"logstash/outputs/cassandra.rb", :line=>"265", :method=>"convert2cassandra_format!"}

My data looks like this:
{
         "logsource" => "panda3.host",
        "timestamps" => "2015-08-27T13:03:50.400Z",
    "transaction_id" => "00006064",
         "client_ip" => #<IPAddr: IPv4:<IP_ADDRESS>/<IP_ADDRESS>>,
           "command" => "[0] rollback"
}

The timestamp gets converted from "2015-08-27T13:03:50.400Z" to "1970-01-01T00:00:00.000+01:00". I've tried a manual insert into cqlsh and it works without any problem.
Any hits on why is this failing ?
Thank you!

Ok, after looking at the code a little, I found the following line responsible for the parsing of the timestamp:
            when 'timestamp'
              Cassandra::Types::Timestamp.new(Time::parse("1970-01-01 00:00:00"))

Not sure why it's failing yet, but still investigating...

I've made some changes to the code, more exactly removing the ::Parse function from the timestamp and just inserting it plain and now my timestamp is being inserted correctly.
These seems dirty and unsafe and I think there should be a better fix. If you have the time and pleasure maybe you can do it more nicer, safer, better.

Hi Valentin,
I tried to reproduce the issue but without any success. :(
Cassandra::Types::Timestamp.new() seems refuses string as input
#  jruby -S irb
jruby-1.7.19 :001 > require "cassandra"
...
jruby-1.7.19 :007 > Cassandra::Types::Timestamp.new("2014-09-09 12:12:12")
ArgumentError: cannot convert "2014-09-09 12:12:12" to timestamp
        from /usr/local/rvm/gems/jruby-1.7.19/gems/cassandra-driver-2.1.4-java/lib/cassandra/types.rb:187:in `new_timestamp'
        from /usr/local/rvm/gems/jruby-1.7.19/gems/cassandra-driver-2.1.4-java/lib/cassandra/types.rb:58:in `new'
        from (irb):7:in `evaluate'
        from org/jruby/RubyKernel.java:1107:in `eval'
        from org/jruby/RubyKernel.java:1507:in `loop'
        from org/jruby/RubyKernel.java:1270:in `catch'
        from org/jruby/RubyKernel.java:1270:in `catch'
        from /usr/local/rvm/rubies/jruby-1.7.19/bin/jirb:13:in `(root)'
jruby-1.7.19 :008 > Cassandra::Types::Timestamp.new(Time::parse("2014-09-09 12:12:12"))
 => 2014-09-09 12:12:12 +0200
jruby-1.7.19 :009 >

or did you remove whole "Cassandra::Types::Timestamp.new(Time::parse(" and left a date string only?
Could you please provide a snippet of your changes here?

Hi Oleg,
My LS configuration is the following
input {
redis {
    host => "logstash-queue"
    data_type => "list"
    key => "soap-logs-cassandra"
    password => "asdjkh34"
    port => "6379"
  }
}

filter {
grok
{
    match => [ "message","%{SPACE:garbage}%{DATA:timestamps} \(%{DATA:transaction_id}\) \[%{DATA:client_ip}\] %{GREEDYDATA:command}"]
    overwrite => [ "message" ]
    tag_on_failure => []
}
date {
match => [ "timestamps", "yyyyMMdd.HHmmss.SS" ]
target => "timestamps"
}
mutate
{
   remove_field => [ "message", "timestamp", "program", "type", "host", "path", "@version", "garbage", "@timestamp" ]
}
}

output {
    cassandra {
        username => "cass"
        password => "39sj34"
        hosts => ["<IP_ADDRESS>"]
        keyspace => "logstash_soap"
        table => "query_log"
        consistency => "all"
        hints => {
            logsource => "varchar"
            timestamps => "timestamp"
            transaction_id => "varchar"
            client_ip => "inet"
            command => "text"
	        }
        ignore_bad_messages => true
        ignore_bad_values => true
        batch_size => 100
        batch_processor_thread_period => 1
        max_retries => 3
        retry_delay => 3
    }
}

The issue was related to the timestamp being converted from a form like 20150807.074434.78 to a form that is accepted by cassandra, ex 2015-01-01T01:01:01.400Z.
So I ended up changing the following lines of code:
Cassandra::Types::Timestamp.new(msg[key])
Cassandra::Types::Timestamp.new("2015-01-01T01:01:01.400Z")

So now my data is coming in cassandra how I need it and it looks like this
cqlsh:logstash_soap> SELECT logsource,transaction_id, blobAsBigint(timestampAsBlob(timestamps)), transaction_id,client_ip, command FROM query_log WHERE timestamps >= '2015-08-31 07:50:09+0200' AND timestamps <= '2015-08-31 08:50:10+0200' LIMIT 1 ALLOW FILTERING;

 logsource              | transaction_id | system.blobasbigint(system.timestampasblob(timestamps)) | transaction_id | client_ip     | command
------------------------+----------------+---------------------------------------------------------+----------------+---------------+------------------------------------------------------------------
 panda1 |       00003387 |<PHONE_NUMBER>660 |       00003387 | <IP_ADDRESS> | command:  [get_person_data] args: {"person":"XNSG534630-X"}

Or no miliseconds...
cqlsh:logstash_soap> SELECT * FROM query_log WHERE timestamps >= '2015-08-31 07:50:09+0200' AND timestamps <= '2015-08-31 08:50:10+0200' LIMIT 1 ALLOW FILTERING;

 logsource              | timestamps               | transaction_id | client_ip     | command
------------------------+--------------------------+----------------+---------------+------------------------------------------------------------------
 panda1 | 2015-08-31 08:41:26+0200 |       00003387 | <IP_ADDRESS> | command:  [get_person_data] args: {"person":"XNSG534630-X"}

Gentlemen , I have the file below as a source of example :
name: Gabriel
name: PEDRO
My configuration file is as follows:
input {
stdin {
}
}
filter {
grok {
match => [ "message", "name: %{WORD:custom_name}" ]
}
mutate {
lowercase => [ "custom_name" ]
}
date {
match => [ "timestamps", "yyyyMMdd.HHmmss.SS" ]
target => "timestamps"
}
mutate
{
remove_field => [ "message", "timestamp", "program", "type", "host", "path", "@version", "garbage", "@timestamp" ]
}
}
output {
cassandra {
hosts => ["<IP_ADDRESS>"]
username => "cassandra"
password => "cassandra"
hints => {
nome => "text"
}
consistency => "one"
keyspace => "syslog"
table => "input"
ignore_bad_messages => false
ignore_bad_values => true
}
stdout { codec => rubydebug }
}
However not get success in cassandra insertion log follows below:
[root@dbfaz01p bin]# cat /var/log/teste.txt | ./logstash -f cassandra3.conf
plugin is using the 'milestone' method to declare the version of the plugin this method is deprecated in favor of declaring the version inside the gemspec. {:level=>:warn}
Logstash startup completed
{
"custom_name" => "gabriel"
}
{
"custom_name" => "pedro"
}
Failed to send batch (error: Unknown identifier custom_name). Schedule it to send later. {:level=>:warn}
Failed to send batch (error: Unknown identifier custom_name). Schedule it to send later. {:level=>:warn}
Failed to send batch again (error: unsupported statement nil). Reschedule it. {:level=>:warn}
Failed to send batch again (error: unsupported statement nil). Reschedule it. {:level=>:warn}
^CSIGINT received. Shutting down the pipeline. {:level=>:warn}
^CSIGINT received. Terminating immediately.. {:level=>:fatal}
If anyone can help me I am very grateful.

I got success !


MM-43277: fix channel actions modal dropdown cutoffs/overflows

Summary
RunPlaybookChildren & CategorySelector use react-select directly. It's built-in portal behavior isn't active by default. Our GenericModal is set at zIndex: 1040, and portals directly to document.body by default.

fix: Channel Actions modal dropdowns—portal and zIndex to 1041 (https://github.com/mattermost/mattermost-plugin-playbooks/commit/a3f6cf590f9cf488bc55cea0cd9e5687b32b3b93)

extra:

aside: drop internal Portal and use FloatingPortal (https://github.com/mattermost/mattermost-plugin-playbooks/commit/fbe17969ecf4ca92ec9a20784b8a8b3e7c13604e, https://github.com/mattermost/mattermost-plugin-playbooks/commit/3a729183d9c7675e47506e6d8893bb0c4d0aa2c9)
affected: checklist & checklist_item drag&drop, but nothing has changed
aside: use auto update functionality in DotMenu—e.g. flip on scrolling when near viewport edge (https://github.com/mattermost/mattermost-plugin-playbooks/commit/2ed38965842a52a99afcdd1f10068678f4651c7f)

Screenshots

before
after

-

-

Ticket Link

https://mattermost.atlassian.net/browse/MM-43277

Checklist

Item
Y / N / NA [^1]

Telemetry updated?
N

Gated by experimental feature flag?
N

Unit/E2E tests updated?
https://github.com/mattermost/mattermost-plugin-playbooks/pull/1418/commits/141254c36e7d64f4bba12ac4f6961ab53e651fb8

[^1]: Yes / No / Not Applicable.

Alright, so a little bit of retooling here as react-select's built in portal functionality causes a few issues with jump-glitches and unanchored positioning on scroll:

Fixed by removing the portaling and letting react-select just open up or down automatically, and then using the overflow: visible approach instead of inner scrollbars. (This makes the outer modal scroll on short screens)

Also included is a fix to make all GenericModals in Playbooks to work on short and narrow screens. (No more negative margin hacks!) 2/3s of freespace goes below, and 1/3 goes above the modal to float in a nice position at all viewport heights.


nodejs: 10.23.3 -> 10.24.0, 12.20.2 -> 12.21.0, 14.15.5 -> 14.16.0, 15.9.0 -> 15.10.0

Motivation for this change
https://nodejs.org/en/blog/vulnerability/february-2021-security-releases/
Things done

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

[x] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

LGTM

Backport was in 1b09f6edba849b7e58e2dce1b95b3cf04ed5ba95..211ff32f0a2d6b8d3ab70a918d125f88ba3e991b.


Add Google Tag support

As a member of the marketing team, I'd like to manage ad campaign tracking via Google Tag Manager -- similar to what we did on xPRO.
Acceptance Criteria:

[x] Add boilerplate support for GTM
[x] Create GTM and GA accounts for CI/RC
[ ] Add GTM key for CI and RC to salt-ops
[ ] Create GTM and GA accounts for production
[ ] Add GTM key for Production to salt-ops

Out of Scope

Since there is no ecommerce yet on this site, we can't track any ecommerce events.

@pdpinch Can you share the details of the Test Google Tag Manager/Google Analytics that has been set up?
This might include:

GTM Tracking ID (Could be taken from the GTM project console, it would be something like GTM-XXXXXXX)
Google Analytics ID (Could be taken from the created property on Analytics Console
And developer access so that I could see the logged events

LGTM 👍 ,
Not related to this PR perhaps but I noticed one thing, we have defined gtm_tracking_id and ga_tracking_id in AppContextSerializer but we do not have any endpoint or usability in this project. maybe in the later requirements.
class AppContextSerializer(serializers.Serializer):
    """Serializer for the application context"""

    public_path = serializers.SerializerMethodField()
    gtm_tracking_id = serializers.SerializerMethodField()
    ga_tracking_id = serializers.SerializerMethodField()

Updated the description with some more acceptance criteria

@pdpinch

Add GTM key for CI and RC to salt-ops

Regarding the above, I don't think we have CI yet but for RC keys addition on salt-ops I did create & merge a PR recently https://github.com/mitodl/salt-ops/pull/1458

@pdpinch FYI, I've checked some boxes but definitely let me know when this ticket can be closed.

@pdpinch I believe that acceptance criteria have been met and I'm closing this ticket, Obviously, reopen if needed.


GEODE-8700: Add the ability to change PR

Added setPartitionResolver method to region's attribute mutator, so the
partition resolver can be changed after the region has been created.
Added UT to verify that PR is correctly changed.

Maybe @moleske @pivotal-jbarrett @mreddington @pdxcodemonkey you could throw some comments?
Thanks!

@gaussianrecurrence on further inspection I have concerns about the methods being added to to the internal region since they only apply to partitioned regions. I am also concerned about the thread safety of changing the resolver after the region is initialized. I have added @pdxcodemonkey as a reviewer because I don't have the bandwidth right now to investigate this. I would also suggest you look at the Java implementation for inspiration. Can the Java version mutate the partition resolver?

@gaussianrecurrence on further inspection I have concerns about the methods being added to to the internal region since they only apply to partitioned regions. I am also concerned about the thread safety of changing the resolver after the region is initialized. I have added @pdxcodemonkey as a reviewer because I don't have the bandwidth right now to investigate this. I would also suggest you look at the Java implementation for inspiration. Can the Java version mutate the partition resolver?

Regarding your concern about adding this to RegionInternal, thing is as I've seen there is no distinction in NC between partitioned regions and no-partitioned regions in terms of modularization, please correct me if I am wrong.

Regarding thread safety, it turns out you are right, I originally thought that calling reset/operator= on a shared_ptr was thread-safe, but this is not the case, as I've read. So that shared_ptr will need to be protected by a RW lock. Other than that, is thread safe and let me explain. If thread A takes a copy of PR1 and thread B, replaces the PR by PR2, any thread requesting the PR will get PR2 after that, so it would happen that one requests are using one PR and others the new one, but that's what's expected.

And as for the Java API, I don't think I've seen any implementation allowing to change PR on the fly. Still, I would like to point out that Java has reflection, which currently C++ lacks of. The reason why I bring reflection up is because, the only way right now to specify a PR while declaratively defining a cache is by creating a separate shared library which is not quite much elegant.
My first idea for implementing this was to introduce something like a generic "ExtensionRegistry" in which you could register "Extensions" uniquely identified by a name. But the problem with that approach was that the change was too big and implied several additions to the API, which as of we are all aware, is not a good thing.
So that's why I went for the attributes mutator approach.

I am not sure I understand the motivation. Are you saying that you want to define the region in cache.xml and then later mutate it from the API? I am not sure how safe this would be given the general immutable nature of the region objects. What is the motivation to split the configuration this way. Our general recommendation is to use the API over the XML configuration anyway. The server is moving away from the XML configuration to cluster config and API config. The API provides the ability to provide an instantiated by the call instance of the resolver where the API must use "reflection" of sorts to new one up so context is disconnected with the application.

I am not sure I understand the motivation. Are you saying that you want to define the region in cache.xml and then later mutate it from the API? I am not sure how safe this would be given the general immutable nature of the region objects. What is the motivation to split the configuration this way. Our general recommendation is to use the API over the XML configuration anyway. The server is moving away from the XML configuration to cluster config and API config. The API provides the ability to provide an instantiated by the call instance of the resolver where the API must use "reflection" of sorts to new one up so context is disconnected with the application.

Use case here is that we would like to have sort of a registry of partition resolvers, which we define in our application and in the cache XML file we specify which one of them we use for each partitioned region. That would be the ideal way of doing it. This way we only need to register all the partition resolvers we want to use.
Also using a shared library is a no go as the application is basically a microservice, hence the less artifacts we have the better.
I was not aware of the fact that the client was also moving away from declarative cache definition. If that's the case, there is no argument I can give you that justifies allowing to mutate the partition resolver.
So being that the case, unless you think there is a possibility to see this implemented and accepted by the community, I guess I am closing the PR?
Thanks for putting some time on this!

Use case here is that we would like to have sort of a registry of partition resolvers, which we define in our application and in the cache XML file we specify which one of them we use for each partitioned region. That would be the ideal way of doing it. This way we only need to register all the partition resolvers we want to use.
Also using a shared library is a no go as the application is basically a microservice, hence the less artifacts we have the better.

I get wanting to declare them in the XML so again I don't get why need this PR to make the region resolver mutable. If the resolver is defined in the XML then it should work as designed.
I think what your real issue is that if you have the classes defined in your application how do you declare them in the XML if the XML config expects a shared library name and symbol name for factory. That is something we could easily fix. How about allowing the library name to be optional. If there is no library name then the symbol lookup would happen in the current application space. I think that is possible.

Use case here is that we would like to have sort of a registry of partition resolvers, which we define in our application and in the cache XML file we specify which one of them we use for each partitioned region. That would be the ideal way of doing it. This way we only need to register all the partition resolvers we want to use.
Also using a shared library is a no go as the application is basically a microservice, hence the less artifacts we have the better.

I get wanting to declare them in the XML so again I don't get why need this PR to make the region resolver mutable. If the resolver is defined in the XML then it should work as designed.
I think what your real issue is that if you have the classes defined in your application how do you declare them in the XML if the XML config expects a shared library name and symbol name for factory. That is something we could easily fix. How about allowing the library name to be optional. If there is no library name then the symbol lookup would happen in the current application space. I think that is possible.

You are right

Use case here is that we would like to have sort of a registry of partition resolvers, which we define in our application and in the cache XML file we specify which one of them we use for each partitioned region. That would be the ideal way of doing it. This way we only need to register all the partition resolvers we want to use.
Also using a shared library is a no go as the application is basically a microservice, hence the less artifacts we have the better.

I get wanting to declare them in the XML so again I don't get why need this PR to make the region resolver mutable. If the resolver is defined in the XML then it should work as designed.
I think what your real issue is that if you have the classes defined in your application how do you declare them in the XML if the XML config expects a shared library name and symbol name for factory. That is something we could easily fix. How about allowing the library name to be optional. If there is no library name then the symbol lookup would happen in the current application space. I think that is possible.

Regarding mutating the partition resolver, we are on the same point, it's not ideal, and I will abandon this approach.
Regarding looking into the application space, that's a great idea, which I've already tested and it's working. So I will push a change with it.

Closing this PR based on the conversation above. Looking forward to a PR that fixes the factory lookup logic.


Uncaught TypeError: Cannot read property 'scrollTop' of null

[Enter steps to reproduce below:]

split the markdown code pane horizontally (3 panes in view like E[])
drag preview pane header & drop at new split pane (everything auto-changes to 2 horizontal panes)
scroll preview pane (throws error)

Atom Version: 1.7.2
System: Mac OS X 10.11.4
Thrown From: atom-markdown-katex package, v0.5.4
Stack Trace
Uncaught TypeError: Cannot read property 'scrollTop' of null
At /Users/ram/.atom/packages/atom-markdown-katex/lib/md-preview.js:244

TypeError: Cannot read property 'scrollTop' of null
    at HTMLDivElement.htmlView.onscroll (/Users/ram/.atom/packages/atom-markdown-katex/lib/md-preview.js:244:30)

Commands
     -2:39.8.0 ruby-string-interpolation:insert (atom-text-editor.editor.is-focused)
     -2:39.3.0 core:save (atom-text-editor.editor.is-focused)
 13x -2:23.4.0 editor:move-line-up (atom-text-editor.editor.is-focused)
     -2:19.7.0 editor:move-line-down (atom-text-editor.editor.is-focused)
  2x -2:13.3.0 sort-lines:sort (atom-text-editor.editor.is-focused)
     -1:57.1.0 core:backspace (atom-text-editor.editor.is-focused)
 17x -1:45.6.0 editor:move-line-down (atom-text-editor.editor.is-focused)
     -1:39.5.0 editor:move-line-up (atom-text-editor.editor.is-focused)
     -1:38.5.0 editor:move-line-down (atom-text-editor.editor.is-focused)
     -1:38 editor:move-line-up (atom-text-editor.editor.is-focused)
     -1:30.7.0 sort-lines:sort (atom-text-editor.editor.is-focused)
     -1:22.3.0 core:save (atom-text-editor.editor.is-focused)
     -0:58.8.0 ruby-string-interpolation:insert (atom-text-editor.editor.is-focused)
     -0:57.3.0 core:backspace (atom-text-editor.editor.is-focused)
     -0:56.4.0 core:save (atom-text-editor.editor.is-focused)
  2x -0:20.3.0 tabs:split-down (div.title.icon.icon-markdown)

Config
{
  "core": {
    "disabledPackages": [
      "highlight-column",
      "indent-guide-improved",
      "tree-view-git-status",
      "linter-ruby-reek",
      "rails-model-schema",
      "linter-ruby",
      "markdown-preview",
      "markdown-pdf",
      "markdown-preview-plus",
      "markdown-scroll-sync"
    ],
    "projectHome": "/Users/ram/work/projects",
    "themes": [
      "native-ui",
      "base16-tomorrow-dark-theme"
    ]
  },
  "atom-markdown-katex": {
    "exportPDFPageFormat": "A4",
    "printBackground": false,
    "useGitHubStyle": true,
    "useGitHubSyntaxTheme": true
  }
}

Installed Packages
# User
Sublime-Style-Column-Selection, v1.5.1
aligner, v0.22.0
aligner-ruby, v1.4.0
atom-beautify, v0.29.7
atom-everydayrails-rspec, v0.4.0
atom-markdown-katex, v0.5.4
auto-indent, v0.5.0
autoclose-html, v0.23.0
autocomplete-html-entities, v0.1.0
autocomplete-json, v1.9.1
autocomplete-python, v1.7.2
autocomplete-ruby, v0.1.0
coffee-compile, v0.21.1
color-picker, v2.1.1
cucumber, v0.5.0
cucumber-autocomplete, v0.6.3
emmet, v2.4.3
esformatter, v1.25.0
file-icons, v1.7.8
fonts, v1.2.0
formatter-coffeescript, v0.1.1
git-diff-details, v1.3.0
go-to-view, v0.3.0
javascript-snippets, v1.2.1
jsformat, v0.9.3
jshint, v1.8.5
language-javascript-semantic, v0.2.1
line-diff-details, v1.2.0
linter, v1.11.4
linter-coffeescript, v1.0.0
linter-jshint, v2.1.0
markdown-table-formatter, v2.8.3
markdown-writer, v2.3.3
merge-conflicts, v1.4.2
native-ui, v0.17.0
pdf-view, v0.50.0
pigments, v0.26.0
project-manager, v2.9.7
rails-i18n, v0.1.3
rails-i18n-autocomplete, v0.3.0
react, v0.15.0
ruby-block, v0.3.5
ruby-block-converter, v3.5.0
ruby-string-interpolation-atom-1, v0.2.0
ruby-syntax-replacer, v0.5.1
ruby-test-switcher, v1.2.1
sort-lines, v0.14.0
tab-numbers, v0.3.0
trailing-spaces, v0.3.2

# Dev
No dev packages

Hi @ramonrails,  thanks for your reply.
Should be fixed now ;)

it hppened again

This is happening to me as well.
Atom Version: 1.7.3
System: Windows 10 Home
Thrown From: atom-markdown-katex package, v0.6.4

closing this issue out. shouldn't happen anymore. the package has been renamed as markdown-preview-enhanced


WIP: Add Rename helper, along with ref visitors

Rename will rename / renamespace an object, but will also update all
references to it.
We introduce the idea of a Ref and functions to discover and visit
references.
These are currently backed by a hard-coded list of kinds and ref
fields; we should move this to something backed by OpenAPI in future.

cc @apelisse to start thinking about replacing the hard-coded DB.

@justinsb  Are you purposely placing the rename and ref visitor outside go/fn? I think that's valid if we want to separate k8s resources and google cloud CNRM resources (looks like what it is now), but that means the go/fn and go/pkg cannot import each other (pkg dependency loop), which might make future feature extension harder to do. I can see many upcoming features will be used on both k8s and cnrm resources.
If this is not the case, it would be better to put the pkg in go/fn, because that's the go repo path and the SDK users can better discover the cnrm functions as well.


Missing WebAssembly link in the hello-world doc

https://github.com/arctic-hen7/perseus/blob/73a1f0cb0e1d9dba05d929b279f9a511b14797d7/docs/next/en-US/hello-world.md?plain=1#L73

Ah, thanks for catching this!

Actually @Mazwak do you want to open a quick PR for this?

I can make a PR. I’m not very fluent with git and github, so I might do it badly first.
Is the link https://webassembly.org/ that you forgot ?

Yeah, that's the one. There's a reasonable guide in the CONTRIBUTING.md file at the root of this repo that can walk you through the basics.


Migrate documentation for all math functions from scalar_functions.md to code

Which issue does this PR close?

Closes #12867.
Rationale for this change

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

Beyond the pow removal this PR LGTM 👍

PR updated with get_pow_doc() removed.

A small cargo fmt fix seems to be required.

I took the liberty of merging up from main to resolve a conflict (also by pushing a commit I think this PR's CI will run automatically from now on)

Thanks again @juroberttyb  and @Omega359

Thank you both for your time and help!


sync: fix parallel list with dir

close #3733

 object_storage_test.go:296: list should return itself
--- FAIL: TestMem (0.00s)


net freamworck

Problem encountered on https://dotnet.microsoft.com/en-us/learn/dotnet/hello-world-tutorial/create
Operating System: windows
Provide details about the problem you're experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.

What is the issue @Karkache2001? Are you trying to install .NET Framework instead?


I want to add String Compression Method in C/C++/Java/Python

Problem Statement:
Implement a method to perform basic string compression using the counts of repeated characters. Given a string, return the compressed version of the string. If the compressed string is not shorter than the original string, return the original string. Assume that the input string only contains uppercase and lowercase letters (a-z).
Approach:
Initialize an empty string to store the compressed string. Iterate through the input string character by character. Keep track of the current character and a count variable initialized to 1. Compare the current character with the next character. If they are the same, increase the count. If the characters are different, append the current character and its count to the compressed string.
Could you update the current character to the next character and reset the count to 1. After the iteration is complete, append the last character and its count to the compressed string. If the length of the compressed string is shorter than the original string, return the compressed string. Otherwise, return the original string.
EXAMPLES:
Input: "aabcccccaaa"
Output: "a2b1c5a3"
Input: "abcdefg"
Output: "abcdefg"
Explanation: The compressed string is not shorter than the original string, so the original string is returned.
@Kumar-laxmi sir, please assign me this issue.

@Kumar-laxmi I would like to contribute to this issue. Please assign me this issue.


Initial GraphQL development

feat(graphql api): Setup graphql models

go.mod updates

feat(graphql api): generate gqlgen models

fix(graphql exam schema): fix graphql exam schema

feat(graphql api models): use and autobind models

@AdamMcAdamson Is this PR stale? Should we close it?

Stale. @LocatingWizard (who is working on this) will create a PR when ready.


[PE-D][Tester A] Upload command does not need Absolute Path

According to the UG, upload profile picture command strictly requires Absolute Path.

Entering Relative path also works with errors.

It may be smarter to remove the constraint from the UG, since the feature already works on your software.

Labels: type.DocumentationBug severity.Low
original: fahim-tazz/ped#5

Explanation needs to be added to UG
**also the meaning of absolute path & relative path


Remove lifetimes from Dictionary

This is needed to use Pyo3.
Also, the new version of dictionary will use memory mapped files for loading dictionaries.

What remains: replace old implementation with the new one (for the time being).

@mh-northlander Please squash commits into a single one when merging (or do only review, I will merge it afterwards itself).


Subscribing will sometimes trigger a failure message but it show subscribed after

Describe the bug
Subscribing will sometimes trigger a failure message but it show subscribed after
To Reproduce
Steps to reproduce the behavior:

Visit app.web3inbox.com
Wipe out all localStorage and sessionStorage
Empty cache and hard reload
Enter Vercel password
Connect Wallet
Select WalletConnect
Sign message
Allow Notifications
Expect Subscribed apps from apps that I’ve used

This was the first bug because I saw one app
But I had more subscribed ones and they were missing

Subscribe to PancakeSwap

Subscribed successfully to PancakwSwap
suddenly my other missing subscriptions showed up

Unsubscribe all of them
Empty cache and hard reload
Enter Vercel password
Connect Wallet
Select Metamask
Sign Message
No subscribed apps

This was working fine so no complains here

Subscribe to GM app

This had a spinner on the button itself but it ended too quick
The spinner stopped but the app didn’t show as subscribed
A bit later the app shows as subscribed

Subscribe to PancakeSwap

Same issue as before where the spinner stopped too quickly
An error message showed “subscribe failed”
Later the app showed as subscribed

Did a soft refresh of the page
The Wallet was still connected as expected

However I noticed that I can see the discovery where apps show as unsubscribed
I would expect here for the Discovery view to have a loading state

Tried the settings

Added “display app on discover page”
Typed “robots.farm”
There was no feedback or toast when typing it
This filtered out the other apps on Discovery
Only saw Robots.farm on the Discovery page but expected it to be additive
Then tried typing only “robots.far”
Expected error message or any negative feedback but notihing happened
Visited the discovery page and it was empty

Expected behavior
Successful subscription
Screenshots
n/a
Additional context
n/a

This will require more QA to be able to reproduce, should be fixed with our recent improvements but not 100% sure since we didn't make updates that address directly this issue.

Looks good


added community contribution to jobs cli doc

What are your changes?
What type of changes does your doc introduce?

[X] Bug fix
[ ] New feature

What is the urgency level of this change?

[ ] Blocker
[X] High
[ ] Medium

I have completed these items:

[X] I have tested all commands and code snippets.
[ ] I have built locally and tested for broken links and formatting.
[X] I have made this change for all affected versions (e.g. 1.7, 1.8, and 1.9).
[X] My doc follows the style guide: https://github.com/dcos/dcos-docs#contributing.

Ping @emanic, @sascala, or @joel-hamill for reviewing pull request changes.
If you included a comment with your commit, it appears here:

@joel-hamill I updated the CLI docs to include the community contribution and made the changes for 1.9 as well.

@joel-hamill I made your changes -- thank you for the review.


linux-aarch64 build for anadama2

Describe your pull request here

Please read the guidelines for Bioconda recipes before opening a pull request (PR).
General instructions

If this PR adds or updates a recipe, use "Add" or "Update" appropriately as the first word in its title.
New recipes not directly relevant to the biological sciences need to be submitted to the conda-forge channel instead of Bioconda.
PRs require reviews prior to being merged. Once your PR is passing tests and ready to be merged, please issue the @BiocondaBot please add label command.
Please post questions on Gitter or ping @bioconda/core in a comment.

Instructions for avoiding API, ABI, and CLI breakage issues
Conda is able to record and lock (a.k.a. pin) dependency versions used at build time of other recipes.
This way, one can avoid that expectations of a downstream recipe with regards to API, ABI, or CLI are violated by later changes in the recipe.
If not already present in the meta.yaml, make sure to specify run_exports (see here for the rationale and comprehensive explanation).
Add a run_exports section like this:
build:
  run_exports:
    - ...

with ... being one of:

Case
run_exports statement

semantic versioning
{{ pin_subpackage("myrecipe", max_pin="x") }}

semantic versioning (0.x.x)
{{ pin_subpackage("myrecipe", max_pin="x.x") }}

known breakage in minor versions
{{ pin_subpackage("myrecipe", max_pin="x.x") }} (in such a case, please add a note that shortly mentions your evidence for that)

known breakage in patch versions
{{ pin_subpackage("myrecipe", max_pin="x.x.x") }} (in such a case, please add a note that shortly mentions your evidence for that)

calendar versioning
{{ pin_subpackage("myrecipe", max_pin=None) }}

while replacing "myrecipe" with either name if a name|lower variable is defined in your recipe or with the lowercase name of the package in quotes.
Bot commands for PR management

Please use the following BiocondaBot commands:
Everyone has access to the following BiocondaBot commands, which can be given in a comment:

@BiocondaBot please update
Merge the master branch into a PR.

@BiocondaBot please add label
Add the please review & merge label.

@BiocondaBot please fetch artifacts
Post links to CI-built packages/containers. You can use this to test packages locally.

Note that the @BiocondaBot please merge command is now depreciated. Please just squash and merge instead.
Also, the bot watches for comments from non-members that include @bioconda/<team> and will automatically re-post them to notify the addressed <team>.


fix(UnitsHealthNodeDetail): node link throwing error

Back port of #2717
Fix error when navigating to a node in components page then visiting the node detail
and trying to click on the node link in the breadcrumb throws an error
Closes DCOS-20975

Run integration tests

run integration tests


Specify InfluxDB version 1.8 in docker-compose.yml

InfluxDB 1.8 is the latest 1.x version to support the environment variables specified in the docker-compose.yml. If set to latest the newer 2.x version of InfluxDB is pulled and the user/db is not initialized.

Thanks!


Feature: Add app log feature

Hello Team,  Can we add log feature? so that we can view log or print added by app. Thank you!
Refer, https://github.com/CocoaDebug/CocoaDebug

We have the print output:
-> App -> Console
but I don’t know if takes React Native too, or NSlog, I’ll verify soon :)


Function to appropriately rescale/crop predictions to match the test crops' resolutions, both before and after participant submissions. Should be called by package_submission() thus allowing participants to preview the results of the conversion, before submitting the data. Should work for both OME-NGFF metadata and classic metadata options.

[x] Appropriately rescale/crop predictions to match the test crops
[x] Called by package_submission() (allowing participants to preview the results of the conversion before submitting)
[x] Called during volume scoring to ensure matching submitted data that wasn't prepared with package_submission().
[x] Should work for both OME-NGFF metadata and classic metadata options.

See https://github.com/janelia-cellmap/cellmap-segmentation-challenge/blob/acb7325a21b4aaee8713e3a1ad4b8325207b5e54/src/cellmap_segmentation_challenge/evaluate.py#L855

Addressed in https://github.com/janelia-cellmap/cellmap-segmentation-challenge/pull/56/commits/a51af0359730c1639daaba34c05a7cffc678fdf1


Using NMBS_SERVER_DISABLED

I’ve written a Modbus RTU client in MacOS that works well.  As a Modbus newbie I started experimenting with the compiler flags and found if I set NMBS_SERVER_DISABLED, this stopped nmbs_read_holding_registers being available.  That confused me as I thought that would be a client function?

Yup, I noticed this too just yesterday, it doesn't make much sense. I'm going to fix this asap

Great, thanks


[Request] Add Flosports if possible

Would it be possible to add flosports?

It's possible if they don't use DRM in their streams. I'd need an account. It seems like they have different levels of accounts or different services that you can subscribe to. So it might be tricky to try all of that out. I'd probably need multiple logins to test the different scenarios

I believe it is all the same subscription, but they break up the website into FloFootball, FloBasketball, etc

Oh I thought they had different subs for each or one that had them all

@jmvbrown are you willing to email me your Flosports credentials so I can try adding it?

I’d be willing to!
On Fri, Sep 6, 2024 at 12:10 Joe Ipson @.***> wrote:

@jmvbrown https://github.com/jmvbrown are you willing to email me your
Flosports credentials so I can try adding it?
—
Reply to this email directly, view it on GitHub
https://github.com/m0ngr31/EPlusTV/issues/104#issuecomment-2334387109,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AK5P2LDXBBC3FL5B7I4MQS3ZVHHWXAVCNFSM6AAAAABMKW6SOWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZUGM4DOMJQHE
.
You are receiving this because you were mentioned.Message ID:
@.***>

@jmvbrown You can find my email on my Github profile page. Thanks

Added in 2.3.0