Am I implementing $router->respond() properly?

Hello,
I am following a no-framework tutorial and am using Klein as the router.
In my bootstrap.php file:
$router = new \Klein\Klein();
$routes = include('Routes.php');
foreach ($routes as $route) {
    $router->respond($route[0], $route[1], $route[2]);
}

In my Routes.php file:
return [
['GET', '/hello-world', function () { echo 'Hello World'; }],
['GET', '/another-route', function () { echo 'This works too'; }],
['GET', '/', ['Main\Controllers\HomeController', 'show']],
];
This works, but it's calling HomeController::show() as a static function. I guess that makes sense, but then how do I use __construct() in my HomeController to setup the class?

The third parameter in your passing is a callable.
PHP allows for class/object callables to be denoted via an array syntax, as you have in your ['Main\Controllers\HomeController', 'show'] example.
Since you're passing a class-name string as the first part of the array, it will call the method statically. If you'd like to call the the show() method in reference to an object instance, simply change the array callable to an instance and method, like this: [$instance_of_home_controller, 'show'].

Wow, you are fast.
I'm used to PHP 5.2, so new to 5.3 way of doing things. This seems to work:
return [
    ['GET', '/hello-world', function () {
        echo 'Hello World';
    }],
    ['GET', '/another-route', function () {
        echo 'This works too';
    }],
    ['GET', '/', [new Main\Controllers\HomeController(new \Nette\Http\Response()), 'show']],

];

Thank you, @Rican7.

Even better, I also just noticed in the README.md that klein passes a $request and $response objects to the 'show' method for my HomeController route, so I don't know why I would even need Nette's HTTP response.

Haha, I'm glad I could help! :)
And yea, I wouldn't use Nette's HTTP response class, as using Klein's allows you to hook more into Klein's routing behavior. Its also usually a better idea to have controllers constructors take in any domain-specific services or repositories in the constructor and have the controller's route matched methods take in the HTTP request/response. Does that make sense?
Something like this, perhaps:
class UserController
{
    private $user_repository;
    private $registration_service;
    private $model_serializer;

    public function __construct(UserRepository $user_repository, RegistrationService $registration_service, ModelSerializer $model_serializer)
    {
        $this->user_repository = $user_repository;
        $this->registration_service = $registration_service;
        $this->model_serializer = $model_serializer;
    }

    public function get(Request $request, Response $response)
    {
        $user_model = $this->user_repository->findById(
            $request->param('id')
        );

        if (null === $user_model) {
            $response->code(404);
        } else {
            $response->body(
                $this->model_serializer->serialize($user_model)
            );
        }

        return $response;
    }

    public function register(Request $request, Response $response)
    {
        try {
            $user_model = $this->registration_service->registerByParamArray(
                $request->params
            );
        } catch (RegistrationException $e) {
            // Handle error
            $response->code(400);
            $response->body($e->getErrorParams());
        }

        if (null !== $user_model) {
            $response->body(
                $this->model_serializer->serialize($user_model)
            );
        }

        return $response;
    }
}

// In routes file....

$router = new Klein\Klein();
$app = new My\Awesome\App();
$controller_factory = new ControllerFactory($app);

// Group some calls under the `/users` route namespace
$router->with('/users', function () use ($router, $controller_factory) {
    $controller = null;

    // Catch-all for this group to build the controller.
    // Make sure to pass in a REFERENCE to the controller variable!
    $router->respond('GET', '/users/?', function () use (&$controller, $controller_factory) {
        $controller = $controller_factory->buildUserController();
    });

    // GET /users/?
    $router->respond('GET', '/?', [$controller, 'get']);

    // POST /users/?
    $router->respond('POST', '/?', [$controller, 'register']);
});

.... Oh god, sorry for that long response, haha. I kinda got into it...
Anyway, I hope that helps (I'm really hoping I didn't just confuse you more...).

I've been away from PHP a bit (Code Igniter was the big guy back then for anything close to this), as we've started moving towards Javascript and Java on the backend, and I see some similarities here on the code separation mentality. I don't remember the community caring about that before. It's as if PHP is finally becoming more nimbly used by the community instead of being used as a blunt object. I like it.
I'm going to go through this and take some time to digest it. Thanks for the info.

Haha, yea, PHP's come along way. Some outside of the community still see it as the bruised old haphazard language, haha, but there's been a huge maturing of the community. Its strong object-oriented model introduced in PHP 5+ helped a lot with that. :smile:
(In fact, this Klein library itself could use some re-factoring for better separation of concerns, but that's in the works. :wink:)
Sorry if my response was a bit overdone or complex, but I saw that you were attempting to attack a controller-separation strategy and I figured I'd help with fleshing out a potential evolution of that strategy.
Let me know if you need any more help. )

I can't figure out what $controller_factory->buildUserController() is supposed to do. I tried to get it to return a new controller, but I get Expected a callable. Got an uncallable array klein/klein/src/Klein/Route.php line 124.
If I just hardcode the $controller variable without using the factory, the routes respond as expected.

Ahhhh, I see what the problem is. See, I told you I didn't run the code before posting it. :P
But yea, the problem is that the respond() method expects a callable, but since the controller is lazily instantiated the $controller variable is still null by the time its passed into the other respond() methods. Hmm....
You could technically build the controller in the with() block without a catch-all, but that means that you're controller building process will happen on each request, regardless of whether the with group matches (the with() blocks respond methods are called immediately during, they aren't called upon matching... yea, I know, not ideal).
So, hmm, I guess you could technically create some sort of ControllerInvoker class that takes in all of your controller factories and then builds and invokes those methods, lazily.... something like this maybe?:
<?php

/**
 * ControllerFactory
 *
 * Defines an interface for how controller factories should build based on dynamic names
 */
interface ControllerFactory
{
	public function build($name);
}

/**
 * ControllerInvoker
 *
 * Invokes controllers lazily by containing instances and proxying calls
 */
class ControllerInvoker
{

	/**
	 * @type string
	 */
	const CONTROLLER_METHOD_SEPARATOR = '|';

	/**
	 * The factory class used to build
	 *
	 * @type mixed
	 */
	private $controller_factory;

    /**
     * A map of controller names (key) to their corresponding controller instances (values)
	 *
	 * @type array
     */
    private $controller_map = [];

	public function __construct(ControllerFactory $controller_factory)
	{
		$this->controller_factory = $controller_factory;
	}

    public function getController($name)
    {
		// If it hasn't been built yet
		if (empty($this->controller_map[$name])) {
			// Build and store for the next call
			$this->controller_map[$name] = $this->controller_factory->build($name);
		}

        return $this->controller_map[$name];
    }

    public function setController($name, $controller)
    {
        $this->controller_map[$name] = $controller;
    }

	/**
	 * Build our "magic" string to have be called later and proxied to our controllers
	 *
	 * @param string $controller_name
	 * @param string $method_name
	 * @return string
	 */
	public static function buildCallString($controller_name, $method_name)
	{
		return $controller_name . self::CONTROLLER_METHOD_SEPARATOR . $method_name;
	}

	/**
	 * Get a `callable` by processing a call string
	 *
	 * @param string $call_string
	 * @return callable
	 */
	private function getCallableForCallString($call_string)
	{
		list($controller_name, $method_name) = explode(CONTROLLER_METHOD_SEPARATOR, $call_string);

		return [$this->getController($controller_name),	$method_name];
	}

	/**
	 * Process the magic!
	 *
	 * @param string $call_string
	 * @param array $args
	 * @return mixed
	 */
	public function __call($call_string, $args)
	{
		return call_user_func_array(
			$this->getCallableForCallString($call_string),
			$args
		);
	}
}

// In routes file....

$router = new Klein\Klein();
$app = new My\Awesome\App();
$controller_factory = new ControllerFactory($app);
$invoker = new ControllerInvoker($controller_factory);

// Group some calls under the `/users` route namespace
$router->with('/users', function () use ($router, $invoker) {

    $group_controller_name = 'users';

    // GET /users/?
    $router->respond(
        'GET',
        '/?',
        [$invoker, $invoker->buildCallString($group_controller_name, 'get')]
    );

    // POST /users/?
    $router->respond(
        'POST',
        '/?',
        [$invoker, $invoker->buildCallString($group_controller_name, 'register')]
);
});

So this would essentially give the Route a callable to call later, which the invoker would then build the controller and proxy the call to.
.... Again, none of this is tested (sorry), and its a bit magical... but the more I look at it, the more I like it. :stuck_out_tongue_closed_eyes:
Sorry if I've only further complicated matters even more...

Hello there… I also wanted to keep my routes in the Controllers and ended up with this solution. I define the routes in an Array of each Controller and the index file should load them. This is actually working, I am just interested what you think about it. Feel free to criticize.
$controllerMap = ['user' => 'UserController'];

foreach($controllerMap as $namespace=>$controllerName) {
    $controllerName = '\\Controller\\' . $controllerName;
    $controller = new $controllerName;

    $klein->with("/$namespace", function () use ($klein, $controller) {
        foreach ($controller->routes as $route) {
            $klein->respond($route[0], $route[1], [$controller, $route[2]]);
        }
    });
}

And in UserController looks like
    public $routes = [
        ['GET', '/edit', 'edit']
    ];

Greetings

Hi @alexschwarz89,
I like the idea of putting the routes in the Controller. But, I also like how I have all of my routes in one spot. I'm not sure which is better. I guess having it in the controller makes more sense, because then I can drop in a controller file.
For my setup below, Routes.php just returns an array.
$routes = include(SOURCE_DIR . '/Routes.php');

foreach ($routes as $route) {
        $router->respond($route[0], $route[1], $route[2]);
}

$router->dispatch();

Also, how are you handling file mime types (i.e. .js,.xml,.json)  if your routes are in the controllers? I guess you could setup a controller for the mime types.


Switch USB filesystem to ext4

Thoughts on switching from FAT32 to ext4 as the file system that is exposed to the Telsa?
Tesla's officially docs say it must be FAT32 but this is not true, the car will mount and happily write to ext4 (tested on my model 3 software version 2<IP_ADDRESS>).
The big advantage of this that I can think of is a journaled file system that won't get corrupted so easily plus ext4 supports multiple mount projection. This would allow us to mount it by the pi and copy files off it live. That would mean no more multiple images, we could just construct one very large image and work off of it.

