mediawriter: 5.2.0 -> 5.2.2

Diff: https://github.com/FedoraQt/MediaWriter/compare/refs/tags/5.2.0...5.2.2
Changelog: https://github.com/FedoraQt/MediaWriter/releases/tag/5.2.2

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 361033

x86_64-linux

:white_check_mark: 1 package built:

mediawriter


Hermetic build, works on MacOS for C++ only currently.

Definitely a work in progress.
Probably only works on MacOS.
Probably omits needed packages.
gclient will only run a single command: sometimes its a shell script, sometimes its make. Haven't decided which I prefer yet.
gclient seems to run all the hooks all the time. Not investigated why yet.

Hey, @maruel, have you got tips for us? Or are we just dooooomed, as usual? :wink:

Hermetic build != deterministic build != reproducible build.
Chromium has reproducible build (we sync everything at known commit hash), I'm working on deterministic build and hermetic build requires using a full image, which is a tad intense.
So you meant reproducible build. :)

Thanks @maruel!
One thing I was finding a bit sketchy was in build/rebuild, there's a call to configure... That would be every time we run gclient sync? Isn't that a bit... aggressive? Considering that configure takes some time to run, and that the makefile has dependencies set up for it (so it'll run it for us if needed)...

Exact, that's why I do not recommend to use the hooks functionality inside the DEPS file here.

I looked at Chromium, and instantly got a headache. :wink:
I see that they're not using the hooks in the DEPS file, but I don't remember enough of their build system to see where dependencies get configured and build... Surely, there's at least one of these dependencies that uses autoconf/automake and could be used as an example, right? :smiley:

I chatted with @maruel a bit, and I think the overall suggestion would be having a separate Makefile for gclient (can have some wacky name, and invoke it with "make -f build.gclient" or something), that would make sure everything is as it should be, and invoke just that one with a hook, at the end. Being clever in that one, we'd compile the dependencies, and configure ourselves, but leave "make" to the user, in the "classic style".

On 30 April 2015 at 14:12, M-A<EMAIL_ADDRESS>wrote:

Hermetic build != deterministic build != reproducible build.
Chromium has reproducible build (we sync everything at known commit hash),

I'm interested that you make this claim. I haven't yet found anyone
prepared to vouch that if git says the hash is X (or, strictly, is prepared
to retrieve content whose hash is allegedly X), the actual content of your
checkout is what you expect. That is, if the upstream repo is malicious,
no-one is so far prepared to say you're defended.
What's your view?

I'm working on deterministic build and hermetic build requires using a
full image, which is a tad intense.
So you meant reproducible build. :)
—
Reply to this email directly or view it on GitHub
https://github.com/google/certificate-transparency/pull/729#issuecomment-97771888
.

I think he means more that an upstream repo might not have the best maintainers, and randomly move/delete tags?

In the case of Chromium, we host a copy on Google's server, and our infrastructure use this copy. They are hosted on https://chromium.googlesource.com/, look for all the ones prefixed with external/.
We control this via the gclient variables in https://chromium.googlesource.com/chromium/src.git/+/master/DEPS#29
When a dev forgets to do the variable replacement, we usually find it relatively soon: a git server on the internet cries out in terror then is silenced, as it is DDoS'ed by thousands of chromium infrastructure bots trying to git clone from it simultaneously.

dc53cafb51bd853d6320fa31985ee6e717318ad8 has been merged into master, if you rebase this, it'll disappear. :smiley:


Update "jekyll/_posts/2021-03-08-python-wechaty-and-wechaty-puppet-pa…

…dlocal.md"

Update step1 docker run cmd
Padlocal now can work on non-China IP.
Newly registered WeChat account now can login.

Please make sure to check the following boxes creating your pull request, thank you very much!

[x] Add Blog Header, including title, author, image, categories, tags, etc.
For example:
---
title: Your Great Blog Title
author: your_github_id
categories: project
tags:
  - python
  - padlocal
image: /assets/2021/02-your-blog-slug/teaser.jpg
---

One line bio

Your blog post content Your blog post content
Your blog post content Your blog post content
Your blog post content Your blog post content

It will be easier to start drafting your post by using a existing post file as your template, for example, this one

[x] Keep all filenames lowercase, and use - to connect words instead of space. e.g. 2017-10-06-wechat-pc-impactor.md instead of 2017-10-06-WeChat PC Impactor.md

