Incorporating tf data into the NixOS configuration

Currently, if you want to automatically incorporate some information from the tf state into your system configuration (e.g. make an SSH key owned by tf that can connect to the machine), you have to either write your flake to hard-code some path that will be generated by tf, or use tf's local_file machinery to write a flake to local (presumably gitignored) disk and use that as your flakeref.
I can think of two possible paths to improve this:

Make nixos-rebuild aware of some kind of command-line configurable variant of a NixOS config at the flakeref. The simplest thing might be to just allow nixosConfigurations.foo to be a function which is called using the typical --arg/--argstr mechanism (maybe augmented with --argflakeref :sweat_smile: ).
Add some parameters to this tf module to allow for inline specification of a flake with tf interpolation, which under the hood manages the temporary flake file creation for you.

 Would you be interested in 2 or some other in-scope solution?

I'm also partial to (1) myself.  Is the issue that it would require extending nix build (for flakes) to support --arg/--argstr?  Because that's something I've been interested in myself

One idea I had that I may make a quick PR/RFC for: An inline flakeref type, where the body rest of the "URL" is just parsed as a flake.nix attrset. E.g.  Then any configuration can just be a config input.
Could even perhaps have inline:[ true, 1 ]?flake=false :grimacing:

But yes, the idea I proposed in 1 above would require either having nix build support --arg or having nixos-rebuild build the drv through some other call path than nix build

:crossed_fingers:

If it has a parameter (such as data from terraform here), it's not a configuration, but a module, so you shouldn't be using nixosConfigurations, but rather nixosModules.
This might not correspond to our normal vague use of the word configuration, but definitions matter.

If we're being precise (and I agree that that is important), what's suggested here is neither a nixosConfiguration nor a nixosModule but a function yielding a nixosConfiguration which may under the hood do so primarily by importing an existing nixosModule. But as I mentioned in https://github.com/NixOS/nix/pull/8815#issuecomment-1676334823, the mechanism of being able to autocall in flake evaluation is orthogonal to the policy of how one should semantically refer to the values one wants to autocall.

function yielding a nixosConfiguration which may under the hood do so primarily by importing an existing nixosModule

That would be a sufficient solution, but it doesn't leverage modules, which are more declarative than functions.
Leveraging modules
Modules are functions, syntactically, and semantically they are functions from a partial configuration to a differently partial configuration. When producing a module from a function parameter (ie not the module arguments), generally the same can be achieved with an option.
When you write a function instead of declaring options, you split the configuration in two: the parameter(s) and the options. This reduces composability.
Declarative
I define a declarative configuration system as the ideal where

all configuration happens through declarations*, which are statements about the domain that are as independent as possible
these declarations compose trivially

Functions interfere with the latter, and generally don't conform to the first.
*: both declarations and definitions in module system terminology

orthogonal

That's why we have both this thread and the other. Indeed let's not mix up the discussions.

@roberth: It's not clear to me if you are proposing a different solution to this problem

Right, I was somewhat suggesting to focus on modules. I'll elaborate on that.
Flake based projects that use terraform-nixos-ng don't have pure configurations in the sense of both the module system and flakes, so they shouldn't use nixosConfigurations.
Instead, terraform-nixos-ng could call nixosSystem and have parameters to select a module / modules from nixosModules, and perhaps specialArgs as well.
Ideally it also knows how to generate a typical "hardware-configuration.nix" module, or at least the parts it can know. nixpkgs.hostPlatform in particular would be rather redundant information if specified manually (e.g. system parameter in nixosSystem). The architecture is just a "function" of the instance type. This might be too high level knowledge for a simple terraform module though. It'd probably have to be a provider-specific module to achieve that, but maybe terraform has improved since I last checked.

So the reason terraform-nixos-ng uses the nixosConfigurations attribute is because that's what nixos-rebuild uses.  I don't have strong opinions on what the flake output should be named but I want the solution to be nixos-rebuild compatible because I don't want to reinvent what nixos-rebuild is already doing.

NixOS is still a bit underdeveloped in this area as of yet, area being whatever it is that nixos-rebuild currently fills. I blame the bystander effect. I know two other tool authors who suffer from this, and I am complicit myself... Also there's a first-mover disadvantage aspect, where high level NixOS came before low level Flakes.
Anyway, I think it is a responsibility of NixOS to provide a suitable entrypoint; one that's Nixlang-first instead of CLI first, so that it can be integrated into tools more easily.
Also I think there's an opportunity to standardize the core of "module system applications" such as NixOS, where we have certain options (chiefly toplevel), a CLI, activation script, profile switching, perhaps ssh, but that doesn't necessarily have to be a part of the NixOS change just yet.


Improve file watcher

The current file watcher functionality is (at least in my experience) reliable enough, but there's enough edge cases / general weirdness that I don't feel confident calling it stable. Trying to correlate separate events and determine whether they constitute a single rename event is, ultimately, too brittle.
Ideally, what we could do is use a generic file watching implementation as a base so that this plugin can focus on providing a good experience when updating imports (which itself has quite a few edge cases). For example, the WIP didChangeWatchedFiles handler from neovim/neovim#16214 is very promising, and we could either repurpose the entire handler or use the code as a starting point for improving the implementation here.

I don't plan on improving the file watcher here. Once the handler is implemented upstream, we should work on adding support to typescript-language-server and integrate with it as needed.


Change semver range of ember-resolver to align with other repos

This project uses semver, please check the scope of this pr:

[ ] #none# - documentation fixes and/or test additions
[x] #patch# - backwards-compatible bug fix
[ ] #minor# - adding functionality in a backwards-compatible manner
[ ] #major# - incompatible API change

CHANGELOG

Change semver range of ember-resolver to align with other repos

👍


Password-based key recovery enabled by default

unless passwordBasedKeyRecoveryEnabled is set to false via the param to signUp(), an encryption key will be derived from the user's password via PBKDF2, this key will be used to encrypt the user's seed, and the encrypted seed will be stored on the server
on signIn(), the encrypted seed will be returned to the client, then decrypted with the password. This way a user only needs their password to sign in by default
updateUser() re-encrypts the seed using the new password if the user has password-based recovery enabled

Is there a condition where signUp/updateUser succeeds but the key backup fails? If so, what happens?

Nope, there is not. The key backup is part of the DDB transaction to create/update the user


2GP Standard Library

Critical Changes
Changes

An experimental qa_org_2gp flow is provided in the standard library. This flow uses config_qa, meaning that config_qa must be tokenized and not include explicit managed or unmanaged options so that CumulusCI can manage performing the appropriate injection. This flow may change at any time.
The ci_feature_2gp flow has been changed to use config_apextest instead of config_managed. This means that config_apextest must be tokenized and not include explicit managed or unmanaged options so that CumulusCI can manage performing the appropriate injection.

Issues Closed

This makes sense to me, as long as we are okay with 2gp feature test builds failing for projects that haven't updated config_apextests to handle the managed context yet.

I think this is an acceptable risk in the cause of not using config_managed, which is widely and heavily customized and will dramatically slow down these test builds. It's relatively unusual to customize config_apextest, so I don't anticipate a large scale breakage, but we'll have to fix it where it crops up.
cc @codexmarcel @jstvz @jofsky


Lagging in drag and drop in low end device.

Describe the bug

When we drag a stone the stone is not moving according to the finger movement.
After giving the input sometimes the game will hang.
The feedback animation will not complete or will not be properly displayed.

Screen Record
https://drive.google.com/file/d/16HK4DtgKVhmMd1oqZYpLJUEG1l4E5Nz4/view?usp=drive_link
Smartphone (please complete the following information):

Device: Lenovo TB-7305F
OS: Android 9
RAM 1GB

@burrage Please let us know if we can pause the work on this task for now

Absolutely-- it is in the Backlog already :-)

What might be interesting to investigate here is to identify what exactly is happening to cause the lag. Is it because the draw method is being called so many times to follow a user's finger? Is it because it is redrawing both the stone + letter? Are there other methods that are less memory intensive that others may have found for dragging and object on screen in a web app?

Also we should split this card into smaller increments of effort starting with identifying root cause.

Converting this task into epic and attaching a task for now that needs investigation


Release/Revision Change_Requests_Accepted.md

This issue was created to collect comments about the upcoming metrics release.
This thread is for comments about Change_Requests_Accepted.md
GitHub location: https://github.com/chaoss/wg-evolution/blob/master/metrics/Change_Requests_Accepted.md
See all release candidates at: https://chaoss.community/metrics/

Doing a little repo cleanup today and I'm going to close this, as we are updating all metrics to the new template and doing a refresh of them all in the process.


Fix clustering visualization

Discussed in https://github.com/hrntsm/Tunny/discussions/188

Originally posted by eastnoob August 17, 2023
I have finished the optimization process and all other visualizations methods work well except clustering. I have tried selecting objectives and clicking "Show" buttons, and even tried all the buttons but they didn't work, such as popping up a chart. I do not know why so can you tell me how to use It  (˶ᵔ ᵕ ᵔ˶) ?

Fix in #255


Create options to disallow ship mods

Currently, all 8 ship mods are either always allowed, or forced to a single mod.  This issue is to create an advanced multiplayer option to disable certain ship mods.
Players that have the mod selected will not be allowed to check themselves as ready if they have that mod selected.  Server will kick any JIPs out that have a mod that is disallowed.
If all mods from the first or second column are disabled, allow people to ready up and JIP, but don't apply the selected mod in game.

Closed by #55.


Improve CI configuration, add CONTRIBUTING guide.

Enforce the master-dev-release branching model,
automate a few things:

Run linters and test harnesses against any commit.
For hotfix and release-type PRs, open a twin PR on any other applicable branches.
Validate commit messages on master, dev and release branches against a regex.
Automatically bump iterations whenever a PR is merged on dev.
Automatically bump minor/patch parts whenever a PR is merged on master.
Automatically publish new tagged versions to pypi