I got a little excited, we cannot mount it at the same time. But the car will handle ext4 well as far as I can tell. The journal alone might help with FS recovery and corrupted file system that FAT is plagued with.

I've had no luck with xt4, I'll give that a go today.  The infotainment
system is nothing but debisn/ubuntu so I see no reason why it wouldn't work
and xt4 is vastly superior
On Thu, 27 Jun 2019 at 05:27, Jim Karg<EMAIL_ADDRESS>wrote:

I got a little excited, we cannot mount it at the same time. But the car
will handle ext4 well as far as I can tell. The journal alone might help
with FS recovery and corrupted file system that FAT is plagued with.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/milesburton/teslacam/issues/15?email_source=notifications&email_token=AAJGHMZBK3WKWDHCKLTL3TLP4Q6TPA5CNFSM4H3XWI22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYVUIVQ#issuecomment-506152022,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJGHM2CI2EWKLDMWDQXZKDP4Q6TPANCNFSM4H3XWI2Q
.

Tesla's officially docs say it must be FAT32 but this is not true, the car will mount and happily write to
ext4  tested on my model 3 software version 2<IP_ADDRESS>).

Actually, it doesn't. It says ext3/ext4 is fine as well. See:
https://scontent-ams4-1.xx.fbcdn.net/v/t1.0-9/65303970_957692474568953_5781248575686049792_o.jpg?_nc_cat=103&_nc_ht=scontent-ams4-1.xx&oh=ca3b804e2b8f855934a61ed7bc871d48&oe=5D8C007A
So I agree with you, I believe we should go with ext4.

Tested and working with ext4. Both with Teslacam and by formating just a normal usb stick.

Do you still need to setup a partition table?
On Thu, Jun 27, 2019 at 1:51 PM Jim Karg<EMAIL_ADDRESS>wrote:

Tested and working with ext4. Both with Teslacam and by formating just a
normal usb stick.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/milesburton/teslacam/issues/15?email_source=notifications&email_token=AAJGHMZGJ56H4KVDXLBUBSDP4SZWJA5CNFSM4H3XWI22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYXALYI#issuecomment-506332641,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJGHM4HQCMMYVMUSAUPGK3P4SZWJANCNFSM4H3XWI2Q
.

Yes, type 88.
execSync(echo "type=83" | /sbin/sfdisk ${IMAGE_DIR}/cam${imageNum}, { bubbleError: true });

Do you still need to setup a partition table?

While I don't know for sure (but I can try it out sometime), I don't think that is required. When you plug in a non-partitioned (but formatted) ext3/ext4 drive in a Linux system it works fine. You can mount is using something like mount /dev/sdb /mnt
I don't see why this would be different in Tesla (which is just Linux).
Of course the only exception would be the separate cam and music disks, which would require partitioning.

Do you still need to setup a partition table?

While I don't know for sure (but I can try it out sometime), I don't think that is required. When you plug in a non-partitioned (but formatted) ext3/ext4 drive in a Linux system it works fine. You can mount is using something like mount /dev/sdb /mnt
I don't see why this would be different in Tesla (which is just Linux).
Of course the only exception would be the separate cam and music disks, which would require partitioning.

In my testing I was unable to get the Tesla to see the drive w/o setting up the table. Anything else I tried I ended up with the grey X on the camera. Maybe I was doing something wrong.

I'm addressing this issue on branch https://github.com/milesburton/teslacam/tree/add-ext4-filesystem
It's not quite as straightforward as fat32 as it requires you to modify the kernel params. I suspect @wurmr may have a clever solution to get around this in docker

ext4 appears to work in my MS on the latest update via a USB flash card. The branch above needs to be updated to include @wurmr's optimisations

On this branch @wurmr, how much work would it be to merge this into your docker setup? Any chance you would test it with your setup?

@milesburton I'd say make a PR and let's take a peek and work through it.


improve DefaultClientDialContext

wrapping the DialContext method and setting the socket options on a copy of the file descriptor is not deterministic.
as per documentation attempting to change properties of the original using this duplicate
may or may not have the desired effect.
instead we should set the options on the original file descriptor.

I performed the manual tests described https://github.com/openshift/library-go/pull/926#issuecomment-717888348 and https://github.com/openshift/library-go/pull/926#issuecomment-718694746 and haven't found any issues.
I got the same results.

/assign @sttts

/cherry-pick release-4.6

/approve

/lgtm

/lgtm


python312Packages.typed-settings: 24.1.0 -> 24.2.0

Changelog: https://gitlab.com/sscherfke/typed-settings/-/blob/24.2.0/CHANGELOG.rst
Description of changes
Fix build (https://hydra.nixos.org/build/256977130)

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

Result of nixpkgs-review pr 307771 run on x86_64-linux 1

4 packages built:

python311Packages.typed-settings
python311Packages.typed-settings.dist
python312Packages.typed-settings
python312Packages.typed-settings.dist


The letters stick together a bit on IE 11 (and EdgeHTML)

Attach (recommended) or Link to PDF file here:
ie-trouble.pdf
Configuration:

Web browser and its version: IE 11 (and EdgeHTML)
Operating system and its version: Windows 7 Pro
PDF.js version: 2-2-228
Is a browser extension: No

Steps to reproduce the problem:

Open an attached file. The smaller the scale, the more noticeable

What is the expected behavior? (add screenshot)
What went wrong? (add screenshot)

Web browser and its version: IE 11 (and EdgeHTML)

Those browsers are no longer fully supported, please note https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions#faq-support:

While the library and the default viewer should still work in IE 11/Edge (non-Chromium-based) for the time being, some functionality/features may not be available and the performance will be worse compared to modern browsers. Going forward, only bugs which completely prevent the library and/or the default viewer from running will be accepted.

PDF.js version: 2.2.228

That version is no longer supported, please find the latest releases at https://github.com/mozilla/pdf.js/releases


fix redis dependencies

The latest version if node redis has big breaking changes.
We need to support it or switch to an alternative such as ioredis.

fixed in #7


[ENH] Add Glossary of terms/abbreviations used in the specification

Just an idea which came up while fighting over the suffix in PyBIDS: https://github.com/bids-standard/pybids/issues/380
BTW -- does anyone know about a proper way to define glossary and refer to the terms in this markdown/mkdocs, like e.g. :term: in sphinx?

Thank you for sending this over. How do you see the proposed glossary overlapping with Definitions outlined in Common Principles - https://github.com/bids-standard/bids-specification/blob/master/src/02-common-principles.md#definitions ? Perhaps it's worth extending that section instead of creating a new one. Curious about your thoughts.

Great question, and shame on me that I forgot about them being listed there.  I would be happy to contribute to it instead.  What is left is file extension, <index>, <label>, suffix.  They sound a bit too "down to the earth/detail" in comparison to the other more prominent high level definitions. But I think they would be appropriate since they are used through the spec.  Just gimme the blessing Father! ;)
May be that is a part of the problem, that it is somewhat buried within the common principles instead of separate section? I have no strong opinion on this one

What if the compromise would be to have a dedicated "definitions/glossary" section early on in the spec (instead of the appendix)?

Little +1 on @chrisfilo’s idea - I think the definitions are really useful and putting them in the appendix makes them harder to find for new folks.

Mental buzz to myself to get back to it to refurbish to come earlier.  Kept running into absence of clear description for the <index> and <label> and common principle is indeed the place them to be listed.  If someone beats me to do it -- I would only appreciate

ok, pushed (rebased) updates placing <index> and <label> into Definitions and then rewording/shortening section describing loose term "labels".  I also added some formatting to make Definitions IMHO easier to parse/link to each other

@yarikoptic re dots, I don't really care, and I wasn't trying to stake a position here. I can work with either, and I think any good tool will probably have to have a special case to check for missing/spurious initial dots.

@yarikoptic re dots, I don't really care, and I wasn't trying to stake a position here. I can work with either, and I think any good tool will probably have to have a special case to check for missing/spurious initial dots.

yeah, but IMHO consistency between/within BIDS and terms used by "BIDS tools" is important, that is why I wonder myself now what should it be, even though it might sound like a superficial concern.  But I am ok to postpone its further discussion until later/separate issue, or even remove "File extension" from this PR.  Please advise.

mmh :confused: ... both with or without a dot sounds fine. Just from my intuition, perhaps we can go with a dot in our definition here? It's probably better to make a strong definition (as opposed to "do whatever you want"), because it will make it easier for downstream tools to work with it.
In the spec, we are using extensions WITH a dot in several places:

https://bids-specification.readthedocs.io/en/stable/04-modality-specific-files/03-electroencephalography.html#eeg-recording-data
https://bids-specification.readthedocs.io/en/stable/02-common-principles.html#imaging-files

I'd rather make a decision on this now, because PyBIDS already changes extensions to extension, so this is the optimal time to introduce a (possible) change to the pattern. My current plan was to switch from including the period to not including it, but maintain backward compatibility for a couple of version releases. But it would be bad to ask people to switch and then revert again later, so we should  probably decide sooner rather than later.
Alternatively, I could say nothing about it and handle both scenarios, but that seems suboptimal for the reason @yarikoptic articulated (and even if we continue to handle both cases gracefully, there should probably be an official statement one way or the other that we can appeal to if needed).

Having talked about definitions of label and index in the past weeks, I think this PR would be nice to get into the spec because it clarifies several parts.
Do you see any blockers @franklin-feingold @effigies?
Especially with regards to pybids?

woohoo -- we got an approval!  BTW since the last time we discussed extension, pybids now seems consistently not include that leading .