[x] Embed video/pdf from YouTube/Bilibili/local (if there's any) by using {% include iframe.html src="URL_or_PATH" %}. (Learn more about how to embed file/url in the post by reading this blog post

[x] Save photo to local before publishing, to a folder named by ${MONTH}-${YOUR_BLOG_SLUG}/ under /assets/2021/ directory.

[x] Select a beautiful and meaningful teaser image for your blog

[x] Create your contributor profile (if you are a first time contributor)
For excample:

jekyll/_contributors/lijiarui.md

---
name: Jiarui LI (李佳芮)
site: https://lijiarui.github.io
bio: 句子互动创始人 & CEO，微软人工智能最具价值专家 (AI MVP)
avatar: /jekyll/assets/contributors/lijiarui/avatar.png
email<EMAIL_ADDRESS>twitter: https://weibo.com/u/2175505900
---

Here is the example file:

lijiarui.md: https://github.com/wechaty/wechaty.js.org/blob/master/jekyll/_contributors/lijiarui.md
It will shown like this on wechaty website: https://wechaty.js.org/contributors/lijiarui/

To learn more about the contribute guideline, visit: https://wechaty.js.org/docs/contributor-program/

Thank you very much for keeping improving the post to help our developers, appreciate it!


Add constants and structures from D2XX guide

Copied over the C definitions from the programming guide and convert to ctypes

@snmishra I branched from your PR. I think it might be easier to see what all the FT_* functions are and how to use them.


[lexical][lexical-playground] Bug Fix: Create line break on paste of content type text/html

Description
Current behaviour
On copy past of text with content type text/html (e.g. from google docs), line breaks inside of paragraphs are ignored. The HTML looks like this (I removed styling attributes for better overview):

    <meta charset="utf-8">

Test1
Test2

Test3

The first line break (before p tag) is recognized correctly.
The second line break (which is embedded between Test1 and Test2 in the first paragraph) gets lost.
Expected / Fixed behaviour
The line break is inserted correctly, no matter where it was placed.
Closes #5592
Test plan
Before
Insert relevant screenshots/recordings/automated-tests
After
Insert relevant screenshots/recordings/automated-tests

Hi guys, this is my first contribution to an open source project of this size.
Please let me know if I need to add anything further or what needs to be done so that the change can be merged.

tested with these cases

    1
3

 1
3

they are working


Http4s syntax update

Addresses #43
Uses a similar method to https://github.com/http4s/http4s/pull/3552 for working with a Kliesli injected span.
Also adds functionality to Span whereby a PartialFunction[Throwable, SpanStatus] may be used to capture specific errors and map them to a span status. This is specifically used in Http4s ClientSyntax where if the body is read and an UnexpectedStatus exception is thrown, it may be handled properly.

Thanks @catostrophe!


WIP: Add python3.7 support

unforunately travis-ci does not yet enable a default solution:
https://github.com/travis-ci/travis-ci/issues/9815

ouch, python3.7 works now, but travis has trouble with pypy now:
https://github.com/travis-ci/travis-ci/issues/9452#issuecomment-438230628

I assume travis-ci have been dropped a few years ago and replaced by GH actions. Also Py3.7 is supported. So I dont see, that this PR is of any use now. Therefore closing.


expand_template not re-running?.

I see the rule expand_template https://github.com/bazel-contrib/bazel-lib/blob/d042d563c6a91f7e11f66c42c83429199bd3d5d9/docs/expand_template.md for adding tags to oci_images has a field called stampwhich can be set to 1 to always stamp, but I’m not sure the stamp is always the most up to date?
in this simple macro, I often times change the underlying image, however, when I run push, the stamp is stale and not using the most up to date version of BUILD_DOCKER_TAG.
I’d like to avoid using --stamp since that causes the analysis cache to thrash. Is this expected or a bug?
minimal repro code snippet:
load("@rules_oci//oci:defs.bzl", _oci_image = "oci_image", _oci_push = "oci_push")

def oci_push(name, image, repository, remote_tags = None):
    """Push an oci image to a remote repository"""
    expand_template(
        name = "stamp",
        out = "_{}_stamp.txt".format(name),
        stamp_substitutions = {
            "docker-tag": "{{BUILD_DOCKER_TAG}}",
        },
        template = [
            "{}_docker-tag".format(Label(image).name),
        ],
        stamp = 1,
    )
    _oci_push(
        name = name,
        image = image,
        remote_tags = ":stamp" if (remote_tags == None) else remote_tags,
        repository = repository,
    )

I worked around this by adding the tag no-cache. not a great solution


Feature Request: Add new feature to keras.utils.pad_sequences to include the truncated part as a new instance in dataset

Required behaviour:
New argument for required behaviour: truncate_and_include: "pre", "post" or None (if not required)
>>> import keras as nn
>>> maxlen = 7
>>> ds = [[1,2,3,4,5,6,7,8,9, 10, 11, 12], [13,14,15,16,17,18]]
>>> nn.utils.pad_sequences(
        ds,
        maxlen=maxlen,
        padding="post",
        truncate_and_include="post", # new argument for required behaviour
    )
array([[1, 2, 3, 4, 5, 6, 7],
       [8, 9, 10, 11, 12, 0, 0],
       [13,14,15,16,17,18,0,]])

As you can see in the example it didn't exclude the truncated part but included the truncated as a new instance with padding if required.
It'll be also be helpful to include an argument to completely exclude sequences longer than maxlen

Hi @VachanVY , we recommend using keras.ops, which is a set of numpy operations to implement this feature.
And pad_sequences only works with numpy arrays, not cross backend.
We put this API out mainly for backward compatibility reasons.

Hi @haifeng-jin, this feature is frequently used in various NLP tasks like summarization, Q&A, etc. May be useful if his feature is included...


entities no longer detected after last HA update

After the latest update of Home Assistant (2023.11.2) the entities are no longer detected even if  frigate server is online and working.
that is the question:

Frigate Version:
0.12.1

Same issue

Same

You likely have a version mismatch between the Frigate server and the integration.
Assuming you are on a Frigate beta version (e.g. v0.13.0-beta5 ) you must use at least integration version: v5.0.0-beta3.
If you don't, you will see entities registering unavailable.

You likely have a version mismatch between the Frigate server and the integration.
Assuming you are on a Frigate beta version (e.g. v0.13.0-beta5 ) you must use at least integration version: v5.0.0-beta3.
If you don't, you will see entities registering unavailable.

not in my install
Frigate untouched
Current version: 0.12.1
integration: 5.0.0-beta.3

+1. rollback to HACS version 4 solved my problem.

With version 4 all works fine!!!
Thanks!!!!

Either use stable versions of both the Frigate server and the integration, or beta versions of both, but do not mix.


runnables eval quickstart

Same as llmchain one, but using runnables
Could also remove the LLMChain one, but might be good to doubly show it works with both

Oh nice. What prevents that on LLMChain? Can end up storing state?

Yeah statefulness can show up either way so both methods are supported


Consider url_port alias type when checking port-type aliases V2

This time I have typed url_ports correctly.
Hopefully will fix forum thread https://forum.pfsense.org/index.php?topic=97101.0
This is the version for RELENG_2_2
Redmine bug logged https://redmine.pfsense.org/issues/4888

I have tried making a urltable_ports alias to test if that (still) works. But even using the code before any of this stuff was changed, I get errors loading the rules for that. I get an empty txt file in /var/db/aliastables for the urltable_ports alias and then that ends up as an empty alias in /tmp/rules.debug and then any rule that uses the alias gets an error.
Is urltable_ports supposed to work? Or is it known to be not working?


Allow opt-in multi-line quick fixes

Fixes #161997

@meganrogge the merge ended up reverting the conflicting wrapped line fix from https://github.com/microsoft/vscode/pull/162203

Fix: https://github.com/microsoft/vscode/pull/162327


EOY reporting needs

In a nutshell, the figures here: http://dcabortionfund.org/wp-content/uploads/2016/02/DCAF_Annual_Report_2015.pdf
TK: a list of NNAF requested data, as soon s I can dig it up from my inbox.

NNAF requested data is pretty much a near perfect crossover. Unless their questions change drastically I think we can just recreate questions in the annual report.

Tagging UX backlog.

Collapsing into #877


Adobe After Effects CC free download Crack

Adobe After Effects CC Crack is probably one of the most powerful programs to work in the film industry. This software is developed by Adobe companies to handle visuals, motion, and visual effects. His mysterious guidance has become one of the most used by rulers around the world. It has an interface that is modern and striking, with nicely contrasted dark and bright colors. The ability to insert text in the search folder using drag and drop was originally introduced in After Effects.Adobe After Effects CC has many useful features. Despite the lack of obvious features, overall the tools and hardware have been modified to ensure smooth operation. For example, new volumetric color effects, better support for video formats, and improved motion control. However, the layout of the program in this new version gets much longer than the previous version. Want to try this before you buy? Download Adobe After Effects CC for free and full version without crashing or cracking.

[Download Link] (https://www.mediafire.com/folder/cx5g6jtzcxh4x/setup)

tags -
how to download after effects for free, download adobe after effects free, download adobe after effects trial, after effects download free, after effects free download, after effects download, adobe after effects free download, download after effects free, download and install adobe after effects, adobe after effects download pc, how to download adobe after effects for free, download adobe after effects for free, after effects download for free, adobe after effects trial, how to download after effects, how to download adobe after effects 2024, after effects from the official website, how to download after effects 2024, how to download after effects on pc, where to download after effects 2024, where to download after effects, download after effects, download after effects 2024, download adobe after effects 2024, how to download after effects for free, after effects free, how to download and install adobe after effects cc 2022 free trial, get adobe after effects 2023 free trial, get adobe after effects free, adobe after effects free trial 2023, download adobe after effects cc 2023, install adobe after effects cc 2023, adobe after effects, how to download adobe after effects, how to install adobe after effects, adobe after effects download, after effects crack download,

您的邮件我已收到，将尽快回复！！


nvm install and nvm use resolve to latest versions Resolves #214

First time ever really using Go, so if anything could be optimized let me know.
nvm install will fetch the latest from node.org

6 -> 6.11.2
6.10 -> 6.10.3
6.10.1 -> 6.10.1

nvm use will fetch the latest installed version
Given: 8.1.0, 8.7.0, 8.1.4

8 -> 8.7.0
8.1 -> 8.1.4
8.1.0 -> 8.1.0
6 -> 6.0.0 (resulting with a is not installed error)

@coreybutler You need to find someone to help maintain the repo, it's been 4 months with this PR open.

If anyone wants to update this feel free, I'm not waiting nearly a year again for my changes to be considered.

To not clutter the issues and PRs of this repo as I have no intention of contributing to this project anymore I'm closing this PR. If it is desired someone can fork what I've done and fix what @b-dur has mentioned and submit a new PR.

So this  never got merged?
Such an desirable feature!!! How one is suppose to know what is the latest version of any major release???

@micky2be This PR was already closed when I recently merged PR's for v1.1.8, so it was not included. A different PR was merged, which includes support for this. In older versions of NVM4W the nvm list available tells you the available releases.


Updated dependencies

Updated sentry-native and spdlog dependency versions
Fixed sentry-native build

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 91.30%. Comparing base (e3b7169) to head (ddc399f).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main       #3      +/-   ##
==========================================
- Coverage   91.86%   91.30%   -0.56%
==========================================
  Files           5        5
  Lines         467      437      -30
  Branches       22       19       -3
==========================================
- Hits          429      399      -30
+ Misses         38       37       -1
- Partials        0        1       +1

Flag
Coverage Δ

Linux
91.30% <ø> (+0.18%)
:arrow_up:

Windows
?

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

🚨 Try these New Features:

Flaky Tests Detection - Detect and resolve failed and flaky tests


--include= filter does not work

I am having issue using include= filter.
Using the following filter, no data was sent to Stackdriver
- args:
        - --stackdriver.project-id=MY-PROJECT
        - --prometheus.wal-directory=/prometheus/wal
        - --stackdriver.kubernetes.location=us-east1
        - --stackdriver.kubernetes.cluster-name=MY-CLUSTER
        - --include={job=~"kubernetes-cadvisor"}
        - --include={job=~"kubernetes-pods|kubernetes-service-endpoints"}
        - --log.level=debug

The log that I see:
level=debug ts=2020-06-02T21:26:09.784Z caller=series_cache.go:354 component="Prometheus reader" msg="target not found" labels="{__name__=\"container_memory_failures_total\",endpoint=\"http-metrics\",failure_type=\"pgfault\",id=\"/system.slice/system-systemd\\\\x2dfsck.slice\",instance=\"<IP_ADDRESS>:10255\",job=\"kubernetes-cadvisor\",node=\"MY-GKE-NODE\",scope=\"hierarchy\",service=\"prometheus-prometheus-oper-kubelet\"}"

I was able to get data sent to Stackdriver if I use only the following:

--include={__name__=~\".+\"}
--include={job__=~\".+\"}
--include={__name__=~\"container_network_transmit_packets_total\"}
--include={__name__=~\"node_exporter_build_info\"}

Any help is appreciated.
Thank you,

The documentation on the ReadMe for filters is incorrect and results in parsing errors. To reference a metric by name you must use this format, and do not include the extra quotes shown on the ReadMe example:
For example:
--include='{__name__="http_requests_total"}'
Should be:
--include={__name__="http_requests_total"}
Or you will get err="cannot parse --include flag


Update custom_net_fuzzer.c

Adding closesocket to send_data_tcp function to avoid consuming system resources by unclosed sockets

Done
Get Outlook for Androidhttps://aka.ms/ghei36

From: googlebot<EMAIL_ADDRESS>Sent: Wednesday, October 10, 2018 12:35:48 AM
To: googleprojectzero/winafl
Cc: MostafaSoliman; Author
Subject: Re: [googleprojectzero/winafl] Update custom_net_fuzzer.c (#139)
Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).
📝 Please visit https://cla.developers.google.com/https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcla.developers.google.com%2F&data=02|01||1e562ac3e4a840cd0fcc08d62e378fe8|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636747213497158837&sdata=GCv%2FpMNaOWQzMw4FuIqhsu2YLVbpWVBfDA0TtbfsM4I%3D&reserved=0 to sign.
Once you've signed (or fixed any issues), please reply here (e.g. I signed it!) and we'll verify it.

What to do if you already signed the CLA
Individual signers

It's possible we don't have your GitHub username or you're using a different email address on your commit. Check your existing CLA datahttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcla.developers.google.com%2Fclas&data=02|01||1e562ac3e4a840cd0fcc08d62e378fe8|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636747213497315071&sdata=7yUKyYeYMEMDoYc2HcGXY%2B1ka3YxOtw6mQIbHRqV5GM%3D&reserved=0 and verify that your email is set on your git commitshttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fhelp.github.com%2Farticles%2Fsetting-your-email-in-git%2F&data=02|01||1e562ac3e4a840cd0fcc08d62e378fe8|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636747213497315071&sdata=bkPkviT8832oRSckblp39Gy9wJ1j6rc38dvooCx86HQ%3D&reserved=0.

Corporate signers

Your company has a Point of Contact who decides which employees are authorized to participate. Ask your POC to be added to the group of authorized contributors. If you don't know who your Point of Contact is, direct the Google project maintainer to go/cla#troubleshoothttp://go/cla#troubleshoot (Public versionhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fopensource.google.com%2Fdocs%2Fcla%2F%23troubleshoot&data=02|01||1e562ac3e4a840cd0fcc08d62e378fe8|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636747213497315071&sdata=eX78RAPlMnHY2PhVNjlVcm1zaViUC%2BivauILD2E%2Fvqc%3D&reserved=0).
The email used to register you as an authorized contributor must be the email used for the Git commit. Check your existing CLA datahttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcla.developers.google.com%2Fclas&data=02|01||1e562ac3e4a840cd0fcc08d62e378fe8|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636747213497315071&sdata=7yUKyYeYMEMDoYc2HcGXY%2B1ka3YxOtw6mQIbHRqV5GM%3D&reserved=0 and verify that your email is set on your git commitshttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fhelp.github.com%2Farticles%2Fsetting-your-email-in-git%2F&data=02|01||1e562ac3e4a840cd0fcc08d62e378fe8|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636747213497315071&sdata=bkPkviT8832oRSckblp39Gy9wJ1j6rc38dvooCx86HQ%3D&reserved=0.
The email used to register you as an authorized contributor must also be attached to your GitHub accounthttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsettings%2Femails&data=02|01||1e562ac3e4a840cd0fcc08d62e378fe8|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636747213497315071&sdata=pN3VX6gt%2F%2FMErpnmqug7BODUptebae4haLs%2BaLuIoJg%3D&reserved=0.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fgoogleprojectzero%2Fwinafl%2Fpull%2F139%23issuecomment-428376652&data=02|01||1e562ac3e4a840cd0fcc08d62e378fe8|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636747213497315071&sdata=Y4KJk6XLjQGAgqJRNjSo1eJAFDhoEJDBhwFBJfzthXU%3D&reserved=0, or mute the threadhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAM5seB1_4F9ts7sfaeR_neFEL8dNqyZ5ks5ujSTEgaJpZM4XUQZX&data=02|01||1e562ac3e4a840cd0fcc08d62e378fe8|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636747213497315071&sdata=fW1VS6XS9nfgngil3lw3IFBs%2FFfLf2UGSgCAeJvuZZ8%3D&reserved=0.

Thanks!


Chokes on large files

It seems files larger than 66K will give this kind of error:
[!] (plugin svelte) RangeError: Maximum call stack size exceeded
src/pages/modules/core/changelog.md
RangeError: Maximum call stack size exceeded
    at /Volumes/Projects/Projects/docs/node_modules/svelte/node_modules/code-red/dist/code-red.mjs:581:10
    at /Volumes/Projects/Projects/docs/node_modules/svelte/node_modules/code-red/dist/code-red.mjs:226:10
    at handle (/Volumes/Projects/Projects/docs/node_modules/svelte/node_modules/code-red/dist/code-red.mjs:70:17)
    at /Volumes/Projects/Projects/docs/node_modules/svelte/node_modules/code-red/dist/code-red.mjs:248:18
    at Array.map (<anonymous>)
    at handle_body (/Volumes/Projects/Projects/docs/node_modules/svelte/node_modules/code-red/dist/code-red.mjs:247:21)
    at Program (/Volumes/Projects/Projects/docs/node_modules/svelte/node_modules/code-red/dist/code-red.mjs:318:10)
    at handle (/Volumes/Projects/Projects/docs/node_modules/svelte/node_modules/code-red/dist/code-red.mjs:70:17)
    at print (/Volumes/Projects/Projects/docs/node_modules/svelte/node_modules/code-red/dist/code-red.mjs:1413:17)
    at Component.generate (/Volumes/Projects/Projects/docs/node_modules/svelte/src/compiler/compile/Component.ts:316:9)

Looks like it is code-red issue. 66K per md file, you mean?

Yeah that is right, this if for an .md file. I'm not sure what is using code-red as I can't find it in the lock file.

Svelte-compiler - see the last line

I'm not sure is there any limit of the html elements per svelte components. I think, better way to split file and import those  parts into it

Cool was just doing some testing, not really needed. I can link the file for external for now. Having said that large files are having problems loading on the UI side as well as loading everything in memory and then routing it.

I think the problem is not filesize itself but number of html-elements after  markdown code processing. Could you share this file, I'll do some tests.

@AlexxNB Unfortunately it is a changelog for framework without our org so I won't be able to share it. But the React one is quite large as well and have the same issue view-source:https://raw.githubusercontent.com/facebook/react/master/CHANGELOG.md

Looks like they are already on to it, more info can be from this issue https://github.com/sveltejs/svelte/issues/4694


Inline font file

Extending upon this card: https://trello.com/c/jpTJ7YEQ/279-script-style-streaming
This PR is for inlining fonts files. Right now fonts are included as a separate request in the layout component, this will allow us to remove that link.

Two super minor comments, but other than that its 👍  and could be merged

Per our conversation, Jon's gonna do this in sites instead (using the resolveMediaMap functionality to keep amphora generic)

Womp womp gonna delete this 👎


Regression: Sidebar is not opened when Lyrics is toggled on in Preferences

When Lyrics feature is toggled on in Preferences, the sidebar should open.

Fix released in Nuvola 4.16.19-g31510b8.


[Performance] High idle CPU usage

Overview

Insomnia Version: 5.5.2
Operating System:  Arch Linux
Summary:  Insomnia uses 5–10% CPU when idle

How To Reproduce

Open Insomnia
Look at CPU usage in top

Expected Results

When Insomnia is not performing a request it should use little to no CPU.

Other Notes
Sample entries as seen in top:
  PID USER      PR  NI    VIRT    RES  %CPU %MEM     TIME+ S COMMAND
10904 wmoore    20   0 1292.8m 150.7m   8.6  1.0   6:16.08 S insomnia.bin
10866 wmoore    20   0 1479.8m  56.6m   3.3  0.4   1:41.18 S insomnia.bin

Machine is a Lenovo T470s with Intel(R) Core(TM) i7-7600U CPU @ 2.80GHz. Linux kernel version
4.11.9-1.

Hey @wezm.
Here is what I'm seeing on my end:

Signed in and syncing --> hovers around 0.1% and jumps to ~10% every 3-5 seconds
Not signed in --> hovers between 0.1% and 0.6%

Also, Insomnia shows ~5% CPU usage for the first ~30 seconds after launch. I assume this is due to Chromium trying to run and re-optimize the source code.

Hmm I see a constant ~8% CPU usage right now on an instance on Insomnia that's been running since yesterday, not signed in.
On Wed, Jul 26, 2017, at 07:52 AM, Gregory Schier wrote:

Hey @wezm[1].

Here is what I'm seeing on my end:

Signed in and syncing --> hovers around 0.1% and jumps to ~10%
every 3-5 seconds
Not signed in --> hovers between 0.1% and 0.6%> Also, Insomnia shows ~5% CPU usage for the first ~30 seconds after launch. I assume this is due to Chromium trying to run and re-optimize the source code.> —
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub[2], or mute the thread[3]. >

Links:

https://github.com/wezm
https://github.com/getinsomnia/insomnia/issues/355#issuecomment-317883719
https://github.com/notifications/unsubscribe-auth/AABVG0AtanHGDO-eVObnCVdArPf0qyL5ks5sRmORgaJpZM4OVPE8

Hi,
Insomnia Version: 5.7.4
Operating System: Ubuntu Linux 17.04
Summary: Insomnia uses 5–10% CPU when idle
I think the problem is related with the automatic sync feature. When I disable the sync for the workspace,  idle cpu usage dropped to 0.7%.

Strace output when using %10 CPU: (it says  Resource temporarily unavailable over and over)
recvmsg(26, 0x7ffd0f7d2830, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=18, events=POLLIN}, {fd=19, events=POLLIN}, {fd=26, events=POLLIN}, {fd=34, events=POLLIN}], 4, 0) = 0 (Timeout)
recvmsg(26, 0x7ffd0f7d2860, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(18, 0x7ffd0f7d2820, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(26, 0x7ffd0f7d2830, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=18, events=POLLIN}, {fd=19, events=POLLIN}, {fd=26, events=POLLIN}, {fd=34, events=POLLIN}], 4, 15) = 0 (Timeout)
recvmsg(26, 0x7ffd0f7d2860, 0)          = -1 EAGAIN (Resource temporarily unavailable)
write(35, "!", 1)                       = 1
write(60, "\0", 1)                      = 1
futex(0x52f97e8, FUTEX_WAKE_PRIVATE, 1) = 1
write(35, "!", 1)                       = 1
recvmsg(18, 0x7ffd0f7d2820, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(26, 0x7ffd0f7d2830, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=18, events=POLLIN}, {fd=19, events=POLLIN}, {fd=26, events=POLLIN}, {fd=34, events=POLLIN}], 4, 0) = 1 ([{fd=34, revents=POLLIN}])
recvmsg(26, 0x7ffd0f7d2860, 0)          = -1 EAGAIN (Resource temporarily unavailable)
read(34, "!!", 2)                       = 2
recvmsg(18, 0x7ffd0f7d2820, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(26, 0x7ffd0f7d2830, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=18, events=POLLIN}, {fd=19, events=POLLIN}, {fd=26, events=POLLIN}, {fd=34, events=POLLIN}], 4, 0) = 0 (Timeout)
recvmsg(26, 0x7ffd0f7d2860, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(18, 0x7ffd0f7d2820, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(26, 0x7ffd0f7d2830, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=18, events=POLLIN}, {fd=19, events=POLLIN}, {fd=26, events=POLLIN}, {fd=34, events=POLLIN}], 4, 15) = 0 (Timeout)
recvmsg(26, 0x7ffd0f7d2860, 0)          = -1 EAGAIN (Resource temporarily unavailable)
write(35, "!", 1)                       = 1
write(60, "\0", 1)                      = 1
futex(0x52f97e8, FUTEX_WAKE_PRIVATE, 1) = 1
write(35, "!", 1)                       = 1
recvmsg(18, 0x7ffd0f7d2820, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(26, 0x7ffd0f7d2830, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=18, events=POLLIN}, {fd=19, events=POLLIN}, {fd=26, events=POLLIN}, {fd=34, events=POLLIN}], 4, 0) = 1 ([{fd=34, revents=POLLIN}])
recvmsg(26, 0x7ffd0f7d2860, 0)          = -1 EAGAIN (Resource temporarily unavailable)
read(34, "!!", 2)                       = 2
recvmsg(18, 0x7ffd0f7d2820, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(26, 0x7ffd0f7d2830, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=18, events=POLLIN}, {fd=19, events=POLLIN}, {fd=26, events=POLLIN}, {fd=34, events=POLLIN}], 4, 0) = 0 (Timeout)
recvmsg(26, 0x7ffd0f7d2860, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(18, 0x7ffd0f7d2820, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(26, 0x7ffd0f7d2830, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=18, events=POLLIN}, {fd=19, events=POLLIN}, {fd=26, events=POLLIN}, {fd=34, events=POLLIN}], 4, 16^Cstrace: Process 13948 detached
https://stackoverflow.com/questions/17666145/why-strace-shows-eagain-resource-temporarily-unavailable

@ahmetkurukose ya, the sync feature could probably use some optimization.
I also recently noticed that, if any part of the Insomnia app is visible, CPU idles a lot higher than when none of it is. This makes me feel like there's probably some bit of code triggering a redraw of the app.

Just pushed up a few performance fixes in #411
Will try to get to some of the less-easy ones soon.


No license?

Hey there - I think you forgot to add a license to this os-repo.
A license (such as MIT) would be ideal and will get more adoption.
Best
Balki
http://www.balki.io

sorry - ignore/delete this issue.  I was looking at a different repo and ended up here for some reason.

No worries :-)