Fails due to:
# Config does not conform to schema: {:workflows {:Commit-Workflow {:jobs [nil nil nil nil nil nil nil {:bump-master (not (map? nil)), :requires (not (map? a-clojure.lang.LazySeq)), :filters {:branches disallowed-key}} nil]}}}
[...]

Which is odd, because it's perfectly fine yaml as far as I can see, and that error tells me squat. :thinking:

I believe i've ironed out all the wrinkles of this thing.

This, somehow, now fails due to an invalid schema. I fail to find the issue, however. Please send help.
https://circleci.com/gh/raiden-network/scenario-player/144#config/containers/0

I believe i've ironed out all the wrinkles of this thing.

lol, now really though. I think. :smile:

Automation for PR creation was dropped, as it raised the question on how to detect the source branch correctly. Since I did not find a satisfying answer to it, we'll skip its implementation.


[5.3] Fix case of: If a comment contains a single '

My comments had a single ' and were causing migrate failures. Fixed by using Grammar.php's wrapValue.

That change was introduced in https://github.com/laravel/framework/commit/48fe1923902564ad0eed2bbb5f27dc54713a45d9.
@schleumer please check this PR, will this change break your application?

I think it will, i tried it too, the problem is that wrapValue doesn't
escape the value, my solution also doesn't escape, so, if we use single
quotes, it will break for who uses singles quotes inside comments, if we
use double quotes, it will break for who uses double quotes, i think we
need a escape/quote function, so, we could keep SQL Standard using single
quotes and accept single quotes inside comments. I will look into it soon.
Em 30 de set de 2016 08:57, "Mohamed Said"<EMAIL_ADDRESS>escreveu:
That change was introduced in 48fe192
https://github.com/laravel/framework/commit/48fe1923902564ad0eed2bbb5f27dc54713a45d9
.
@schleumer https://github.com/schleumer please check this PR, will this
change break your application?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/laravel/framework/pull/15687#issuecomment-250726692,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACcG8Ql8kl7cXLpszSoK9sMHI6m-XAjdks5qvPktgaJpZM4KKp4J
.

Holding off on this for now until we have better solution.

@schleumer can you PR a test to make sure no future changes would break it?

From schleumer:
"I think it will, i tried it too, the problem is that wrapValue doesn't escape the value"
It does escape the value: (Unless I am misunderstanding how this works)
return ' comment '.parent::wrapValue($column->comment);

The wrapValue above comes from the original wrapValue in: laravel/framework/src/Illuminate/Database/Grammar.php:92
    protected function wrapValue($value)
    {
        if ($value === '*') {
            return $value;
        }

        return '"'.str_replace('"', '""', $value).'"';
    }

If you have a doube quote " in your comment, it will turn it into double-double-quote "", which is escaped. (And then the comment is surrounded by a double quote instead of a single quote.)
http://dev.mysql.com/doc/refman/5.7/en/string-literals.html

A “"” inside a string quoted with “"” may be written as “""”.

I will work on a test case to show how this is broken currently.

I'm not sure how to add this to Laravel's own build test cases, looking into that right now, but for now:
database/migrations/2016_09_29_190527_create_single_quote_comment_table.php
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;

class CreateSingleQuoteCommentTable extends Migration {

        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
                Schema::create('single_quote_comment', function(Blueprint $table)
                {
                        $table->integer('id', true);
                        $table->string('test_case')->nullable()->comment('If this comment has a single tick \' then it fails when it gets through Laravel');
                });
        }

        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
                Schema::drop('single_quote_comment');
        }

}

(Then run php artisan migrate)
Then you get:
[Illuminate\Database\QueryException]
  SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the
   right syntax to use near 'then it fails when it gets through Laravel') default character set utf8 collate ' at line 1 (SQL: create table `single_quote_comment` (`id`
   int not null auto_increment primary key, `test_case` varchar(255) null comment 'If this comment has a single tick ' then it fails when it gets through Laravel') defa
  ult character set utf8 collate utf8_unicode_ci)

[PDOException]
  SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the
   right syntax to use near 'then it fails when it gets through Laravel') default character set utf8 collate ' at line 1

After applying my change in this pull request, you get:
$ php artisan migrate
Migrated: 2016_09_29_190527_create_single_quote_comment_table

Forgot to add: I am using laravel/framework: 5.3.* (v5.3.15)


Run unit-tests on CI and block PRs if tests fails

It seems unit tests are not properly running on CI, recently we found a bug that would be caught by just running go test ./... on all supported OSes.
Ex: https://github.com/elastic/elastic-agent-system-metrics/issues/109
Our BuildKite pipeline is only defining Linux and Windows machines, it should also define MacOS.
It also seems the BuildKite tests that do run are not preventing PRs from being merged. https://github.com/elastic/elastic-agent-system-metrics/pull/103 did introduce an issue that caused the CI build to fail: https://buildkite.com/elastic/elastic-agent-system-metrics/builds/112#018bb435-2721-46d1-924b-d46b0bae356d, however this is not seen from the PR.

Just added buildkite/elastic-agent-system-metrics as part of the required check in the branch protection rules for main

We still need to enable running tests in MacOS, we could re-open this issue or create a new one, either way is fine for me.
I'm a BuildKite expert, but based on the pipeline definition I don't see the tests running on Windows: https://github.com/elastic/elastic-agent-system-metrics/blob/74354aae9fc189fe42f0df5e0f4d4f0dab834b1d/.buildkite/pipeline.yml#L18-L33

@belimawr open a new issue specifically for the additional platform support.

@belimawr open a new issue specifically for the additional platform support.

@cmacknz, it already got added: https://github.com/elastic/elastic-agent-system-metrics/pull/112


Oauth. Added 'user_id' key to response from VKontakte

To take full advantage Vkontakte API need to know user_id which is returned during authorization

Looks good to me, thanks @SoEasy


Not check targets and includes after configuration. (Since plugin version v1.13.40)

Brief Issue Summary
Since update to v1.13.40, "vscode-cpptools" not check whether target links and includes path exists.
For example
Step 1 (Prepare):

Step 2 (Bug appear):

Step 3 (After build, it becomes normal):

CMake Tools Diagnostics
{
  "os": "win32",
  "vscodeVersion": "1.74.3",
  "cmtVersion": "1.13.43",
  "configurations": [
    {
      "folder": "d:\\Workspace\\CPP\\CPPT001",
      "cmakeVersion": "3.25.2",
      "configured": true,
      "generator": "Ninja",
      "usesPresets": true,
      "compilers": {
        "C": "gcc",
        "CXX": "g++"
      }
    }
  ],
  "cpptoolsIntegration": {
    "isReady": true,
    "hasCodeModel": true,
    "activeBuildType": "Release",
    "buildTypesSeen": [
      "Release"
    ],
    "requests": [
      "file:///d%3A/Workspace/CPP/CPPT001/main.cpp"
    ],
    "responses": [
      {
        "uri": "file:///d%3A/Workspace/CPP/CPPT001/main.cpp",
        "configuration": {
          "includePath": [
            "d:/workspace/cpp/cppt001/extern/fmt_x64-mingw-static/include"
          ],
          "defines": [],
          "compilerPath": "c:/dev/tdm-gcc-64/bin/g++.exe",
          "compilerArgs": [],
          "compilerFragments": [
            "-O3 -DNDEBUG",
            "-std=gnu++2a"
          ]
        }
      }
    ],
    "partialMatches": [],
    "targetCount": 1,
    "executablesCount": 1,
    "librariesCount": 0,
    "targets": [
      {
        "name": "main",
        "type": "EXECUTABLE"
      }
    ]
  },
  "settings": [
    {
      "communicationMode": "automatic",
      "useCMakePresets": "auto",
      "configureOnOpen": true
    }
  ]
}

Debug Log
No response
Additional Information
Version v1.12.x and before, no this bug. The header check is done after configuration, not after build.

Thank you for reporting this issue. I can repro this in 1.13.xx versions.
If the file is already open, after re-configure, the config provider is not updating the include paths.
If we reload the window, or build, or open a file that hasn't been already opened, the config provider will send the updated information.


Cannot open NetCDF file

When I am trying to open this NetCDF file naively, I get the error below.
When I specify the key argument in the Raster call it works as expected, I would hope, that we could give a better error message and mention the possible keys for the data.
Also I would have expected a RasterStack to work on that file to give me a collection of all Rasters but that also fails.
 YAXArrays filters them out as part of the list of dimensions and therefore doesn't have them in a possible layer list. I am going to discuss this further with @meggart.

Ok I wasnt aware of those. Maybe link whats on your ignore list in YAX and I'll make sure to include them

This is the code we use in YAXArrays to filter "real" variables https://github.com/JuliaDataCubes/YAXArrays.jl/blob/ee64a8608ed94c399edfebcdca9f188642c1349c/src/DatasetAPI/Datasets.jl#L294-L300:
dnames = string.(keys(dimlist))
varlist = filter(get_varnames(g)) do vn
    upname = uppercase(vn)
    !occursin("BNDS", upname) &&
    !occursin("BOUNDS", upname) &&
    !any(i -> isequal(upname, uppercase(i)), dnames)
end

basically everything that does not have _bnds in its name (should probably use endswith instead of occursin) and which is never listed as a dimension in the dataset will be treated as a data variable

Ok thanks that looks a little more thourough than the check for bounds variables here.

Hmm this file is gone too, would be good to check this works now...

This is still not working. I uploaded a failing dataset here.
tas_EUR-6km_ECMWF-ERAINT_REA6_r1i1p1f1_COSMO_v1_mon_199501-199512.zip

Thanks. Now we have all the CommonDataModel changes I want to fix all these little bugs.


Improve Import of Ansible Filters and Tests