so current description would stand:
$> git grep extension.*nii
bids/layout/config/bids.json:        "sub-{subject}[/ses-{session}]/{datatype<anat>|anat}/sub-{subject}[_ses-{session}][_acq-{acquisition}][_ce-{ceagent}][_rec-{reconstruction}]_{suffix<T1w|T2w|T1rho|T1map|T2map|T2star|FLAIR|FLASH|PDmap|PD|PDT2|inplaneT[12]|angio>}.{extension<nii|nii.gz|json>|nii.gz}",
bids/layout/config/bids.json:        "sub-{subject}[/ses-{session}]/{datatype<anat>|anat}/sub-{subject}[_ses-{session}][_acq-{acquisition}][_ce-{ceagent}][_rec-{reconstruction}][_mod-{modality}]_{suffix<defacemask>}.{extension<nii|nii.gz|json>|nii.gz}",
bids/layout/config/bids.json:        "sub-{subject}[/ses-{session}]/{datatype<func>|func}/sub-{subject}[_ses-{session}]_task-{task}[_acq-{acquisition}][_ce-{ceagent}][_dir-{direction}][_rec-{reconstruction}][_run-{run}][_echo-{echo}]_{suffix<bold|cbv|phase|sbref>}.{extension<nii|nii.gz|json>|nii.gz}",
bids/layout/config/bids.json:        "sub-{subject}[/ses-{session}]/{datatype<dwi>|dwi}/sub-{subject}[_ses-{session}][_acq-{acquisition}]_{suffix<dwi>}.{extension<bval|bvec|json|nii.gz|nii>|nii.gz}",
bids/layout/config/bids.json:        "sub-{subject}[/ses-{session}]/{datatype<fmap>|fmap}/sub-{subject}[_ses-{session}][_acq-{acquisition}][_dir-{direction}][_run-{run}]_{fmap<phasediff|magnitude[12]|phase[12]|fieldmap>}.{extension<nii|nii.gz|json>|nii.gz}",
bids/layout/config/bids.json:        "sub-{subject}[/ses-{session}]/{datatype<fmap>|fmap}/sub-{subject}[_ses-{session}][_acq-{acquisition}][_ce-{ceagent}]_dir-{direction}[_run-{run}]_{fmap<epi>}.{extension<nii|nii.gz|json>|nii.gz}",
bids/layout/index.py:                    extension=['nii', 'nii.gz'], suffix='bold',
bids/layout/index.py:                    extension=['nii', 'nii.gz'], suffix='dwi',
bids/layout/layout.py:                         extension=['nii.gz', 'nii'])
bids/layout/layout.py:        images = self.get(extension=['nii', 'nii.gz'], scope=scope,
bids/layout/tests/test_layout.py:        (False, {'task': 'rest', 'extension': ['nii.gz']}, 3.0),
bids/layout/tests/test_layout.py:        (False, {'task': 'rest', 'extension': 'nii.gz'}, 3.0),
bids/layout/tests/test_layout.py:        (False, {'task': 'rest', 'extension': ['nii.gz', 'json'], 'return_type': 'file'}, 3.0),
bids/layout/tests/test_layout.py:    sample_file = layout.get(task='rest', extension='nii.gz',
bids/layout/tests/test_layout.py:              'extension': 'nii.gz'}
bids/layout/tests/test_layout.py:              'desc': 'bleargh', 'extension': 'nii.gz'}
bids/layout/tests/test_layout.py:              'extension': 'nii.gz'}
bids/layout/tests/test_layout.py:              'desc': 'bleargh', 'extension': 'nii.gz'}
bids/layout/tests/test_layout.py:                            acquisition='fullbrain', extension='nii.gz')[0]
bids/layout/tests/test_layout.py:                    acquisition='fron.al', extension='nii.gz',
bids/layout/tests/test_layout.py:                    acquisition='fron.al', extension='nii.gz',
bids/layout/tests/test_layout.py:                    acquisition='fullbrain', extension='nii.gz',
bids/layout/tests/test_writing.py:        assert _PATTERN_FIND.findall('{extension<nii|nii.gz|json>|nii.gz}') == [
bids/layout/tests/test_writing.py:            ('{extension<nii|nii.gz|json>|nii.gz}', 'extension', 'nii|nii.gz|json', 'nii.gz')
bids/layout/tests/test_writing.py:{extension<nii|nii.gz|json>|nii.gz}"""
bids/layout/tests/test_writing.py:            ('{extension<nii|nii.gz|json>|nii.gz}', 'extension', 'nii|nii.gz|json', 'nii.gz'),
bids/layout/tests/test_writing.py:            assert build_path({'session': 'B', 'run': 3, 'extension': '.nii'},
bids/layout/tests/test_writing.py:        assert build_path({'session': 'B', 'run': 3, 'extension': '.nii'},
bids/layout/tests/test_writing.py:            "[_acq-{acquisition}]_{suffix|dwi}.{extension<bval|bvec|json|nii.gz|nii>|nii.gz}"
bids/layout/tests/test_writing.py:        pats = ['ses-{session<A|B|C>|D}/r-{run}.{extension<json|nii|nii.gz>|nii.gz}']
bids/layout/tests/test_writing.py:                'extension': ['.nii.gz', 'json']
bids/layout/writing.py:    ...     'extension': 'nii',
bids/layout/writing.py:    ...             'inplaneT[12]|angio>}.{extension<nii|nii.gz|json>|nii.gz}',
bids/layout/writing.py:    ...             '{extension<nii|nii.gz|json>|nii.gz}']
bids/layout/writing.py:    ...     "[_acq-{acquisition}]_{suffix|dwi}.{extension<bval|bvec|json|nii.gz|nii>|nii.gz}"
bids/reports/parsing.py:            iff_file = [f for f in layout.get(extension=[".nii", ".nii.gz"]) if fn in f.path][0]
bids/reports/parsing.py:                    echos = layout.get_echoes(subject=subj, extension=[".nii", ".nii.gz"],
bids/reports/parsing.py:                                                     extension=[".nii", ".nii.gz"],
bids/reports/report.py:        >>> files = layout.get(session='01', extension=['nii.gz', 'nii'])
bids/reports/report.py:                subject=subject, extension=[".nii", ".nii.gz"],
bids/reports/tests/test_parsing.py:    niftis = testlayout.get(subject=subj, extension=[".nii", ".nii.gz"])
bids/reports/tests/test_report.py:    files = testlayout.get(extension=['nii.gz', 'nii'])
bids/variables/io.py:    images = layout.get(return_type='object', extension='nii.gz',
doc/layout/index.rst:    >>> f = layout.get(task='nback', run=1, extension='nii.gz')[0].filename
doc/layout/index.rst:    >>> f = layout.get(task='nback', run=1, extension='nii.gz')[0].filename
examples/pybids_tutorial.ipynb:    "layout.get(subject='01', extension='nii.gz', suffix='bold', return_type='filename')"
examples/pybids_tutorial.ipynb:       "{'subject': '01', 'run': 1, 'suffix': 'T2w', 'extension': 'nii.gz'}"

Let me know merge master and resolve the conflicts and push...

uff... merge conflict was a bit painful, so probably a nice look through the diff would not hurt.

and ready for another round of review/recommendations and/or merge ;)

ok, with a merge of recent master linkchecker is quiet, it is all green and just awaits another review from @effigies ;)

Now that accepted suggestion from @effigies , pr needs to be reapproved @sappelhoff

Re pybids, filed https://github.com/bids-standard/pybids/issues/618


[Request] Property to reverse Progress Radial direction

I don't know if you're accepting requests on this repo, but I think it would be pretty cool if there was a property on the ProgressRadial such as IsClockwise to reverse the fill direction of the progress bar. Instead of filling from the right-hand side, it'll fill from the left.

Of course requests, PRs, etc. are accepted. In this case, moreover, the request makes sense.

Already implemented by https://github.com/jsuarezruiz/AlohaKit/pull/4


API Calls Tracer

This PR adds a flag to CMake to enable verbose API tracing. When enabled (-DTRACE_API=true) this will add log trace for every API call, at severe performance cost.
Example Log
 06/10 16:28:44,283 INFO (api.h:199) colorizer2 = rs2_create_colorizer();
 06/10 16:28:44,390 INFO (api.h:199) rs2_start_processing(block:colorizer2, on_frame:0x101980760);
 06/10 16:28:52,175 INFO (api.h:199) rs2_delete_processing_block(block:colorizer1); /* Took 18ms */

What is being Logged?

Entry / Exit point to every API call
Call duration in milliseconds
If any errors occurred
List of input parameters
Return value

+1 for this feature!

Review comments addressed + some extra functionality added. Now the tracer allows to easily follow output parameters.
I'm aware of the fact that the code is getting somewhat complicated, but it is opt-in and can bring much higher quality-of-life in terms of debugging.
Here are more examples:

Profile details as output parameters:

profile16 = rs2_get_frame_stream_profile(frame_ref:frame17);
rs2_get_stream_profile_data(mode:profile16, stream:Color, format:RGB8, index:0, framerate:30);

Following frame lifetime:

rs2_poll_for_frame(queue:queue2, output_frame:frame19) returned 1;
// usages of frame19
rs2_release_frame(frame:frame19);


Incorrect copy/paste

Under "1.3.2 Plan certificates for IP-HTTPS", then "To use IP-HTTPS on a non-standard port, perform the following steps on the domain controller:" item 2b appears to have been incorrectly copied from item 1c
i.e. it reads : Open the IPHTTPS state setting and change the URL to https://<DirectAccess server name (for example server.contoso.com)>:44500/IPHTTPS.
but the correct setting is presumably "Define KDC proxy servers settings" and I don't know what the correct value is as the syntax help in the policy doesn't explain how to specify a different port (certainly adding ":44500" to the url doesn't seem to work, since my client is still connecting to 443)

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

ID: c25be01c-6626-3154-f905-40ee647b7d9a
Version Independent ID: 5783c0b5-e9ee-9f2f-33de-804785c82947
Content: Step 1 Plan the Advanced DirectAccess Infrastructure
Content Source: WindowsServerDocs/remote/remote-access/directaccess/single-server-advanced/da-adv-plan-s1-infrastructure.md
Product: windows-server
Technology: remote
GitHub Login: @JasonGerend
Microsoft Alias: jgerend

We hugely appreciate your contribution, feedback, and support to our technical documentation.
We’ve phased out GitHub Issues on this repository as the feedback mechanism for content and have replaced it with a new feedback system. For more information see, Content User Feedback. As part of this rollout, we are migrating your issue where our team will use your comments to improve the documentation experience. Unfortunately, this does mean you won't be able to access this issue after the migration is complete.
All issues will be migrated by Thursday 29th August 2024.
Once again, thank you for your valuable feedback, we hope you’ll continue to contribute using our new feedback system.


Roll Plugins from e83a6833c98f to 1b0f23db05b7 (1 revision)

https://github.com/flutter/plugins/compare/e83a6833c98f...1b0f23db05b7
2021-06-21<EMAIL_ADDRESS>update gcp credentials (flutter/plugins#4076)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-plugins-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Commit queue failed; closing this roll.


Error: Undefined constant "CURLOPT_CONTENT_LENGTH"

When I go to test it, I just get this error. I have no idea what it means, but thought I'd make you aware of it, just in case you wasn't aware of it.
I would ask how to fix it, but I noticed you mentioned you aren't going to offer support.
EDIT: I forgot to mention, this error appears after the Discord Oath screen, as soon as you click "Authorise".

Hi, is your PHP up to date and do you have the curl extension enabled?
I indeed cannot provide support as I dont have a WHMCS installation which I can test with.


Re render

Same as #68 for the devel branch.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Fixed a typo

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Error when launching Codux on Windows: TypeError: fetch failed

Hello and thank you for creating Codux!
I want to report an error when launching Codux on Windows.

TypeError: fetch failed
  at Object.fetch (node:internal/deps/undici/undici:11413:11)
  at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Upon deeper investigation, the error has to do with failing to remove the following directory: C:\Users\USER\AppData\Local\Temp\codux-1701979052902. The numbers at the end are different every time I tried to launch Codux, but it seems that Codux creates this directory and then tries to immediately delete it.
My environment: Windows 11 Enterprise 64bit, Node v21.4.0
At first I tried downgrading my node version, but that didn't work.
The actual workaround is to install Codux version 15.8.0, which launches normally. I determined this by doing a binary search on the installation files to see if an earlier version worked. Version 15.9.0 and above have the error.
Thank you.

Thank you for reporting this issue, we've started investigating and will report back here once we have a lead.

We believe we have identified and resolved the issue, you should be able to open Codux on any of the latest versions without any crashes happening. We'd love to hear back if everything is working as expected.

Indeed! Version 15.16.1 is working for me. Thanks for the quick turnaround!


Remove ambiguous using directive

Fixes #31.

Yikes - A not so nice leftover from the Contracts cleanup. Thanks @joshrickert! :)


Implement a Google Merchant generator

Assess which if the CSV or XML versions is more popular and start with that one.
See the examples and doc in the Readme for the api. Take inspiration from the legacy solidus_products_feed extension.

Considering the legacy solidus_products_feed extension generated a XML file, we went for said version.


Directory for ex1 scripts&data

Rather than linking directly to the notebook, the "scripts to generate the tables in the working paper" should link to a directory ex1/scripts (or similar) that contains the notebook and everything needed to run the notebook, including functions2.py and input data less the private puf.csv file. There should be a readme that describes what everything is and how to use. The readme should explain what puf.csv is and why it is missing. This is related to @Amy-Xu's comment: https://github.com/open-source-economics/UBI-examples/pull/6#issuecomment-306791157
I pointed someone to the notebook, and he just wrote back:

As i read this, the numbers for the tables are already generated in the python script. i saw them as comma delimited lists in the script. where are the numbers on the table estimated? i would assume theres some statistical function that does it

Do you think it would also make sense to point out that someone can use the test data as a replacement for the puf.csv to at least be able to run the code?

@MattHJensen couldn't hurt. With it they could at least see how everything works together. I'm about to open a PR uploading the two benefits CSV files.

@andersonfrailey could you update the two folders so that everything you need to run the notebook is in a subdirectory of ex1 instead of in ex1 itself and then add a readme that describes what everything is?

@MattHJensen sure. Do you want the notebook in the subdirectory as well?

Yep.


NIPs localization

@fiatjaf is nostr nips written only in English? Does Japanese nostr dev community have NIPs translated?
what percentage of the world developers are native English speakers? would presume less than 15%?
Might we localize the nostr nips repo to different languages: Portuguese, Chinese, Spanish etc?
Maybe that might bring a few more developers to nostr.

Japanese devs NIP repo: https://github.com/nostr-jp/nips-ja

I think the dynamic may be different in the case of Japan and some other places, but in the case of Brazil and similar countries if you are a programmer and you don't know enough English to understand the NIPs that means you're probably too bad and we don't want you in Nostr anyway. I have never seen a programmer who doesn't understand English.
Also English->Portuguese translations, especially of computer-related things, are so awful I want to die when I see them and I consider them a crime.

English->Portuguese translations, especially of computer-related things, are so awful I want to die when I see them and I consider them a crime against the Portuguese language.

This is true.
Is the same true for other languages - for instance Chinese?


APT whitelist request for gcovr

sorry the package is installable via pip and is not even in precise package list.


New tesla integration wont load

I have updated the integration files following the API change but the integration fails to load (nor can I delete it, unloaded) with the log messages
"Logger: homeassistant.loader
Source: custom_components/tesla_custom/init.py:52
Integration: Tesla Custom Integration (documentation, issues)
First occurred: 8:37:28 PM (4 occurrences)
Last logged: 8:41:05 PM
Unexpected exception importing component custom_components.tesla_custom
Unexpected exception importing platform custom_components.tesla_custom.application_credentials
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/loader.py", line 760, in get_component
cache[self.domain] = importlib.import_module(self.pkg_path)
File "/usr/local/lib/python3.10/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "/config/custom_components/tesla_custom/init.py", line 52, in
CONFIG_SCHEMA = cv.empty_config_schema(DOMAIN)
AttributeError: module 'homeassistant.helpers.config_validation' has no attribute 'empty_config_schema'"
And some more logs:
"
Logger: aiohttp.server
Source: loader.py:767
First occurred: 8:41:05 PM (1 occurrences)
Last logged: 8:41:05 PM
Error handling request
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/loader.py", line 760, in get_component
cache[self.domain] = importlib.import_module(self.pkg_path)
File "/usr/local/lib/python3.10/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "/config/custom_components/tesla_custom/init.py", line 52, in
CONFIG_SCHEMA = cv.empty_config_schema(DOMAIN)
AttributeError: module 'homeassistant.helpers.config_validation' has no attribute 'empty_config_schema'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request
resp = await request_handler(request)
File "/usr/local/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle
resp = await handler(request)
File "/usr/local/lib/python3.10/site-packages/aiohttp/web_middlewares.py", line 117, in impl
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 67, in security_filter_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 80, in ban_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 235, in auth_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 146, in handle
result = await result
File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 86, in delete
result = await hass.config_entries.async_remove(entry_id)
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 1076, in async_remove
await entry.async_remove(self.hass)
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 575, in async_remove
component = integration.get_component()
File "/usr/src/homeassistant/homeassistant/loader.py", line 767, in get_component
raise ImportError(f"Exception importing {self.pkg_path}") from err
ImportError: Exception importing custom_components.tesla_custom"
OK, I am running a somewhat elderly version of HA under docker on a raspberry Pi, which I am reluctant to mess with, but maybe I need to update more than just the Tesla integration?
I would cheerfully delete it and reinstall, but delete appears to not be an option if I can't load it. Help Please!!

OK, having waded thru the changelogs it looks like I need a newer version of HA core (23.6.0 or later) to actually run the fixed version of the tesla integration. I will grit my teeth and update


Some apps do not follow Mica's global rules

Hello.
I have a small problem when some apps do not follow Mica's global rules.
In my case it's Cinema 4D 2023.1.3.
It all works fine with the previous Mica version (v<IP_ADDRESS>-preview from November 15?), but after installing v<IP_ADDRESS>-preview3, the Cinema4D title bar remains default white.
I'm not sure about all apps, but most of them work well, except Cinema 4D (it's just what I noticed right away).
I tried different rules variations, tried to reset the config file, tried different installation options, but none of this helps.
I have to return to the previous version, which works well, as I've already said..
Any ideas why this can happen?
tia
OS: Windows 11 Pro Insider Preview 22H2 25267.1000

Maybe the app you use has custom titlebar, MFE only works on system titlebar
Maybe you are running that app as Administrator, in that case you need to run MFE as Administrator.

Yes, but it works fine with the previous MFE version (v<IP_ADDRESS>-preview, not preview3) and with exactly the same settings.
That's why I thought that you changed something in the new build.

That's why I thought that you changed something in the new build.

There's no new change in rule matching. Could you confirm it's not your app's problem?

Have you tried v<IP_ADDRESS>-preview2? Just trying to narrow down the problem.

Have you tried v<IP_ADDRESS>-preview2? Just trying to narrow down the problem.

Yes, and it behaved just like preview3, I just did not mention it..

Oh alright. So it happened somewhere between Preview 1 and Preview 2.

(wait preview 2 isn't a real tag lol)

Well actually due to the problem being so isolated, I would recommend getting a Debug build (but that requires you to also attach a debugger to the program) and doing a rule refresh.

Well actually due to the problem being so isolated, I would recommend getting a Debug build (but that requires you to also attach a debugger to the program - i.e. Visual Studio - rather heavy though) and doing a rule refresh.
Send us whatever shows up in the output that correlates to the program applying rules.

Well, sorry, I'm not so technically prepared, I am a designer but not a programmer.
And at the moment I just do not have enough time to study how to do it.
And again, I'm ok whith the previous build for now, if there is no obvious solution.
So, thanks again and sorry for the time spent.

I guess This could be related to #216.

I haven't checked it since then, but today I reinstalled it again using the latest installer (dated January 03, 2023) and now it works well for me..
The Cinema 4D now also follows the rules and its title bar is now also dark.
I don’t know what you have changed, but thanks.. 😎👍

PS Oops, looks like I was hurrying to rejoice.

Weird..
Well, have to return to the working version.

Looks like the window got excluded in one of the new checks that we added. Can you use Spy++ and determine the styles of the window?

Spy++

Oh, sorry, I can’t do it, because I just don't know how to do it.
As I wrote above, I am a designer and very far from software engineering..

Hi - I've had this problem as well - just for another app, JPEGView. No matter what settings I choose for Mica, the title bar would always be white.
I think I' ve found the answer!
For Windows 11, select Start  > Settings > Personalization > Colors
Here there's an option to "Show accent colors on tile bars and windows borders". If this ISN'T selected, then JPEGView would always have a light title bar, even though the system color setting was set to "Dark". After selecting this option, JPEGView had a dark bar.
Maybe this will also work for Cinema 4D...?
Which brings me to think: you mentioned that Mica worked fine with the v<IP_ADDRESS>-preview version from November 15. That could mean that either Win11 has changed the way the option "Show accent colors..." affects the system UI, or it could mean that that particular version of Mica overruled this option. Maybe @xmine64  could investigate whether the latest version overrules the "Show accent colors..." option, or could be made to do so...?

PS: if choosing the "Show accent colors..." option doesn't show the correct dark color in the title bar, then you could use (for example) the app Just Color Picker to select the correct title bar color from another window and enter this RGB code under manual-select in Settings > Personalization > Colors.

@matthewadamsdk
Matthew, thank you for trying to help.
But for me it now works well again, after I installed it using the installer from January 16, I believe.
I just decided to test it a bit and did not write right away.
And yes, in my case, it had nothing to do with Windows accent colors and related settings.

Great to hear 👍

FYI
Ok, I give up and return to the old version (dated November 15, 2022).
Although everything is fine now with my problem in Cinema 4D, I noticed another issue..
I have a "Gmail Notifier" app installed and for some reason its flyout notification window ceased to follow the rules in newer MFE versions.
And instead of rounded corners, I have square one.
I tried different settings options, resetting and reinstalling already, none of this helps.
However, thanks for your hard work and possible help. 😉👍


Add support to store history and favourite words.

This PR implements a commonly requested feature to add support to have a list of words searched along with favourite words. The implementation involves a separate table to track the word, is_favourite and last_accessed_at time for sorting the list with recent entries. Whenever there is a word search or a notification lookup the word is recorded. If the same word is seen again then last_accessed_at time is updated. During notification lookup star action currently instead of read for testing toggles is_favourite to be 1 so that favourites page can list them.  Since the table is stored in respective db the entries are per db and hence when user changes from English to French then the list will be empty. This is due to clicking on the entry from list so that the relevant language is used for lookup. E.g. Having test as a favourite under English and opting to French dictionary to lookup favourite English word doesn't make sense in French since there is no translation feature.
TODO :

[ ] HistoryActivity.kt and FavouriteActivity.kt have almost same code except the layout inflation value and the method in dao to fetch all history entries and to fetch favourites respectively. Perhaps this can be refactored.
[x] Android atleast in Samsung galaxy A54 used for testing seems to only allow 3 actions from notifications. There is already copy, share and read. Perhaps one of them need to be removed.
[x] Clicking on the history/favourite word in listview should redirect to mainview to search the word.
[x] Support to delete entry from history page. DAO already has method, Need UI
[x] Support to unfavourite a word from favourites page. DAO already has method. Need UI.
[x] Test migrations and upgrade db in CDN for fresh installs to have history table.
[ ] Test android room 2.5.0 is compatible with fdroid.

fdroid compatibility needs build in CI but I don't anticipate any issues since room has been used previously and this is an upgrade of the version.


Replaced append function

Summary of changes:

What

Replaced libs/utils/append with anonymous functions and array literals.

Why

libs/Notifications used append, and I would like to shift that into a package
Lodash/fp is no longer supported, so it did not seem like a good idea to bring append into core-utils

Testing strategy

[ ]

Replaced by #4647, which moves append to the core-utils package.


Write tests for file upload feature

in #139 the connectivity to minio and tests for download function are covered,
test for uploading file feature are still pending
Goal

[ ] write test for uploading feature

can this be assigned to me?


Why is OLMo not integrated into Transformers?

❓ The question
I was surprised when I looked at https://github.com/huggingface/transformers/tree/main/src/transformers/models and didn't see any modules for OLMo. Why is  OLMo not integrated with transformers directly and is there a plan for integration?

https://github.com/allenai/OLMo/issues/439#issuecomment-1965547126

OLMo is now properly integrated with Transformers!


fix(quantic): fix flaky tests

https://coveord.atlassian.net/browse/SVCC-453
https://coveord.atlassian.net/browse/SVCC-454

It looks good to me. The build is actually failing on one of the quickview tests. Do you plan to fix it as part of this PR?

yes


makemkv: add jre_headless PATH through the wrapper

Motivation for this change
MakeMKV requires a Java runtime environment to extract some Blu-ray
disks:
http://www.makemkv.com/bdjava/
This change provides jre_headless by default.
This PR also adds a commit to clean up the formatting of the
derivation a little and to replace the pkgconfig alias by
pkg-config.
Things done

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

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

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

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/366

Does this work for makemkvcon?

Does this work for makemkvcon?

Yes:
❯ grep "headless" result/bin/makemkvcon
export PATH='/nix/store/sdwcd89l0l1pvibypfxv5vvj8v6p6lc9-openjdk-headless-14.0.2-ga/bin'${PATH:+':'}$PATH

But this is a side-effect of makemkvcon being Qt-wrapped, which it probably shouldn't.

Thanks for reviewing!


Update scribe, scribe-file to 3.7.1

Updates

com.outr:scribe
com.outr:scribe-file

from 3.5.5 to 3.7.1.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.outr" } ]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #435.


[SPARK-39286][DOC] Update documentation for the decode function

What changes were proposed in this pull request?
The documentation for the decode function introduced in SPARK-33527 refers erroneously to Oracle. It appears that the documentation string has been in large parts copied from https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/DECODE.html#GUID-39341D91-3442-4730-BD34-D3CF5D4701CE
This proposes to update the documentation of the decode function to fix the issue.
Why are the changes needed?
Documentation fix.
Does this PR introduce any user-facing change?
No
How was this patch tested?
NA

Can one of the admins verify this patch?

@beliefer @cloud-fan Please, take a look at this PR.

thanks, merging to master/3.3!


Add Databroker Participant type

Signed-off-by: jparisu<EMAIL_ADDRESS>

@laura-eprosima please check this PR.
I would like to know your opinion about this databroker design and the alias design (related with: https://github.com/eProsima/Integration-Service/pull/158).
Still Documentation missing.


Game runs at different speeds on different computers

Since movement is currently tied to the frame rate, the characters will move much more quickly on some machines than on others. The most likely solution will be to tie movement to time intervals. Alternatively, I could set a fixed frame rate.

Addressed the issue by capping the frame rate at around 111 FPS.


Latex

Is latex not working in Codabench or is there a problem from my side

Indeed LaTeX is not rendered in Markdown pages.
I close this issue because it is a duplicate of this one:

#852


crypto/ed25519,x/crypto/ed25519: add ValidPrivateKey() method

I mistakenly used 32 bytes of random as a ed25519.PrivateKey and was extremely confused why signatures were not validating, was frantically triple checking the data I was attempting to sign/verify was the same on both ends, etc. I am an experienced user and if I can get tripped up by this, less experienced users could as well.
Adding a method for users to check whether a private key is valid could help alleviate this by suggesting a different source of error, and also helping users ensure that they are using valid keys to sign data. Roughly it could do:
// ValidPrivateKey reports whether in is a valid ed25519 private key.
func ValidPrivateKey(in []byte) bool {
        origKey := copy(in)
	in[0] &= 248
	in[31] &= 127
	in[31] |= 64
        return bytes.Equal(origKey, in)
}

You could also do func (p *PrivateKey) Valid() bool though I worry about letting people create a PrivateKey object and then determine whether that is valid or not, because they might try to use it later to sign stuff.

/cc @FiloSottile

That's not what ValidPrivateKey would look like: PrivateKey is 32 bytes of random seed (which is not clamped) followed by the public key. Instead, you'd want to check that NewKeyFromSeed(pk.Seed()) == pk.
Sign checks the PrivateKey length, so are you sure you were using 32 bytes of random?

Ah. I diagnosed the problem incorrectly. I assumed priv.Public() generated a public key from the private key using the same ScalarMult() functions that Keypair() does. However, it just returns priv[32:], the last 32 bytes.
The last 32 bytes of the private key I was using - the public key - was also read from crypto/rand so the public key returned by priv.Public() had no relationship to the private key.
I suppose if the private key is 64 bytes and the last 32 bytes are the public key, a function could also validate that relationship.

I don't think we want to encourage manually creating private keys by adding a validation function. Keys should only be generated by GenerateKey or NewKeyFromSeed.
I kind of regret not making GenerateKey return only (PrivateKey, error), so that it would get associated in the godoc, but too late.


hands tracking

Hi,
I have a dataset of sequences of images (contain right/left hands) and i want to use mediapipe to extract hand regions from these images (both right and left hand or simply the right hand) and then save the hand regions in a destination folder.
I used the hand_tracker script to extract the hands. however, i've noticed that the model sometimes fails to track the same hand. You mentioned here https://github.com/wolterlw/hand_tracking/issues/4#issuecomment-568489055 that hand_tracker2.py supports multiple hands tracking. How can i use that script to keep track of the correct hand (right hand) for a given sequence of frames?
@wolterlw @AmitMY
i appreciate any feedback, thank you.

Yes, I'm building the tracking pipeline specifically for keeping track of hand ordering. I'll upload it after the holidays.

check out the multihand branch

I am using the multihand tracker in which i am passing the current image of the sequence with hand detections of the previous frame:
for image in image_sequence:
hands = HandTracker(image, prev_hands)
but it is failing to accurately track the hand (See pictures)


use size_t instead of unsigned long for needed_frames

ebur128_add_frames_##type uses size_t for frames, while ebur128_state_internal uses unsigned long for needed_frames. On Windows x64, unsigned long is a 32 bit unsigned integer, while size_t is a 64 bit unsigned integer, causing several warnings. The patch changes the definition of ebur128_state_internal instead of changing ebur128_add_frames_##type, as the latter is part of the public API.

Thank you!
I've fixed the warning by casting frames to unsigned long in commit b6002c3. The cast is safe, because frames < st->d->needed_frames in the else. Just making the variable size_t would have been fine, too, but I prefer using size_t variables as array indices or lengths. Although size_t usage in ebur128.c is a bit inconsistent I admit...


Build requires Java 11 which is reported by a nested subproject

Expected Behavior

Ideally the build can run on any JDK. If not, it should fail fast, not after taking many steps.
Current Behavior

The build requires Java 9-11, but only fails when finally running this project :build-logic:uber-plugins:generatePrecompiledScriptPluginAccessors. If the build has a JDK requirement, it should be checked in the top-level build.gradle to provide fast feedback.
* What went wrong:
An exception occurred applying plugin request [id: 'gradlebuild.api-parameter-names-index']
> Failed to apply plugin 'gradlebuild.api-parameter-names-index'.
   > Could not create task ':build-logic:uber-plugins:generatePrecompiledScriptPluginAccessors:accessors12889617585402508915:compileGroovy'.
      > Must use JDK >= 9 and <= 11 to perform compilation in this build. It's currently OpenJDK 15 at /Users/aanuraag/Library/Java/JavaVirtualMachines/openjdk-15.0.2/Contents/Home.

Alternative to a top-level build error, using the toolchains feature could possibly allow the caller JVM to be 15 and still compile with Java 11.
Context

First time building failed with the above error. It's unfortunate that this means the previous build gets completely invalidated by the java version change, leading to extra time spent / barrier to contribution. I think it's relatively easy to add a java version check to the top-level build to reduce the extra time spent.

We're currently migrating the gradle/gradle build to toolchains so the JDK for running Gradle will not be as problematic as before.

And thanks for the feedback, it's always good to hear what kind of struggles our contributors run into so we can improve the contribution workflow :)


feat: try more ways until failing & store provider info

Also see https://github.com/ipfs-shipyard/ipfs-webui/issues/785

@olizilla yeah, I just didn't add tests before to make sure I wasn't spending time with functionalities I'll not add here (link the link thingy).

@olizilla this is a breaking change, as it removes selectIpfsApiAddress and replaces it by selectIpfsApiOpts. Or do you think it's better to keep selectIpfsApiAdress by parsing ApiOpts and returning a string?

@olizilla apparently Travis liked the tests 😄

How about making this not a breaking change by pulling the logic you have in https://github.com/ipfs-shipyard/ipfs-webui/pull/792/files#diff-1d5a0de57bad3136d70286a7887c1a8bR20 to map between the object form and the multi addr form into this bundle.
We can store the info as an object and offer a selector that formats the object as a multiaddr, and a action creator that lets the user update the api opts object by specifying a multiaddr.

@olizilla done 😄

I'll merge this PR, and raise an issue for the multiaddr handling.

Awesome! And could you release a new version too?


Fix the Jenkins cron expression check error

What type of PR is this?

/kind bug
What this PR does / why we need it:
The cron expression check failed due to Jenkins made some changes.
Which issue(s) this PR fixes:

Fixes #661
Special notes for reviewers:

Please check the following list before waiting reviewers:

[ ] Already committed the CRD files to the Helm Chart if you created some new CRDs
[ ] Already added the permission for the new API
[ ] Already added the RBAC markers for the new controllers

Does this PR introduce a user-facing change??

None

Please feel free to test it with the following image:
kubespheredev/devops-apiserver:dev-v3.3.0-32895f3

/cherrypick release-3.3


UI/UX Flow for Enabling/Disabling Bluetooth/GPS Feature

ITS-Pro time category: https://its-pro.ucsd.edu/projects/MA/issues/MA-42?filter=allissues
This is done when:

[ ] The user flow for enabling/disabling Bluetooth/GPS within the app is mocked
[ ] The supporting content presented and reviewed by the user is drafted

Alert window copy below:
“UCSD Mobile” Would Like to Use Bluetooth
This will allow “UCSD Mobile” to find and connect to Bluetooth devices. This app may also use Bluetooth to know when you’re nearby.”
Don’t Allow - Allow When App is in Use - Always Allow
“UCSD Mobile” Would Like to Use GPS
This will allow “UCSD Mobile” to identify your location via GPS.
Don’t Allow - Allow When App is in Use - Always Allow

alert style/language can be found here: https://xd.adobe.com/view/013e92df-116c-4452-801c-6de5808f78e6-546d/
Thinking these alerts would appear after the user has entered credentials on splash screen. If user chooses to skip, alerts would appear on subsequent load. Thoughts?


ARROW-8082: [Plasma] Add JNI list() interface

Currently Plasma list() method is not implemented in Java code. Implement PlasmaClientJNI.list() interface and add some UT.

Hi @wesm, can you help review this PR? Thanks.

I don't know much about JNI. Does anyone else?

LGTM (non-binding)

+1


Can't upload directory from Azure CLI (latest)

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az storage blob directory upload Extension Name: storage-preview. Version: 0.2.10.
Errors:
[Errno 2] No such file or directory: '/Users/alex/.azure/cliextensions/storage-preview/azext_storage_preview/azcopy/azcopy_darwin_amd64_10.3.1/azcopy copy ./ https://blimgtdata.blob.core.windows.net/maps/maps/map2/?se=2020-07-03T20%3A47%3A26Z&sp=rwdlacup&sv=2018-03-28&ss=b&srt=sco&sig=BjVrnU5XqtSmxrWMvMAWeueGtqdEtgrqyNxOa%2BBDy54%3D --recursive'
Traceback (most recent call last):
python3.8/site-packages/knack/cli.py, ln 215, in invoke
    cmd_result = self.invocation.execute(args)
...

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az storage blob directory upload --account-name {} -c {} -d {} --recursive -s {}

Expected Behavior
Environment Summary
macOS-10.15.5-x86_64-i386-64bit
Python 3.8.3
Installer: HOMEBREW

azure-cli 2.8.0

Extensions:
storage-preview 0.2.10

Additional Context

ran the same command in cmdline and it seems to work

add to S173

I believe I ran into the same issue when running on Linux. I have submitted a PR https://github.com/Azure/azure-cli-extensions/pull/2005
(technical explanation of the root cause is in my PR comment)

fix in new release. please upgrade the extension version with az extension update -n storage-preview

I ran in to the same issue, and did the update of the extension and now running in to Permission Denied
[Errno 13] Permission denied

{   "extensionType": "whl",   "metadata": {     "author": "Microsoft Corporation",     "author_email"<EMAIL_ADDRESS>    "azext.isPreview": true,     "azext.minCliCoreVersion": "2.0.67",     "classifiers": [       "Development Status :: 4 - Beta",       "Intended Audience :: Developers",       "Intended Audience :: System Administrators",       "Programming Language :: Python",       "Programming Language :: Python :: 2",       "Programming Language :: Python :: 2.7",       "Programming Language :: Python :: 3",       "Programming Language :: Python :: 3.4",       "Programming Language :: Python :: 3.5",       "Programming Language :: Python :: 3.6",       "License :: OSI Approved :: MIT License"     ],     "description": "An Azure CLI Extension for storage preview features. This will replace the full storage module.\n\n\n",     "filename": "/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/storage_preview-0.2.11.dist-info",     "home_page": "https://github.com/Azure/azure-cli-extensions/tree/master/src/storage-preview",     "license": "MIT",     "metadata_version": "2.0",     "name": "storage-preview",     "platforms": [       "UNKNOWN"     ],     "summary": "Provides a preview for upcoming storage features.",     "version": "0.2.11"   },   "name": "storage-preview",   "path": "/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview",   "version": "0.2.11" }

@ggg333 Yes I also saw this one as well. It looks like the Darwin binary was originally checked in without the execute flag set.
It is incidentally fixed in another PR https://github.com/Azure/azure-cli-extensions/pull/2020/files
Would you mind opening a separate issue?

@ggg333 Could you try it again? The other PR I mentioned above has been merged this morning.

@jmostella Still running in to the same issue
`The command failed with an unexpected error. Here is the traceback:
[Errno 13] Permission denied: '/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/azcopy/azcopy_darwin_amd64_10.3.1/azcopy'
Traceback (most recent call last):
File "/usr/local/Cellar/azure-cli/2.6.0/libexec/lib/python3.8/site-packages/knack/cli.py", line 215, in invoke
cmd_result = self.invocation.execute(args)
File "/usr/local/Cellar/azure-cli/2.6.0/libexec/lib/python3.8/site-packages/azure/cli/core/commands/init.py", line 654, in execute
raise ex
File "/usr/local/Cellar/azure-cli/2.6.0/libexec/lib/python3.8/site-packages/azure/cli/core/commands/init.py", line 718, in _run_jobs_serially
results.append(self._run_job(expanded_arg, cmd_copy))
File "/usr/local/Cellar/azure-cli/2.6.0/libexec/lib/python3.8/site-packages/azure/cli/core/commands/init.py", line 709, in _run_job
cmd_copy.exception_handler(ex)
File "/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/init.py", line 244, in new_handler
handler(ex)
File "/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/init.py", line 186, in handler
raise ex
File "/usr/local/Cellar/azure-cli/2.6.0/libexec/lib/python3.8/site-packages/azure/cli/core/commands/init.py", line 688, in _run_job
result = cmd_copy(params)
File "/usr/local/Cellar/azure-cli/2.6.0/libexec/lib/python3.8/site-packages/azure/cli/core/commands/init.py", line 325, in call
return self.handler(*args, **kwargs)
File "/usr/local/Cellar/azure-cli/2.6.0/libexec/lib/python3.8/site-packages/azure/cli/core/init.py", line 545, in default_command_handler
return op(**command_args)
File "/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/operations/azcopy.py", line 20, in storage_blob_upload
storage_blob_copy(azcopy, source, _add_url_sas(destination, azcopy.creds.sas_token), recursive=recursive)
File "/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/operations/azcopy.py", line 15, in storage_blob_copy
azcopy.copy(source, destination, flags=flags)
File "/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/azcopy/util.py", line 47, in copy
self.run_command(['copy', source, destination] + flags)
File "/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/azcopy/util.py", line 43, in run_command
subprocess.call(command, env=dict(os.environ, **env_kwargs))
File<EMAIL_ADDRESS>line 340, in call
with Popen(*popenargs, **kwargs) as p:
File<EMAIL_ADDRESS>line 854, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File<EMAIL_ADDRESS>line 1702, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
PermissionError: [Errno 13] Permission denied: '/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/azcopy/azcopy_darwin_amd64_10.3.1/azcopy'`

@jmostella Still running in to the same issue
`The command failed with an unexpected error. Here is the traceback:
[Errno 13] Permission denied: '/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/azcopy/azcopy_darwin_amd64_10.3.1/azcopy'
Traceback (most recent call last):
File "/usr/local/Cellar/azure-cli/2.6.0/libexec/lib/python3.8/site-packages/knack/cli.py", line 215, in invoke
cmd_result = self.invocation.execute(args)
File "/usr/local/Cellar/azure-cli/2.6.0/libexec/lib/python3.8/site-packages/azure/cli/core/commands/init.py", line 654, in execute
raise ex
File "/usr/local/Cellar/azure-cli/2.6.0/libexec/lib/python3.8/site-packages/azure/cli/core/commands/init.py", line 718, in _run_jobs_serially
results.append(self._run_job(expanded_arg, cmd_copy))
File "/usr/local/Cellar/azure-cli/2.6.0/libexec/lib/python3.8/site-packages/azure/cli/core/commands/init.py", line 709, in _run_job
cmd_copy.exception_handler(ex)
File "/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/init.py", line 244, in new_handler
handler(ex)
File "/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/init.py", line 186, in handler
raise ex
File "/usr/local/Cellar/azure-cli/2.6.0/libexec/lib/python3.8/site-packages/azure/cli/core/commands/init.py", line 688, in _run_job
result = cmd_copy(params)
File "/usr/local/Cellar/azure-cli/2.6.0/libexec/lib/python3.8/site-packages/azure/cli/core/commands/init.py", line 325, in call
return self.handler(*args, **kwargs)
File "/usr/local/Cellar/azure-cli/2.6.0/libexec/lib/python3.8/site-packages/azure/cli/core/init.py", line 545, in default_command_handler
return op(**command_args)
File "/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/operations/azcopy.py", line 20, in storage_blob_upload
storage_blob_copy(azcopy, source, _add_url_sas(destination, azcopy.creds.sas_token), recursive=recursive)
File "/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/operations/azcopy.py", line 15, in storage_blob_copy
azcopy.copy(source, destination, flags=flags)
File "/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/azcopy/util.py", line 47, in copy
self.run_command(['copy', source, destination] + flags)
File "/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/azcopy/util.py", line 43, in run_command
subprocess.call(command, env=dict(os.environ, **env_kwargs))
File<EMAIL_ADDRESS>line 340, in call
with Popen(*popenargs, **kwargs) as p:
File<EMAIL_ADDRESS>line 854, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File<EMAIL_ADDRESS>line 1702, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
PermissionError: [Errno 13] Permission denied: '/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/azcopy/azcopy_darwin_amd64_10.3.1/azcopy'`

@ggg333 So the last line shows its still pointing to azcopy v10.3.1, the last update should be pointing to v10.5.0
Theres a few things you can try, given that you have already run az extension update -n storage-preview again (after the last merge)

check that /Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/azcopy/azcopy_darwin_amd64_10.5.0/ exists if it doesn't then there's likely a problem with the update command.
remove your /Users/ganesh.palanisamy/.azure/cliextensions/storage-preview directory altogether and reinstall the extension.

Let me know how it works out.

@jmostella i removed the folder like you shared and then did "az extension add -n storage-preview" and tried "az extension update -n storage-preview". When listed the folder /Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/ i see only the following and not the 10.5.0
2154IADGANP:solutioninsight ganesh.palanisamy$ cd /Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/azcopy/
02154IADGANP:azcopy ganesh.palanisamy$ ls
init.py			pycache			azcopy_darwin_amd64_10.3.1	azcopy_linux_amd64_10.3.1	azcopy_windows_amd64_10.3.1	util.py

@jmostella : the way i fixed it is by downloading the azcopy_darwin_amd64_10.5.1 and extract it under "/Users/ganesh.palanisamy/.azure/cliextensions/storage-preview/azext_storage_preview/azcopy/" and deleted the azcopy_darwin_amd64_10.3.1 and created a symlink to azcopy_darwin_amd64_10.5.1 as azcopy_darwin_amd64_10.3.1. Now it works. But this isn't the right way to fix though. Not sure why update isn't pulling the right version

@ggg333 Yeah definitely not the way we want to solve it. I tested on my Mac and see the same thing happening. Definitely looks like an issue with az extension add\update.
Will open an issue about this later, and add you.

Tested out today on OSX, and verified the latest version is available and working
{
  "azure-cli": "2.8.0",
  "azure-cli-command-modules-nspkg": "2.0.3",
  "azure-cli-core": "2.8.0",
  "azure-cli-nspkg": "3.0.4",
  "azure-cli-telemetry": "1.0.4",
  "extensions": {
    "storage-preview": "0.2.12"
  }
}

Azcopy command: ['/Users/*******/.azure/cliextensions/storage-preview/azext_storage_preview/azcopy/azcopy_darwin_amd64_10.5.0/azcopy', 'copy', '/Users/*******/Downloads/dist/*******/**', 'https://*******.blob.core.windows.net/$web/?se=2020-08-02T13%3A58%3A31Z&sp=rwdlacup&sv=2018-03-28&ss=b&srt=sco&sig=*******', '--recursive']
INFO: Scanning...
INFO: Any empty folders will not be processed, because source and/or destination doesn't have full folder support

Job 5bb3621b-42ea-7d4b-4d2f-1a41a10d0840 has started
Log file is located at: /Users/*******/.azcopy/5bb3621b-42ea-7d4b-4d2f-1a41a10d0840.log

INFO: azcopy: A newer version 10.5.1 is available to download

0.0 %, 0 Done, 0 Failed, 16 Pending, 0 Skipped, 16 Total,

Job 5bb3621b-42ea-7d4b-4d2f-1a41a10d0840 summary
Elapsed Time (Minutes): 0.0334
Number of File Transfers: 16
Number of Folder Property Transfers: 0
Total Number of Transfers: 16
Number of Transfers Completed: 16
Number of Transfers Failed: 0
Number of Transfers Skipped: 0
TotalBytesTransferred: 820923
Final Job Status: Completed

Apologies for the confusion. Looks like the site doesn't get updated with the latest versions automatically. But the latest versions are visible via the cli

@jmostella : Appreciate all your help. Looks like its working as it should. I removed and re-added the extension.
az extension show -n storage-preview -o table
ExtensionType    Name             Path                                                           Version

whl              storage-preview  /Users/ganesh.palanisamy/.azure/cliextensions/storage-preview  0.2.12
Thanks,
Ganesh.


Wrong order of params passed sometimes

There seems to be a transient issue - sometimes the parameters are not passed correctly to the user function - be it the order, or even the values.
params: [<*azfunc.Context Value> <*azfunc.BlobInput Value> <*azfunc.HTTPRequest Value>]

This seems to be an issue related to append.

Fixed in https://github.com/radu-matei/azure-functions-golang-worker/commit/785e6aaf9d0d051fecca6dc0c64d868b6a660186

Replaced NamedInArgs from  map[string]reflect.Value to []*Arg, fixed.


Fix: Cannot edit overrides of linked datablock

Remove operations_update function that I don't really know what it was needed for and even if it is useful here. It was added by Kevin, and I don't notice any wrong behaviour by removing it. Please make sure it works well before validating! @BlueLag you're much aware about how a scene is supposed to behave.
Testing notes:

Cherry-pick the commit on the last branch release
Build E134_sh046 animation

I'd like to get a better understanding of the cause of the issue. I checked blender documentation about this method, it's not very clear about what really happens when you do this, but it sounds like something that might be necessary for overrides to work. What if the issue is that some datablocks are linked but not overridable, but the operations_update attribute still exists? It shouldn't really be there... But what if it's the case? Have you tried checking if the datablock is overridable on top of the preexisting check?

I've tried to make it work, and even tried to understand by reading what it does in Blender's source code... Cannot figure at all. I'm not even sure it is still relevant, neither if it has ever been, the written code isn't explicit about it. I've asked more information in the Blender chat.
Because as long as we don't figure what it does, it shouldn't be in the code any way.

I've tried to make it work, and even tried to understand by reading what it does in Blender's source code... Cannot figure at all. I'm not even sure it is still relevant, neither if it has ever been, the written code isn't explicit about it. I've asked more information in the Blender chat. Because as long as we don't figure what it does, it shouldn't be in the code any way.

That's a fair point. Worst case scenario if it does have a use, and we don't find it during testing, we should (hopefully) notice it in staging.

As expected, not relevant for loading datablocks


Issue on the Google Chrome we can able to spin the wheel

I have just copied the code in app.js file what you have provided us we can able to the spin wheel is getting spined as per the code when we try on other browser as Firefox its working
please provide us the changes to be done the google chrome to be work as per it was working previously without any issues.

are you using vite? i notice that in chrome mobile it doesn't work.


slf4j-api update

updated slf4j-api version from  1.7.36 to 2.0.7
updated <jvm.version> to 1.8
modified all lines like:
private static Logger   logger = LoggerFactory.getLogger(Xxx.class.getName);
into:
private static Logger   logger = LoggerFactory.getLogger(Xxx.class);
removed String concatenations in log messages

many thanks to you; this library is by far the best mDNS implementation I was able to find

Closed and reopened as new request to simplify merge


Upgrade to SilverStripe 4 (or don't?)

Before spending a lot of time on upgrading this module to SS4, we should resolve the discussion around moving doc.silverstripe.org to a third party documentation service: https://github.com/silverstripe/doc.silverstripe.org/issues/157
While I acknowledge that docsviewer is used in other contexts, it significantly lowers our need to upgrade it if we're not using it on doc.ss.org. I see docsviewer (and the related maintenance around doc.ss.org) as a moderate distraction for SS Ltd, which could be better spent elsewhere. Our Markdown isn't that special :D

cc @SpiritLevel

@robbieaverill: Is the docsviewer module important for people developing on the CWP ?

@SpiritLevel no I don't believe so, but the CWP website does use it

Well...does the fact that the CWP website uses docsviewer indicate CWP developers expect the docsviewer module to be available? If so, then, assuming the CWP is important to SS Ltd,  it appears docsviewer must become supported by SS Ltd. and hence upgraded to SS4. I'm happy for my assumptions & reasoning to be shown as faulty :)

CWP devs (and other users) would expect there to be docs available on the website, I don't believe that anyone would mind if we replaced the underlying libraries while still delivering the content in the same places in the website information architecture

@robbieaverill Your comment above taken together with that made by @chillu here seems to suggest the idea of replacing docsviewer with something else that uses reStructuredText is being floated...

@SpiritLevel yeah the discussion in https://github.com/silverstripe/doc.silverstripe.org/issues/157 around using RTD instead is the most obvious alternative at this stage

cc @be2n @nwilliams16

Where did we get on this issue? The module has been removed from the 2.0 upgrade programme.
Has a third party service @chillu suggested been identified?

There's some discussion around using readthedocs.org here: https://github.com/silverstripe/doc.silverstripe.org/issues/157
At the time of writing it didn't support themes for markdown repositories though, so we might either need to convert to a different format of documentation (big job) or live with a lack of theming.

Do we have a time horizon in regards to when a decision needs to be made?

It's not pressing. We won't be able to put docs.silverstripe.org, cwp.govt.nz or userhelp.silverstripe.org onto SilverStripe 4 without upgrading this module first though.

If there's still interest in doing this, I'm actually attempting to upgrade it as we use it as the foundation/base for our module webbuilders-group/silverstripe-cmsuserdocs.

One issue I'm running into is the search, it's using Zend_Search_Lucene which doesn't seem to have a supported version in Zend Framework anymore, it hasn't been updated in 4 years. I have a feeling even if we pack in the 1.12 version that is currently included and add the missing components it won't work on PHP 7+ anyways.

FYI — docs.silverstripe.org is now running a Gatsby-based solution. The CWP docs are still running with this module and SS3.

I think the general consensus from the current module maintainers is that we're not planning a 4.x upgrade, so this issue is noise - I'll close it. If anyone wants to take on the maintenance of a 4.x compatible version and coordinate an upgrade, they can reopen it :)


Unable to change shop name

The user had set a store name (tshirtop.com) right at the beginning upon logging in to Dshop for the first time.

Then he wanted to change it to ofermizrachi.com, so he went to settings > appearance and updated the Store Name field.

He then clicked update and it said it was saved.
Upon going to the storefront, the shop name wasn't changed across all places (see image below).

The user then tried to add a second shop after and name it tshirtop.com (his original choice) but it said the name was already taken.
If a user changes his shop name, the old name should be "available" once again for a new store to use.

Will be fixed in next deploy


Removing Vult Modules from the distribution

Hi,
sorry if this sounds bad but as author of the Vult modules I would like you to remove them from the distribution. Here are the reasons behind my request:

The published source code is quite old and does not sound as good as my newer releases. That can be detrimental for me because people using these version may think that that’s how my actual modules sound.

Vult is my trademark, and in the license I specify that it’s not possible to release any other software than the one I support with that name. Same reasoning as before, I cannot provide support for users of these versions.

I hope you understand my reasons and comply to my terms.

I guess some users won't be too happy about this but I've seen that you've removed all your source codes from GitHub a while ago (I found a copy of your sources in a forked repo on GitHub in case you're wondering).
Your modules also required some non-open source graphics assets so I've now removed all your source and graphics files from this repo and the new binary plugin release does not contain any VultModules binaries anymore.

Thank you!
have you devised any way of using the binaries of any other closed source modules? Is it technically possible?

Unfortunately that is currently impossible w/o some (relatively minor) changes the plugin interface and a recompilation of the closed source add-ons.
The problem is that Rack exposes several global variables to the plugins.
In order to create a multithreadable and multi-instantiable plugin, I had to replace these global variables and all the references to them by thread local storage pointers to structs (see global_pre.hpp, global.hpp and global_ui.hpp).
At least on Windows, these TLS pointers cannot be exported to dynamically loaded modules.
While only few of the add-on modules reference these global vars directly, they all link with the Rack library, which contains many references to them.
In case of the plugin version of Rack, there are basically two threads:

the UI thread (created when a plugin is instantiated, see vst2_main.cpp (startUIThread()))
the audio rendering thread (created by the DAW)

Both threads need to see the correct TLS pointers for each plugin instance (each instance has its own TLS dataset that is allocated when the VST effect is created, see vst2_main.cpp and look for setGlobals()).
In order to support dynamically loaded plugins, the Rack interface would need to be changed so that a pointer to the TLS/instance dataset is passed to a plugin when it is being initialized.
The plugin would then (immediately) set its TLS pointers (before calling "add model"), similar to how setGlobals() works.
When audio needs to be rendered, the TLS pointers need to be set again (for the audio thread).
In order to avoid having to do this each sample frame, the plugin could pass a callback function to the Rack engine which would be called before a new chunk of samples is rendered.
The good news is that when I waded through the hundreds of (open source) add-ons, I already modified them in a way that would allow this feature to be added without going through all the modules all over again.
Take a look at the Template project for example.
As you can see, the updated version now uses macros (RACK_PLUGIN_*, defined in plugin.hpp), i.e. it is now possible to change the macro implementation and hereby update all modules (by simply recompiling them).
The RACK_PLUGIN_INIT and RACK_PLUGIN_INIT_ID macros would need to be extended in a way that passes the TLS dataset pointer to the plugin, which then updates its TLS pointer (for the module init / UI thread).
RACK_PLUGIN_INIT would also need to define a function that updates the DLL's TLS pointer for the audio thread. RACK_PLUGIN_INIT_ID would then pass a pointer to this function back to the Rack engine (e.g. by storing it in the Plugin* that already gets passed to the init function). The engine would then call the function at the beginning of VSTPluginProcessReplacingFloat32().
I am thinking out loud here but I think it could work (from a technical point of view).

It worked. The new release now supports dynamically loaded plugins.
If you want to, you can now build and distribute your modules as "VeeSeeVST" plugins however you see fit (closed source and / or for money).

I'll give it a try in a few weeks because I don't have access to my windows computer.

If you want to save yourself some time, you can use the precompiled plugin SDK for Visual Studio 2017 (i.e. you don't need to check out the repository, and you can use the IDE for developing your plugin(s)).


Store array

Demonstration for #1088
Looking for comments on this approach rather than approval at this stage

Left the inline comments

@thadguidry thanks for testing. I think my expectation is that using smartSplit on:
record|||Alfredo Santamaria 2013
should return:
[ "record", "", "", "Alfredo Santamaria 2013" ]
The three pipes between 'record' and 'Alfredo' translate to two fields - so e.g.
record| 1 | 2 |Alfredo Santamaria 2013 -> [ "record", "1", "2", "Alfredo Santamaria 2013" ]
Is your expectation different?

@ostephens Its a smartSplit() issue.  Looks like David Huynh never went in and added the multichar support (I checked the code and history in link below) and so it only is looking at a single char for the sep String instead of any number of characters for sep.  This was added as an enhancement for split() and also on the menu for "Split into several columns..." and the reason I know this is because I asked @dfhuynh to change that functionality back in 2010, which he did.  BUT...doesn't look like we did that for smartSplit() .... so yeah... smartSplit() only takes the 1st character in the sep argument supplied and ignores any other characters in the argument.
Notice here it splits on everything with "r" ... but not my supplied "rd"
I'd say that's a enhancement from 2010 that I asked for that never happened in smartSplit()  😀 and not a classic bug 😄

So your Store Array functionality is fine.  And works great from my testing on all sides, so far.
Issue is our inaccurate documentation and description of smartSplit() saying it works with a sep String, when it fact it only works with a sep Char ... and make it work like the other splits and allow sep to be a String and not just charAt(0) , and keeping its "smarts" with special handling of quotes and guessing tabs or commas of sep String is not supplied.
@ostephens @ettorerizza @wetneb If you agree on above enhancement with smartSplit() then create new issue with above info copied in.

Explanation of the above:
I think it is a design mistake to have allowed arbitrary java Objects as cell values. It would have been much safer to restrict it to a specified list of java types, so that the compiler would enforce correct typing of all values. I believe this choice was made to make it easy for extensions to manipulate complex objects - but this extendability does not work well in many parts of the code: there is no simple way for an extension to implement the expected behaviour of these objects in rendering, faceting, and other operations. So type safety should really prevail here. We have already paid the price of this design flaw when migrating the dates to java 8 classes.
So, adding a new possible type is dangerous - the compiler cannot spot for us the other places in our own code that we would need to adapt for array handling. And the compiler will not let extension maintainers that they might need to update their own code too.

Object might be too much. A well defined interface may able to repalce it


I would interested to understand this in terms of security

Does this send voice to other website to do the conversion or is it a isolated engine.
I am afraid to use this if it is sending voice to some other service.
It would be helpful if you can provide the architecture details of this.
--

SpeechKITT does not do any speech recognition. It is just the UI layer on top of other Speech Recognition engines you might use.
The engines it is most often used with are part of the browser itself which usually does send it to the web for processing (e.g., Google Chrome does the speech recognition on Google's servers).


Discount code error

When there are more than one product in cart, the total behaves completely unexpected. Sometimes in negative values too.

Can you provide some screenshots or amount of the products with which you testing because i can not reproduce it


ln/validate-ancestors-exist

Current dependencies on/for this PR:

feature/proof-of-stake

PR #649

PR #686

PR #705

PR #706

PR #707

PR #708   👈

This comment was auto-generated by Graphite.


Optional opt-out of global namespace decorator

After requiring domjs like this:
const domjs = require('domjs/lib/html5')(document);

the global namespace was decorated with constructs such as div etc. I know this is the intended usage, but I'd still like to be able to use some_namespace.div, and have domjs not insert div into the global namespace. This serves two goals:

The user can no longer accidentally override something with local variables.
The user can quickly see what they can do by inspecting console.log(some_namespace).
Feels more pure :-)

Right now I use const elem = domjs.map; for this, but it'd be cool if we had a documented / official method for such a use case.

@rr-  firstly for late reply (didn't get notification from github, and saw it just now).
What you propose (no exposure on global) is already the case in master branch. I'll try to publish in next few days, so it's official

I've published recent version at v0.3.0 (it doesn't mess with global), and updated documentation to reflect that


Added CNCF Project List Link and enhancing the documentation

Problem:
This is a Feature Request
What would you like to be added
Update https://kubernetes.io/docs/contribute/ so that early in the page there is a link to
https://contribute.cncf.io/contributors/projects/#kubernetes
You should decide on some suitable text for the hyperlink. Read https://contribute.cncf.io/contributors/ to get ideas about what to write, if you're not sure.
ℹ Don't remove any of the existing links; this is an addition.
Solution:
I've kept the description short for the newbie to come and interact with the CNCF project site, thus adding features.

Hey @sftim  and @shannonxtreme , Please go through the changes I've made and feel free to suggest some changes if required.

@sftim What's branch conflicts and how can it be resolved?

I think GitHub clearly point it out that your local branch is 35 commits behind our main branch.
Please do a git rebase before submitting your PR.

/close
We are not accepting any PRs against #33848 due to bad conduct.
(ref: Slack message from @divya-mohan0209, co-chair, SIG-Docs)