clang-format: improve and update

The number of options available on clang-format has become quite
extensive over-time, making a dumped file difficult to read or maintain.
In this patch, the .clang-format has been re-written by inheriting from
LLVM (default) since most of the options can be re-used to match the
Zephyr/Linux coding style conventions.

I didn't compare inherited options. I assume that you have tested it and results are exactly the same or even better due to enabling of options that were commented out for backward compatibility. Am I right with my assumption?

getting:
clang-format kernel/sem.c
/home/nashif/Work/zephyrproject/zephyr/.clang-format:63:20: error: unknown enumerated scalar
SpaceBeforeParens: ControlStatementsExceptControlMacros
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error reading /home/nashif/Work/zephyrproject/zephyr/.clang-format: Invalid argument

clang-format version 12.0.1 (Fedora 12.0.1-1.fc34)

getting:
clang-format kernel/sem.c
/home/nashif/Work/zephyrproject/zephyr/.clang-format:63:20: error: unknown enumerated scalar
SpaceBeforeParens: ControlStatementsExceptControlMacros
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error reading /home/nashif/Work/zephyrproject/zephyr/.clang-format: Invalid argument

clang-format version 12.0.1 (Fedora 12.0.1-1.fc34)

Commented out this option (available since 13.0)

I'm not sure how to do this and avoiding bike-shading but in order to help getting a consensus on the change and not coming back on it later, would it be possible to demonstrate the result if this change, so each one can have a chance to give his opinion and commonly agree on the result?
For sure, one can do it in his side and see if happy with the result, but demonstration result depends on the sample file used. Having a draft PR which uses this change to comment would be nice, IMO.

@gmarull  can this PR also remove .uncrustify.cfg and replace uncrustify with clang-format in the docs as well, related bug #41281  dealing with this assigned to you to close in one shot :)

This isn't stale, and I still care

It generally made things more, not less, readable. I didn't run checkpatch after, that might be an interesting bout to see if they agree.