The current method of importing the core and ipaddr filters into JinjaFx from Ansible is really bad and prone to breakages. Every time Ansible change anything related to the plugins it completely breaks and a workaround needs to be found. This happened when they decided to move the ipaddr filters from ansible.plugins to ansible.netcommon and then when they decided to move them into ansible.utils and changed the way they were written.
One option is to take the relevant filters and write them as a JinjaFx Extension, but they will be out of sync with upstream changes - they also have dependencies on Ansible which is a huge dependency for a handful of filters.

Partially fixed by porting ipaddr filters from ansible.netcommon:2.5.1 to JinjaFx, but still far from ideal.

Ported regex_replace, regex_search and regex_findall from Ansible Core, but missing a lot of other commonly used filters.

With the release of v1.10.0 we now have JinjaFx extensions that provide some of the Core Ansible filters and tests - this will be expanded over time and hopefully kept up to date with upstream Ansible.


⚠ Bofrost.lu has degraded performance

In 234bbf3, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 2891 ms

Resolved: Bofrost.lu performance has improved in e31fb3b after 6 minutes.


Hover Effect Missing on "View 2024 Program Announcements" button and "View 2024 Program Timeline"

Description:
The "View 2024 Program Announcements" button and "View 2024 Program Timeline" on the apply page does not show any visual effect when hovered over. A hover effect would improve user experience by providing visual feedback.
Steps to Reproduce:
Navigate to the Apply page.
Hover the mouse pointer over the View 2024 Program Announcements" button and "View 2024 Program Timeline" button.
Expected Behavior:
The button should display a visual effect (e.g., change in color, shadow, etc.) to indicate it is being hovered over.
Actual Behavior:
No visual effect is observed when the button is hovered over.
Screenshot -

@ceilican please assign this issue to me

@ceilican I will fix this , please give it to me .

hi @sachan13harshit ,i am interested in working on it ,can you assign it to me?

Hello  @sachan13harshit please assign this issue, I'm interested in working on it.
thank you


[9.x] add firstOrThrow() and findOrThrow() methods to eloquent query builders

This PR adds firstOrThrow() and findOrThrow() methods to the eloquent query builders as an alternative to firstOr(fn() => throw new Exception) to throw any custom exception.
This is based on #42243 - as I believe that this custom exception method is the most flexible solution for the named "problem".

How about also supporting the possibility to pass in an exception class name and the exception is automatically created?
$builder->findOrThrow('bar', ['column'], MyCustomException::class);

Good idea, for exceptions that don't need any "payload" but are self initializing. Will adjust the PR accordingly.

You can just pass in a default message and error code and provide the previous exception for better debugging ;)

Hmm - I think I'll table this for now in preference for firstOr(fn)


Release v1.6.2 and add a release-generating script.

./scripts/make_new_release.sh will build a new release and upload it to pypi.

Coverage increased (+0.2%) to 94.74% when pulling c557b2ffce121377affbce2dd70c963b215a2115 on new_release_and_release_script into 7b9e4b95fc8ae1bba07b635c89ba2c89cfb88763 on master.


[FEATURE]: Faster geodataframe to instance mask function

Is your feature request related to a problem? Please describe.
I tried out the solaris instance_mask function and found that it took about 19 minutes to turn a geodataframe of about ~10,000 labels into 917 512x512 tiles. I think the bulk of the overhead comes from calling rasterio.features.rasterize for every single instance:
https://github.com/CosmiQ/solaris/blob/ef86c100600fe5f066b91a345ea656592e142b3b/solaris/vector/mask.py#L945
Describe the solution you'd like
Ideally this would take less than 5 minutes.
Before finding solaris I was working with a rougher implementation of this function. While solaris goes from geodataframe > multiple geojson tiles > mask tiles my implementation goes from
geodataframe > single large mask > tiles > scikit-image connected components > mask tiles. This results in a "rasterize" call per tile rather than per instance label. The downside is that connected components isn't exactly the same as rasterio's rasterize, and if instances are touching by a single pixel then they will be considered as a single instance. The upside is that it ran in about 2 minutes for the same dataset.
Describe alternatives you've considered
I was thinking that each call to rasterize could be wrapped by dask.delayed, since the operation is embarrassingly parallel: https://examples.dask.org/delayed.html
There could also be a function that uses the scikit-image connected components method described above. It could be named something like instance_mask_approximate. though depending on the nature of the labels this might not be very useful, mine just happen to mostly be well separated without many touching pixels, and where pixels do touch I can deal with it by doing morphological erosion and dilation.
I'm curious if there's any other ideas on how to improve the speed of this function. It'd be great to have the accuracy of the rasterio.features.rasterize method with a speed closer to connected components.

Hey @rbavery,
It's definitely really slow at the moment. I think it's possible it's because of the size of the arrays that get generated - for example, if we're looking at a SpaceNet 4 tile with 100 buildings, that'll be an array of shape (900, 900, 100). That's going to be an enormous object stored in memory. I don't think it's something that could be resolved by making one massive mask at first and then splitting it, since that's going to be exponentially larger across each axis, becoming a truly unmanageable size.
At present, I'm a little hesitant to begin using dask.delayed for this. Since the loop is by definition sequential (i.e. the idx has to be incremented to accurately place slices). I'm not super familiar with dask but I don't know if delayed can automate that (if you know it can, please do correct me). If we wanted to parallelize using core python's multiprocessing module (a pool of workers with map(), starmap() or the like) we could potentially do this and pass [idx, feat] to each worker. This certainly doesn't help with memory, though, bringing me to my preferred solution:
Reduce memory burden by never having more than one instance slice loaded
To reduce memory burden when the mask is being saved to file, the loop that you referenced above could be extended to include writing each channel to file iteratively. In that case, we wouldn't generate output_arr anymore, and would instead only have one channel at a time. Something like:
    if out_file:
        meta = reference_im.meta.copy()
        meta.update(count=output_arr.shape[-1])
        if out_type == 'int':
            meta.update(dtype='uint8')
        with rasterio.open(out_file, 'w', **meta) as dst:
            for idx, feat in enumerate(feature_list):
                dst.write(features.rasterize([feat], out_shape=shape,
                                             transform=affine_obj),
                          indexes=idx+1)

In the case where the array is being returned directly and nothing is being written, it would have to stick with the slower implementation that currently exists.
Thoughts?

Hey Nick, to be clearer about the connected components method:
I was first rasterizing all shapes into a single binary raster with features.rasterize. Connected components can take a  (900,900) shaped binary raster, and turn it into a (900, 900) shaped raster where each connected region is assigned a unique label. Like so:

But sometimes labels are too close together and get rasterized as a single connected component. Using morphological erosion to deal with this before connected components is an imperfect solution.
I also found that the function isn't as slow as I thought it was, there's an edge case where if the aoi_boundary that is used to define the tile bounds is larger than the image being tiled,  empty tiles filled with no data are created where the image does not intersect with the aoi_boundary. I'm submitting a PR to fix this soon.
In my tests where I'm storing (at the largest) (512, 512, 200) label tiles, I don't see memory increase beyond 2GB so I don't know if memory is too much of an issue (at least in my limited case). This might be different for larger tile sizes and larger numbers of instances.
I think dask delayed can still work here, abstracting away multiprocessing. The delayed result of each call to features.rasterized could be stored in a list that preserves the increment of the for loop like so, computed, and then concatenated into an array, preserving the order of the results.
output_list = []
for idx, feat in enumerate(feature_list):
    delayed_result = dask.delayed(features.rasterize)([feat], out_shape=shape,
                                                   transform=affine_obj)
    output_list.append(delayed_result)
output_list = dask.compute(*output_list)
output_arr = np.dstack(output_list)

At the end of the day I think this would use about as much memory as the current implementation.

OK sounds good, happy to try this approach out then! Thanks for the suggestion. If we begin using dask here, I might try to re-write some of the CLI at some point to use that instead of the underlying multiprocessing functionality since it's just generally harder to read...

No prob! I'll get to this once the holidays wind down. I think that'd be a useful rewrite, I've found dask to be very intuitive, and it comes with a nifty dashboard for visualizing workloads.


Catalan

You're not supposed to modify special character, please keep use ` instead of ', it's like markdown, it underlines


Use the same configuration file(.py) to implement two tasks. Will the weight parameters of the two tasks conflict with each other?

I'm a little worried. When using the same configuration file to implement two tasks, because the weights of each layer are certainly different when they run, will the two tasks conflict?
That is, will the weight parameters of each layer of the model corresponding to the two tasks affect each other when the two tasks are in progress?

I haven't got your point, but I think the config file will not affect the model parameters.
For example, if you run two python tasks by using python tools/train.py configs/faster_rcnn/xxx.py --work-dir xxx. They will not conflict with each other. During train, the two models (two task) are independent of each other.

I haven't got your point, but I think the config file will not affect the model parameters. For example, if you run two python tasks by using python tools/train.py configs/faster_rcnn/xxx.py --work-dir xxx. They will not conflict with each other. During training, the two models (two tasks) are independent of each other.

Thank you for your reply. In your example just now, faster_rcnn/xxx.py.Does it mean to complete two tasks with the same py file(faster_rcnn/xxx.py)? They share what you just said faster_rcnn/xxx.py.

the config file contains the settings that going to init models, datasets, and some other important parts that you will use in training or testing. This means if you start two (three, or even 100) python tasks, these tasks are independent of each other.
For example, you use faster/xxx.py as a config file to start 2 training tasks. Each task will train their model independently, and you will get two models after training.
The config file is only used to set some important parameters in your python task, but will not affect each other.
Does that clear? or do you mean you want to use one config file to init two models and train them in one python task?

the config file contains the settings that going to init models, datasets, and some other important parts that you will use in training or testing. This means if you start two (three, or even 100) python tasks, these tasks are independent of each other. For example, you use faster/xxx.py as a config file to start 2 training tasks. Each task will train their model independently, and you will get two models after training.
The config file is only used to set some important parameters in your python task, but will not affect each other.
Does that clear? or do you mean you want to use one config file to init two models and train them in one python task?

