No Longer on US App Store?

I was trying to show a collegue your app but it's no longer on the US store. Will it be back?

Hello @delianides! The app was removed from the app store because my apple developer account expired and it is a bit pricy since I only had free apps on the app store(most of them are even open-source). I'll have a look around if anyone wants to "sponsor" the app by paying for the account (or if I make any more apps I'll obviously renew my account myself)!
For now feel free to download the source & install it with xcode etc - Sorry for the hassle!

Hey I love your app, how can we help? Is there a tipping system that we could use to sponsor the distribution of the app?

Can I build and install it even without a developer license?

Hello everyone! The app is now available again - you can find more information on https://github.com/manosim/gitify/issues/261!


MINOR: revert initial principal PR

Need to make sure 2.7 doesn't bump the request header unexpectedly.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@bbejeck @hachikuji

@bbejeck FYI, this should be considered a blocker for 2.7.

@abbccdda On second thought, we should just target trunk here and pick into 2.7 like usual.

Reopening this PR to merge to 2.7


Fix multiple file support in linux.file_watch.line + black + fstring

When multiple file_watch rules are defined, the last defined file reference is used for all files being watched.  This causes trigger-instances to fail rule enforcement.
Adding the reference to the logging shows test1.log has the reference ending with 8c505
2021-11-30 18:50:40,434<PHONE_NUMBER>88112 INFO file_watch_sensor [-] Added file "/var/log/test1.log" with reference linux.7e55ad75-b10c-44db-b53e-95164a18c505
2021-11-30 18:50:41,459<PHONE_NUMBER>88112 INFO file_watch_sensor [-] Added file "/var/log/test2.log" with reference linux.590de8c1-c578-4125-9082-2cee03b030a9

When the file contents are updated a trigger is emitted by the sensor using the reference of test2.log ending in b030a9
root@u1804:~# st2 trigger-instance get 61a6649f164625c2d94dccb8 -y
id: 61a6649f164625c2d94dccb8
occurrence_time: '2021-11-30T17:51:27.294000Z'
payload:
    file_name: test1.log
    file_path: /var/log/test1.log
    line: Tue Nov 30 18:51:27 CET 2021 dhcp
status: processed
trigger: linux.590de8c1-c578-4125-9082-2cee03b030a9

This PR consists of adding a dictionary that is used to track the path_name and reference pair and looks up the reference for the file that was altered when creating the trigger.
The code is formatted with black and updated to use fstrings since all instances will be using Python 3.6+

I'm approving/merging this to improve the status quo action.
But I really hope that the file watch stuff will be replaced by merging #5096 (which depends on #5257 which is waiting for gunicorn to do a release. gunicorn is waiting to release because their CI is broken. :shrug: )


PDF: Requirements are highlighted with color incorrectly

There should have been no coloring of the header row.

@ronaldtse could you confirm that this render is ok?

@Intelligent2013 I would like to wait until the implementation of #777 to see how it looks. Thanks!

I've generated presentation XML with such Gemfile file:
source "https://rubygems.org"

gem "metanorma-cli"
gem "metanorma-iso", git: "https://github.com/metanorma/metanorma-iso", branch: "features/modspec-iso"
gem "metanorma-utils", git: "https://github.com/metanorma/metanorma-utils", branch: "main"
gem "metanorma-standoc", git: "https://github.com/metanorma/metanorma-standoc", branch: "main"
gem "isodoc", git: "https://github.com/metanorma/isodoc", branch: "main"
gem "mn-requirements", git: "https://github.com/metanorma/mn-requirements", branch: "master"
gem "sassc"

and now PDF renders so:

similar to Word.

There are 2 issues:

The "Description" header for row 3 is not showing.
The "Provisions" header for row 4 should be aligned to top.