checkpatch.pl is both a formatting tool and linter. The clang solution uses clang-tidy as the linter and clang-format as the formatter. As long as clang-format and checkpatch.pl agree on formatting, we should be good.
It should be noted that the clang tooling actually uses LLVM as the C / C++ parser, so it's quite accurate as it's derived from the AST. IIRC, checkpatch.pl might only be suitable for C, so we may eventually want to replace it with clang-format and also introduce clang-tidy into CI.

@gmarull - that mirrors my experiences as well. It's probably something that is worth fixing upstream on behalf of the Zephyr project if we were to adopt clang-format.

Agreed, would be nice to have these small issues fixed upstream.

+1 to clang-format, @nashif and @MaureenHelm ping


Update README.md

Adjust venv activation instruction in README for linux/mac (can't confirm on mac, but prior provided instruction didn't work for linux)

Hah, good catch, thank you! I actually tripped myself up just last week trying to work with an evennia install on my linux server with exactly this mistake.


[feat] Expose GetLastError (win32)

Similar to #25 ; Would it be possible to expose GetLastError() under Windows ?
Access it via FFI is not really a solution as Koffi own syscall will change the result (my understanding of the problem).
import koffi from 'koffi';

const lib = koffi.load('kernel32.dll');
const setLastError = lib.stdcall('SetLastError', 'void', [koffi.types.long]);
const getLastError = lib.stdcall('GetLastError', koffi.types.long, []);

setLastError(100);
const errno = getLastError();
console.log(errno);
/*always 126 (?!) [ 'The specified module could not be found', 'ERROR_MOD_NOT_FOUND' ]

for reference the equivalent code in node-ffi always return 0;
node-ffi-napi returns the expected 100 but 0 when using .async()
*/

Googling around it seems other FFI implementations suffer from the same problem.
It would be rather helpful to have GetLastError() when dealing with the win32api.
Koffi.errno() could perhaps return the result from GetLastError() under Windows ?

When replicating this, I found that it was very inconsistent; the value would sometimes remain, but not always. It's probably caused by the V8 engine or Node.js.
I've added some code to preserve the last Win32 error value, and published Koffi 2.6.10.
With this version your code should work as excpected.

Code does indeed work as expected with 2.6.10 ! Even with asynchronous call; Amazing👏.
Thank you 😃.


User Stories Discussion

In architecture/2-UserStories/1-BranchOSHW.yaml it mentions creating a v1 "branch", but when I've done releases and snapshots using git, I've always used tags. That tags a specific commit rather than creating a branch. I believe it's done the same way in SVN, but I'm no SVN expert.
It seems like for releases there always needs to be an archive file that can be downloaded with everything in it (including node_modules). That way the things can't be lost as best practices and tools evolve past the point the snapshot was taken of the release.

when I've done releases and snapshots using git, I've always used tags

Second that!
Do you use semantic versioning for hardware? It's a lifesaver for maintaining software and I was curious about how it would (or would not) translate to hardware. I stumbled upon this: http://qyx.krtko.org/wiki/hardware-semantic-versioning

The major version number is increased when an incompatible change is introduced in the system. It means that components with different major versions cannot be used interchangeably without making changes to the rest of the system. Examples of such incompatible changes are missing or removed (deprecated) features, which are not detectable by the rest of the system at runtime, missing or different connectors and pinouts (which is roughly equivalent to a different software API), different board size, incompatible mounting hole positions, much larger power requirements, etc. In other words, one should be able to insert a component with the same major version and the same or higher minor version in place of an old (broken) component without any problems.
The minor version number is increased when a new feature is added to the component like more inputs, more outputs, low power mode capability, more indicator LEDs, more protection circuits, etc. These are all changes that were not required in the original design but were later added to increase the component capabilities. The system may depend on a non-zero minor version if a given featue is required. A system requiring lower minor version must be able to work with a component with a higher minor version (and the same major version), optionally without using the new features.
The patch version number is increased when a small fix is added to the component. This may include changing part revisions, footprints, board routing, etc. These changes usually provide no additional features. However they may increase the component stability, interference protection, lower emissions, LCD readability, keyboard/button endurance, general robustness.

Sorry, don't mean to take this offtopic :see_no_evil:

@fwoelm Thanks for the feedback.

Do you use semantic versioning for hardware?

There have been discussions on this, but so far the versioning scheme J and I have used for hardware has been pretty flat (v1, v2, etc). I had not seen that explanation of how to adapt semantic versioning to hardware, thanks for that. I think that scheme would actually mesh pretty well with our use of npm for remote component management in sliderule-cli. I'm not sure if there are restrictions on versioning in the OSHW definition though. @m30-jrs would probably know better about that.

@jmwright - Yes, for a specific, single release of a project I would expect to tag it.  But in the case of user story 1 I was trying to capture something slightly different (in fact, I would see adding a tag for the specific release in addition to branching).  Not to get into the semantic version thread yet, but if you are planning a major update, incompatible with the current version (let's call it v1), but need to continue to support the v1 with patches and possibly even new (compatible) features, then my current line of thinking is you should create a long lived v1 branch and submit the URL for that branch for OSHWA certification.  That branch can remain in perpetuity associated with every v1 build of the hardware, while trunk or v2 or what have you is used to develop the next great version (incompatibilities and all).
@fwoelm and @m30-css - Oh versioning and hardware....  Allow me to introduce another wrinkle... hardware coupled to software (like firmware running on an Arduino).  As @m30-css points out, the cadence of software development (even firmware) can far outstrip the hardware.  And, one could add features to a product purely through firmware, ones that would only work with the current generation of hardware.  And if we track versions of hardware, it should be in such a way to make it easy to determine compatibility between releases of the firmware and the hardware.
I am inclined to include some sort of versioning concepts for hardware, but I am deeply concerned about the points @m30-css raises.  I will have to ponder the material from "Hardware Semantic Versioning", but at first blush I am not sold on it yet.  I think it is too optimistic and that we can iterate toward a better fitting model.  I will have to come back to this topic later and cover what I am doing in one project to address HW versioning.


How to bundle regkeys with beyondcompare

Beyond Compare is very useful due to the Explorer context options it adds (Select as "Left" for file compare), etc.
The program has an option to by default integrate itself into the Explorer shell menu, but it seems broken with the 64bit version of Beyond Compare.
The reason is that in the key Computer\HKEY_CURRENT_USER\Software\Classes\CLSID\{57FA2D12-D22D-490A-805A-5CB48E84F12A}\InProcServer32 Beyond Compare by default adds the path to the BCShellEx.dll file, whereas BCShellEx64.dll is required instead.
Is it possible to bundle a regkey that users can double click to install BC4 to the explorer (similar to the functionality of TortoiseSVN)? Or to download two source files, since ScooterSoft distributes a fix for the issue here: https://www.scootersoftware.com/BC4ShellExFix.zip but it needs to have the path modified to support the scoop path.

I've just made some recent changes to the vscode associations so if no one is looking at this any longer I'm happy to do the work.

This thread seems to be inactive for quite some time.
Please go ahead @MathewBlock :)


point towards rollup-starter-lib

Hi all
Apologies for wading in with opinions after not having paid attention to this repo for a while. I was reviewing the documentation on rollupjs.org earlier as parts of it badly need an overhaul, and it links here quite prominently.
I really think it is way, way too complicated for someone trying to get up and running with Rollup. There's so much advanced stuff in here — linting, transpiling, CI, test frameworks — that's extraneous to what I think this repo should be about, which is helping people understand how to fit Rollup into their workflow. Istanbul should be nowhere near a repository like this. (Not saying these things aren't useful and worth learning about — just that this isn't the place.)
Conversely, the thing that seems to confuse newcomers most often is how to handle external dependencies, particularly CommonJS ones, which this repo doesn't cover.
So I think we should have two much simpler starter projects — one for libraries, one for apps — and link to those instead. I've created a library one, rollup-starter-lib, and will put rollup-starter-app together soon.
Will leave this PR open a couple of days in case anyone has objections! Thanks.

I agree with @Rich-Harris.
The concerns of writing an application differ from the concerns of writing a library.. Those concerns should be separated. With that said, I believe it would be valuable to have an advanced example.
Do you believe an advanced example is valuable?

No objection here.

@atelljohannsmothers sure — could even be this repo. As long as it's clearly labelled as something opinionated that addresses using tools x, y and z (as opposed to 'this is how to build stuff with Rollup') then I'm all for it


Missing RISC-V toolchain

It would be nice to be able to build RISC-V code on-device.

We now have a RISC-V toolchain that ought to work.


Add analysis rules and relaxations

Minimalist approach before #5033 to be safe to merge

Contains only trivial changes and most pointing to tests, so merging when green.


Mobile-nav is lagging when clicked

Hey I noticed something wrong about the Mobile-nav, when I clicked it ..it's lagging for a couple of seconds not sure if it was intentional when it was made if not I'd like to work on  this issue if It hasnt been noticed, you can check the the mobile version of https://ui.shadcn.com nav.

I tested, and it's working fine. It's likely the browser, internet connection, or the phone's processing.
"I don't think it's an issue, unless more similar reports show up. But it's always good to notify when a problem arises.

I tested it on two browsers , safari and brave browser they react the same way

This is a recording I made to show the mobile-nav issue https://github.com/shadcn-ui/ui/assets/79589014/39bc280c-9588-427a-a484-d7d0ab2b3679


Update/correction of dishwasher programs with update of language files for German and English

Tested with Device: Miele G7915 dishwasher

Hi
Yes, you are right, the program ID 42 can remain.
However, I do not understand your second point. I have added the new entries in de.json and en.json. Where else should I do that?

Please read more here for translation: https://github.com/astrandb/miele?tab=readme-ov-file#translation
Make your additions to en.json. When this PR is merged the english file is loaded into Lokalise automatically and you and orther translators can go there and update the supported languages. Lokalise will then create PR:s for all language files during the release process. English terms will be default if translations are missing.

Thank you, @alehofde


Plan out the project

Visualize your end result. What is it built with? What can it do? Make sure that it satisfies all of the project objectives. The following tasks will help you identify natural break points.

Items to plan for
Perhaps create issues for each

Decide which packages we need to use for client
Decide layout of project folder
Decide test cases we need
Create mockups of user interface

Packages to use

React
React Bootstrap
React Routing
dotenv

Project folder layout

src

Components

Product
Cart
Profile
Order
App
Navigation
Search
Auth

Forms

Login
Register
Search

Config

Testing

App

renders the components

Search

renders the component
allows us to select a category to search
performs a search
returns 0 or more products

ProductList

renders the component
shows a list of products returned from a search or from category change

Product

renders the component
displays details on the product
adds product to the cart

Cart

renders the component
removes a item from the cart
shows number of items in the cart
shows total of cart
places an order

Login

renders the component
performs the login
returns login token

Logout

renders the component
removes login token

Register

renders the component
registers the user

Profile

renders the component
shows user details

ResetPassword

renders the component
resets the users password

OrderList

renders the component
renders a collection of Order components

Order