Thank you again for your patience.
Let me describe my specific situation to you: first, I added the attention mechanism to the FPN part of mask RCNN. At the same time, a parameter phi is defined in the configuration file, and it is specified that when phi = 0, the attention mechanism is not used, and when phi = 1, the attention mechanism is used.
These two configuration files are only different on phi. I first used phi = 0 in the configuration file and put it into the remote server for training; At the same time, I then modified phi = 1, used the attention mechanism, and also put it into the remote server.
Note: the phi parameter can select whether to use the attention mechanism. In the second task, I did not delete the option of phi=0 (in the FPN file)
According to what you just said, I don't think it will cause the conflict between the two tasks. At first, I was worried that doing so would make their model training parameters interfere with each other.
In addition, I think this should not be what you just worried about. Train them in the same Python file.

In addition, I also think that if I delete phi = 0 in the second task (in the FPN file), it will lead to errors in the training of the first task. Because I think they both share a model.

In addition, I also think that if I delete the code of phi = 0 in the second task (in the FPN file), it will lead to errors in the training of the first task. Because I think they both share a model.

When you start a python task, changing code in config files will not affect your task. But if you change some important code in the source code (in mmdet folder) it may affect your task.


Replaceable media in examples

In the examples TFS.Examples, it is probably not necessary to define media replaceable. E.g. in FTS.Examples.SimpleEngine it is not.

We decided to keep the media replaceable in TFS.Examples as it might be desired to try out different media models in the examples. This is also in line with the fluid examples of the MSL (Modelica.Fluid.Examples), where the media is kept replaceable.


add npm script to run local gulp

Addresses "Annoying to run local version of gulp"
Summary of changes:

Added an npm script that simply runs the local version of gulp.

Instead of typing node_modules/gulp/bin/gulp.js, you can type npm run gulp

It also takes arguments the same way as regular gulp, ex: npm run gulp patternlab:serve

This has no apparent downsides besides 2 extra lines of logs in every call

This is a neat trick. I will likely merge this next time I get around to edition fixes / deployment.
Thanks!


convert_to_nested_dict fails on False as key on config_updates

Running convert_to_nested_dict on a small dictionary like:
my_test_dict = {
    False: 1,
    True: 4
}

will fail on
  File ".../sacred/initialize.py", line 416, in create_run
    config_updates = convert_to_nested_dict(config_updates)
  File "../sacred/utils.py", line 484, in convert_to_nested_dict
    set_by_dotted_path(nested_dict, k, v)
  File "../sacred/utils.py", line 423, in set_by_dotted_path
    current_option[split_path[-1]] = value

due to join_paths ignores keys that are not true, e.g. here False:
https://github.com/IDSIA/sacred/blob/04f2dcc8b07b31acb07e5de6415cbd5cdda6be06/sacred/utils.py#L462
Supporting the dictionary within the config is fine but it breaks via config_updates:
    ex.run(config_updates={
        "my_test_dict": {
            False: 1,
            True: 4
        }
    })

Infrastructure:
python 3.8
sacred 0.8.2
Code Snippet to reproduce:
from sacred import Experiment

ex = Experiment()

@ex.config
def config():
    my_test_dict = None

@ex.main
def test_run(my_test_dict):
    print(my_test_dict)

if __name__ == "__main__":
    ex.run(config_updates={"my_test_dict": {False: 1, True: 4}})

It seems like all keys are transformed to strings and indeed, boolean values are transformed to strings and cannot be used afterwards as boolean, am I right?

Hi!
Yes, you are right. Sacred was written with the idea in mind that all keys are valid python identifiers. That probably stems from the example in the README: it should be easy to replace config managed as global variables with a sacred config. That doesn't work with boolean keys. Also, the config should be JSON-serializable so that it can be written to disk. Even if you would "fix" join_paths with .".join(str(p).strip(".") for p in parts if not isinstance(p, str) or p), it would still convert the boolean to a string and you would end up with strings "True" and "False" in the config.

Thanks for the explanation.
Then I will redesign my code not to use boolean dictionary keys but strings or integers.

Update (if someone falls over this):
This is the same problem with integers, as 0 behaves the same as False.


[Todo] abstraction Queue & Worker

[ ] define abstraction of Queue and Worker
[ ] implement channels queue and go routines worker

https://github.com/jkaveri/goabs-workerpool


Methods and filters are called many times and cause a performance issue

Version
2.3.3
Reproduction link
https://jsfiddle.net/m1oq0xa8/1/
Steps to reproduce
Yesterday I tested my Vue chat application and found, that when I typing new message my app is not very fast. And I found that the problem is filters.
With every message I show the date. And I use my filter with moment.js. But the filters are recalculate their values many-many times.  These values are not depend on v-model value of input variable, but they are recalculating again and again.
You can view https://jsfiddle.net/m1oq0xa8/1/ and see in console many lines about recalculating.
In Vue 1.* method values and filters weren't recalculated until their dependencies have been changed. But in Vue 2.* they are recalculating for any event, for every typing in any input field. And this behaviour is similar to Angular 1.* dirty checking. It hasn't good performance.
I know that you can say that Vue has computed values and I can use them. But I have many lists and I don't want create separate component with one computed property for each list item, because it causes overhead and very verbose for displaying simple list.
What is expected?
The filtered values and {{ method(value) }} are recalculated ONLY if their dependencies were changed.
What is actually happening?
The filtered values and {{ method(value) }} are recalculated on EVERY changing in component even if the changed variable hasn't influence to these values.

I only see console output when I change the value. What browser are you using?

@Nirazul I use last version of Chrome on OSX Sierra.
You can see that input field has variable a.
But filtered values use variable b, not a! That's why input field not logically influences to filtered values. But they are recalculated every time when I changed variable a. It's very strange for me.

The dom gets updated by Vue and therefore the methods get applied again. The filter is doing the same but I'm not sure if that's expected or not. You can use a computed property if you need caching

@posva I looked in generated render function and saw that filter function called every time when function render of component is called.
The behaviour of Vue 1.* was the different. And it had more performance, because you didn't need to create computed property for every transformation of value. This transform function called only when dependent values were changed. Now it's called for every rendering. If I have list with many elements it's very slow. And new behaviour is very similar to dirty checking... And it's sad.

IMO this is expected, the change of a will lead to vm to call its render function which will invoke myFilter and myMethod.
This can be improved if we keep a dependencies relation list between each vnode and the states they depend on.

You can wrap elements that using b into a vue component a avoid this.

@xujiongbo Of course. I can created child component in this case. Or in case of list I need to created new component for every list item. Sometimes it's very verbose.
But in fact I think that filters are become about useless with this behaviour. Because it's expected that they are also reactive. But it's not. That's why computed properties are much better when I need application with great performance. But creating new component for every small list item with only one <div>{{ computedValue }}</div> is a big overhead too.

Also the problem that for every property I need to created all computed properties with transformed data.
For example, I have property date of type Date in JS. I want display it in two places with different formats with moment.js. In fact to have good performance I have to created two new computed properties dateFormat1 and dateFormat2. And it's looked a bit verbose too. Because it's looked like view layer,  but not model layer. But I had to move it to model due to performance issues.

Well,  2.0 is different from 1.0 is Virtual DOM
When the data was changed, how do we update the DOM element ?
In Vue 1.x
Because the directives( {{}} is v-text ) is associated with the DOM, We only need to calculate filter once
in Vue 2.0
We need to regenerate the new Virtual DOM tree. And then compare it to what is different from the old one. This process needs to recalculate all the expressions.
If the value does not change, Vue is not going to modify dom
you can use computed property

First, this is expected behavior. In 2.x a component's entire render function is called when it is updated.
Second, the perf problem really is in moment.js rather than Vue... taking 70ms for calculating 250 dates is just... not good. Maybe you should try memoizing the calculation in your filters or use a faster alternative.
Third, having 250 values in the same component doesn't sound like a good idea, maybe consider splitting your component into smaller ones (which splits up the updates as well, so should result in better perf).

Well, the boss is right.

@gebilaoxiong @yyx990803
OK, I understand your position.
250 values - it's a list with 250 items (chat with 250 loaded messages). Every message has date. That's why I need to show it.

In fact, your request is very simple, you want to filter has the ability to cache the result. just like computed property

Absolutely right. Because I think it has performance improvements and logically right. But if you don't agree... OK

I know this has been closed, but I would like to chime in here anyway. I think a lot of developers are under the impression that filter results are cached, making them a sometimes more convenient alternative to computed properties. This even seems to be implied in the accepted answer to https://stackoverflow.com/questions/47940007/what-is-the-difference-between-filters-and-methods-in-vue-js . It would legitimately make Vue a better framework if this were actually true.


Duo Security Data connector

Describe the bug
This is not exactly a bug, but more of a compatibility issue.
Duo security data connector uses Get-Date -AsUTC in his powershell script. AsUTC was introduced in powershell 7.1, while azure functions currently operate in powershell 7.0. So the function simply wont work, I've got a workaround which i will post here (in the additional context).
To Reproduce
Steps to reproduce the behavior:

Go to https://aka.ms/sentinelduosecurityazuredeploy ,Its the template suggested in: https://github.com/Azure/Azure-Sentinel/blob/master/DataConnectors/Duo Security/DuoSecurity_API_FunctionApp.json
Deploy as described in template.
go to functions, click your function and open the run.ps1 file in online editor
click test/run . then click run on the right side of the window.
See error in error log after running the function (you will get it prompted after clicking on run).
Optional -you might see another error which says %Schedule% isnt defined or doesnt have a value, in this case upload the files manually and modify %schedule% to the cron expression format - 0 */5 * * * *. To edit the files you need to delete the environment variable which makes the function readonly as he pulls the zip directly from github.

Expected behavior
The function wont run and wont perform its function.
Screenshots
Don't have any.
Desktop (please complete the following information):

Not Relevant

Smartphone (please complete the following information):

N/A