Something wrong happened, I can't generate the XML:
git clone https://github.com/metanorma/iso-19135
cd iso-19135
bundle update
cd sources\iso-19135-2021
bundle exec metanorma -t iso -x presentation document.adoc:
Traceback (most recent call last):
        36: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/bin/metanorma:23:in `'
        35: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/bin/metanorma:23:in `load'
        34: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-cli-1.5.24/exe/metanorma:43:in `<top (required)>'
        33: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-cli-1.5.24/exe/metanorma:25:in `block in <top (required)>'
        32: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-cli-1.5.24/lib/metanorma/cli.rb:34:in `start'
        31: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/thor-1.0.1/lib/thor/base.rb:485:in `start'
        30: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
        29: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
        28: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/thor-hollaback-0.2.1/lib/thor/hollaback.rb:68:in `run'
        27: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
        26: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-cli-1.5.24/lib/metanorma/cli/command.rb:47:in `compile'
        25: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-cli-1.5.24/lib/metanorma/cli/command.rb:47:in `each'
        24: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-cli-1.5.24/lib/metanorma/cli/command.rb:47:in `block in compile'
        23: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-cli-1.5.24/lib/metanorma/cli/command.rb:240:in `compile_document'
        22: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-cli-1.5.24/lib/metanorma/cli.rb:17:in `load_flavors'
        21: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-cli-1.5.24/lib/metanorma/flavor.rb:35:in `load_flavors'
        20: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-cli-1.5.24/lib/metanorma/flavor.rb:47:in `load_flavors'
        19: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-cli-1.5.24/lib/metanorma/flavor.rb:47:in `each'
        18: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-cli-1.5.24/lib/metanorma/flavor.rb:48:in `block in load_flavors'
        17: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-cli-1.5.24/lib/metanorma/flavor.rb:48:in `require'
        16: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-iso-2.1.8/lib/metanorma-iso.rb:2:in `<top (required)>'
        15: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-iso-2.1.8/lib/metanorma-iso.rb:2:in `require_relative'
        14: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-iso-2.1.8/lib/metanorma/iso/converter.rb:2:in `<top (required)>'
        13: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-iso-2.1.8/lib/metanorma/iso/converter.rb:2:in `require'
        12: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-standoc-<IP_ADDRESS>/lib/metanorma-standoc.rb:3:in `<top (required)>'
        11: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-standoc-<IP_ADDRESS>/lib/metanorma-standoc.rb:3:in `require_relative'
        10: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-standoc-<IP_ADDRESS>/lib/metanorma/standoc/converter.rb:11:in `<top (required)>'
         9: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-standoc-<IP_ADDRESS>/lib/metanorma/standoc/converter.rb:11:in `require_relative'
         8: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-standoc-<IP_ADDRESS>/lib/metanorma/standoc/validate.rb:8:in `<top (required)>'
         7: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/metanorma-standoc-<IP_ADDRESS>/lib/metanorma/standoc/validate.rb:8:in `require'
         6: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/png-1.2.1/lib/png.rb:13:in `<top (required)>'
         5: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/png-1.2.1/lib/png.rb:14:in `<class:String>'
         4: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/RubyInline-3.12.6/lib/inline.rb:854:in `inline'
         3: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/RubyInline-3.12.6/lib/inline.rb:606:in `build'
         2: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/RubyInline-3.12.6/lib/inline.rb:606:in `chdir'
         1: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/RubyInline-3.12.6/lib/inline.rb:606:in `block in build'
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/RubyInline-3.12.6/lib/inline.rb:606:in ``': No such file or directory - x86_64-w64-mingw32-gcc -shared  -O3 -fno-fast-math -fstack-protector-strong -I C:/Ruby27-x64/include
/ruby-2.7.0 -I C:/Ruby27-x64/include/ruby-2.7.0/x64-mingw32 -I C:/Ruby27-x64/include "C:/Users/TestUser/.ruby_inline/ruby-2.7.0/Inline_String_9a6686966a50705d94442f198bc2c408.c"   -Wl,--enable-auto-import -LC:/R
uby27-x64/lib -lx64-msvcrt-ruby270 -o "C:/Users/TestUser/.ruby_inline/ruby-2.7.0/Inline_String_9a6686966a50705d94442f198bc2c408.so" -L. -pipe -s -fstack-protector-strong  (Errno::ENOENT)

Will raise an issue.

This issue depends on https://github.com/metanorma/metanorma-iso/issues/796.

Resulted PDF (generated on Ubuntu):

There are 2 issues:
The "Description" header for row 3 is not showing.
The "Provisions" header for row 4 should be aligned to top.

	<name>Table 1 — Requirements class 1: Responsibilities of the register owner</name>

			Identifier

				<tt>/req/roles/register-owner</tt>

			Target type
			register owner

			Description

Responsibilities of the register owner

			Provisions

				<xref target="_>Requirement 1: Creation of a register specification</xref>

Currently, ISO XSLT renders left column aligned to middle. Will fix.

ISO XSLT updated:

Thank you @Intelligent2013 !


Store will need to be async friendly

https://github.com/bappr/kube-proxless/blob/5d6ef8af2b3b9fd9cc6d17f94387e1a68e1fa608/internal/store/store.go#L1
Due to access from threads from both fasthttp and k8s, you will need to make the store threadsafe. Recommend using a readwrite lock since writes will be low concurrency.

Thanks.
Fixed


Add try catch blocks for None handling

@CanCeylan I think you forgot to merge this PR. Once approved it's the job of the PR submitter to merge it.


[Has Questions] Update nondestructively

I've tested this with both recursive and non-recursive updates locally. It does work, however there are some wrinkles with certain types of resources. For example the XA Datasource Properties resource does not allow updates at all. All changes must be made destructively. This means I need a way to specify that a resource or sub-resource should be changed destructively.
My first thought would be to add some sort of parameter that specifies a path for which the resources which match are treated destructively, but that doesn't seem so great. I wanted to put what I had as a PR and see how other people think destructive updates should be treated.

As an example of the destructive paths bit.
wildfly::util::resource { '/subsystem=datasources/xa-data-source=DefaultPool':
  content => {
    'driver-name' => 'oracle',
    'jndi-name'   => 'java:/jdbc/DefaultPool',
    'operation'   => 'add',
    'password'    => 'password',
    'user-name'   => 'undef',
    'xa-datasource-properties' => {
      'url'  => 'jdbc:oracle:thin:@DEFA'
    }
  },
  destructive_paths => ['/xa-datasource-properties']
}

Should solve #54 though I didn't use an update-properties operation since I didn't see an operation on https://docs.jboss.org/author/display/WFLY8/Global+operations

I'll try to answer everything (in an unordered way) in this single comment and it might get confusing, but here it goes:

Unfortunately only a few subsystems have update-properties (e.g. /subsystem=logging/periodic-rotating-file-handler=FILE:update-properties(...)) and a composite operation of write-attribute is indeed a more generic solution.

Are you sure XA Datasources doesn't support hot changes? Maybe if you disable it and remove any dependencies it has you'll be able to change.

My main concern is more related to the case above (you need to disable a resource in order to change it) and deployments dependencies on resources, so if you have, for example, an EAR that depends on a datasource, a queue and a remoting connector, you won't be able to perform some changes in theses resources while the deployment is up (even with write-attribute). [1]

[1] In practice I've seen two ways to realize this: (1) change configuration XML (i.e. offline changes) or (2) disable deployment, change resources and enable it again. Both alternatives imply in a small downtime, and it might be related to JBoss AS 7+ architecture (subsystems are lazily loaded).

Your PR is a big step towards #54 (and definitely solves cases where there is no dependency involved), but I still can't see how we are going to implement more complex scenarios using just Puppet. Lately I've been thinking that you should use an orchestration tool (MCollective, Capistrano, Fabric, CFEngine) in conjunction with Puppet to perform operations that will put you in the desired state. What do you think? Are we able to put this dependency resolution intelligence in our custom types or is it too application-specific?

Thank you for your contributions. I'll merge them and perform some tests as soon as possible.

The XA Datasource does support hot changes, but the XA Datasource Property resource ie /subsystem=datasources/xa-data-source=DefaultPool/xa-datasource-properties must be updated via a remove and a recreate. Wildfly does not let you edit their value. I'm working on some changes for enabling destructive updates for resources/subresources since they're needed for us. I'll put a PR for those changes when I finish them.

Turns out you can't remove properties while the datasource is enabled.
Error: Failed with: JBAS014653: Composite operation failed and was rolled back. Steps that failed:Operation step-1JBAS014762: Removing services has lead to unsatisfied dependencies:
==> fbstandalone: Service jboss.xa-data-source-config.DefaultPool.xa-datasource-properties.URL was depended upon by service jboss.xa-data-source-config.DefaultPool for {"address":[],"steps":[{"address":[{"subsystem":"datasources"},{"xa-
data-source":"DefaultPool"},{"xa-datasource-properties":"URL"}],"operation":"remove"},{"address":[{"subsystem":"datasources"},{"xa-data-source":"DefaultPool"},{"xa-datasource-properties":"URL"}],"value":"jdbc:oracle:thin:@DEFB","operati
on":"add"}],"operation":"composite"}


Add formatting tools and enforcement of C++ style

It would be nice to have tools to format and precommit checks to enforce a C++ style as was done in the RAPIDS cudf repository with clang-format.

Please priority this.
In addition, I prefer to use the existing libcudf C++ .clang-format style as it is pretty complete. The clang-format style from cudf JNI is not that nice.

Any idea why cudf JNI and libcudf C++ are using different formats?

I traced back git history and found that JNI .clang-format was created on 6/13/2019 by @revans2 while libcudf .clang-format was added later on 10/30/2019.

@jlowe Should this be closed by https://github.com/NVIDIA/spark-rapids-jni/pull/1244?

Almost.  The formatting tools are there, but arguably we should have formatting enforcement in CI otherwise we'll keep reviewing what should be small PRs but become huge because some people are formatting and others are not.

@pxLi for visibility: we need to setup CI style check.

@pxLi for visibility: we need to setup CI style check.

sounds good to me. Please help provide some minimum steps of how the formating tool should work in CI, thanks
We will try setup CI for it 👍

Maybe this: https://github.com/NVIDIA/spark-rapids-jni/pull/1244#issuecomment-1615130821.

Maybe this helps on how to do it: #1244 (comment).

their script seems too much for our usage. We can just run pre-commit as added in https://github.com/NVIDIA/spark-rapids-jni/pull/1244/files#diff-63a9c44a44acf85fea213a857769990937107cf072831e1a26808cfde9d096b9R6

Before CI style check can be enforced, we must have PR to reformat all the code.

sure, cc @yinqingh to help with this ticket.
We will need an extra github action to help check clang format before merging.

closing by #1597. Feel free to reopen if require some follow-up


mdbx_load fails with MDBX_MAP_FULL: Environment mapsize limit reached

Steps to reproduce the bug

wget https://github.com/erthink/libmdbx/releases/download/v0.9.1/libmdbx-amalgamated-0.9.1.tar.gz
tar xvfz libmdbx-amalgamated-0.9.1.tar.gz
make
prepare 5'000 key,value in two text files of 5'000 lines each, about 2*300KB of data (t1.txt, t2.txt)
run ./mdbx_load -T foo < t1.txt
run ./mdbx_load -T foo < t2.txt

Expected behaviour
first 2'500 key value pairs are loaded in the foo MDBX.
then another 2'500 key value pairs are loaded in the foo MDBX.
Resulting behaviour
first
mdbx_load v0.9.1-0-g44b1a3b (2020-09-30T13:28:01+03:00, T-cdf44eb040316fff8c20f34069d5148e758f9ab7)
Running for foo...
./mdbx_load: at input line 5000: mdbx_dbi_close() error -30780, MDBX_BAD_DBI: The specified DBI-handle is invalid or changed by another thread/transaction

2500 entries loaded
then
mdbx_load v0.9.1-0-g44b1a3b (2020-09-30T13:28:01+03:00, T-cdf44eb040316fff8c20f34069d5148e758f9ab7)
Running for foo...
./mdbx_load: at input line 1516: mdbx_cursor_put() error -30792, MDBX_MAP_FULL: Environment mapsize limit reached

no new entries loaded, stays at 2'500.
I  thought mdbx was able to extend the DB automatically. Else mdbx_load should propose an option to specify max size of the DB.
Additional information
By reducing the number of lines in the second batch, I'm able to load about 3'600 entries, 1MB of data.
System
Linux 5.6.0-2-amd64 #1 SMP Debian 5.6.14-2 (2020-06-09) x86_64 GNU/Linux

here are the two input files

t1.txt
t2.txt

Thank for reporting.

./mdbx_load: at input line 5000: mdbx_dbi_close() error -30780, MDBX_BAD_DBI: The specified DBI-handle is invalid or changed by another thread/transaction

This is a bug.
In case data loaded into not a named sub-database (i.e. without -s name option), but into the "main" (unnamed) key-value space.
Will fixed soon.

./mdbx_load: at input line 1516: mdbx_cursor_put() error -30792, MDBX_MAP_FULL: Environment mapsize limit reached
I thought mdbx was able to extend the DB automatically. Else mdbx_load should propose an option to specify max size of the DB.

Briefly: Please submit a PR if you need this feature.
More detailed:

mdbx_load is an auxiliary utility, mainly for transferring data from LMDB and BDB, as well as restoring from backups (that's why the bug you found went unnoticed).
your suggestion is reasonable, but still I will not implement it yet, as there are still a lot of cases when the functionality of these utilities is not enough.
please use following workaround or submit a PR with implementation based on the mdbx_set_geometry(), including man-page update.

Workaround:

Create a text file with the header using the following templateVERSION=3
geometry=l12288,c12288,u1073741824,s16777216,g8388608
db_pagesize=4096
HEADER=END
DATA=END

The order and purpose of numeric fields in the geometry= string matches the arguments of the mdbx_set_geometry() function, except for the last one (which sets the DB pagesize).
Create an new empty database ./mdbx_load pathname < header.txt with the desired size, increment step, and shrink threshold.
Continue load you data in usual way (after I will commit a fix for the bug above).

Thanks a lot for the reply.
I built from the last commit and indeed, no more MDBX_BAD_DBI error.
Unfortunately, the headers file does not fix MDBX_MAP_FULL.
I see mdbx_env_set_geometry proposes:

intptr_t  	size_lower,
intptr_t  	size_now,
intptr_t  	size_upper,
intptr_t  	growth_step,
intptr_t  	shrink_threshold,
intptr_t  	pagesize

I guess I grok the format of the headers:

l	12288 ⇒ lower ? 12KB
c	12288 ⇒ now ? 12KB
u<PHONE_NUMBER> ⇒ upper ? 1GB, the interesting part to me
s	16777216 ⇒ growth step ? 16MB
g	8388608 ⇒ shrink ? 8M

But, with that, the db does not grow beyond 1MB.

Actually, there is something wierd:
When I do ./libmdbx/mdbx_load -T foo < header.txt and then ./libmdbx/mdbx_dump -p foo:
mdbx_dump v0.9.1-87-gd3b5d0c (2020-11-15T08:06:04+03:00, T-77f3e07db77441759eb439b1825bcb02816f4af0)
Running for foo...
VERSION=3
geometry=l12288,c65536,u1048576,s131072,g65536
mapsize=1048576
maxreaders=120
format=print
type=btree
db_pagesize=4096
duplicates=0
HEADER=END
 VERSION=3
 geometry=l12288,c12288,u1073741824,s16777216,g8388608
 db_pagesize=4096
 HEADER=END
DATA=END

It is like the header has been inserted as regual kv pairs.

Actually, there is something wierd:
When I do ./libmdbx/mdbx_load -T foo < header.txt and then ./libmdbx/mdbx_dump -p foo:
mdbx_dump v0.9.1-87-gd3b5d0c (2020-11-15T08:06:04+03:00, T-77f3e07db77441759eb439b1825bcb02816f4af0)
Running for foo...
VERSION=3
geometry=l12288,c65536,u1048576,s131072,g65536
mapsize=1048576
maxreaders=120
format=print
type=btree
db_pagesize=4096
duplicates=0
HEADER=END
 VERSION=3
 geometry=l12288,c12288,u1073741824,s16777216,g8388608
 db_pagesize=4096
 HEADER=END
DATA=END

It is like the header has been inserted as regual kv pairs.

Please read my answer carefully.
Firstly, you should create the new DB by loading "header" without -T option.
Secondary, you should load your data into created DB with the -T option.

Sorry, I didn't read carefully.
After typing correctly, ./libmdbx/mdbx_dump -p foo gives :
mdbx_dump v0.9.1-87-gd3b5d0c (2020-11-15T08:06:04+03:00, T-77f3e07db77441759eb439b1825bcb02816f4af0)
Running for foo...
VERSION=3
geometry=l12288,c1048576,u1048576,s131072,g65536
mapsize=1048576
maxreaders=120
format=print
type=btree
db_pagesize=4096
duplicates=0
HEADER=END
DATA=END

It seems the geometry parameter has not been taken into account. I still get MDBX_MAP_FULL when I try to load data.

It seems the geometry parameter has not been taken into account

Sorry, this was minor bug.
Fixed for now.

Reading from the code (mdbx_load.c#597), it seems mapsize if mandatory to load the geometry.
So I used as header:
VERSION=3
geometry=l12288,c12288,u1073741824,s16777216,g8388608
mapsize=1073741824
maxreaders=120
format=print
type=btree
db_pagesize=4096
duplicates=0
HEADER=END
DATA=END

And it works ! 2'263'514 entries, 520MB db, in 7 seconds :champagne:
Thank for the workaround.
I'll continue playing :)

It seems the geometry parameter has not been taken into account

Sorry, this was minor bug.
Fixed for now.

Cross posts.
Thanks you very much !

I am getting also MDBX_MAP_FULL inserting new keys when compiled mdbx 32 bit on windows, it doesn't do it compiling 64 bit,
I do this
rc = mdbx_env_create(&env);
if (rc != MDBX_SUCCESS) {
    printf( "mdbx_env_create: (%d) %s\n", rc, mdbx_strerror(rc));
    goto bailout;
}

//mdbx_env_set_mapsize(env, 10485760);
mdbx_env_set_geometry(env,
    0, // size_lower
    -1, // size_now
    INTPTR_MAX, // size_upper
    -1, // growth_step
    -1, // shrink_threshold
    -1); // pagesize

rc = mdbx_env_open(env, "./example-db",
    MDBX_NOSUBDIR | MDBX_COALESCE | MDBX_LIFORECLAIM| /*MDBX_EXCLUSIVE |*/ MDBX_UTTERLY_NOSYNC | MDBX_WRITEMAP | MDBX_NOMETASYNC, 0664);

what am I doing wrong or should change ?

The 32-bit Windows environment has significant limitations for the memory mapping size.
The actual limit depends on Windows version, the amount of memory, the size of the swap file, the current memory usage, etc.
Thus there are three reason for this:

It it possible that hardcoded some time ago limit is too high and should be reduced;
you system had to low available/free RAM;
some bug inside libmdbx during handling max- and/or default-values.

I'll check the last case tomorrow.
Thank for reporting.

I checked your case on two Windows 10 machines.
In both cases, there is no MDBX_MAP_FULL problem, everything works as it should.
So, unconfirmed.

what are the settings for fastest insert rate like loading new records ?
it seems to be very slow doing one insert per transaction, what is the maximum number of puts per transaction ?
from the included test it seems to indicate "write transaction size" about 5 gb 64 bit and about 200 mb 32 bit, does that make sense to you that I don't know the code ?
is it possible to recover from map full by calling env sync ?

what am I doing wrong or should change ?

Seems none.
However, maybe you should have a 64-bit build for your data volume.

what are the settings for fastest insert rate like loading new records ?

The MDBX_UTTERLY_NOSYNC | MDBX_WRITEMAP gives maximum performance, since at the same time writing to disk occurs implicitly only by the decision of the OS kernel.

it seems to be very slow doing one insert per transaction, what is the maximum number of puts per transaction ?

Depending on the hardware performance in this mode, libmdbx provides from 20K to 10M insertions/updates per second.

With the MDBX_WRITEMAP there is no explicit limit on the transaction size.
On the other hand, the overhead to start and commit transaction is too low also.
So you can use 100-10K insertions per transaction.
But not too many, since during transaction any modified pages are always CoWed, and thus large transaction require a large space of DB for inserted data and modified pages.

is it possible to recover from map full by calling env sync ?

Yes.

with that environment setting  MDBX_UTTERLY_NOSYNC | MDBX_WRITEMAP
__cold intptr_t mdbx_limits_dbsize_max(intptr_t pagesize) {
if (pagesize < 1)
pagesize = (intptr_t)mdbx_default_pagesize();
else if (unlikely(pagesize < (intptr_t)MIN_PAGESIZE ||
pagesize > (intptr_t)MAX_PAGESIZE ||
!is_powerof2((size_t)pagesize)))
return -1;
STATIC_ASSERT(MAX_MAPSIZE < INTPTR_MAX);
const uint64_t limit = (1 + (uint64_t)MAX_PAGENO) * pagesize; MAX_PAGENO 2gb pagesize 65535
return (limit < (intptr_t)MAX_MAPSIZE) ? (intptr_t)limit
#define MAX_MAPSIZE32 UINT32_C(0x38000000) decimal 939524096 about 900 mb ? it possible to increase to about 3 gb on 32 bit windows ?
#else
#define MAX_MAPSIZE32 UINT32_C(0x7f000000) decimal<PHONE_NUMBER> about 2 gb 64 bit windows ?
#endif
                                     : (intptr_t)MAX_MAPSIZE;

}
so in case I cannot go with maximum insert speed setting above, is there a setting that allows > 1 gb db size on 32 bit windows

decimal 939524096 about 900 mb ? it possible to increase to about 3 gb on 32 bit windows ?

Yes, but it won't take off...
The hard limit is 2G address space for 32-bit Windows application.
For 32-bit kernel this 2G shared for all applications, and all shared libraries that are used, etc...
So if you have >256M data then 64-bit is recommended, but for >512M it is actually required.
Anyway, you can change this limit and try.
Moreover, you can fork libmdbx and use any reasonable value.
However, I don't see nor known any reason to accept such changes into upstream.

my situation is, unfortunately, I am stuck with legacy visual studio 2008, 32 bit because in that project there are tens of 32 bit dlls with all sort of 32 bit hard codings of pointers etc.
could this linker setting LARGEADDRESSAWARE for 3 gb help on windows 32 bit ?
https://docs.microsoft.com/en-us/cpp/build/reference/largeaddressaware-handle-large-addresses?view=msvc-170

Yes, the /LARGEADDRESSAWARE should help you on a 64-bit Windows host.
Using it should allow you add 1G to the MAX_MAPSIZE32.

ok, I changed it to
#define MAX_MAPSIZE32 UINT32_C(0x70000000) // with /LARGEADDRESSAWARE on 64 bit windows o.s. (0x38000000)
and if I am not hallucinating it managed to insert 4 million 400 byte records, for 1.8 gb db, at a pace of 45k/s inserts with 1000 records per transaction, read is about 200k/s
Leonid, since I observe these real time db problems are quite delicate how to do efficient search and managing more data than can fit into memory all at once, for you information I am trying to replace a similar db called t-e-n-f-o-r-e have you ever heard of it because I think you are using the same techniquest, very similar performance to ldmbx ?

For higher speeds, you should look towards in-memory databases, including preferring in-cluster replication instead of to-a-disk durability. For instance https://www.tarantool.io/
However, I think you shouldn't ask me "how does the universe work" ;)

I looked into mongo db not so much of my initiative but on a colleague's proposal but I subsequently discovered this type of real time performance is more similar to the underlying "wired tiger" storage subsystem


Adding Better Documentation and Modifying ReadME.

Since this repository currently focuses more on tutorials and example like code for beginners to help get started. I think some changes that need to be made:

Generalized tutorial in each folder.
They need to be step by step format for anyone who reads the code so that one could apply the code here to his/her dataset. The tutorial should also explain in brief why some lines were added especially the shape change in dataset required for Time Series Forecasting.

Modifying readme to match the current aim of this repo. For more details refer #57.

I think it would make sense to add these documentation for the person who also takes up the task of simplifying the model.
Suggestion: Rather than one person adding all tutorial maybe we could each person could add documentation for each folder namely vae, mnist and LSTMs (taking this up).

Since this repository currently focuses more on tutorials and example like code for beginners to help get started. I think some changes that need to be made:

Generalized tutorial in each folder.
They need to be step by step format for anyone who reads the code so that one could apply the code here to his/her dataset. The tutorial should also explain in brief why some lines were added especially the shape change in dataset required for Time Series Forecasting.
Modifying readme to match the current aim of this repo. For more details refer #57.

I think it would make sense to add these documentation for the person who also takes up the task of simplifying the model.
Suggestion: Rather than one person adding all tutorial maybe we could each person could add documentation for each folder namely vae, mnist and LSTMs (taking this up).

I would love to work on the mnist model.
Thanks

Hey @codeboy5, This is how I imagined the tutorial would go like:

Intro (Getting Started with mnist or anyother dataset).
Steps to process the dataset and why we processed it the way we did it in the code.
Creating a model (Generalized set of instructions), more details about the model and code in the folder of the model implementation.
Training and inference.
The results we got.

This should be a step by step readme, with the main aim that user should be copy the code, understand it from the readme and use for anything he wants to get started.
I don't think we need to include why convolution works the way it does or for any other algorithm, Just a brief about why we choose this layer / model and what it does should be sufficient.

This is really good as well. https://yashk2810.github.io/Applying-Convolutional-Neural-Network-on-the-MNIST-dataset/

So do we want the documentation in separate README file ?
The plan you proposed sounds good to me, pretty comprehensive

I think each folder will have a readme. The main readme (whoever takes it up will have flow of the repo, Might take this if no one else does). Then in each folder like mnist we would have another readme, here we would focus on the data and results. The third readme would be inside folder of the model (Describing why and how of the model). Hopefully this makes sense and is not too overwhelming. Thanks.

So in the current folder format, there's this Kaggle Folder and different models inside them.
So I would place the README about the dataset in this folder and then README related to different models inside their respective folders e.g. DigitRecognizerCNN.
Does this sound okay?

That sounds great. Yes that's what I thought it would go like.


initSessionWithLaunchOptions triggered twice

If I click a deep link with my app not installed, then install the app and click the same deep link again the andRegisterDeepLinkHandler gets called twice.
- (void)initSessionWithLaunchOptions:(NSDictionary *)options andRegisterDeepLinkHandler:(callbackWithParams)callback;
Steps to Reproduce:

Click a deep link, get redirected to the app store
Install the app
Without opening the app go click that deep link again
App deeplinks and open but the andRegisterDeepLinkHandler gets called twice

The callbackWithParams are similar but different.
Example of two callback params:
The Ids are the same, but one has +is_first_session as true, and one has a +referrer. The +click_timestamp is also different as expected.
{
    "$marketing_title" = "Test Title";
    "$one_time_use" = 0;
    "+click_timestamp" =<PHONE_NUMBER>;
    "+clicked_branch_link" = 1;
    "+is_first_session" = 1;
    "+match_guaranteed" = 1;
    channelId = exampleChannelId;
    record = true;
    "~channel" = Affiliate;
    "~creation_source" = Dashboard;
    "~feature" = marketing;
    "~id" =<PHONE_NUMBER>97588800;
}

{
    "$marketing_title" = "Test Title";
    "$one_time_use" = 0;
    "+click_timestamp" =<PHONE_NUMBER>;
    "+clicked_branch_link" = 1;
    "+is_first_session" = 0;
    "+match_guaranteed" = 1;
    "+referrer" = "http://example.com/example.html";
    channelId = exampleChannelId;
    record = true;
    "~channel" = Affiliate;
    "~creation_source" = Dashboard;
    "~feature" = marketing;
    "~id" =<PHONE_NUMBER>97588800;
}

Thoughts on how to handle this? Is it correct that a deeplink always has the same ~id when using a marketing link?

@tielur I couldn't reproduce on my end. Which iOS version are you testing on? Also, do you mind sending the link you are using? If you are uncomfortable sharing data here, please reach out to<EMAIL_ADDRESS>and we'll take it from there. Thanks!

@tielur any updates on this?

@ahmednawar I am experiencing the same issue. I am using iOS 9.2.1

@SoCohesive can you send over the issue Ahmed asked for? Can you provide the link you're clicking? Could you also turn on setDebug (https://dev.branch.io/getting-started/integration-testing/guide/ios/#use-debug-mode-to-simulate-fresh-installs) and send us the logs? If it makes more sense, you can send them to<EMAIL_ADDRESS>

@ahmednawar sorry I've been fairly busy lately, haven't been checking Github notifications. I was testing on iOS 9+ as well. I found a work around but I'd have to go dig back into my iOS application on what exactly that was. I'll try to get more information posted here within the next day or so.

@tielur During your onboarding process do you ask for permissions ?
It might be that https://github.com/BranchMetrics/iOS-Deferred-Deep-Linking-SDK/issues/210.

@Zic0 my app is structured very similar to how the Branchster iOS Example App is structured.
Branch *branch = [Branch getInstance];

[branch initSessionWithLaunchOptions:launchOptions
                            andRegisterDeepLinkHandler:^(NSDictionary *params, NSError *error)
    {
        // code here...
    }

@Zic0 ahh if you ask for any iOS permissions it triggers #210
Yes I am asking for location permissions during the on boarding process, and I can confirm that after you allow this permission the initSessionWithLaunchOptions method gets called. So it may have been related to that.

@tielur does the solution provided in #210 work for you?

@tielur any updates here? would love to help

@ahmednawar I resolved this in a different way, but it's definitely related to #210 when I was experiencing it.

@tielur great. I'll close here. Feel free to reopen if anything comes up

I am experiencing the same issue. I check at every App start, if there is a some DeepLink Data and open a specific Controller or the default Controller. But no matter what, everytime my Controller is fully loaded, i ask for Push and Location Permission, and for each Permission  the initSessionWithLaunchOptions is called again. So its get called 3 time in a row!

I am going to re-open this issue since it was never really resolved before.  It's related to issue #210.
@ahmednawar Can you provide your solution for this to @Fosile? Hopefully it will get them going until we provide a real fix for this.

This is my Code and especially [self handleDefaultAppStart:launchOptions] is called way too often, also when the app comes from background to foreground and also when i ask for Permission.
- (void) initializeBranch: (NSDictionary *) launchOptions {

    Branch *branch = [Branch getTestInstance];

    [branch initSessionWithLaunchOptions:launchOptions andRegisterDeepLinkHandler:^(NSDictionary *params, NSError *error) {

        //We have Depp Link Data
        if (!error && (params[@"objectId"]) && (params[@"objectTypeId"])) {

            [self cleanReferrerSettings];

            referrerFlag = YES;

            self.referrerParams = [NSDictionary new];
            self.referrerParams = params;

            NSUserDefaults *userSettings = [NSUserDefaults standardUserDefaults];
            NSMutableDictionary *mutableRetrievedDictionary = [NSMutableDictionary new];

            [mutableRetrievedDictionary setValue:[self.referrerParams objectForKey:@"objectId"] forKey:@"objectId"];
            [mutableRetrievedDictionary setValue:[self.referrerParams objectForKey:@"objectTypeId"] forKey:@"objectType"];

            [userSettings setValue:mutableRetrievedDictionary forKey:@"referrerObjects"];

            [userSettings synchronize];

            NSLog(@"params: %@", params.description);

            [self handleDeepLinkAppStart];

            //There is no Deep Link Data and no Error
        } else if(!error && !(params[@"objectId"])) {

            [self handleDefaultAppStart:launchOptions];

            //Error occurred or Timeout
        } else if(error) {

            NSLog(@"BRANCH ERROR OR TIMEOUT");
        }
    }];
}

The additions to your code may solve your problem.  They're commented with 'Branch':
- (void) initializeBranch: (NSDictionary *) launchOptions {

    static BOOL wasInitialized = NO;  //  Branch -- Add this line.
    Branch *branch = [Branch getTestInstance];

    [branch initSessionWithLaunchOptions:launchOptions andRegisterDeepLinkHandler:^(NSDictionary *params, NSError *error) {

        //We have Depp Link Data  <== From Johnny Depp? Cool!  -- Branch.
        if (!error && (params[@"objectId"]) && (params[@"objectTypeId"])) {

            [self cleanReferrerSettings];

            referrerFlag = YES;

            self.referrerParams = [NSDictionary new];
            self.referrerParams = params;

            NSUserDefaults *userSettings = [NSUserDefaults standardUserDefaults];
            NSMutableDictionary *mutableRetrievedDictionary = [NSMutableDictionary new];

            [mutableRetrievedDictionary setValue:[self.referrerParams objectForKey:@"objectId"] forKey:@"objectId"];
            [mutableRetrievedDictionary setValue:[self.referrerParams objectForKey:@"objectTypeId"] forKey:@"objectType"];

            [userSettings setValue:mutableRetrievedDictionary forKey:@"referrerObjects"];

            [userSettings synchronize];

            NSLog(@"params: %@", params.description);

            [self handleDeepLinkAppStart];

            //There is no Deep Link Data and no Error
        } else if(!error && !(params[@"objectId"])) {

            if (!wasInitialized) {   //  Branch -- Add this
               [self handleDefaultAppStart:launchOptions];
            }
            //Error occurred or Timeout
        } else if(error) {

            NSLog(@"BRANCH ERROR OR TIMEOUT");
        }
       wasInitialized = YES;  // Branch -- And add this.
    }];
}

Thank you very much for the quick response. Simple but effective. Everything is working as expected now!

Glad it works!

Hello,
We have our iOS app. And I can link our app from our online site in chrome. But when i run the app again (or launch it from background), the branch api returns the same params( but two less) when it is deep linked.
Found that the first time deeplink handler is getting fired twice. When first time it fires, the params doesnt have the key "_branch_match_id" and on going background and coming up they are sending params with "_branch_match_id".
Also i noticed that the handler method getting called twice in some cases. In that case too, the "_branch_match_id" is missing in the first and the second time they are sending the full set of keys.
Do you have a fix?
Thanks

Is this a Chrome specific problem, or do you see it in Safari too?
Which version of the iOS SDK are you running?

I didnt find this issue in safari.
And I am getting the issue in both iOS 10 and iOS 11. I haven't checked in other versions.

I could not reproduce this with Chrome on iOS 10 or 11 using the Branch TestBed app.
Every time your app becomes active it will start a new Branch session, even if there's no new URL to open (Branch still needs to check that there's no new URL).
If you still have an issue with Chrome and Branch, open a new issue or contact support at Branch (the support team is pretty good!) and include some more details specific to your use case.

I'm facing this issue with the latest Branch SDK in a very specific scenario. initSession(launchOptions: launchOptions) is being called twice. Steps to reproduce::

Install the app on device through Xcode.
Open the app.
Kill it.
Click on deep link from Notes or Messages app.
initSession(launchOptions: launchOptions) called twice. First time +clicked_branch_link is true and second time +clicked_branch_link is false.

Any directions to fix this?
Thanks

cc @echo-branch

@animeshp
Please file a support ticket.  I was unable to repro with v0.27.1 on iOS 12.3.1.

@echo-branch  I've already filed a support ticket. It is no. 81678.


Missing issues tag in the fabric.mod.json file.

Hey I know I'm late to the party here but I fixed it. Thanks


Using Generators Multiple Times

The general bug or undesirable behavior comes from using a generator from ScalaFunctional twice. This will of course, make it keep returning nothing since the generator is exhausted. While in general this is expected behavior, there are some functions where this could be prevented.
Specifically, for to_list, list, to_set, set, to_dict, and dict, since the sequence is getting expanded, it should also get stored for future calls. This increases memory use, but only by a constant factor.
In general, need to look at the library and consider where it makes sense to do this (sparingly).

As an example, this is the basic undesirable bad behavior. It fails quietly, and rather badly
from functional import seq
def gen():
    for e in range(5):
    yield e

nums = gen()
s = seq(nums)
s.map(lambda x: x * 2).sum()
# prints 20
s.map(lambda x: x * 2).sum()
# prints 0

Hopefully the solution to this makes this seamless.

Gave this some thought, unfortunately to get this to work it will require some big change (I think, not 100% sure). Here is my proposal:

In the second case, the core problem is that results of transformations yield generators. Generators don't know anything other than returning their next element or an iteration exception. Therefor, unless I wanted to "cache" the result of intermediate steps (because I don't know which transformation will be needed), generators aren't the solution. The problem is that caching those is the same as just forcing an expansion each time like in 0.2.0.
The real problem in the second case is that a doesn't remember how it became a, it only knows its contents once (the first time the generator is evaluated/expanded). Moreover, since it doesn't make sense to copy iterators, you can't just return a copy of the iterator each time.
The real gain in efficiency is that for transformations where you can apply multiple transformations to a list, you only need to walk through the elements once and return only one list.

To solve this, you could use a concept (from Spark) called lineage. This is how it would work

Introduce a field for FunctionalSequence called lineage. This is a list/tuple of transformations that must be applied to the current sequence in order to arrive at its result. By default, when called on an unwrapped sequence, the lineage list will only contain a force expand operator (so by default, iterators/generators will be lazily expanded and stored).
When a new transformation is called, the returned FunctionalSequence will contain a copy of the prior lineage appended by a representation of the transformation being applied.
When an iterator is returned, the lineage is evaluated from a list of transformations into a new generator instance on each call. The lineage first looks back for the first concrete representation of the sequence (i.e. a list/tuple, not a generator/iterator), then applies each transformation in order using lazily evaluated map/filter/etc.
Introduce a new function .cache() which pushes an operator onto the lineage tree that after applying all the lineage transformations up to the cache call, it will save the result. All future calls to the resulting FunctionalSequence or its children will use this concrete result instead of recomputing the lineage result.

Definitely open to feedback, but will create a branch to start implementing. I hope this isn't overkill for the problem I am trying to solve, but I can't seem to think of another way.

Implemented in lineage-rewrite-rebase which is now merged into master.


v4: ref is not passing to component

Describe the bug
if i am using container query and passed ref to props, ref is not passing to component.
https://github.com/marklawlor/nativewind/blob/1b99062fd130f72225f60db34fa31e312a637b90/packages/react-native-css-interop/src/runtime/native/render-component.ts#L153-L170
maybe this codes are problem. when i log ref, it is not undefined. but props.ref is undefined. so ref was missed.
i used "group/item"

I think this is fixed in 4.0.31. I still need better test coverage for refs :disappointed:


Need CI environment

Let's use travis CI or Circle CI or Jenkins as a CI environment.
To enable travis CI for example, one has the rights to manage this repository have to activate travis service. after that, we can add .travis.yml file.

Agree!

@ddutta thank you! perhaps travis ci is the easy way to cooperate. (I think just click 'sync' or something after login to travis-ci service using github account. after that, I will put .travis.yml file on this repository)

done .... now you can put the travis.yml

@ddutta so fast!! I really thank you:)

you still have to go to travis-ci.org .... sign in with github credentials,
enable cognitive (I did and ensured ciscosystems didn't have 3rd party
restrictions)
On Wed, May 27, 2015 at 10:41 PM, Komei Shimamura<EMAIL_ADDRESS>wrote:

@ddutta https://github.com/ddutta so fast!! I really thank you:)
—
Reply to this email directly or view it on GitHub
https://github.com/CiscoSystems/cognitive/issues/31#issuecomment-106181222
.

--
-Debo~

@ddutta for me, travis-ci requires me to have admin rights for CiscoSystems/cognitive repository...
I added .travis.yml file to develop branch of cognitive, so some log file should be appeared here (https://travis-ci.org/CiscoSystems/cognitive/) if it works correctly. will confirm later again


onKeydown event on input and form submit doesn't work

I'd like to make a <input> that invoke some function after user press enter. However this doesn't work:

the onKeydown event handler to the <input> simple got ignored
trying to add input to a <form> and add submit event handler doesn't work because form is not available in VM

Is there a way to implement this feature?

Please provide your code/example

It's a typo on my side, I wrote onKeydown. Should be onKeyDown :joy:. Can form be supported? If so it would be easier I can just handle submit, instead of handle onKeyDown and check if the key is "Enter".


feat: change header height

Often times we want to change the header height on a per screen basis. However, a limitation exists with the current method of changing the height via headerStyle. Using headerStyle.height results in a header that centers everything vertically. A common pattern in iOS is to have the back button with what essentially amounts to a top: 0 value.
This PR adds the headerHeight option to circumvent this. I'm undecided on if the new option should be headerHeight or headerBackgroundHeight. The latter is technically more accurate, but also more words to type. Open to suggestions!
Examples with a vertically stacked headerTitle element

No styling applied

headerStyle: { height: 120 } results in vertically centering everything in the header, including the back button.

headerHeight: 120 leaves the back button in its original position while adjusting the height of the header segment.
Example code usage
static navigationOptions = {
  headerTitle: () => (
    <View
      style={{
        alignItems: 'center',
        justifyContent: 'center',
        marginTop: 30,
      }}
    >
      <View
        style={{
          width: 40,
          height: 40,
          borderRadius: 100,
          backgroundColor: '#ff0066',
        }}
      />
      <Text style={{ fontSize: 12 }}>DisplayName</Text>
    </View>
  ),
  headerTintColor: '#fff',
  headerHeight: 120,  // new option
  headerStyle: {
    backgroundColor: '#3388ff'
  },
}

@osdnk bumping this
Anything I can help with to get this across the finish line? Is this PR even necessary?

Closing this because I found a way to achieve what I needed to. If anyone runs into this in the future, this should work for you:
navigationOptions: {
  headerTitle: () => <View style={{ width: 40, height: 40 }} />,
  // magic sauce is setting the height of the background component
  headerBackground: () => <View style={{ height: 120, backgroundColor: '#fff' }} />
}


When an installer is used, use helper binaries from the installation directory

Rather than copying admin-helper, ... from the installation directory to ~/.crc/bin/ when crc setup is run, crc could directly use the binaries which are installed.
This guarantees the expected binary is always used, no need for version check in preflights, ...

Admin rights (setuid bit) can also be set directly in the .pkg. It removes one more chmod.


Added a dutch language file.

Added a dutch language file.

This has to be ported to new 2.10 es6 modules, and also needs tests

I'm confused.  This PR is from 2014, but we already had a Dutch translation added in 2011 (in #51), and it exists today in locale/nl.js.
Closing this, but if there's some reason it should be reopened, please explain.  Thanks.

Altough we have a Dutch localisation, it's for the Netherlands. We are missing the Dutch localisation for Belgium. I'll see to add it.


how do you limit access to the udp association if the client is in a LAN?

In RFC 1928, it says:
The DST.ADDR and DST.PORT fields contain the address and port that the client expects to use to send UDP datagrams on for the association.  The server MAY use this information to limit access to the association.
But if the client is in a LAN, the server would get a totally different addr and port when receiving udp packets because of the NAT.Then how could i limit access to the udp association?

Thx, I am working on this function.
Server before handle udp packet, it should check the src if prepared by a tcp connection

This is nothing about LAN or WLAN, it just care DST.ADDR and DST.PORT.
Before send UDP data, client send DST.ADDR and DST.PORT with a TCP connection, so we can store DST.ADDR and DST.PORT and compare it with src of UDP when UDP data come.
But If server get zero:zero DST.ADDR and DST.PORT with a TCP connection, how to limit or compare it with src of UDP when UDP data come.
https://stackoverflow.com/questions/62283351/how-to-use-socks-5-proxy-with-tidudpclient-properly
This link said:

If the requested Host/Port is all zeros, the relay should simply use the Host/Port that sent the request.
That means server should assume  DST.ADDR and DST.PORT is src of TCP? [a]

this[a] is what I did, but looks like some software don't do with this. like proxycap do:
proxycap(src1) -- tcp --zero DST.ADDR and DST.PORT--> socks5 server
proxycap(src2) -- udp --socks5 server

If the stackoverflow link is correct, src2 should equal with src1

Yes, DST.ADDR and DST.PORT matter.
But if the client is in a lan, it does not have a public ip. When it wants to negotiate with the server, it can only fill local ip and port into DST.ADDR and DST.PORT. After negotiation, when udp packets come, the server would get a public ip which is mapped by a NAT device like a Router instead of the local ip which the client filled in during the negotiation. So I still can not compare those 2 address.
Does this make sense?

https://github.com/txthinking/socks5/blob/master/server.go#L43
If set LimitUDP with true, server will check incoming src if it has been sent by a prev tcp connection

Yes, DST.ADDR and DST.PORT matter.
But if the client is in a lan, it does not have a public ip. When it wants to negotiate with the server, it can only fill local ip and port into DST.ADDR and DST.PORT. After negotiation, when udp packets come, the server would get a public ip
Yes, this is NAT's work. socks5 server only can handle incoming src, https://en.wikipedia.org/wiki/Network_address_translation
which is mapped by a NAT device like a Router instead of the local ip which the client filled in during the negotiation. So I still can not compare those 2 address.
Does this make sense?
Or in this situation, the client should use zero:zero DST.ADDR and DST.PORT ?

Yes, DST.ADDR and DST.PORT matter.
But if the client is in a lan, it does not have a public ip. When it wants to negotiate with the server, it can only fill local ip and port into DST.ADDR and DST.PORT. After negotiation, when udp packets come, the server would get a public ip

Yes, this is NAT's work. socks5 server only can handle incoming src, https://en.wikipedia.org/wiki/Network_address_translation
And more, socks5 server is also a NAT too, this library implements Symmetric NAT

The situation mentioned by @Danieldachao just like this:
Application Client - SOCKS Client - NAT - SOCKS Server - Application Server
Then the SOCKS Client can only set the UDP Association DST.ADDR and DST.PORT with zero because can not foresee the NAT's behavior. There is no problem. The problem is how SOCKS Server relate a incoming udp packet with current tcp connection when a lot of SOCKS Clients request the UDP Association command concurrent ?
After my deep thinking, we can set the reply of UDP Association command with a dynamic BND.PORT to solve. Then SOCKS Server can relate the incoming udp packet with a TCP connection correct.

Server.LimitUDP


Training data model

In this, we fine-tune our hyperparameters and found out the best possible parameters
After that, we first used the decision tree classifier to train, test, and measure the accuracy of the model

The training data model was successfully trained. you used  X_train, X _ test methods to split the data 80 percent of data will be split to train and 20 percent of data was split to test. By using the fit method the data will be trained. The Code runs perfect and great work.


Add partial python 3.13 support

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (6204a67) to head (a537407).

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #742   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           75        75
  Lines         2103      2103
  Branches       179       179
=========================================
  Hits          2103      2103

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


deployment steps

Can you please add deployments steps ?

@m-barthelemy

I fought around with this tonight and created a simple docker-compose.yml that can get the project up and going.
version: '3.7'

services:
  db:
    image: postgres:14
    environment:
      POSTGRES_PASSWORD: password
    restart: unless-stopped
    volumes:
      - datavolume:/var/lib/postgresql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      timeout: 5s
      retries: 5
  app:
    build: .
    ports:
      - 8080:8080
    depends_on:
      db:
        condition: service_healthy
    environment:
      HOST: "<IP_ADDRESS>"
      ENFORCEMFA: "true"
      ENCRYPTIONKEY: "changeme"
      DBTYPE: "postgres"
      DBDSN: "host=db user=postgres password=password database=postgres port=5432"
      ENFORCEMFA: "true"
      VPNCHECKPASSWORD: "changeme"
      OAUTH2PROVIDER: "changeme"
      OAUTH2CLIENTID: "changeme"
      OAUTH2CLIENTSECRET: "changeme"
      REDIRECTDOMAIN: "https://vpn.mycompany.com"
      ADMINEMAIL<EMAIL_ADDRESS>      VAPIDPUBLICKEY: "changeme"
      VAPIDPRIVATEKEY: "changeme"
    restart: unless-stopped
volumes:
  datavolume:

Note for the changeme pieces refer to the README.md in the repository root to determine what the values should be.


[Feature]: A way to have more VRAM

Is your proposal related to a problem?
Tried installing sequoia using this project (cool project btw), but there's no wallpaper for example, and instead of pictures, there's a white screen.
Describe the solution you'd like.
A way to give the VM more VRAM (see https://github.com/quickemu-project/quickemu/issues/211)
Describe alternatives you've considered.
Going back to VMWare Worksation, but i'd like to avoid that at all costs
Additional context
No response

Will do, thanks for the fast response

Hi @kroese I'm getting a unknown vga type: vmware-svga,vgamem_mb=64 thrown from QEMU

Same error

@kroese Seems the issue is caused by this line:
https://github.com/qemus/qemu-docker/blob/cbb7e3a042274b8d77e74c6474b6822970180278/src/display.sh#L37
A workaround would be to define a new variable for the display options that can be overriden from the macos container

Hi @kroese, tried both std and virtio (not virtio-vga as it doesn't exists), and none of them solved the issue, the pic is still not visible (had to try with macOS 14, since 15 seems to be broken right now):

qxl-vga on the other hand requires the qemu-system-modules-spice package.


add quotes around raw queries in docs

would be nice to see quotes around raw sql queries in docs.  was confusing to a new user like me when they didn't work for the default tables that prisma generates like "Post" and "User"
https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access

👋 we're cleaning up our backlog of issues and are closing everything older than two years. If you still feel that this issue is relevant, please feel free to re-open and our team will take a look. Thank you!


security/acme-client: Add support for Hexonet DNS-API

Please add support for the Hexonet-API.
The official acme client has support for Hexonet but not Opensense. Is there a reason for that?
(https://github.com/acmesh-official/acme.sh/blob/master/dnsapi/dns_hexonet.sh)

Is there a reason for that?

That's simple: because nobody has worked on this yet. ;)
I'll plan to add support for it in one of the next releases.

This will be available in the upcoming os-acme-client version 2.2
You may test it by applying the patch manually:
opnsense-patch -c plugins 7bae0539

Thank you - I'll test the patch right away.

Works perfectly in DNS alias mode. Many Thanks!


Need to clean up evolution-process per IP review

Our process documentation still references the microprofile.io site in several locations.  We need to clean these up per the IP review:
https://dev.eclipse.org/ipzilla/show_bug.cgi?id=12628

The microprofile-evolution-process-master/process.md references
contributing to https://microprofile.io/community/#contributing.  I believe
you'll want to amend necessary URLs as required as this could be confusing.
Yes, agree.  We've been finding several of these ourselves and have been
correcting some of them as we go along.  We are also undergoing a massive
update to this "evolution process", so much of this might be removed.

URLS Generally

It seems certain URLs remain pointing to the original project as above.
Please advise if the content has received a pass to update URLs as expected?
Not sure what you mean by "receiving a pass"?  We will still have some
URLs pointing back at the microprofile.io site, but we shouldn't be relying or
depending on these URLs for any specific content.  It's more to recognize that
microprofile.io is a viable and useful portal for our efforts.

Third Party Content:

The /microprofile-evolution-process-master/NOTICE.md indicates the work is
derived from the Swift Evolution Process and adapted to suit....  That
statement would indicate the inclusion of Third Party Content.  A Third Party
CQ is required.
Again, we're in the process of revamping our processes, so this particular
statement about Swift might go away.  Also, please be aware that this repo is
only to document our process for developing MicroProfile content.  This is not
part of our deliverables, per se.  These processes help us develop our
deliverables.  So, even this derived usage of the Swift Evolution Process is
not really Third Party Content.  There is nothing "real", just processes.

Since we're in the process of redefining and simplifying our process, we should clean these items up at the same time.

We're going to hold off on these changes until we figure out what the "replacement" process is going to look like...  This whole github repo may be archived due to that activity.


Write documentation

[ ] JS docs
[ ] CSS docs

first draft has been done, and can always be improved upon.


Update Oceananigans dependency + run CI and Docs on julia v1.9

@jagoosw, is updating to Oceananigans v0.84.1 a good idea?

Yeah seems like a good idea. I'm thinking for merging all the current PRs, if I do #124 and #123 which are non-breaking and quite simple, then #121, then fix the conflicts here and bump the version here?

Yeah seems like a good idea. I'm thinking for merging all the current PRs, if I do #124 and #123 which are non-breaking and quite simple, then #121, then fix the conflicts here and bump the version here?

is it a breaking change?

OK, I think we are hitting this: https://github.com/CliMA/Oceananigans.jl/issues/3184 and tests fail on v1.8.

So on second thought, post v0.84.1 Oceananigans is only tested on Julia v1.9. So perhaps it's safer to drop v1.8?

Yeah I'm happy to drop 1.8 support

Yeah seems like a good idea. I'm thinking for merging all the current PRs, if I do #124 and #123 which are non-breaking and quite simple, then #121, then fix the conflicts here and bump the version here?

is it a breaking change?

The sediment stuff defiantly breaks the sediment API, I guess this isn't breaking though so could do this first then release on #121

Well it would be breaking if we drop v1.8! :)

I don't know why there is the

Julia 1.8 - ubuntu-latest - x64 - pull_request Expected — Waiting for status to be reported

That shouldn't be there. I removed those tests... I'll merge when everything else passes.

I think its because the branch protection rule is specific to the 1.8 test, I've changed it to the 1.9 workflow now so I'm not sure why its still there. So yeah bypass the rule and I think it should work for the next PR


Improve docs

MAKE IT BETTER

[ ] Make script for local generate doxygen docs for easy check it local
[ ] Separate Documentation (for library users) and Specification (for library developers)
[ ] Fix typo, grammar, etc
[ ] Fix undocumentated API
[ ] Translate design doc to English and separate design/done/plan

I can work on this with you!


Update Gradle to 3.2.1

Current coverage is 36.00% (diff: 100%)

No coverage report found for master at 91598a2.

Powered by Codecov. Last update 91598a2...5f8c96b

Current coverage is 36.00% (diff: 100%)

No coverage report found for master at 91598a2.

Powered by Codecov. Last update 91598a2...5f8c96b

Current coverage is 36.00% (diff: 100%)

No coverage report found for master at 91598a2.

Powered by Codecov. Last update 91598a2...5f8c96b


[Feature] Prisma ?

Feature
Do you plan to add Prisma to your project? Because I can't do without it xD.

Hey!

tl;dr: we are planning to dig that and make an alternative variant if it is possible using prisma instead of mikro-orm.


Update hcloud-cloud-controller-manager image in hertzner.go

What this PR does / why we need it:
Updates hcloud-cloud-controller-manager image in hertzner.go.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

/ok-to-test

@xmudrii done.
Can we now use a reference in the template?

/ok-to-test
/lgtm

OK, while we didn't merged this the new release has arrived :) https://github.com/hetznercloud/hcloud-cloud-controller-manager/releases/tag/v1.8.1

Updated to 1.8.1

@cebor The diff still shows 1.18.0 for me, for some reason.

Oops, forgot to add the files before committing.

/retest


[WIP] Flow Manager

WIP on Flow Manager
Tasks to (re)usable flow manager in the notebook

[x] create flow diagram
[x] add box
[x] add link
[x] add input and output to boxes
[x] box customizable with scala code (the logic of the box)
[x] save the state
[x] recover from state
[x] running the flow
[x] giving values to inputs
[x] scala 2.11 friendly (so far the udpate function relies on SparkIMain which is 2.10 only)

any comments are welcome @vidma @virtualirfan

yeay this thing is working fine, let's :ship: this one, and improve the UI later, would like to see demo using that flow designer :-)


Update mbam-25-supported-configurations.md

It is unclear the servicing updates are required for SQL 2016 support etc....

Suggestions and approval for adding servicing update for MDOP as a requirement for SQL 2016 support and that the most recent servicing update should always be used.  Lastly a link to where this can be found would be great.


dockerhub query tags by architecture arm32v7 does not show latest images

If querying arm32v7 images, you do not see the latest versions:
https://hub.docker.com/r/arm32v7/eclipse-temurin/

it does now


Browsing view translation

Internationalization for browsing view

@guenthermi Please let me know when this branch should be considered for merging again.

I just merged the refactoring branch that split the code into small files. I am afraid that this code now needs to be redistributed. Maybe the easiest approach is to re-edit the changes in the new code. On the positive side, the refactoring should prevent such problems in the future.

@guenthermi sorry for the conflict situation. I can offer to resolve the merge conflicts since I currently have a good overview of the apps structure. You might want to familiarize yourself with it however.

No problem, I will care about the conflict by myself.


Tensorflow restore memory leak

System information

OS Platform and Distribution: MacOS Monterey 12.1
TensorFlow installed: from binary
TensorFlow version: The issue could be reproduced by v2.6.0
Python version: 3.8.3

Describe the current behavior
I notice that Tensorflow (TF) leaks memory when I restore TF models. Specifically if I iteratively load model checkpoint from disk with TF restore API, the memory usage keeps growing no matter what I do tf.reset_default_graph() or tf.keras.backend.clear_session() or both (But it seems tf.reset_default_graph() and tf.keras.backend.clear_session() slow down the memory leak speed rate).
** Standalone code to reproduce the issue **
The issue could be reproduced as below. Run tf_save_model.py to create and save a model in the folder ./test_model_repro/ with the model name foo. Then run tf_restore_model.py to load the model iteratively. You would see after each iteration calling restore(), even if tf.reset_default_graph() and tf.keras.backend.clear_session() are being called, the log shows the memory usage keeps increasing.
tf_save_model.py
from typing import Tuple

import tensorflow.compat.v1 as tf
from tensorflow.keras import models
from tensorflow.keras import layers

tf.disable_v2_behavior()

def create_model() -> Tuple[tf.Tensor, tf.Tensor]:
    """
    Create a model with Neural-Net: 1024 x 1024
    """
    graph = tf.get_default_graph()
    with graph.as_default():
        # The Neural Net Size: 200 -> 1024 x 1024 -> 6
        model = models.Sequential()
        input_shape, hidden_shape, output_shape = 200, 1024, 6
        model.add(
            layers.Dense(
                hidden_shape,
                activation='tanh',
                input_shape=(input_shape,),
                name="layer0"
            )
        )
        model.add(layers.Dense(hidden_shape, activation='tanh', name="layer1"))
        model.add(layers.Dense(output_shape, activation='relu', name="final_layer"))
        input_tensor = tf.placeholder(dtype=tf.float32, shape=[None, input_shape])
        output_tensor = model(input_tensor)
    return input_tensor, output_tensor

def save_model(sess: tf.Session, path: str) -> None:
    """
    Save the TF model according to the path.
    """
    saver = tf.train.Saver()
    sess.run(tf.global_variables_initializer())
    save_path = saver.save(sess, path)
    print(f"Saved the model in {save_path}")

def main() -> None:
    input_tensor, output_tensor = create_model()
    print(
        f"Create the model with Input tensor {input_tensor} "
        f"and output tensor {output_tensor}."
    )
    sess = tf.Session()
    sess.run(tf.global_variables_initializer())
    save_model(sess, "./test_model_repro/foo")

main()

tf.restore_model.py
import os
import psutil

import tensorflow.compat.v1 as tf

tf.disable_v2_behavior()

def _get_memory_rss() -> float:
    """
    Get the RSS memory value in GB.
    """
    return psutil.Process(os.getpid()).memory_info().rss / 1024 ** 3

def restore(path: str) -> tf.train.Saver:
    """
    Restores the TF graph from the path and returns the saver.
    """
    sess = tf.Session()
    saver = tf.train.import_meta_graph(f"{path}.meta")
    saver.restore(sess, path)

def main() -> None:
    init_prev = _get_memory_rss()
    for _ in range(10000):
        restore("./test_model_repro/foo")
        mem_after = _get_memory_rss() - init_prev
        print(
            f"The memory increased after restoring the TF model: {mem_after}"
        )
        tf.reset_default_graph()
        tf.keras.backend.clear_session()

main()

The issue could be 100% repro-d by the above Python scripts.

@sachinprasadhs ,
I was able to reproduce the issue in tf v2.5,v2.7 and nightly.Please find the gist here.

Hi did you try the same in eager mode and is there any specific reason you are testing it by using tf.disable_v2_behavior()

Hi @sachinprasadhs We use the v1-compatible one and don't use the eager mode, due to our product spec in the current phase.

PING, it also affects me.

555...have you solved the problem?

Hi,
Thank you for opening this issue. Since this issue has been open for a long time, the code/debug information for this issue may not be relevant with the current state of the code base.
The Tensorflow team is constantly improving the framework by fixing bugs and adding new features. We suggest you try the latest TensorFlow version with the latest compatible hardware configuration which could potentially resolve the issue. If you are still facing the issue, please create a new GitHub issue with your latest findings, with all the debugging information which could help us investigate.
Please follow the release notes to stay up to date with the latest developments which are happening in the Tensorflow space.


Fix regression to account payloads while merging

Before PR#11, during merging if any merging segment has payloads
for a certain field, the new merged segment will also has payloads
set up for this field.
PR #11 introduced a bug where the first segment among merging
segments will define if the new merged segment will have
payloads. If the first segment doesn't have payloads, and
others do, the new merged segment mistakenly will not
have payloads set up.
This PR fixes this bug.
Relates to #11

@jpountz Thank you for the review. I've added the test to TestTermVectors in dc660968003cbaf6bb80c59c78b34af67fdedc03


unixcoder clone detection explainability

Hi,
I am facing challenges in explaining how unixcoder/clone-detection/java model makes its predictions.
I would appreciate any guidance or resources on how to perform model explainability for this type of model. Specifically, I have tried techniques such SHAP and also tried to plot some mid layer outputs manually, but no significant intel appeared in any method.
example of encoder output from a pair of code snippets:

Thank you for your help in advance!

Sorry. I also don't know how to explain.

ok thanks a lot!
another Q regard clone detection: how come all clone detection implementations averages the last layer of transformers? don't you lose the contextual information doing so? have you tried adding another learned layer (dense/rnn/transformer/etc.)?
thanks again


Option to allow for custom text in the backup file name

We perform a lot of one off backups of databases, prior to manual database updates, or other random work.  We like to append our names and a description to these backups to help us when it comes time to clean them up (we don’t feel comfortable deleting some of these on a regular schedule).
I'm thinking something along the lines of @CustomText = '_TicketNNNN_BeforeManualUpdate_sbryant', which would create a backup named "ServerName$InstanceName_DatabaseName_FULL_COPY_ONLY_20180531_082341__TicketNNNN_BeforeManualUpdate_sbryant.bak".  The custom text could go anywhere in the name, just wanted to provide an example.
Let me know if I can provide any additional information.
Thanks!
Sam

How about this?
I have the parameter description.
https://ola.hallengren.com/sql-server-backup.html#Description
Some time ago I added support for configuring the file name.
https://ola.hallengren.com/sql-server-backup.html#FileName
I could add a token for Description.
You could then do like this:
@Description = 'BeforeMigration',
@FileName = {ServerName}${InstanceName}_{DaabaseName}_{BackupType}_{Partial}_{CopyOnly}_{Description}_{Year}{Month}{Day}_{Hour}{Minute}{Second}_{FileNumber}.{FileExtension}

I missed that functionality release.  It looks like I could probably make that work without any change on your end:
DECLARE @Description NVARCHAR(MAX) = '_TicketNNNN_BeforeManualUpdate_sbryant'
DECLARE @FileName NVARCHAR(MAX) =<EMAIL_ADDRESS>EXECUTE [dbo].[DatabaseBackup] ... @FileName = @FileName

It sounds like I could take this 3 liner down to 1 if you added that token, but I will leave that up to you since it appears I have a workaround.
Thanks for the information.

@olahallengren Thanks for adding this ability. I remember asking for it a couple few years ago (pre-GitHub days) and had not noticed that it had been added.

I have added the token {Description} now. It can be used in both file names and directories.
https://ola.hallengren.com/versions.html
Any characters that are not allowed in the file system are removed.

Wow, super fast turnaround!  Thanks Ola!


Reliable constexpr check for implementation types

Is there a reliable constexpr check (through a type trait) to determine if a type is a C++/WinRT implementation type (deriving from implements or ClassT) similar to has_category_v?

These checks (including has_category_v) are not public and thus subject to change. We could perhaps introduce more traits in future but doesn't seem feasible in the existing code base. Consider bringing it up on #1123.

Here's a set of concepts I'm proposing for the various type categories.
namespace winrt
{
  template <typename T>
  concept category_type = impl::has_category<T>;

  template <typename T>
  concept value_type = category_type <T> && !std::derived_from<T, Windows::Foundation::IUnknown>;

  template <typename T>
  concept reference_type = category_type<T> && std:: derived_from<T, Windows::Foundation::IUnknown>;

  template <typename T>
  concept implementation_type = /* not sure how to check */;
}

These should probably be C++17 type traits, cppwinrt supports C++17 and there is no reason to require concepts here.
category_type should have a better name, for example winrt_type. If we expose has_category, should we expose all of category_t? struct_type, delegate_type, enum_type, etc.

I need to write up docs, but https://github.com/fredemmott/bindline/ contains FredEmmott::cppwinrt::inline cppwinrt_concepts::

winrt_type (derives from W::F::IInspectable)
winrt_implementation : implementation && has T::implementation_type
winrt_interface : winrt_type && !winrt_implementation
winrt_implements<parent>, e.g. winrt::implements<T, winrt::Windows::Founation::Foo> or winrt::implements<T, winrt::no_weak_ref>
winrt_raw_pointer : T* where winrt_type<T>
any_com_ptr: any winrt::com_ptr<>
winrt_com_ptr: a winrt_com_ptr<> to a winrt type
winrt_strong_ref: winrt_type or winrt_com_ptr
winrt_weak_ref: not a winrt_strong_ref ref, but .get() gives a winrt_strong_ref

I believe I've avoided implementation details, with the possible exception of checking the existence of T::implementation_type


Documentation request to add more info about AWS regions needed

Is your idea related to a problem? Please describe.
Documentation states that cdk bootstrap in us-east-1 is required, but when internet_facing=false, it is not actually needed.
Describe the solution you'd like
I would like the deployment guide to AWS to clearly state that us-east-1 is not always needed in the deployment account
P.S. Don't attach files. Please, prefer add code snippets directly in the message body.

Merged and released with v2.1.0 🚀


Weekly and Monthly tweets should stand out more

Monthly should stand the most.

Simple calendar emoji could do the trick

Moon cycles?

Any of these emojis would work also


Add preheader content to some emails

Adds an (invisible) preheader block to the email_base.html template and include content in the preheader for the digest and missed message emails.  The goal is that some of the interesting content a user might have missed appears in the inbox preview of the messages.

Automated message from Dropbox CLA bot
@jrowan, it looks like you've already signed the Dropbox CLA. Thanks!

@zulipbot label: "area: notifications" "area: emails"

@zulipbot label "area: emails" "area: notifications"

This works! just for comparison, the code Brock used for his email redesigns was:
This is preheader text. Some clients will show this text as a preview.
.preheader {
    color: transparent;
    display: none;
    height: 0;
    max-height: 0;
    max-width: 0;
    opacity: 0;
    overflow: hidden;
    mso-hide: all;
    visibility: hidden;
    width: 0;
}

not sure if you want to include the extra ones you don't have? (color: transparent would definitely be a good change).

Codecov Report

Merging #5547 into master will decrease coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #5547      +/-   ##
==========================================
- Coverage   86.76%   86.72%   -0.04%
==========================================
  Files         432      432
  Lines       53651    53651
  Branches     2093     2093
==========================================
- Hits        46549    46528      -21
- Misses       7102     7123      +21

Impacted Files
Coverage Δ

zerver/tornado/ioloop_logging.py
46.66% <0%> (-46.67%)
:arrow_down:

Continue to review full report at Codecov.

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

I think it's a problem with how I was using my editor (selecting text and hitting tab deletes all the text, but then undoing gives me the original text indented by 4 spaces; I've since found a hotkey that should do this better)

I think the diff is hard to read because of re-indenting everything inside the preheader block, correct?
For this type of stuff, it can helpful to do a whitespace-only commit that just reindents everything, and then we can squash that right before merging.

The ugly diff was coming from my having had to re-indent the main body of the emails (i.e. most of the old file) when I put it in the {% block content %}; I've broken that reindentation off into a separate whitespace commit.

Much better, thanks @jrowan!
I forgot earlier, but I think we should actually keep the base templates for digest and missed message different from the template for the other emails, since they have pretty different optimal styling.
I'd make one commit that adds a new base template for missed message and digest, one commit that adds  the preheader text, and then one commit that does the spacing.
Thanks!

Codecov Report

Merging #5547 into master will increase coverage by 0.04%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master   #5547      +/-   ##
=========================================
+ Coverage   87.46%   87.5%   +0.04%
=========================================
  Files         434     434
  Lines       54313   54313
  Branches     2098    2098
=========================================
+ Hits        47506   47529      +23
+ Misses       6807    6784      -23

Impacted Files
Coverage Δ

zerver/views/test_emails.py
100% <0%> (+6.66%)
:arrow_up:

zerver/tornado/ioloop_logging.py
93.33% <0%> (+46.66%)
:arrow_up:

Continue to review full report at Codecov.

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

@rishig I added the new template (but also kept the preheader block in the old template in case we later decide we need it).  The two templates are the same for now; I looked over the html classes in the missed message and digest emails and was unsure if I should define any of those classes in the base template (since some of them have the color determined by context variables).

This looks great and ready for merge (pending whitespace discussion on zulip), thanks @jrowan! For future: I probably would have put the change to email_base into the first commit, rather than the second.

I looked over the html classes in the missed message and digest emails and was unsure if I should define any of those classes in the base template (since some of them have the color determined by context variables).

yeah, this definitely needs a refresh and possibly a refactoring, but also looks complicated. I think it's not a high enough priority to deal with this summer, so lets just keep it as is.

I just took a look at $ diff -ur templates/zerver/emails/email_*base.html, and it appears the two base templates are identical in this version.  Do we actually need a different base template for digest/missed-message emails?
Also, for digest emails (and to a lesser extent, missed-message emails), the preheader block is quite a lot of duplicate code; is that strictly required to make this work?  I'm wondering if there's a coherent way to include the same template from two places, or something.

different templates

Vaida's work will change the email_base template. They are pretty different; the missed message and digest emails should be styled to be like the message feed. The two types of email also have different goals; missed message/digest are trying to present content, whereas most other emails are trying to present a few bits of information + brand/visual appeal.

preheader has a lot of duplicate code

yeah, I didn't have any good ideas here. They aren't exactly the same content, since in the preheader text we remove styling and other html commands.

Put a refactored branch up at https://github.com/rishig/zulip/tree/review-5547.
 I'm not sure what the right way to handle this is; without the reindenting, the tests will fail, and with the reindenting, the change is unreadable. I guess this is a separate discussion, but I'd be in favor of the rule that after a jinja2 tag, you always have the option of reindenting or not, regardless of how much it is nested.
A few notes for James:

I removed the digest preheader; I think Tim and I have a better idea, which is to take the longest message (roughly speaking) and use that.
The missed message preheader had a lot of non-message content in it, that I removed.
Adding preheader to the email_base should have been a separate commit. I dropped it, since we can add it when we deal with the preheader for those emails.
The table structure for the digest/missed message emails is probably not what we want, and in any case, adding that in is a large change that should be its own commit.
This is an html thing, but td is a "table cell", which means it needs a table. I replaced the td's in the preheader with span's.
Also renamed email_base to email_base_default; the previous name suggested that e.g. email_base_messages would extend email_base (my fault, should have thought of it when we were doing the original naming).

Thanks for your work on this! And I hope you didn't do the indenting by hand :/. (I realized I think I didn't mention that we have a tool that automatically does it.)

@rishig For your branch, I would unblock yourself on the templates as follows:

Add a commit to your PR that adds your file to IGNORE_FILES in tools/check-templates with a comment about the jinja thing.
Create an issue to fix the parser.

Is the linter complaining about the final result of this PR, or is it just one of the incremental steps?  If after some of this gets merged, it's easy to get the files back in a state that the linter likes, without complicated diffs, then we can remove the file from the ignore list again.

cool, good idea! Updated, and should now pass tests: https://github.com/rishig/zulip/tree/review-5547

Merged, thanks @jrowan and @rishig!


fix ignore directory path issue

[x] Fix ignore directory path issue
[x] Remove commented out of date test cases
[ ] Improve test coverage

:white_check_mark: Build AElf <IP_ADDRESS>6 completed (commit https://github.com/AElfProject/AElf/commit/d4f6998ee5 by @EricBlack)


Auto-refill agent for continuous task funds

Currently the agent only pays for tasks, but never withdraws its rewards to cover future task payments.

Fixed


Hit-Test to make the compass overlay clickable is inaccurate..

I am trying to make the Compass Overlay Clickable, to reset the map orientation to 0 when the user clicks on the compass icon. Therefore, I am overriding the onSingleTapConfirmed() method, and want to check if the distance between the tapped coordinates and compass center  is within the radius of the compass circle. But I am stuck on the circle centre calculation.
Method for calculation of distance
val distance = hypot(
                                originalPoint.x - mapNorthCompassOverlay.getCompassCenter().x,
                                originalPoint.y - mapNorthCompassOverlay.getCompassCenter().y
                            )

where,

orignalPoint.x , orignalPoint.y

are MotionEvent coordinates from

onSingleTapConfirmedMethod()

, and

mapNorthCompassOverlay.getCompassCenter()

is
fun getCompassCenter(): Point = Point(mCompassRoseCenterX.toInt(), mCompassRoseCenterY.toInt())
but I am doing something wrong and can't seem to find actual centre of the circle.
Version of osmdroid the issue relates to:
6.1.16

override fun onSingleTapConfirmed(e: MotionEvent?, mapView: MapView?): Boolean {
     val projection = mapView?.projection
     //get map center
     val centrePoint = projection?.toPixels(mapView.mapCenter, null)

     //get Translated Point using Map Center as Origin
     val translatedPoint = PointF(
         (e!!.x - centrePoint!!.x),
         (e.y - centrePoint.y)
     )

     // get the angle of rotation from the orientation
     val bearing = mapView.mapOrientation
     val cos = cos(Math.toRadians(bearing.toDouble()))
     val sin = sin(Math.toRadians(bearing.toDouble()))
     val rotatedX = translatedPoint.x * cos - translatedPoint.y * sin
     val rotatedY = translatedPoint.x * sin + translatedPoint.y * cos

     val originalPoint = PointF(
         (rotatedX + centrePoint.x).toFloat(),
         (rotatedY + centrePoint.y).toFloat()
     )
     Timber.d("Tapped Original Point is $originalPoint")
     val distance = hypot(
         originalPoint.x - mCompassFrameCenterX,
         originalPoint.y - mCompassRoseCenterY
     )
     Timber.d("distance to compass is $distance")
     if (distance <= (20f + 5) * mScale) {
         Timber.d("Compass Clicked")
         mapView.controller?.animateTo(null, null, null, 0f)
     }
     return true
 }

This is what I am doing, but the hit-test is a bit incorrect. Could you point me towards the right direction?

The code below worked for me.
                override fun onSingleTapConfirmed(e: MotionEvent, mapView: MapView): Boolean {
                    val reuse = Point()
                    mapView.projection.rotateAndScalePoint(e.x.toInt(), e.y.toInt(), reuse)
                    if (reuse.x < mCompassFrameCenterX * 2 && reuse.y < mCompassFrameCenterY * 2) {
                        mapView.controller?.animateTo(null, null, 300, 0f)
                        return true
                    }

                    return super.onSingleTapConfirmed(e, mapView)
                }


[dv,usbdev] Max traffic, streaming and randomized bus stimuli

This PR adds sequences to:

check back-to-back streaming of packets to single/multiple endpoints (streaming_test)
check operations under maximum USB utilization (max_usb_traffic)
generate randomized bus stimuli such as Suspend-Resume Signaling, Bus Resets and VBUS Disconnects during traffic; to check that the DUT is recoverable.
the PR also addresses some faults and inadequacies of the USB driver

detect and check the SE0/EOP signaling, and additionally the Idle bit interval after the SE0 bits.
prevent collision between reception of DUT traffic and transmission of host packets
calculate and check the CRC16 on IN DATA packets

GitHub has a rather unhelpful UI when there are lots of comments! Looking through quickly, I think there are 7 comments in my review from yesterday that aren't yet resolved. Would you mind taking a look through them?


Epic: move outbound logical replication out of Beta

DoD
logical replication is not in beta on neon anymore and wal_level = logical can be enabled by default on all project on neon platform
### Tasks & bugs to fix
- [ ] https://github.com/neondatabase/neon/issues/6370
- [ ] https://github.com/neondatabase/neon/issues/6371
- [ ] https://github.com/neondatabase/neon/pull/6221
- [ ] https://github.com/neondatabase/neon/issues/6182
- [ ] https://github.com/neondatabase/neon/issues/6229
- [ ] https://github.com/neondatabase/cloud/pull/9015
- [ ] https://github.com/neondatabase/neon/issues/6257
- [ ] https://github.com/neondatabase/neon/issues/7593
- [ ] https://github.com/neondatabase/neon/issues/6258
- [ ] Test case when we write a lot of AUX files (slot exists, but nobody reads it, check-in with Arseny/Heikki)
- [ ] Check that AUX v2 is default for all new tenants on pageserver

Other related tasks and Epics

https://github.com/neondatabase/cloud/issues/8892

https://neondb.slack.com/archives/C04DGM6SMTM/p1703091242312799

@arssher , will your fixes help with first two items?

slot may disappear on restart (hard to reproduce., only occured once)

I still don't know what was that. Stas tested manually and observed this once. There is known path by which slot might be lost, but this is highly unlikely (endpoint killed before logical message is committed to safekeepers), Stas case wasn't like that. Need more testing and reproduction.

in one case replication wasn't able to read WAL (hard to reproduce)

The more proper description would be 'if slot is lagging, on compute start replication might fail until the whole tail is downloaded'. We merged cap on max allowed lagging, but to really fix it we need to bring on demand WAL download from safekeepers to logical walsenders. We recently merged core patch:
https://github.com/neondatabase/neon/pull/5948
but using it in logical walsenders is separate step. Shouldn't be hard, but I haven't started on that.

@arssher will you work on on-demand WAL download in walsenders? Is it a part of this epic [will it block announcing GA for logical replication]?
@kelvich

slot may disappear on restart (hard to reproduce., only occured once)
I think nobody has been able to reproduce it so far. Reasonable question: is it a part of the epic's scope?

Renamed to "outbound" logical replication. When this Epic was started, it was "only" logical replication, but now it's two different types of replication.

Discussion with Stas: improve pageserver performance first

Test:

[ ] Sasha: Finish the aux v2 rollout (last batch tomorrow morning)

This week:

[ ] Waiting for the new compute image rollout

This week:

[ ] Tristan: look at AUX files monitoring and limiting

@tristan957 there is already monitoring on the storage side for aux v2
https://github.com/neondatabase/neon/blob/6949b45e1795816507f5025a474e15d718e07456/pageserver/src/metrics.rs#L588-L595
there is total aux size metrics per timeline

This week:

[ ] Alexey: Expose snap files count metric and add to dashboards

This week:

[ ] Look at LR test failures (Tristan said that he will have a look on Thu)

This week:

Konstantin: try to write a repro script
Tristan: https://github.com/neondatabase/cloud/issues/17261

https://github.com/neondatabase/cloud/issues/17261 failed due ENOSPACE, smth else is going there. Nikita helps there.

@tristan957 any progress with this?
So the original problem was that test was passing at first, and then regressed and started failing with ENOSPACE. That was known in the beginning of Sept already
The plan we discussed was

Repro this failure on staging (just manually rerun test)
Watch disk usage and figure out what is eating the disk space
Is it valid disk usage? Then we have two options
3.1. It's something we want to fix -> investigate further and discuss/propose the fix
3.2. Yes, it's OK -> bump the compute size and add fixed sized compute flag
Start running the test again

What was the item we gut stuck at? Or do I miss something and we got some additional context here?

So the original problem was that test was passing at first, and then regressed and started failing with ENOSPACE. That was known in the beginning of Sept already

I think there was some miscommunication between Stas and myself here. The current problem is that the publisher endpoint will not even start at the moment, which is different from the ENOSPC issue we were previously running into.

@tristan957 any progress with this?

Last week, I was talking to Nikita K. about what is going on here because the endpoint was seemingly stuck. He and I came to the conclusion that the compute was failing to retrieve the basebackup from the pageserver due to some AUX files issues. After talking to the storage team, we determined that we should wait for Chi to come back from vacation to get his thoughts.

This week:

[ ] @knizhnik and @MMeent review and finalize https://github.com/neondatabase/neon/pull/9007
[ ] @tristan957 get https://github.com/neondatabase/cloud/issues/17261 done, support storage team if needed

This week:

[ ] @knizhnik and @MMeent review and finalize https://github.com/neondatabase/neon/pull/9007
[ ] @tristan957 follow up with @skyzh re https://github.com/neondatabase/cloud/issues/17261
[ ] @tristan957 just increase start timeout for LR bench project?
[ ] @tristan957 finalize and get review https://github.com/neondatabase/neon/pull/9467

This week:

[ ] @knizhnik and @MMeent review and finalize https://github.com/neondatabase/neon/pull/9007
[ ] @tristan957 https://github.com/neondatabase/cloud/issues/17261, there were issues with bumping the timeout in cplane. Ping Muhammet starting Wed
[ ] @tristan957 finalize and get review https://github.com/neondatabase/neon/pull/9467
[ ] @tristan957 list of Postgres metrics in Notion

[ ] @tristan957 https://github.com/neondatabase/cloud/issues/17261: Continuing to try to understand the issue after many rounds of testing
[ ] @ololobus have a look on https://github.com/neondatabase/neon/pull/9467 reviews received and approved

This week:

[ ] @tristan957 Write docs for https://github.com/neondatabase/cloud/issues/17261 and close
[ ] @tristan957 add a panel for the snap files size to https://neonprod.grafana.net/d/edr9erae8dipse/compute-replication-overview?orgId=1&refresh=1m and close https://github.com/neondatabase/neon/issues/8619

Docs for LR benchmarks: https://github.com/neondatabase/docs/pull/263
PR for logical snapshots size: https://github.com/neondatabase/neon/pull/9887
Looks like tests are failing, so I'll check those out today.

@tristan957 finalize the default for https://github.com/neondatabase/neon/issues/8619. 300 snap files looks like a small number.
Why do we have 10-20k files in prod if the limit is 300? https://neonprod.grafana.net/d/edr9erae8dipse/compute-replication-overview?orgId=1&refresh=1m

PR to bump default value to 10k: https://github.com/neondatabase/neon/pull/9896.

This weeks:

[ ] @knizhnik finalzie and merge https://github.com/neondatabase/neon/pull/9976
[ ] @tristan957 wait for https://github.com/neondatabase/cloud/pull/20794, then look at LR failures

This weeks:

[ ] @knizhnik finalize and merge https://github.com/neondatabase/neon/pull/9976 (@hlinnaka to review)

This weeks:

[ ] @knizhnik finalize and merge https://github.com/neondatabase/neon/pull/9976 (@hlinnaka to review)


push QA into PROD

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


[Feature]: Can't play sound?  Could be support sound?

Is your proposal related to a problem?
Hope to play sound correct
Describe the solution you'd like.
Hope to play sound correct
Describe alternatives you've considered.
Hope to play sound correct
Additional context
No response

no sound with noVNC
Yes sound with RDP
Use RDP


Integrate funcbench with thanos

As a contributor of prometheus/test-infra, I am happy to help integrating funcbench with thanos.
This is the meta thread for discussing about the work.

I will assist on getting access to GKE so you can start experimenting.
The idea is to later move to use amazon, but for now, can try to set it up on GKE


Make swerve usable with limelight or pigeon or both

I think we can add a vision source to the swerve pose estimator and give it and odometry different priotities

This should be done after testing limelight