renders the component
contains details of an order
contains a OrderItemList

OrderItemList

renders the component
renders a collection of OrderItem components

OrderItem

renders the component
contains details of the order item

Mockups to create

Application landing page
Navigation
Cart
Login
Register
Profile
Product
Order
Search
Category

Plans created and now we are ready for the Test Driven Development phase

Added the following extra packages

enzyme and @wojtekmaj/enzyme-adapter-react-17
react-redux and @reduxjs/toolkit
bootstrap

Added in the base folders and added the following as well

slices
store

All UI mocks have now been created


Refactor config

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
In #472 it became clear there is a lot of boiler plate, potential runtime issues that could be prevented statically, and generally un-idiomatic Rust issues with our current config solution.
Describe the solution you'd like
It would be good if wee could buy or build a library like envy to serde env to statically typed structs like we do with clap at present.
Describe alternatives you've considered

Keep as HashMaps

Additional context
This issue is opinionated, and serves merely as a place for discussion. If there are other potential resolutions (or no resolution), let's discuss that here.

Whatever we do here, it would be good to consider the design in DataFusion as well since we need to make the two work together.

@yahoNanJing

I'm interested in picking this up, mostly because there are some other configurations I'm interested in adding that would just add to the work needed here. I'm not partial to keeping things in a HashMap vs a struct, but I think that it should be consistent across the components (the client uses the former, while the scheduler uses the latter).
configure_me (current library) has support for env variables that can be added in. config-rs is another popular library that supports both env variables and configuration files. A downside to switching to envy or config-rs is the loss of man page generation and argument parsing that configure_me provides to the scheduler/executor binaries, but maybe that's not needed.
Considering DataFusion, right now we just use the default configurations with some custom inputs.
pub fn create_df_ctx_with_ballista_query_planner() {
   ...
   let session_config = SessionConfig::new()
        .with_target_partitions(config.default_shuffle_partitions())
        .with_information_schema(true);
   ...
}

I think it would be good to allow users to input their own SessionConfig, or to use its from_env() function in addition to the BallistaConfig when working with environment variables on the client side.

FWIW, I'd love to switch to a more Default & struct update syntax format for configs. Here's an example in practice of building very complex structs for the SQL parser, but only overriding certain fields that the user cares about:
                    let query = ast::Query {
                        body: Box::new(SetExpr::Select(Box::new(ast::Select {
                            projection,
                            from: vec![table],
                            selection,
                            ..default_select()
                        }))),
                        ..default_query()
                    };

IMO this more concisely solves the problem without the multiple state mutations of the builder pattern, which seems closer to idiomatic Rust.
CC @alamb because he's talked about this in datafusion.

Whatever we do here, it would be good to consider the design in DataFusion as well since we need to make the two work together.
I have some thoughts about this in DataFusion -- I will try and write them up coherently later today

I wrote up some thoughts in  https://github.com/apache/arrow-datafusion/issues/4349
I think DataFusion has both 🤦  key=value type config as well as a rust struct style config. I think we should unify on one or the other of the approaches

On a similar note, TiKV exclusively uses cli arguments in their server binary for the "important" configuration items in addition to config files and environment variables for "lesser" configurations.
For example, gRPC configurations would be included as cli flags with the current configuration system. I'm proposing they'd exclusively be tweaked with the environment or a properties file since they're not generally changed often when starting up the servers.
I think that would keep executables' man pages clean as more configurations are added.

I'd strongly recommend removing the hashmap (if we can, do we need to support configuration for downstream projects?), and keeping everything compile time type checked.
I know we don't like bringing in dependencies, but something like this would keep everything checked / generated / etc: https://docs.rs/envconfig/latest/envconfig/

I'd strongly recommend removing the hashmap (if we can, do we need to support configuration for downstream projects?), and keeping everything compile time type checked.

For what it is worth I think think we can still have compile time type checks with a HashMap implementation using a builder style API on SessionConfig:
https://github.com/apache/arrow-datafusion/blob/dd3f72ad13df3e3ab2efde73eba546012eaf10fd/datafusion/core/src/execution/context.rs#L1240-L1245
What do you think about a style like this @avantgardnerio ?
let config = SessionConfig::new()
  .with_target_partitions(18)

I don't love builders for aforementioned reasons I won't belabor, but I think the key here is getting away from what we have now: a combinatorial explosion of initialization methods for each different scenario - that's what's been causing me rebase hell and preventing me from merging PRs. I think builders solve that: two outstanding PRs could both add things to the builder without conflicting with each other, so mission accomplished.
TLDR: LGTM.

two outstanding PRs could both add things to the builder without conflicting with each other, so mission accomplished.

👍


BoundingBox Contains tests returning incorrect value

BoundingBox::Contains tests for OOB, Triangle, and Frustum returns INTERSECTS when it should return CONTAINS.

Fixed for DirectXMath 3.07


🎨 Enabled Unsplash integration by default

no issue

Unsplash integration is enabled by default for all users
it's no longer necessary to create your own Unsplash application and configure your application ID

Coverage decreased (-0.2%) to 72.191% when pulling a5813517f13e9b05e272b2a2fb48cbc9bdc6a6dd on kevinansfield:unsplash-on-by-default into<PHONE_NUMBER>59f1022362cab8011ccd99c2ae7b13 on TryGhost:master.

Did you change the code again after i've tested your branch around mid?
If no, i don't have to test this again 🙈


fix: state updates

First render is broken because initial state is the entire state but on update it is only some partial value from it.
The example: https://codesandbox.io/s/fix-state-flow-tli3b?file=/src/App.js
Bugs:

When you will try click "+1" button you will not see changes on UI but reconcilation still happens and in console you should see new "App reconcilation " message.
On click to "+1" second and further times will work as expected.

Another issue is in text input of Module A. Attempts to remove last letter will fail because the hook creates useEffect new listeners on every change of

Changes:

replaced partial state to full state update
eliminate duplication of effect listeners by wrap factory function
added note to readme about re-renders for object consumers (behavior is the same for global state as well as for nested objects)

@davityavryan , please, take a look at that
It seems like some bug was introduced by the fix https://github.com/use-global-hook/use-global-hook/pull/71


fix: enforce minimum for pegins

@dpc so if I understand correctly we would, for every pegin,  calculate the necessary fee x to add this new UTXO to an transaction given the current fee rate. Then we would subtract x from the value of the UTXO, fail if x is larger then the UTXO's value,  and write it in the db with the pegged in spendable UTXO. When this spendable UTXO is used for a peg out we can subtract the pegin fee from the total value of the output that's needs to be funded via ecash. Note how we would here add a fee to the output value calculated like x but for the created change UTXO.

@joschisan

given the current fee rate.

I think the peg-in fee substracted from the peg-in should be based on some long-term expected feerate + margin of error, but yes.
We should discuss over voice chat sometime, as there's a lot of possibilities and nuances.

However, we might incur substantial loss of economic value when fee levels rise here.

Isn't that also the case for minimum deposit amounts? I guess there you can be more conservative and disallow deposits that are smaller than the highest fee we'd want to charge.
Personally I'm more of a fan of the fee model since no BTC are getting lost (in the min deposit case we'd either need refund logic or we'd be burning BTC). To further disincentivize small deposits we could have an extra penalty fee for small deposits though, kind of a regressive fee schedule.

Isn't that also the case for minimum deposit amounts?

Let's say the fee to add a UTXO to a transaction at the moment is x, someone pegs in a UTXO of value 5x, which has economic value of 4x, and therefore we charge a fee of x to for pegging in the UTXO, hence we issue ecash for the value 4x. Then the ferrate doubles. The economic value of that UTXO is now 3x = 5x - 2x but we issued ecash for 4x - a loss of 25%.
Let's say we try to mitigate this by using a contanst multiplier for pegin fees. As soon as the feerate increases more then this multiplier between pegin and peg out. Lets repeat the calculation above for an example: UTXO of 5x, we subtract 2x in fees an issue ecash with value of 3x. Then the ferrate triples. Now the UTXOs economic value is 2x = 5x - 3x but we issued ecash for 3x - a loss of 33%.
Also note how the multiplier creates economic incentive for consolidation via circular pegins  as described above.

To further disincentivize small deposits we could have an extra penalty fee for small deposits though, kind of a regressive fee schedule.

The problem I see here is that you are penalising the proper use to disincentive misuse that occurs cost on other users. There's an inherent tradeoff here. Furthermore, we need to consider the case that someone might act against their economic incentives maliciously, precisely to incur costs to other users.
This seems like a fundamental tradeoff in the fee model which is why I settled on pegin minimums in the first place even though some more flexible fee solution were my initial approach as well.

Isn't that also the case for minimum deposit amounts?

Let's say the fee to add a UTXO to a transaction at the moment is x, someone pegs in a UTXO of value 5x, which has economic value of 4x, and therefore we charge a fee of x to for pegging in the UTXO, hence we issue ecash for the value 4x. Then the ferrate doubles. The economic value of that UTXO is now 3x = 5x - 2x but we issued ecash for 4x - a loss of 25%.

@joschisan I don't get this answer. It doesn't explain how is anything better with minimum deposits.
There is no magic solution. Hypothetically if the feerate goes to 1000sat/vB, tons of stuff on Bitcoin becomes economically unspendable. But what we can safely assume is that they they become temporarily unspendable. History shows that fee spikes are temporary. This also means that if you collect a fee at the long term mean, sometimes you make
The point of substracing a fee is to move the cost of spending an UTXO from the UTXO spender to the one that is responsible for creating the UTXO (pegin). It doesn't need to be perfect, but IMO is just reasonable and fair.
Yes, it should incentivize consolidating. Moroever - I think wallet module should just not do any fancy coin selection, and just always consolidate as much as possible (maybe with some cap to avoid humungus UTXOs) trying to get as close as possible to a single UTXO that can always be CPFPed.
If the Federation collects pegin fee for each UTXO at let's say 30sats/vB * onchain_input_size, then during times of 30sats/vB or less on chain fees, all pegouts are fully refunded for UTXO spend cost. During times of fee rates being higher, the user needs to pay up and cover the difference or just wait. IMO that's the best we can do given that we can't control on chain fees, and we don't want guardians to loose money.
The exact pegin feerate could be adjustable via consensus voting (like most stuff), so guardians that predict long term higher fees can adjust it over time.
@elsirion

To further disincentivize small deposits we could have an extra penalty fee for small deposits though, kind of a regressive fee schedule.

The problem I see here is that you are penalising the proper use to disincentive misuse that occurs cost on other users. There's an inherent tradeoff here. Furthermore, we need to consider the case that someone might act against their economic incentives maliciously, precisely to incur costs to other users.

You don't have to penalize proper use. If you have a minimum deposit people will burn their BTC, so you might as well just accept the peg-ins with a 100% fee going to fee subsidies. When fees are low (subsidy reserve of UTXO < spend cost) these UTXOs can be used for peg-outs and any remaining subsidy reserve either goes to the guardians or gets carried over to the change UTXO. That way we avoid burning BTC while at the same time heavily disincentivizing small deposits.

I don't get this answer. It doesn't explain how is anything better with minimum deposits.