Additional context
suggested solution (may require optimization):
$New = Get-Date
$New = (Get-Date).AddHours(-$hrs)
$New2 = ($New|Get-Date -UFormat %s).ToString() +"000"
$New = $New.AddMinutes(-$time)
$New = $New | Get-Date -UFormat %s
$New3 = $New.ToString()
$New = $New.ToString() +"000"
$minTime = $New
$maxTime = $New2
$minTimeSeconds = $New3
I've got it working with the mentioned modifications.

Hey.. we are looking into this issue and would get back to you asap... Thanks!!!

Hey @AlexeyMihalich, we have raised a PR with the fix. Can you please check and confirm if it works for you?.. Thanks!!!

@AlexeyMihalich, can you please confirm if the fix mentioned in the PR works for you, so that we can merge the changes and close this issue... thanks!!!

Hey, Sorry for late reply.
But unfortunately i dont have an environment to test this on right now.
However, as i mentioned in the beginning the solution that i found was working just right, and the proposed solution should be working fine aswell.

Hey, Sorry for late reply. But unfortunately i dont have an environment to test this on right now. However, as i mentioned in the beginning the solution that i found was working just right, and the proposed solution should be working fine aswell.

Thanks for the confirmation @AlexeyMihalich, we have merged the PR and closing the issue as well... Please feel free reopen in case the issue persist... Thanks!!


AAUIWLT click a button on the board to open the package configuration

BACKLOG: AAUIWLT click a button on the board to open the package configuration id:110 +story
todo.md:9
@imdone creator-bot. Get TODOBOTs to do your work at imdone.io

BACKLOG: AAUIWLT click a button on the board to open the package configuration id:110 +story gh:178
todo.md:9
@imdone comment-bot. Get TODOBOTs to do your work at imdone.io

Issue closed with imdone.io by removing a comment.

https://github.com/imdone/imdone-atom/blob/b7251b7ccf00e69c484ae85d9668078cedb7152e/todo.md#L9-L14


Add balancer

Adding new field placementPolicy when set to balance or balanced. CSI will create Volume in the same failure-domain and pick node/storagePool/prefNic(numa node) based on utilization

@haySwim I have implemented the volumeScheduler interface, please let me know if it is correct.
There are couple of TODOs mostly me reusing your non-exported functions so prolly we should move it to some utils package

@deleteriousEffect Hi, I have modified this PR to work with new interface :smile:

lgtm


Updated code to support Druid Sum/Count Query

Code has been updated to Support Druid Count/Sum Query in 0.3.1.

I think it is good to go

LGTM

@zombieJ , could you help merge this?

@senthilec566 pls. close this PR.


Issue with process_video.py

Search before asking

[X] I have searched the Pytorch-Wildlife issues and found no similar bug report.

Bug
Hi all,
I am trying to run the Megadetector in Pytorch-Wildlife to detect animals in videos. I have been following the online notebook provided here.
However, following the steps in this notebook results in the following error:

I realize that the classification step is not appropriate for my type of data, since I am not working with possums - but I am just testing the functionality.
Environment
No response
Minimal Reproducible Example
My code looks as follows:
`
from PIL import Image
import numpy as np
import supervision as sv
import torch
from PytorchWildlife.models import detection as pw_detection
from PytorchWildlife.models import classification as pw_classification
from PytorchWildlife.data import transforms as pw_trans
from PytorchWildlife import utils as pw_utils
import os
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
SOURCE_VIDEO_PATH = "/mnt/path_here/Videos/brocket_deer/58386bb1-3b61-4c5c-8d26-a8505e68e827.mp4"
TARGET_VIDEO_PATH = "/mnt/path_here/Videos/brocket_deer/58386bb1-3b61-4c5c-8d26-a8505e68e827_processed.mp4"
detection_model = pw_detection.MegaDetectorV5(device=DEVICE, pretrained=True)
classification_model = pw_classification.AI4GOpossum(device=DEVICE, pretrained=True)
trans_det = pw_trans.MegaDetector_v5_Transform(target_size=detection_model.IMAGE_SIZE,
stride=detection_model.STRIDE)
trans_clf = pw_trans.Classification_Inference_Transform(target_size=224)
box_annotator = sv.BoxAnnotator(thickness=4)
def callback(frame: np.ndarray, index: int) -> np.ndarray:
results_det = detection_model.single_image_detection(trans_det(frame), frame.shape, index)
labels = []
for xyxy in results_det["detections"].xyxy:
cropped_image = sv.crop_image(image=frame, xyxy=xyxy)
results_clf = classification_model.single_image_classification(trans_clf(Image.fromarray(cropped_image)))
labels.append("{} {:.2f}".format(results_clf["prediction"], results_clf["confidence"]))
annotated_frame = box_annotator.annotate(scene=frame, detections=results_det["detections"], labels=labels)
return annotated_frame
pw_utils.process_video(source_path=SOURCE_VIDEO_PATH, target_path=TARGET_VIDEO_PATH, callback=callback, target_fps=5)
`
Additional
No response
Are you willing to submit a PR?

[ ] Yes I'd like to help by submitting a PR!

Hello @ThomasLuypaert, thanks for reporting! And we have addressed the same issue in https://github.com/microsoft/CameraTraps/issues/523 and are closing this issue. Please update the package and let us know if the issue still persist. Thanks!


Rename t.prismaFields on Query / Mutation to t.prismaCRUD (or similar)

My personal preference would be to keep prismaFields. it feels self explanatory while prismaCRUD feels like I'd need to read the docs.


Use nativeEvent argument in onLayout instead of container.measure

this.container.measure was not returning the full height and width if the screen was in the middle of a transition. This caused a miscalculation where the full container view was not taken up. Example:

onLayout (http://facebook.github.io/react-native/releases/0.45/docs/view.html#onlayout) receives the same view's dimensions with event.nativeEvent.layout. The docs suggest using those instead
(http://facebook.github.io/react-native/releases/0.45/docs/direct-manipulation.html#measure-callback).
This change sets the correct width and height and gives the expected behavior instead:

@phil-r was there any reason for using the container.mesure function? this fix looks good to me, @newtonry nice finding!

+1 is this repo alive?

@i8wu it doesn't seem to be too active. It appears that https://github.com/archriss/react-native-snap-carousel finally added a much wanted loop feature. That's a much more active library, so I might switch over soon.

Thanks for the heads up @newtonry , will check out the other module as well.


WordPress 4.2 appears to crash if Gust is activated

Upgraded a WPEngine site using Gust to WP 4.2 today and had it crash (blank page on visiting the domain and any other pages). Log pasted below; identifying details redacted.
Upgrade to 4.2 went fine with Gust deactivated.
LOG:
[Mon Apr 27 08:05:37 2015] [error] [client 106.XXX.XX.XXX] [WPE Monitoring] Stopwatch php.pod-XXXX.function.mysql_query.duration exceeded 1000ms. Was: 1063ms.\n#0  wpe\\measure\\LoggingStopwatch->logStackTrace(1063) called at [/nas/wp/www/common/production/measure.php:198]\n#1  wpe\\measure\\LoggingStopwatch->lap_ended(1063) called at [/nas/wp/www/common/production/measure.php:134]\n#2  wpe\\measure\\Stopwatch->lapstart() called at [/nas/wp/www/common/production/measure.php:152]\n#3  wpe\\measure\\Stopwatch->stop() called at [/nas/wp/www/common/production/statsd_monitoring.php(256) : runkit created function:19]\n#4  mysql_query(ALTER TABLE wp_usermeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191)) /* From [XXXX.com/wp-admin/upgrade.php?step=upgrade_db] in [N/A] */, Resource id #30) called at [/nas/wp/www/cluster-XXXX/XXXX/wp-includes/wp-db.php:1742]\n#5  wpdb->_do_query(ALTER TABLE wp_usermeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191)) /* From [XXXX.com/wp-admin/upgrade.php?step=upgrade_db] in [N/A] */) called at [/nas/wp/www/cluster-XXXX/XXXX/wp-includes/wp-db.php:1646]\n#6  wpdb->query(ALTER TABLE wp_usermeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))) called at [/nas/wp/www/cluster-XXXX/XXXX/wp-admin/includes/upgrade.php:2377]\n#7  pre_schema_upgrade() called at [/nas/wp/www/cluster-XXXX/XXXX/wp-admin/includes/upgrade.php:404]\n#8  wp_upgrade() called at [/nas/wp/www/cluster-XXXX/XXXX/wp-admin/upgrade.php:34]\n
[Mon Apr 27 08:05:37 2015] [error] [client 106.XXX.XX.XXX] [WPE Monitoring] Slow mysql_query() call was running query:\nALTER TABLE wp_usermeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191)) /* From [XXXX.com/wp-admin/upgrade.php?step=upgrade_db] in [N/A] */
[Mon Apr 27 08:05:40 2015] [error] [client 106.XXX.XX.XXX] [WPE Monitoring] Stopwatch php.pod-XXXX.function.mysql_query.duration exceeded 1000ms. Was: 2187ms.\n#0  wpe\\measure\\LoggingStopwatch->logStackTrace(2187) called at [/nas/wp/www/common/production/measure.php:198]\n#1  wpe\\measure\\LoggingStopwatch->lap_ended(2187) called at [/nas/wp/www/common/production/measure.php:134]\n#2  wpe\\measure\\Stopwatch->lapstart() called at [/nas/wp/www/common/production/measure.php:152]\n#3  wpe\\measure\\Stopwatch->stop() called at [/nas/wp/www/common/production/statsd_monitoring.php(256) : runkit created function:19]\n#4  mysql_query(ALTER TABLE wp_posts DROP INDEX post_name, ADD INDEX post_name(post_name(191)) /* From [XXXX.com/wp-admin/upgrade.php?step=upgrade_db] in [N/A] */, Resource id #30) called at [/nas/wp/www/cluster-XXXX/XXXX/wp-includes/wp-db.php:1742]\n#5  wpdb->_do_query(ALTER TABLE wp_posts DROP INDEX post_name, ADD INDEX post_name(post_name(191)) /* From [XXXX.com/wp-admin/upgrade.php?step=upgrade_db] in [N/A] */) called at [/nas/wp/www/cluster-XXXX/XXXX/wp-includes/wp-db.php:1646]\n#6  wpdb->query(ALTER TABLE wp_posts DROP INDEX post_name, ADD INDEX post_name(post_name(191))) called at [/nas/wp/www/cluster-XXXX/XXXX/wp-admin/includes/upgrade.php:2383]\n#7  pre_schema_upgrade() called at [/nas/wp/www/cluster-XXXX/XXXX/wp-admin/includes/upgrade.php:404]\n#8  wp_upgrade() called at [/nas/wp/www/cluster-XXXX/XXXX/wp-admin/upgrade.php:34]\n
[Mon Apr 27 08:05:40 2015] [error] [client 106.XXX.XX.XXX] [WPE Monitoring] Slow mysql_query() call was running query:\nALTER TABLE wp_posts DROP INDEX post_name, ADD INDEX post_name(post_name(191)) /* From [XXXX.com/wp-admin/upgrade.php?step=upgrade_db] in [N/A] */
[Mon Apr 27 08:05:49 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198, referer: http://XXXX.com/wp-admin/update-core.php?action=do-core-upgrade
[Mon Apr 27 08:06:08 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:06:12 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:06:16 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:06:21 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:06:27 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:06:31 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:06:35 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:06:44 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:06:49 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:06:53 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:06:56 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:07:22 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:07:24 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:08:56 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:09:00 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:09:04 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:09:20 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:09:23 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:09:27 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:10:40 2015] [error] [client 139.XXX.XXX.XX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:11:21 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:11:36 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:12:51 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:15:33 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198
[Mon Apr 27 08:16:12 2015] [error] [client 198.XX.XX.XXX] PHP Fatal error:  Cannot redeclare get_avatar_url() in /nas/wp/www/cluster-XXXX/XXXX/wp-content/plugins/gust/gust.php on line 198

It's because WP4.2 now has its own get_avatar_url() function.
Quick fix: change the get_avatar_url to get_avatar_url_gust() in gust.php:198 and views/header.html.php:19
Also may need to re-enable permalinks to register gust.
Problem: posting new articles does not seem to work either any more in 4.2

@benhourigan - what @krautsourced said.  I'll release an update for this soon, hopefully tonight or tomorrow.

Just pushed v0.4.1 to wp.org, it should fix the duplicate function issue.

Thanks so much for the fix, @ideag. This got all my sites running again.


remove logout button from the menu

the button is in the settings page now

:+1:
I moved the toggle in the footer, let me know if looks good to you too and we can merge

Here a screenshot

actually it doesn't work properly on touch devices :/ also, if i use ion-toggle it doesn't render nicely.
I'll try to override the ion-toggle styles to behave properly inside the footer

Reverted toggle back where it was, too dirty to override the css for the toggle in the footer. Also, if i use the toggle as described here http://ionicframework.com/docs/components/#toggle, on mobile (at least on the chrome simulator) it doesn't interact correctly when is inside the footer bar


Bump travis download_mariadb script from 10.0.25 to 10.0.26

@michael-berlin

This change is

LGTM


Update Posts “οι-σημερινές-λέξεις”

Automatically generated by Netlify CMS

👷 Deploy Preview for greeking processing.

Name
Link

🔨 Latest commit
40ba1a36e64051a747e64446ad37821c9e267983

🔍 Latest deploy log
https://app.netlify.com/sites/greeking/deploys/62fc841f39041a000c9bf875


Docs: MudRadioGroup: vertical align (#1540)

Description

In this radio group, the buttons Start and End where aligned horizontally, while the other buttons where vertical aligned.

I used the solution provided in closed issue #1540
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[ ] I've added relevant tests.

Hi @TDroogers and thanks for contribution.
In the docs we strive for minimal layout in order to concentrate on the component.
Can you try this to see if it works for you
https://try.mudblazor.com/snippet/QaccFPaRJHqxThIU
If it does can you amend this PR 👍

Yes, this works and is not as polluted.


Deploying contracts fails in production-like-environment

Hi,
i've created nodes withouth docker-compose support, for a production-like environment. I can start the bootnode without problems, this is the output of $ docker ps:
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS                                                                                NAMES
82f85324ea37        syneblock/quorum    "./start_node1.sh"   3 seconds ago       Up 2 seconds        <IP_ADDRESS>:9000->9000/tcp, <IP_ADDRESS>:10000->10000/tcp, <IP_ADDRESS>:22000->22000/tcp, <IP_ADDRESS>:10000->10000/udp, <IP_ADDRESS>:30000->30000/tcp, <IP_ADDRESS>:30000->30000/udp   gallant_morse

When i'm now trying to deploy a contract, via truffle or cakeshop, the process simply freezes. Any idea why ? When creating nodes with docker-compose support everything works fine.

How many nodes you created ? Are they connecting each other successfully? If the deployment freezes, it is normally an issue with gas. Also, would you be able to try to deploy a simple contract from the geth console if nothing else works? you can attach to a node using docker exec and do 'geth attach qdata/geth.ipc' and loadScript('...')

Deploying contract in production like environment fails, the process freeze as mentioned in the above issue. In the geth console getting an error
Unable to vote: Node is not configured for voting quorum-maker


Release azure-cli-batch 3.0.0

Reviewers, please verify the following for this PR:

[ ] The PR title has format Release <component-name> <version>.
[ ] setup.py has been modified with the same version as in the PR title.
[ ] HISTORY.rst has been modified with appropriate release notes.
[ ] If releasing azure-cli or azure-cli-core, __version__ defined in __init__.py should also be modified to match.

Started releasing azure-cli-batch 3.0.0...

Release of 'azure-cli-batch' with version '3.0.0' successful. View at https://pypi.python.org/pypi/azure-cli-batch/3.0.0.

GitHub release created. https://github.com/Azure/azure-cli/releases.


Unable to obtain SRI hash for local resource

I am rending a server in hybrid mode and setting the Content-Security-Policy in astro.config.mjs as follows:
sri: {
      hashesModule: sriHashesModule,
      enableMiddleware: true
    },
    securityHeaders: {
      contentSecurityPolicy: {
        cspDirectives: {
          'default-src': "'self'",
          'font-src': "'self'",
          'img-src': "'self'",
          'form-action': "'self'",
          'connect-src': "'self'",
          'frame-ancestors': "'none'",
        }
      }
    }

When working in development, I get constant console errors. astro dev shows "Unable to obtain SRI hash for local resource", while my web console shows errors alike "The page’s settings blocked an inline style (style-src-elem) from being applied because it violates the following directive: “style-src 'self' 'hashes' 'hashes' 'hashes'". In addition, I get errors when dynamically loading certain content...
From all these errors, it seems that there is a problem with the SRI hashes, but I am not sure what I am doing wrong.
I setup my sriHashesModule as in the docs:
const rootDir = new URL('.', import.meta.url).pathname;
const sriHashesModule = resolve(rootDir, 'src', 'generated', 'sri.mjs');

Am I doing something wrong in setting this up?
Many thanks for your work and support!

Hi @mvantschip , please excuse me for my late response.
Indeed, computing the SRI hashes in dev mode is a bit of a nightmare because Astro itself (and Vite) do things quite differently. This is to be expected, since they need extra flexibility to make it easy for us to to stuff such as hot reloading, having a "widget" in our site to do some inspection, etc.
My advice here is to rely on some conditionals to apply a slightly different configuration when running in dev mode. Not nice, but for now I can't offer anything better, sorry... maybe in the future I'll come up with a clean solution for this.


Fix issues 1082 (calendar date part 5) and 1089 (NotWorn algorithm)

Fixes #1082 by removing a the +1 that caused the date for part 5 output to be incorrect when a window starts 5 seconds before midnight.
Fixes #1089 by:

Revising the "NotWorn" algorithm in both HASIB and HASPT. I have tested this with both raw- and count-acc data as we want this to work for both.
Addressing minor issues encounted in the process such as that ActiGraph count columns are sometimes stored as character.
In part 4 renamed internal object's column name from "dur" to "overlapGuider" because that is what it represents: 1 if it overlaps, 0 if not.
In part 4 and when using "NotWorn" as guider than sib is automatically aligned to the guider to ensure the entire night is treated as sleep, also specific 24 shift hour mistakes in numeric timing of sleep in this scenario are accounted for.
While testing this I also encountered issues with the plot5 function (visualreport) in that it did not correctly used includenightcrit and could not handle missing nights, which I addressed.

Checklist before merging:

[ ] Existing tests still work (check by running the test suite, e.g. from RStudio).
[ ] Added tests (if you added functionality) or fixed existing test (if you fixed a bug).
[ ] Clean code has been attempted, e.g. intuitive object names and no code redundancy.
[ ] Documentation updated:

[ ] Function documentation
[ ] Chapter vignettes for GitHub IO
[ ] Vignettes for CRAN

[ ] Corresponding issue tagged in PR message. If no issue exist, please create an issue and tag it.
[ ] Updated release notes in inst/NEWS.Rd with a user-readable summary. Please, include references to relevant issues or PR discussions.
[ ] Added your name to the contributors lists in the DESCRIPTION file, if you think you made a significant contribution.
[ ] GGIR parameters were added/removed. If yes, please also complete checklist below.

If NEW GGIR parameter(s) were added then these NEW parameter(s) are :

[ ] documented in man/GGIR.Rd
[ ] included with a default in R/load_params.R
[ ] included with value class check in R/check_params.R
[ ] included in table of vignettes/GGIRParameters.Rmd with references to the GGIR parts the parameter is used in.
[ ] mentioned in NEWS.Rd as NEW parameter

If GGIR parameter(s) were deprecated these parameter(s) are:

[ ] documented as deprecated in man/GGIR.Rd
[ ] removed from R/load_params.R
[ ] removed from R/check_params.R
[ ] removed from table in vignettes/GGIRParameters.Rmd
[ ] mentioned as deprecated parameter in NEWS.Rd
[ ] added to the list in R/extract_params.R with deprecated parameters such that these do not produce warnings when found in old config.csv files.

@jhmigueles just a heads up that I will ask a group I am helping to check that this works well in their data. But I thought you may like to be aware that I have prepared this update as it should hopefully make it easier to use GGIR in studies where the accelerometer was intentionally not worn during the night.

It works as expected. As we discussed, for the future it would be good handling those nights in which participants ignore the protocol and wear the devices even if they were instructed not to.

I have looked at this and have now added the option to specify HASPT.algo as a vector of two. If the first element is "NotWorn" and the second element is either "HDCZA" for wrist or "HorAngle" for hip then this second guider will be used if the sensor is worn for more than 75% of the day. Next, HASIB.algo should be set to what seems most feasible for the wear location, e.g. "vanHees2015". Other than that all stays the same. To document this I updated the CookBook paragraph for this scenario, which is references in GGIR.Rd and parameters vignette.
I ran this on test data and it seems to be working well. Given that this will not affect normal use of GGIR because it only is activated when HASPT.algo has length 2 I think this can now be safely merged. If more enhancements are needed they can be done for the next release.


DCOS-57484: make Quota header buttons consistent with Services

Testing

Go to the Quota tab in the Services view
Click the "+"

A dropdown menu should appear with the items "Run a Service" and "Create a Group"
Trade-offs

Dependencies

Screenshots
Before:

After:

:tada: This PR is included in version 2.139.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


AvatarGroup vNext initial prototype

Platforms Impacted

[x] iOS
[ ] macOS

Description of changes
Introducing AvatarGroup in vNext. This PR is showcasing the basics of Stack and Pile styles in AvatarGroup. MaxAvatars, Overflow, and borders are not included here.
Verification

Legacy
vNext

Pull request checklist
This PR has considered:

[x] Light and Dark appearances
[ ] VoiceOver and Keyboard Accessibility
[ ] Internationalization and Right to Left layouts
[ ] Different resolutions (1x, 2x, 3x)
[ ] Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)

Microsoft Reviewers: Open in CodeFlow

update the description you are fixing group to square?


Document resizing of Kubernetes storage volumes

As of Kubernetes 1.11, the ability to resize persistent volume claims is on by default in the major cloud providers. Given that our configuration files default to such a small disk size, I think this is worth including a small section on in our Kubernetes docs.
Upstream documentation: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims

Merged into https://github.com/cockroachdb/docs/issues/5459.


[as2_motion_controller] Add a MPC controller plugin

Feature Description
Add a Model predictive control plugin. Also check Perception Aware MPC (PAMPC)
Implementation Considerations
No response

Implemented in external package https://github.com/aerostack2/as2_mpc_plugin


Samples:Calamari Lure: Improve page text

Task Description
Page: https://github.com/solettaproject/soletta/wiki/Samples:Calamari-Lure
The leading text "src/samples/flow/minnow-calamari" is shown without context and the samples have no explanations of what they are about -- they only have their expected outputs.

[ ] Add context for "src/samples/flow/minnow-calamari", explaining that this is a directory that holds the given samples
[ ] Explain briefly what each sample is about and its purpose

Dependencies
None

done


Warning: Can't perform a React state update on an unmounted component (non blocking warning)

On the master branch, when going through tests, and switching between the agent configuration page and the connexion config page i randomly get
Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.
    in ConversationBar (created by InjectIntl(ConversationBar))
    in InjectIntl(ConversationBar) (created by ConnectFunction)
    in ConnectFunction (created by WithStyles(Connect(InjectIntl(ConversationBar))))
    in WithStyles(Connect(InjectIntl(ConversationBar))) (created by withSaga(WithStyles(Connect(InjectIntl(ConversationBar)))))
    in withSaga(WithStyles(Connect(InjectIntl(ConversationBar)))) (created by AppHeader)

This is due to the web socket, it seems like if you move to fast between screens this message is shown. We need to fix this

I have read that this could affect the performance of the webapp, one of the solutions could be to initialise a variable to true on the ctor and to false on the unload,
and only update the state when the var is true.


Update machine-learning-faq.md

added link to the full list of R packages.

Hi @hning86, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;


Manifest & access controller becomes unpinned by ipfs repo GC

We need to automatically  pin both the manifest and the access controller during db open to prevent go-ipfs from deleting them while performing repo garbage collection.

I'm guessing you would also unpin the data when the store is dropped

I don't see this documented anywhere, but I think if you pass { pin: true } to orbitdb.create that may pin the manifest. I'm not sure if that will recursively pin the access controller. My guess is no.
From what I can tell there is no way to pin the ac or manifest for an already created db.

Started work on this at the ACL level here: https://github.com/orbitdb/orbit-db-access-controllers/pull/45

Unfortunately pin: true will not work :(

Closing as probably out-dated with version 1 release. If the problem persists, feel free to reopen.


Migration to DeclBaseName in diagnostic definitions

These diagnostics are already called with DeclBaseName as their
parameters. Reflect this in the diagnostic's definition so that the
implicit conversion from DeclBaseName to Identifier is no longer needed.
It includes the changes from #9976

Please test with following pull request:
apple/swift-lldb#206
@swift-ci Please test

The basic rule was: Change everything from Identifier to DeclBaseName where the compiler complained about non-matching types. Should I have done/do more investigation on which changes are absolutely necessary?

I'm not sure that rule makes sense when your use of DeclBaseName vs. Identifier at the call site was mostly arbitrary. I'd rather be consistent, so that people who need to add new diagnostics know which one to use.

(I don't mean any offense by the call site being mostly arbitrary, just that it wasn't a focus.)

OK, I'll look through them again and give you a ping when I'm done so you can have another look at the final result

@swift-ci please test

Build failed
Jenkins build - Swift Test OS X Platform
Git Commit - 12d7e6109964f1b84b3f389162d37bea75fbef04
Test requested by - @ahoppen

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 12d7e6109964f1b84b3f389162d37bea75fbef04
Test requested by - @ahoppen

@swift-ci please test

Build failed
Jenkins build - Swift Test OS X Platform
Git Commit - cc819136989868063694ea27192d0958c02e9eca
Test requested by - @ahoppen

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - cc819136989868063694ea27192d0958c02e9eca
Test requested by - @ahoppen

@swift-ci Please test

Build failed
Jenkins build - Swift Test OS X Platform
Git Commit - a03fd64aec9f81e73054cead086f3d3b6fb0e1e2
Test requested by - @ahoppen

@swift-ci Please test


Font Unicode Range

I propose a new CSS unicode-range like mechanism, to allow more precise control over character's font.
Proposed syntax
Allow text(font) to receive a dict (family, unicode-range) or a array thereof.
E.g.:
#set text(font: (
  (family: "Architects Daughter", unicode-range: (0x2d, 0x3d)),
  "Just Another Hand"
))

Use Case

Combine two fonts. See https://jakearchibald.com/2017/combining-fonts/ for example.
#794

Why not show regex
show regex has many caveats. It will break CJK punctuation adjustments. It also have some bad effects to other show rules. It deserve a better solution.

I would go a step further and move many of the text parameters into font. Especially things like stylistic sets.

I would go a step further and move many of the text parameters into font. Especially things like stylistic sets, which doesn't make sense as a global setting for all fonts.

@Enivex is an early breaking change okay/better? I guess there are no quite many users using things like stylistic sets.
But this is not about proposing the font unicode range.

An urgent use case is to set correctly font fallback for these marks:

the left single quote mark: ‘, U+2018.
the right single quote mark: ’, U+2019.
the left double quote mark: “, U+201C.
the right double quote mark: ”, U+201D.

Though a English first font fallback works well on most cases:
#set text(font: (
  "Linux Libertine",
  "Source Han Serif SC",
), lang: "zh", region: "cn")