@dpc Let me reframe this then. With a minimum deposit and minimum change size of m, a peg out transaction for a value of t can be constructed with a maximum t // m + 2 inputs (the division rounds down here) - irrespective of the coin selection actually. Now given the the fee of x to add a utxo to a transaction, the fee to add all selected inputs to the peg out transaction is bound by x * (t // m + 2) hence the relative fee with respect to t is bound by
(x * (t // m + 2) ) / t <= x / m + (2 * x) / t
Hence for t >= m you have a maximum relative pegout fee of 3 * (x / m) while the relative pegout fee is asymptotically approaching  x / m from above for increasing t.
Please note how the bound above depends only on the ferrate through x and the choice of m but not on behaviour of other users. It seems to me that without minimum pegin amounts it is not possible to derive such a bound on relative pegout fees...? As I said, I thought about a similar approach to your fee subsides first but switched to minimum begins as I was unable to construct a bound on relative peg out fees.

@joschisan Oh. That is some math I would have to sit and think about. If I don't misunderstand completely, you try to make some bounds and estimates on amount of UTXO needed to make a peg-out, given certain properties of UTXOs from peg-ins, etc. which is probably smart and all, but fundamentally seems to me like the wrong way to think about it.
My take here is that there's a simpler way: every peg-in UTXO has a known vB cost when used in peg-out, known upfront for a given Federation. As long as the pegged-in user bares the cost (a peg-in fee) of each peg-in UTOX, it doesn't matter if a peg-out transaction requires 1 or 100 UTXOs - each of them would carry a subsidy to typically pay for its spend during peg-out (or if too small would be entirely ignored).
Obviously an actual fee is vB-size * feerate, but any solution is affected by a feerate uncertainty, and I know it's actually fundamentally unsolvable problem, that needs to depend on some conservative long-term fee estimate no matter what.
The core observation here is that every created UTXO implies one and only one (eventual) cost of spending it. No amount of math or UTXO selection can change that fact. The feerate can be different at different times of spending it, that is always an educated gamble.
If the peg-in fee (=peg-out subsidy) is calculated with vB-size * expected-long-term-feerate where the expected-long-term-feerate is reasonable, this solution works as long as fee-rates during peg-outs are not much higher than that conservative value. To prevent accumulation of UTXOs and problems with spending them, I also think that "a rolling change" (spending all/most available and economical UTXO during every peg-in the best approach) is the best approach.

@dpc for context, we discussed this PR during last week's deep dive.
https://bitcointv.com/w/reHSR15G1huyXGvu6i4CFG

Obviously an actual fee is vB-size * feerate, but any solution is affected by a feerate uncertainty, and I know it's actually fundamentally unsolvable problem, that needs to depend on some conservative long-term fee estimate no matter what.

I agree the fundamental issue is feerate uncertainty. Thinking from a financial hedging perspective, the problem we face is similar in nature to an airline selling tickets for a future flight without knowing the future cost of jet fuel. To minimize uncertainty, the airline can hedge their risk of increased costs by going long jet fuel derivatives. Since federations don't have the luxury of hedging costs by going long feerate derivatives (yet), the next best approach is to minimize the time between when a peg-in fee is collected and when the peg-in UTXO is spent in a transaction.
During the deep dive, @m1sterc001guy proposed an interesting idea: once the user submits a peg-in proof, immediately construct a transaction that consolidates the peg-in UTXO passing the fee to the user (see ~23:50 in the deep dive video). That approach seems to solve the problem of minimizing the time between collecting the peg-in fee and spending the peg-in UTXO.
When we implement a fix for submitting peg-in proofs that exceed ALEPH_BFT_UNIT_BYTE_LIMIT (https://github.com/fedimint/fedimint/issues/5585), we can also trigger constructing a consolidation transaction once a threshold of peers verify the proof. The client will wait until it observes a threshold of peers that verified the proof and signed a consolidation transaction, subtracting the fee used in the consolidation transaction when they call submit_transaction. If the peg-in UTXO isn't sufficient to pay for a consolidation transaction, the user won't be able to claim any ecash.
I still need to chew on the implications of doing this in the existing wallet module vs only introducing this behavior in a wallet v2 (all existing federations using old wallet, all new federations using v2).
Please call out any issues you see with this approach. I'm also happy to hop on a call to discuss.

During the deep dive, @m1sterc001guy proposed an interesting idea: once the user submits a peg-in proof, immediately construct a transaction that consolidates the peg-in UTXO passing the fee to the user

Please call out any issues you see with this approach.

That still leaves you with an  UTXO (one, but still) that is a subject to feerate uncertainty.
Also, let's compare the cost. If we have 3 peg-ins first and then 3 peg-outs later, assuming 2 first peg-outs create a change UTXO, and last one spends the last UTXO whole, eagerly consolidating after peg-ins goes though 7 UTXOs total, while consolidating opportunistically on peg-outs only though 5.
Consolidate on peg-outs only:
peg-in 1 ; 1 unspent
peg-in 2 ; 2 unspent
peg-in 3 ; 3 unspent
peg-out 1; 3 unspent, 1 spent
peg-out 2; 3 unspent, 2 spent
peg-out 3; 0 unspent, 5 spent

Consolidate on peg-ins with extra tx:
peg-in 1 ; 1 unspent
peg-in 2 ; 1 unspent, 2 spent
peg-in 3 ; 1 unspent, 4 spent
peg-out 1; 1 unspent, 5 spent
peg-out 2; 1 unspent, 6 spent
peg-out 3; 0 unspent, 7 spent

There might be other scenarios that I'm too tired to go through, but generally I expect an extra consolidation to cost one extra UTXO.

Thinking from a financial hedging perspective, the problem we face is similar in nature to an airline selling tickets for a future flight without knowing the future cost of jet fuel.

That's a great way to think about it. Worth noting that sometimes one wins such a bet - the jet fuel gets cheaper, and airline pockets the difference. So the cost of uncertainty might be more than adequately reflected in a higher expected long-term feerate (fee subtracted from the peg-in amount). The federation might accumulate the surpluses from "winning bets" to afford subsidizing peg-outs during higher than expected fee rate, at least partially.

@joschisan Is it worth closing this and focusing our efforts on wallet v2?


Integration Request: Google Sheets

Lots of great discussion in Slack.
Start here:
https://looker.slack.com/archives/C879UAZ4K/p1525123561000513
And read through proj-action-hub channel until here:
https://looker.slack.com/archives/C879UAZ4K/p1525124354000255
But here's the tl;dr.  Currently Looker allows our customers to send data to Google Sheets, but all the ways to do so have serious drawbacks.  Primarily, they rely on making a Look public or exposing API credentials to those accessing the google sheet.  These are serious drawbacks, and something that the Action Hub was designed to address.
Thanks!

Great summary of current options by @Kruncha in Zendesk ticket 138396.

Hey Emma,
Andy and I discussed your options with a few colleagues, and there are a few options for getting your data into Google Sheets without errors:
Looker-built import script: This script was built to avoid some of the issues with the ImportXML formula, so there's a good chance it will allow your public URLs to run without error if they usually run quickly in the UI. There are still timeouts on the Google Sheets side that we can't change, however, so queries that take longer than a minute to run in the UI will still error in Google Sheets (you could set a caching policy to avoid this, as we discussed on chat).
Run looks from the API: This option allows you to access looks from Google Sheets via API credentials instead of public URLs. However, this option requires a user's API credentials to be put directly into the script, which means that anyone with access to the Google Sheet will be able to do anything that the user can do in Looker. Therefore, using API credentials this way is generally not recommended, and if you use this option, it is very important that the permissions for the Looker user who owns those credentials are carefully limited.
Schedule a webhook to Zapier: If you create a Zapier account, you can schedule looks through Zapier to replace a file with updated data. Since the file will be completely replaced, this will avoid all timeouts and restrictions imposed by Google Sheets and can be set up without giving the Google Sheet any information from Looker. However, this also means that if you currently have several public URLs going to a single sheet, those would have to be split up into separate files in your drive folder.
I'll let the product team know that it would be ideal to have a scheduling option that would replicate the functionality of public URLs. Let me know if you have questions on any of these options!
Best,
Chris


Miscellaneous Access Management bugs

Access management reads Can't Remove or edit yourself message immediately
Access management does not confirm user has been added on button click via screenreader
Edit and Delete button on Access management reads a user ID instead of an understandable name, might want to switch to user name
Can not read content of Access Management table via screen reader + keyboard

:+1:


chore(hypercard): disable unimplemented executors

These executors don't work without appropriate files and are causing failures because some get run in CI.

⏳ This pull request is set to merge as part of a Graphite merge job
Stack job ID: 28zMmKNKsqu4fJGUeiIU.
See details on graphite.dev


When task collection fails, show the appropriate log

If task collection fail, then the response of a GET call to the check-collection endpoint looks like:
{
    "data": {
        "status": "fail",
        "info": "this is the log of what went wrong: asdasdada",
    }
}

The relevant field that should be shown when we click on the "info" button is indeed the response["data"]["info"] attribute, but I think that at the moment we are displaying something else (I may be wrong).

Currently the client displays the log property of the server response.
https://github.com/fractal-analytics-platform/fractal-web/blob/b4974439d0020999f3f7460d17b370ad37b13d4f/src/lib/components/tasks/TaskCollectionLogsModal.svelte#L8-L18
Should we display info instead then?

You're right, there is a bit of confusion here (coming from our side), because task collection can fail in different ways and the relevant information is sometimes in info and sometimes in log.
I'll open an issue upstream to make sure we have this under control in fractal-server.

We are fixing this in fractal-server (ref https://github.com/fractal-analytics-platform/fractal-server/pull/559), and the log field should be the one where all relevant information are. This means that the current handling of this information in fractal-web is correct.


Implemented Core Schema skeleton [ECR-2541]

Overview

Impemended java part for core schema skeleton.
Created tests with @Ignore annotation for waiting for native part
See: https://jira.bf.local/browse/ECR-2541
Definition of Done

[ ] There is no TODOs left in the code
[ ] Change is covered by automated tests
[ ] The coding guidelines are followed
[ ] Public API has Javadoc
[ ] Method preconditions are checked and documented in the Javadoc of the method
[ ] Changelog is updated if needed (in case of notable or breaking changes)
[ ] The continuous integration build passes

This task also included updates to the QA service and its spec. Do you prefer to do that in a separate PR?

Coverage increased (+0.02%) to 84.93% when pulling 7194fc942dcc35b30d1913424620a2d97011088e on ecr-2541 into 46462704c3c75c41359fb67215708ca349a28a74 on master.


How to succesfully run tests with custom chaincodes and custom fabric network?

Context

We have a custom fabric network setup with custom chaincodes that we want to test with Caliper. However i have created a network config file, added our custom chaincodes and written benchmark files for our custom network but Caliper test doesn't seem to be able to send messages. Are there some other files I should modify or create for Caliper to be able to test our network?

 Our network config

#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#

name: Fabric
version: "1.0"
mutual-tls: false

caliper:
  blockchain: fabric

info:
  Version: 1.4.1
  Size: 1 Orgs with 1 Peer
  Orderer: Solo
  Distribution: Single Host
  StateDB: CouchDB

clients:
  client.org1.example.com:
    client:
      organization: Org1
      credentialStore:
        path: /tmp/hfc-kvs/org1
        cryptoStore:
          path: /tmp/hfc-cvs/org1
      clientPrivateKey:
        path<EMAIL_ADDRESS>      clientSignedCert:
        path: network/smartlog/crypto-config/peerOrganizations/org1.example.com/users/User1<EMAIL_ADDRESS>
channels:
  mychannel:
    configBinary: network/smartlog/config/channel.tx
    created: false
    orderers:
    - orderer.example.com
    peers:
      peer0.org1.example.com:
        eventSource: true

    chaincodes:
    - id: UBL
      version: v0
      language: golang
      path: contract/smartlog_chaincodes/UBL

organizations:
  Org1:
    mspid: Org1MSP
    peers:
    - peer0.org1.example.com
    adminPrivateKey:
      path<EMAIL_ADDRESS>    signedCert:
      path: network/smartlog/crypto-config/peerOrganizations/org1.example.com/users/Admin<EMAIL_ADDRESS>
orderers:
  orderer.example.com:
    url: grpc://localhost:7050
    grpcOptions:
      ssl-target-name-override: orderer.example.com

peers:
  peer0.org1.example.com:
    url: grpc://localhost:7051
    grpcOptions:
      ssl-target-name-override: peer0.org1.example.com
      grpc.keepalive_time_ms: 600000

 Our benchmark config

#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

---
test:
  name: smartlog
  description: Example benchmark for caliper, to test SmartLog performance by adding messages to blockchain
  clients:
    type: local
    number: 1
  rounds:
  - label: addMessage
    description: Test description for sending a message through the deployed chaincode
    txNumber:
    - 100
    rateControl:
    - type: fixed-rate
      opts:
        tps: 10
    arguments:
      msg: eyJlbmNyeXB0ZWRNZXNzYWdlIjoiVkdocGMwbHpVMlZqY21WMFlYTmtZWE5rWVhOa1lYTmsiLCJwYXJ0aWNpcGFudHMiOlt7Ik1TUElEIjoiT3JnMU1TUCIsImVuY3J5cHRlZEtleSI6IlZHaHBjMGx6VTJWamNtVjAifSx7Ik1TUElEIjogIk9yZzJNU1AiLCJlbmNyeXB0ZWRLZXkiOiAiVkdocGMwbHpVMlZqY21WMFlYTmtZWE5rWVhOa1lYTmtUM0puTWcifV0sImRvY3VtZW50SUQiOiIxIiwib3JnYW5pc2F0aW9uSUQiOiJPcmcxTVNQIiwic3VwcGx5Q2hhaW5JRCI6ImNoYWluMSIsImNvbnRhaW5lcklEIjoiQ29udGFpbmVySURfMTIzMTIzMTIzIiwic2VuZGVyUGFydHkiOiJTZW5kZXJfcGFydHkiLCJSRklEVHJhbnNwb3J0RXF1aXBtZW50IjoiUkZJRF8xMjMiLCJSRklEVHJhbnNwb3J0SGFuZGxpbmdVbml0IjoiVHJhbnNwb3J0X1JGSUQiLCJzdGF0dXNUeXBlQ29kZSI6IkNPREUxMjMiLCJ0aW1lc3RhbXAiOiIyMDIwLTA2LTI0IDE0OjIwOjAwLjBaIiwiY2FycmllckFzc2lnbmVkSUQiOiJDYXJyaWVkXzEiLCJzaGlwcGluZ09yZGVySUQiOiJTaGlwcGluZ09yZGVyXzEyMzEyMzEyIiwiZW1wdHlGdWxsSW5kaWNhdG9yIjoiRlVMTCJ9
    callback: benchmark/smartlog/addMessage.js
monitor:
  type:
  - docker
  - process
  docker:
    name:
    - all
  process:
  - command: node
    arguments: local-client.js
    multiOutput: avg
  interval: 1

 addMessage.js

/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

'use strict';

module.exports.info  = 'adding messages';

let txnPerBatch;
let msg;
let bc, contx;
module.exports.init = function(blockchain, context, args) {
    msg = args.msg;
    txnPerBatch = args.txnPerBatch;
    bc = blockchain;
    contx = context;

    return Promise.resolve();
};

/**
 * Generates simple workload
 * @returns {Object} array of json objects
 */
function generateWorkload() {
    let workload = [];
	let key;
    for(let i= 0; i < txnPerBatch; i++) {
		key = i;
		workload.push({
		    chaincodeFunction: 'addMessage',
		    chaincodeArguments: [msg, i],
		});
    }
    return workload;
}

module.exports.run = function() {
    let args = generateWorkload();
    return bc.invokeSmartContract(contx, 'UBL', 'v0', args, 100);
};

module.exports.end = function() {
    return Promise.resolve();
};

 Log of a test run, which will keep looping the last part indefinitely

2019-08-27T13:47:57+03:00 - DEBUG Constructed a winston logger with the specified targets:
	{"consolelogger":{"target":"console","level":"info"},"filelogger":{"target":"daily-rotate-file","level":"debug","filename":"log/caliper-%DATE%.log","datePattern":"YYYY-MM-DD-HH","maxSize":"5m","zippedArchive":true}}

2019-08-27T13:47:58+03:00 - INFO [caliper-flow]: ####### Caliper Test #######

2019-08-27T13:47:58+03:00 - INFO [adapters/fabric]: Fabric SDK version: 1.4.4; TLS: none

2019-08-27T13:47:58+03:00 - WARN [adapters/fabric]: Org1's registrar information not provided.

2019-08-27T13:47:59+03:00 - INFO [adapters/fabric]: Org1's admin's materials are successfully loaded

2019-08-27T13:47:59+03:00 - INFO [adapters/fabric]: client.org1.example.com's materials are successfully loaded

2019-08-27T13:47:59+03:00 - INFO [adapters/fabric]: Channel 'mychannel' definiton being retrieved from file

2019-08-27T13:47:59+03:00 - INFO [adapters/fabric]: Channel 'mychannel' successfully created

2019-08-27T13:47:59+03:00 - INFO [adapters/fabric]: Sleeping 5s...

2019-08-27T13:48:04+03:00 - INFO [adapters/fabric]: Org1's peers successfully joined mychannel: peer0.org1.example.com

2019-08-27T13:48:04+03:00 - INFO [adapters/fabric]: Sleeping 5s...

2019-08-27T13:48:09+03:00 - INFO [adapters/fabric]: Installing chaincodes for mychannel...

2019-08-27T13:48:10+03:00 - INFO [adapters/fabric]: UBL@v0 successfully installed on Org1's peers: peer0.org1.example.com

2019-08-27T13:48:10+03:00 - INFO [adapters/fabric]: Instantiating UBL@v0 in mychannel. This might take some time...

2019-08-27T13:48:44+03:00 - INFO [adapters/fabric]: Successfully instantiated UBL@v0 in mychannel

2019-08-27T13:48:44+03:00 - INFO [adapters/fabric]: Sleeping 5s...

2019-08-27T13:48:49+03:00 - INFO [caliper-flow]: Started monitor successfully

2019-08-27T13:48:49+03:00 - INFO [defaultTest]: ####### Testing 'addMessage' #######

2019-08-27T13:48:49+03:00 - INFO [defaultTest]: ------ Test round 1 ------

2019-08-27T13:48:49+03:00 - INFO [client-util.js]: Launching client with PID  35400

2019-08-27T13:48:49+03:00 - INFO [client-util.js]: Waiting for 1 clients to be ready...

2019-08-27T13:48:50+03:00 - INFO [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0

2019-08-27T13:48:49+03:00 - DEBUG Constructed a winston logger with the specified targets:
	{"consolelogger":{"target":"console","level":"info"},"filelogger":{"target":"daily-rotate-file","level":"debug","filename":"log/caliper-%DATE%.log","datePattern":"YYYY-MM-DD-HH","maxSize":"5m","zippedArchive":true}}

2019-08-27T13:48:51+03:00 - INFO [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0

2019-08-27T13:48:51+03:00 - INFO [client-util.js]: Client ready message recieved

2019-08-27T13:48:51+03:00 - INFO [fabric/fabricClientWorker]: Client ready

2019-08-27T13:48:51+03:00 - INFO [client-util.js]: 1 clients ready, starting test phase

2019-08-27T13:48:51+03:00 - DEBUG [local-client.js]: doTest() with:
	{"type":"test","label":"addMessage","rateControl":{"type":"fixed-rate","opts":{"tps":10}},"trim":0,"args":{"msg":"eyJlbmNyeXB0ZWRNZXNzYWdlIjoiVkdocGMwbHpVMlZqY21WMFlYTmtZWE5rWVhOa1lYTmsiLCJwYXJ0aWNpcGFudHMiOlt7Ik1TUElEIjoiT3JnMU1TUCIsImVuY3J5cHRlZEtleSI6IlZHaHBjMGx6VTJWamNtVjAifSx7Ik1TUElEIjogIk9yZzJNU1AiLCJlbmNyeXB0ZWRLZXkiOiAiVkdocGMwbHpVMlZqY21WMFlYTmtZWE5rWVhOa1lYTmtUM0puTWcifV0sImRvY3VtZW50SUQiOiIxIiwib3JnYW5pc2F0aW9uSUQiOiJPcmcxTVNQIiwic3VwcGx5Q2hhaW5JRCI6ImNoYWluMSIsImNvbnRhaW5lcklEIjoiQ29udGFpbmVySURfMTIzMTIzMTIzIiwic2VuZGVyUGFydHkiOiJTZW5kZXJfcGFydHkiLCJSRklEVHJhbnNwb3J0RXF1aXBtZW50IjoiUkZJRF8xMjMiLCJSRklEVHJhbnNwb3J0SGFuZGxpbmdVbml0IjoiVHJhbnNwb3J0X1JGSUQiLCJzdGF0dXNUeXBlQ29kZSI6IkNPREUxMjMiLCJ0aW1lc3RhbXAiOiIyMDIwLTA2LTI0IDE0OjIwOjAwLjBaIiwiY2FycmllckFzc2lnbmVkSUQiOiJDYXJyaWVkXzEiLCJzaGlwcGluZ09yZGVySUQiOiJTaGlwcGluZ09yZGVyXzEyMzEyMzEyIiwiZW1wdHlGdWxsSW5kaWNhdG9yIjoiRlVMTCJ9"},"cb":"benchmark/smartlog/addMessage.js","config":"/opt/caliper/packages/caliper-samples/network/smartlog/smartlog.yaml","root":"/opt/caliper/packages/caliper-samples","numb":100,"roundIdx":1,"totalClients":1,"clients":1,"clientargs":{},"clientIdx":0}

2019-08-27T13:48:51+03:00 - INFO [local-client.js]: txUpdateTime: 1000

2019-08-27T13:48:51+03:00 - INFO [local-client.js]: Info: client 35400 start test runFixedNumber():adding messages

2019-08-27T13:48:51+03:00 - DEBUG [rateControl.js]: Creating rate controller for client#0 for round#1
	{"type":"fixed-rate","opts":{"tps":10}}

2019-08-27T13:48:52+03:00 - INFO [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0

2019-08-27T13:48:53+03:00 - INFO [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0

2019-08-27T13:48:54+03:00 - INFO [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0

2019-08-27T13:48:55+03:00 - INFO [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0

2019-08-27T13:48:56+03:00 - INFO [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0

@edysteri Hmm, where do you set the txnPerBatch argument? Because it's not specified in your benchmark config (where msg is set).

@aklenik There's no txnPerBatch argument set right now since our benchmark is just a direct copy of the simple example benchmark with modifications to make it fit our chaincode. Shouldn't txNumber be enough?

@edysteri The for loop uses that variable, which is currently undefined. Since you're testing a Fabric network, you can set it to 1 in your benchmark config file since Fabric doesn't support TX batches anyway (I mean not in the way Sawtooth does).
arguments:
      msg: ...
      txnPerBatch: 1

@aklenik That seems to have done something but now im getting ERROR [adapters/fabric]: Transaction[b11e0103ca] life-cycle errors: 	- "value" argument must not be a number

@edysteri The chaincode arguments must be passed as strings. You pass the loop index i as a number, so the following should fix it:
workload.push({
		    chaincodeFunction: 'addMessage',
		    chaincodeArguments: [msg, i.toString()],
		});

@aklenik Huge thanks, now it seems to be working! By the way, why does the simple benchmark work with fabric network included in examples without txnPerBatch argument?

@edysteri Because there is a fallback/default value in case it's not specified in the config:
https://github.com/hyperledger/caliper/blob/633da2f5450ba0e99df9c6c693dc04bb0b39f0b7/packages/caliper-samples/benchmark/simple/open.js#L28-L30


How to control drones with companion computer?

Hi, I would like to add a RPi on on top of the pixhawk FMU I have. I am trying to figure out how to control the drone directly with the RPi. Am I supposed to use MAVlink and override the RC input to control the drone?

Does this help? http://dev.px4.io/pixhawk-companion-computer.html

@zhahaoyu The link should help. For more questions please ask in http://discuss.px4.io/.


Run into Mongoose error while implementing on windows 10.

Hi Keith,
I know you developed this boilerplate code on Mac OS. However, do you have any clue why I have following error when I trying to install? Is it because of path letter difference between '/' vs ''?
......\node-react-aws-dynamodb-boilerplate\node_modules\mongoose\lib\connection.js:428
throw new MongooseError('The uri parameter to openUri() must be a ' +
^
MongooseError: The uri parameter to openUri() must be a string, got "undefined". Make sure the first parameter to mongoose.connect() or mongoose.createConnection() is a string.
at new MongooseError (c:\src\node-react-aws-dynamodb-boilerplate\node_modules\mongoose\lib\error\mongooseError.js:13:11)
at NativeConnection.Connection.openUri (c:\src\node-react-aws-dynamodb-boilerplate\node_modules\mongoose\lib\connection.js:428:11)
at Mongoose.connect (c:\src\node-react-aws-dynamodb-boilerplate\node_modules\mongoose\lib\index.js:262:15)
at Object. (c:\src\node-react-aws-dynamodb-boilerplate\server\server.js:21:10)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)
at startup (bootstrap_node.js:191:16)
at bootstrap_node.js:612:3

@gusdoe Looks like the boilerplate expects a db_dev or db to be configured in the config.js.
server.js:
// Set up Mongoose
mongoose.connect(isDev ? config.db_dev : config.db);

Would be nice to include some placeholders there.


Validating not null on ConfigProperties to print nice error message, …

…if any of these configs is missing. Fixes #532

Hello and thank you very much for the contribution! ❤
I ask for a little patience, as I first need to clarify internally how to proceed.


added some missing files

mineserver2 refuses to compile without these files. looks fine with these.

I totally forgot to commit those files... Oops!


Slow writes?

I was debugging a deadlock in syncthing and ran across this goroutine as the culprit;
goroutine 446 [select, 6 minutes]:
github.com/syndtr/goleveldb/leveldb.(DB).Write(0xc208024b40, 0xc209806080, 0x0, 0x0, 0x0)
/home/abuild/rpmbuild/BUILD/go/src/github.com/syncthing/syncthing/Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/db_write.go:199 +0x6c3
github.com/syncthing/syncthing/internal/files.ldbGenericReplace(0xc208024b40, 0xc20979e100, 0x6, 0x8, 0xc20ac3e180, 0x20, 0x20, 0x0, 0x0, 0x0, ...)
/home/abuild/rpmbuild/BUILD/go/src/github.com/syncthing/syncthing/internal/files/leveldb.go:282 +0x69c
github.com/syncthing/syncthing/internal/files.ldbReplace(0xc208024b40, 0xc20979e100, 0x6, 0x8, 0xc20ac3e180, 0x20, 0x20, 0x0, 0x0, 0x0, ...)
/home/abuild/rpmbuild/BUILD/go/src/github.com/syncthing/syncthing/internal/files/leveldb.go:303 +0xa5
github.com/syncthing/syncthing/internal/files.(Set).Replace(0xc208435650, 0x1877f1c42d4a26f2, 0x30dc86619cd860d5, 0x453c5bac58185f49, 0xafe467d59561a164, 0x0, 0x0, 0x0)
/home/abuild/rpmbuild/BUILD/go/src/github.com/syncthing/syncthing/internal/files/set.go:82 +0x2ff
github.com/syncthing/syncthing/internal/model.(Model).Close(0xc2080dd200, 0x1877f1c42d4a26f2, 0x30dc86619cd860d5, 0x453c5bac58185f49, 0xafe467d59561a164, 0x7fd54b4f41b0, 0xc2083993a0)
/home/abuild/rpmbuild/BUILD/go/src/github.com/syncthing/syncthing/internal/model/model.go:621 +0x457
github.com/syncthing/syncthing/internal/protocol.nativeModel.Close(0x7fd5482ca190, 0xc2080dd200, 0x1877f1c42d4a26f2, 0x30dc86619cd860d5, 0x453c5bac58185f49, 0xafe467d59561a164, 0x7fd54b4f41b0, 0xc2083993a0)
/home/abuild/rpmbuild/BUILD/go/src/github.com/syncthing/syncthing/internal/protocol/nativemodel_unix.go:43 +0x6b
github.com/syncthing/syncthing/internal/protocol.(nativeModel).Close(0xc20979ea40, 0x1877f1c42d4a26f2, 0x30dc86619cd860d5, 0x453c5bac58185f49, 0xafe467d59561a164, 0x7fd54b4f41b0, 0xc2083993a0)
:90 +0xbe
created by github.com/syncthing/syncthing/internal/protocol.func·002
/home/abuild/rpmbuild/BUILD/go/src/github.com/syncthing/syncthing/internal/protocol/protocol.go:567 +0x1c4

It holds a lock while doing a bunch of database operations. It looks like the database layer has become stuck ("select, 6 minutes"), or possibly things are going very slowly. From that trace, is that someplace you would expect things to block for minutes, perhaps if the disk isn't super fast?
(The full trace is at the end of https://github.com/syncthing/syncthing/issues/670, not the first one.)
This is on cd2b8f743192883ab9fbc5f070ebda1dc90f3732.

Hey, I just tried using the library. Doing a Put gets stuck (at least for 15 minutes before I terminated the program).
It first happened on my target linux+ARM, figured it was a cross-compilation issue or something. I get the same behavior on OSX.


stream read less than specified amount, expected 4, found 0

Dear Longbow team,
Thank you for your great tool! It is very helpful.
Nevertheless, I am running into some problems while using it.
I am trying to annotate a hifi.bam file with longbow annotate /path/to/hifi/.bam -o annotated.bam (thus using the default mas15 model).
However, I am always getting the error:
[INFO 2023-01-19 16:51:46 annotate] Invoked via: longbow annotate /vol/projects/agrinko/PacBio_K562_pilot_17_1_23/data/m64316_230110_175611.hifi_reads.bam -o /vol/projects/agrinko/PacBio_K562_pilot_17_1_23/data/annotated.bam
[INFO 2023-01-19 16:51:46 annotate] Running with 47 worker subprocess(es)
Traceback (most recent call last):
File "/home/agrinko/.local/bin/longbow", line 8, in
sys.exit(main_entry())
File "/home/agrinko/.local/lib/python3.7/site-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/home/agrinko/.local/lib/python3.7/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/home/agrinko/.local/lib/python3.7/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/agrinko/.local/lib/python3.7/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/agrinko/.local/lib/python3.7/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/home/agrinko/.local/lib/python3.7/site-packages/longbow/annotate/command.py", line 153, in main
read_count = bam_utils.load_read_count(pbi)
File "/home/agrinko/.local/lib/python3.7/site-packages/longbow/utils/bam_utils.py", line 77, in load_read_count
idx_contents = fmt.parse_stream(f)
File "/home/agrinko/.local/lib/python3.7/site-packages/construct/core.py", line 300, in parse_stream
return self._parsereport(stream, context, "(parsing)")
File "/home/agrinko/.local/lib/python3.7/site-packages/construct/core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
File "/home/agrinko/.local/lib/python3.7/site-packages/construct/core.py", line 2120, in _parse
subobj = sc._parsereport(stream, context, path)
File "/home/agrinko/.local/lib/python3.7/site-packages/construct/core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
File "/home/agrinko/.local/lib/python3.7/site-packages/construct/core.py", line 2653, in _parse
return self.subcon._parsereport(stream, context, path)
File "/home/agrinko/.local/lib/python3.7/site-packages/construct/core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
File "/home/agrinko/.local/lib/python3.7/site-packages/construct/core.py", line 2726, in _parse
obj = self.subcon._parsereport(stream, context, path)
File "/home/agrinko/.local/lib/python3.7/site-packages/construct/core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
File "/home/agrinko/.local/lib/python3.7/site-packages/construct/core.py", line 848, in _parse
return stream_read(stream, length, path)
File "/home/agrinko/.local/lib/python3.7/site-packages/construct/core.py", line 91, in stream_read
raise StreamError("stream read less than specified amount, expected %d, found %d" % (length, len(data)), path=path)
construct.core.StreamError: Error in path (parsing) -> magic
stream read less than specified amount, expected 4, found 0
Is there anything I can do here? It is my first time ever analyzing long-read data, not to speak of mas-iso-seq data.
My conda environment consists of your env.yml file and I am running the job via sbatch on Ubuntu.
I hope this is reproducible enough!
Best wishes,
Tasy

Hi @TinyTasy
This looks like a problem with your bam index.  Is it a valid .pbi (PacBio bam index)?  A quick fix would be to rerun pbindex on your input bam to regenerate the .pbi file.  I suspect after doing that it will work just fine.


Features/lillie/comparison result magic

Closes #9
Updates Matches to Return a Result for each ComparisonType we have defined
Added a single unit test for verifying the count of enums matches hte number of results

abandoning this PR -