It cannot help font fallback for quote marks, because both fonts have these chars.

I would go a step further and move many of the text parameters into font. Especially things like stylistic sets, which doesn't make sense as a global setting for all fonts.

I don't think we have to go that far. After all, oftentimes you'll only want to apply certain changes within a certain scope, and having to change font settings for that would be annoying (you'd have to keep track of the current font settings and stuff).
Instead, we could use something like
#show text.where(font: "X"): set text(stylistic-set: 1)

However I'm not sure if the current progress on the styling rework allows for this. If not, it'd be an interesting addition to consider.

@PgBiel What you wrote does work on main, but it will be rather inefficient if the font is used a lot in the document.

I do sort of agree with @Enivex though. Maybe we need a reusable font type that wraps a buffer or string resource with settings rather than a dictionary.

An urgent use case is to set correctly font fallback for these marks:

To better explain the problem, I made this little doc:
#set page(height: auto, width: 25em)

Quotation marks should be 1em wide per #link("https://www.w3.org/TR/clreq/#glyphs_sizes_and_positions_in_character_faces_of_punctuation_marks")[clreq]. This is usually achieved by fonts: CJK fonts have fullwidth quotation marks, and Latin fonts have proportional quotation marks.

== When using NCM and Source Han Serif SC

Note that the quotation marks are not 1em wide. This is because NCM also has glyph for quotation marks, so it doesn't fallback to Source Han Serif SC.

#set text(font: ("New Computer Modern", "Source Han Serif SC"), lang: "zh", region: "cn")
引号#highlight[“]引号”引号

== When using Source Han Serif SC

#set text(font: ("Source Han Serif SC"), lang: "zh", region: "cn")

引号#highlight[“]引号”引号

Maybe we need a reusable font type that wraps a buffer or string resource with settings rather than a dictionary.

What the difference between a dict and a "font object"?
Compare (using dict)
#set text(font: (family: "Stix Two Math", stylistic-set: 1))

and (using a function font)
#set text(font: font(family: "Stix Two Math", stylistic-set: 1))

It is true that the difference isn't big at the moment, mostly that it could have methods, can be documented better and similar minor things. My statement isn't really substantiated.
In the future, a font type could potentially (I am not yet sure whether set rules for types that don't end up in the content stream are really achievable) support set rules directly on it. Finding the right place to create a new type rather than a dictionary (also e.g. for strokes which have both) is a tricky design problem across Typst.

Also with a font type I think Typst would allow writing #set text(font(...)) based on special behavior of that type. Not sure if we would want this though.

This is a workaround that works on 0.11.0:
#let sans-font = ("TeX Gyre Heros", "Noto Sans CJK SC").map(lower)
#let serif-font = ("Tex Gyre Termes", "Noto Serif CJK SC").map(lower)
#set text(font: serif-font)
#show strong: set text(font: sans-font)
#show regex("[·“”‘’…]"): it => {
  show text.where(font: sans-font): it => text(font: "Noto Sans CJK SC", it)
  show text.where(font: serif-font): it => text(font: "Noto Serif CJK SC", it)
  it
}
文字“文字”文字\
*文字“文字”文字*

afaik this will break punctuation sequeeze. so it's not perfect at this moment

afaik this will break punctuation sequeeze.

The underlying problem is discussed here. Maybe worth its own issue.

I would go a step further and move many of the text parameters into font. Especially things like stylistic sets, which doesn't make sense as a global setting for all fonts.

From efforts in #4093 it looks like including everything like stylistic sets and ligatures can be hard. I think we can start implement and design unicode range incrementally without depending on font object. We can keep it simple and focused at this moment.
I personally feel proposed API is good.
#set text(font: (
  (family: "Architects Daughter", unicode-range: (0x2d, 0x3d)),
  "Just Another Hand"
))

Half a year has passed since #4093, and still no one has found the Unified Font Solution. Given the situation, I propose to move forward by first implementing the proposed unicode-range functionality in the beginning. Few reasons here:

This is just a small and compatible user API change: In addition to strings, we also allow dict in the font list. Not breaking any existing code.
Since it is not a breaking change, it will not be a burden for a better font solution in the future, which will likely be a breaking change.
In Microsoft Word and LaTeX, setting Chinese and English fonts separately is a basic feature, and thus most serious Chinese formatting guides require this. I believe that the improvements brought by unicode-range provide a sufficiently significant enhancement.

@laurmaedje Do you have other concerns about the dict-in-font-list proposal?

I responded in https://github.com/typst/typst/pull/5305


feat: support postgres15

[#185285503]
Postgres 15 introduced very big changes in the default permissions
for the PUBLIC scheam which completely breaks CSB functionality.
Changes in this commit restore previous functionality.
We considered other alternatives and deeply analysed the security
implications of the decision. In the end, it was reasonable to go
with pre15 functionality because CSB design assumes relation
between different bindings for the same service to be cooperative
and trustworthy.
Checklist:

[ ] Have you added Release Notes in the docs repository?
[x] Have you followed the Conventional Commits specification?

Apparently there is bug that affects all IAASes and Postgres Versions except for:

AWS Postgres 15
AWS Aurora Postgres 15

https://github.com/cloudfoundry/terraform-provider-csbpg/blob/90444950102a11923e1ebb4c67873e29833e70bd/csbpg/db_dumps_test.go#L36-L42


Annotation / allow user to select which tokens to annotate

From Slack:
Could we add simple select boxes to allow user control over which documentation tokens get output using the annotation tool. It would make editing and updating specific tokens faster and easier I think.
Right now if I need to update just the color of a label you need to generate the whole set and delete what you don’t need just for 1-2 tokens
My documentation closely follows Esthers example in her Youtube video, separating out common and sizing tokens, etc. So having more control over the output seemed handy, if that makes sense.

proposing to archive, when we do a focus on documentation we can think about solutions using what has changed in since this was created. @esthercheran


[zh] sync /command-line-tools-reference/kube-apiserver.md

Related to task-29 of issue #39987
content/zh-cn/docs/reference/command-line-tools-reference/kube-apiserver.md

See preview please.

/approve


Compilation error in 32 bit build

I ran into this error when making a 32 bit build:
src/lib.rs:112:52: 112:66 error: transmute called on types with different sizes: &[u8] (64 bits) to (*const u64, u64) (96 bits)
src/lib.rs:112                 let (tmp, _) : (*const u64, u64) = mem::transmute(&$curVec);

Not exactly sure how to fix this, glad to take a look at it though. Do you have any pointers?

Can you try replacing the second u64 with usize and report back?

Thanks! :-)

Thanks for the report.


MAX_RW_BUF_LEN not large enough for WebSocketConnection::WssHandshake

The WSS HTTP GET request formed in WebSocketConnection::WssHandshake can exceed 2048 bytes, which is the size of MAX_RW_BUF_LEN. The error traced out is that the WSS handshake fails because there are no SSL packets to read. In fact the request has only been partially written because the buffer wasn't large enough to hold all of it in one go, so the IoT service hasn't sent a response.

Hi @sjmh3 ,
Thank you for your interest in the AWS IoT SDK!
Were you able to increase the MAX_RW_BUF_LEN to successfully complete the WSS handshake? If yes, what was the value of the buffer that was required for it?
We will investigate this on our end and provide a fix for this.
Thanks!
Varun

Hi @vareddy,
Yes, increasing MAX_RW_BUF_LEN allowed me to successfully complete the WSS handshake. I should have said what buffer size was required - sorry. I increased the buffer size to 3072 and then in WebSocketConnection::WssHandshake() I saw the length of the request string stored in rw_buf range from 2048 to 2088 (as returned from strnlen), so that would require MAX_RW_BUF_LENto be up to 2089. I'm always connecting to the same endpoint, so the variable length comes from the canonical query string. I haven't investigated what causes its length to vary so can't say if 2089 would be sufficient for all situations.
The original buffer size of 2048 was large enough for my request string a couple of months ago with the same code; I only started hitting this problem when returning to the project this week. So something about the request is longer now than it was then.
Simon

Hi @sjmh3 ,
While connecting over WebSockets, did you fill in the "aws_session_token" in the configuration?
Thanks!
Varun

Hi @vareddy,
Yes, I did fill in the session token - do I not need to?
Thanks,
Simon

Hi @sjmh3 ,
That would explain the overshoot as it can easily be over 2k if you fill in the session token. That is more like oversight on our part. I have made a fix and will be pushing to master after our internal testing.
Thanks!
Varun


Add support for websockets

Hey it's me again 👋
I noticed that Injected is currently not compatible with websocket routes. It fails with the following error:
TypeError: Injected.<locals>.inject_into_route() missing 1 required positional argument: 'request'

This PR adds support for that.

@matyasrichter Do you think you will have a few minutes soon to have a look at this? It shouldn't take much time and would be highly appreciated.

@soldag Sorry about the delay, I must have missed the notification about your PR. LGTM, thank you for your contribution!

No worries, thank you!


Use Alpine base image

wgquick (apparently) depends on bash and openresolv.
Without those packages removing an Interface is impossible and causes an error message to appear in the webui:

No Bash: exec complains about "bash no such file in $PATH"
No openresolv: resolvconf -f -d interface returns with error 127

Not having a Shell in the container also makes debugging a lot more annoying.
This enables deletion of interfaces in the webui, eases debugging and only adds about 3MB in size.

Testing environment was the wgportal/wg-portal:latest docker image running on top of OpenSUSE MicroOS in an x86_64 VM using the official docker and docker-compose packages with cap_add: - NET_ADMIN and network_mode: host set. I even tested privileged: true with no change in observed behaviour.
I tested both removal of imported and new interfaces, behaviour is consistent between both cases (does not work without changes, works after adding bash and openresolv). I also tested whether openresolv needed to be installed in the container, on the host, on both or neither system. Result: installing bash and openresolv just in the container is sufficient
No build errors or other issuses were observed after applying the changes. No other changes were made to the system or install.
The configuration file was quite minimal and based on the config.yml.sample with the auth section removed.
Import existing was changed between true and false (with a full docker system prune -a -f --volumes in between to test removal of preexisting vs. completely new interfaces:
advanced:
  log_level: trace

core:
  admin_user<EMAIL_ADDRESS>  admin_password: SecurePassword
  import_existing: false

web:
  external_url: https://my.external.url
  request_logging: true


Getting backup IDs

I poked around the code and am able to call to get the backup devices, and then call for backups on a particular udid. However, I don't see a backup_id (ref: https://github.com/jurriaan/Ruby-iCloud/blob/master/lib/ruby-icloud/requests/Backup/backupfilesrequest.rb#L3).
#<RubyiCloud::ProtocolBuffers::Backup index=1 size=989632529 timestamp=2015-08-30 21:35:54 -0400 device_info=#<RubyiCloud::ProtocolBuffers::DeviceInfo name="x's iPad" version="8.3" build="12F69" unknown1=2 unknown="2451e46db4bc4055bf126c8b26b15800" unknown2=2 unknown3=1> timestamp2=2015-07-11 21:22:31 -0400>

Is there an easy way to get this backup ID?

My bad, looks like it's the index. Closing.

I'm actually amazed this thing still works! Hopefully its useful to you


Update server.js

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign ablazleon
You can assign the PR to them by writing /assign @ablazleon in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ablazleon: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

pr-build
bffb85e0a4c9f4752f7901da784f300e5110ef4c
link
/test this

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.


fix(ci): Unify release jobs

To prevent erros generating releases.

:tada: This PR is included in version 1.1.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


ProcessDisconnectResponse

analizyng the messages of a real production system I discovered disconnection happens after receiving DisconnectResponse

fix private void DisconnectRequest() to public

I don't know well how github works


Update composer.json

Q
A

Is bugfix?
✔/❌

New feature?
✔/❌

Breaks BC?
✔/❌

Fixed issues
comma-separated list of tickets # fixed by the PR, if any

👍