NN parameters are not updated when using gradient descent solver before SGD.

Hi, all
I found that the parameters of NN model are not updated when using gradient descent solver right before SGD.
import haiku as hk
import jax
import jax.numpy as jnp
import numpy as np
import haiku as hk
import optax as optix

from jax import nn
from jaxopt import LBFGS, GradientDescent
import optax as optix
import numpy as np

data_use = jnp.array([[1., 1.]])
OUTPUT_SIZE = 2

def square_function(x, data):
  return jnp.mean((x - data)**2)

def inner_loss(x, lower_bounds = 0, upper_bounds = 1.5):
  return jnp.mean(nn.relu(x-upper_bounds)**2 + nn.relu(-x+lower_bounds)**2)

def Gradient_solver(x_init):
  gd = GradientDescent(fun = inner_loss, maxiter = 10)
  x_opt = gd.run(x_init).params
  return x_opt

# define my neural network
class MySolver(hk.Module):
  def __init__(self, output_size = OUTPUT_SIZE):
    super().__init__()
    self.output_size = output_size
    self.MLP = hk.nets.MLP([self.output_size, self.output_size])
  def __call__(self, data):
    x_init = self.MLP(data)
    return x_init

FuncSolverNet = hk.transform(lambda x : MySolver()(x))

# training process!
def train_model(data) -> hk.Params:
  rng = jax.random.PRNGKey(428)
  opt = optix.sgd(1e-3)

  @jax.jit
  def outer_loss(params, data):
    x_opt = Gradient_solver(FuncSolverNet.apply(params, None, data))
    return square_function(x_opt, data)

  @jax.jit
  def update(params, opt_state, data):
    l, grads = jax.value_and_grad(outer_loss)(params, data) # return loss and grad
    grads, opt_state = opt.update(grads, opt_state)
    params = optix.apply_updates(params, grads)
    return l, params, opt_state

  # Initialize state.
  params = FuncSolverNet.init(rng, np.zeros_like(data))
  opt_state = opt.init(params)
  for epoch in range(5):
    train_loss, params, opt_state = update(params, opt_state, data)
    print("epoch {}: train loss total {:.10e}".format(epoch, train_loss))

  return params

trained_params = train_model(data_use)

epoch 0: train loss total 6.2500000000e-01
epoch 1: train loss total 6.2500000000e-01
epoch 2: train loss total 6.2500000000e-01
epoch 3: train loss total 6.2500000000e-01
epoch 4: train loss total 6.2500000000e-01

The purpose of the gradient descent solver is solving $x_{opt} = \arg\min_x (max(-x+lowerbound,0))^2+(max(x-upperbound,0))^2$.
As you can check, the parameters of FuncSolverNet  are not updated. However, the parameters are updated after I delete the gradient descent solver and start the training process.
# training without gradient descent solver
def train_model(data) -> hk.Params:
  rng = jax.random.PRNGKey(428)
  opt = optix.sgd(1e-3)

  @jax.jit
  def outer_loss(params, data): # <--outer_loss without gradient descent solver
    x_opt = FuncSolverNet.apply(params, None, data)
    return square_function(x_opt, data)

  @jax.jit
  def update(params, opt_state, data):
    l, grads = jax.value_and_grad(outer_loss)(params, data) # return loss and grad
    grads, opt_state = opt.update(grads, opt_state)
    params = optix.apply_updates(params, grads)
    return l, params, opt_state

  # Initialize state.
  params = FuncSolverNet.init(rng, np.zeros_like(data))
  opt_state = opt.init(params)
  for epoch in range(5):
    train_loss, params, opt_state = update(params, opt_state, data)
    print("epoch {}: train loss total {:.10e}".format(epoch, train_loss))

  return params

trained_params = train_model(data_use)

epoch 0: train loss total 4.7954492569e+00
epoch 1: train loss total 4.6865110397e+00
epoch 2: train loss total 4.5809593201e+00
epoch 3: train loss total 4.4786567688e+00
epoch 4: train loss total 4.3794698715e+00

I'm not sure why this happens. Could anyone provide a hint to resolve this issue?
Thanks for reading.
MK.

That's because by default, GradientDescent uses implicit differentiation, and there is no VJP rule wrt. the initial parameters https://github.com/google/jaxopt/blob/e0c2d68ae2fa6e0881e2caecef99b321f0c0b4ce/jaxopt/_src/implicit_diff.py#L238-L239
That's why your gradients wrt. params become 0, since GradientDescent with implicit differentiation does not differentiate through the initial parameters, and only your initial parameters depend on params. You could try with implicit_diff=False in GradientDescent to force differentiation through the unrolled optimizer.

Thanks @tristandeleu! Indeed, with implicit diff, you can only differentiate through parameters that affect optimality conditions.

Thanks, @tristandeleu, @mblondel ! Your advice has increased my understanding of implicit differentiation. Unfortunately, setting implicit_diff=False does not resolve the current issue. My next attempt to solve this problem is to manually implement the gradient solver.
Again, thanks to all JAXOPT developers!


[EventRequest] codeunit 7314 "Warehouse Availability Mgt." - OnAfterCalcLineReservedQtyOnInvt

Hello Microsoft,
can we get the following event for multi location reservation
procedure CalcLineReservedQtyOnInvt(SourceType: Integer; SourceSubType: Option; SourceNo: Code[20]; SourceLineNo: Integer; SourceSubLineNo: Integer; HandleResPickAndShipQty: Boolean; WhseItemTrackingSetup: Record "Item Tracking Setup"; var WarehouseActivityLine: Record "Warehouse Activity Line"): Decimal
    var
        ReservEntry: Record "Reservation Entry";
        ReservEntry2: Record "Reservation Entry";
        ReservQtyonInvt: Decimal;
        PickQty: Decimal;
    begin
        // Returns the reserved quantity against ILE for the demand line
        case SourceType of
            Database::"Prod. Order Component":
                begin
                    ReservEntry.SetSourceFilter(SourceType, SourceSubType, SourceNo, SourceSubLineNo, true);
                    ReservEntry.SetSourceFilter('', SourceLineNo);
                end;
            Database::Job:
                begin
                    ReservEntry.SetSourceFilter(
                      Database::"Job Planning Line", "Job Planning Line Status"::Order.AsInteger(), SourceNo, SourceLineNo, true);
                    ReservEntry.SetSourceFilter('', 0);
                end;
            else
                ReservEntry.SetSourceFilter(SourceType, SourceSubType, SourceNo, SourceLineNo, true);
        end;
        ReservEntry.SetRange("Reservation Status", ReservEntry."Reservation Status"::Reservation);
        if ReservEntry.Find('-') then
            repeat
                ReservEntry2.SetRange("Entry No.", ReservEntry."Entry No.");
                ReservEntry2.SetRange(Positive, true);
                ReservEntry2.SetRange("Source Type", DATABASE::"Item Ledger Entry");
                ReservEntry2.SetRange("Reservation Status", ReservEntry2."Reservation Status"::Reservation);
                ReservEntry2.SetTrackingFilterFromItemTrackingSetupIfNotBlank(WhseItemTrackingSetup);
                if ReservEntry2.Find('-') then
                    repeat
                        ReservQtyonInvt += ReservEntry2."Quantity (Base)";
                    until ReservEntry2.Next() = 0;
            until ReservEntry.Next() = 0;

        if HandleResPickAndShipQty then begin
            PickQty := CalcRegisteredAndOutstandingPickQty(ReservEntry, WarehouseActivityLine);
            if ReservQtyonInvt > PickQty then
                ReservQtyonInvt -= PickQty
            else
                ReservQtyonInvt := 0;
        end;

        //>>New Event
        OnAfterCalcLineReservedQtyOnInvt(ReservEntry,ReservQtyonInvt )
        //<<New Event
        exit(ReservQtyonInvt);
    end;

    [IntegrationEvent(false, false)]
    local procedure OnAfterCalcLineReservedQtyOnInvt(var ReservEntry: Record "Reservation Entry"; var ReservQtyonInvt:Decimal)
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 10853.


Reduce ceremony with small samples

Some of our examples have quite a lot of ceremony / boilerplate associated with them (relative to the actual example code). For example:
https://github.com/flutter/flutter/blob/master/examples/api/lib/rendering/sliver_grid/sliver_grid_delegate_with_fixed_cross_axis_count.0.dart
We don't need so much ceremony around declaring a new StatelessWidget, passing a _title, etc., do we? I get that we want to show best practices, but I worry that in situ examples like this make it hard for a learner to see the wood from the trees. @hixie mentions that there's some things we should keep like putting the example in a widget and runApp()ing that widget, so that hot reload works, but that the current boilerplate is mostly a historical accident.
Can we trim our basic template a little?

Sure, we can totally trim that down.  It's a leftover from expanding out the templates that those examples used when they were embedded samples in the API docs.
It's a non-trivial effort though: there's 258 files that need to be looked at, probably mostly individually and by hand, and cut them down to size.

There are probably a number of rote changes we could make, though, that would mainly be search and replace (e.g. removing the app titles). We'd have to make sure to not remove the title from an example about titles, though.

Hi @timsneath, Thanks for filing the issue.
Labeling it as a valid proposal to reduce boilerplate from the examples.

Maybe as a starting point, @gspencergoog -- could we create a _template.dart file or something that I and others can use for new samples? We can easily go back and gradually fix up the old examples, but right now I'm not sure what we must have. What is the absolute baseline?

Sure, I can do that.

It does depend a bit on what kind of example you want to make, basically boiling down to which level of library support you need: if it's a Material example, you need certain things, if it's fine as a widgets-only example, you don't. I'll try and put together a couple of templates that cover most cases.

Actually, to give you an idea of the variety of conditions that can prompt different templates, take a look at the old templates we used to use: https://github.com/flutter/flutter/tree/master/dev/snippets/config/templates They're not "minimal" in the sense that they still include some really repetitive comments (which I already removed from the existing examples), and some things they don't strictly need to have, but it does show the variety that might be necessary in a set of templates.
(they're not deleted yet, because some dart:ui (engine-side dart) examples still use them. I'm in the process of eliminating those).


[bump] package version for client (patch) 1.1.1 -> 1.1.2

Bumping Client version
        @fluidframework/build-common:     0.24.1 (unchanged)
 @fluidframework/eslint-config-fluid:  0.29.1000 (unchanged)
  @fluidframework/common-definitions:  0.21.1000 (unchanged)
        @fluidframework/common-utils:  0.33.1000 (unchanged)
@fluidframework/protocol-definitions: 0.1028.3000 (unchanged)
                               Azure:      1.1.0 (unchanged)
                              Server: 0.1036.5001 (unchanged)
                              Client:      1.1.1 -> 1.1.2
              @fluid-tools/benchmark:     0.41.0 (unchanged)
                         tinylicious:      0.4.0 (unchanged)
 @fluidframework/azure-local-service:      0.1.0 (unchanged)

@tylerbutler is it normal to have to update broken types after a patch release?


[quilt_rails] Support running production mode locally

Attempted to run production mode locally in web-rails-proving-ground using:
NODE_ENV=production bundle exec rake assets:precompile
NODE_ENV=production SK_SIMULATE_PRODUCTION=1 dev run

The rails sever fails to connect to the node server. Looking at the listed process (ps), I see the rails server listed
puma 3.12.1 (tcp://<IP_ADDRESS>:16268) [web-rails-proving-ground]

No signs of the node server listed. When inspecting the processes in development mode, there's definitely a node server running:
node /Users/ismailsyed/src/github.com/Shopify/web-rails-proving-ground/build/server/main.js

sewing-kit generates built server files from the asset:precompile step from above. You can run the server in a second window running.
node build/server/main.js


Add uploading to whitesource for scan

After code is downloaded and packaged into a single zip file for Fossology, scaffold should optionally allow scanning the zip file via WhiteSource as well.
(edited to reflect that WS can scan packaged .zip files too)

Completed with #28


API to trigger bug reporter from another module

As part of https://github.com/ruipin/fvtt-lib-wrapper/issues/42, I want to add the possibility for libWrapper to provide a "Report this issue here" button, which opens Bug Reporter if it is installed.
For this to be possible, I would need some way to:

Query bug reporter as to whether a module ID allows bug-reporter to be used.

Request bug reporter to start the bug submission workflow on a specific module ID, and pre-fill a specific title and technical details.

This could, of course, be the same API (e.g. the method could return false if the module has not opted in, otherwise it starts the bug report workflow and returns true).

This is a great idea! I should have some cycles this weekend, so I'll let you know what I come up with.

That's good to hear, thanks!
Note that I will not be working on the dialog for a while (I plan to only work on the simpler stuff on that libWrapper ticket this weekend, but that issue has a lot to be done before this API is required) so please take your time.


xmind: crash

Describe the bug
it does not start
[davidak@gaming:~]$ nix run nixpkgs.xmind
[4 built, 1 copied (681.5 MiB), 417.8 MiB DL]

[davidak@gaming:~]$ XMind

(XMind:5121): Gtk-WARNING **: 13:12:06.594: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.594: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.594: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.594: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.595: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.595: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.595: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.595: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.595: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.595: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.596: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.596: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.596: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.596: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.596: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.596: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.597: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.597: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.597: Unable to locate theme engine in module_path: "murrine",

(XMind:5121): Gtk-WARNING **: 13:12:06.597: Unable to locate theme engine in module_path: "murrine",

(java:5124): Gtk-ERROR **: 13:12:06.772: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

To Reproduce
Steps to reproduce the behavior:
nix run nixpkgs.xmind -c XMind
Expected behavior
no crash
Additional context
i don't care about the program since it seem not to be free software anymore
Notify maintainers
@michalrus @ma27
Metadata

system: "x86_64-linux"
host os: Linux 5.12.2, NixOS, 21.05pre288911.65d6153aec8 (Okapi)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3.10
channels(root): "home-manager, nixos-21.05pre288911.65d6153aec8, nixos-hardware, nixos-unstable-21.05pre288911.65d6153aec8"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:

I also experience the mentioned issue. As XMind is (imo) the best mind-mapping software available*, it would be nice if this could get fixed.
Unfortunately I am a noob, so I don't really know where to start -- if someone points me into the right direction, I would be willing to do the work.
$ XMind

(java:43246): Gtk-ERROR **: 17:04:12.401: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

Metadata
$ nix-shell -p nix-info --run "nix-info -m"

this path will be fetched (0.00 MiB download, 0.00 MiB unpacked):
  /nix/store/jnry85gfn98s504g7wafp21l52vcazab-nix-info
copying path '/nix/store/jnry85gfn98s504g7wafp21l52vcazab-nix-info' from 'https://cache.nixos.org'...
 - system: `"x86_64-linux"`
 - host os: `Linux 5.10.57, NixOS, 21.11 (Porcupine)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.4pre20210802_47e96bb`
 - channels(jst): `""`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Regarding the it seem not to be free software anymore: There are three versions: XMind (2021), XMind 8 free and XMind 8 pro. XMind 8 free is the version in the pkgs.  See the comparison:

https://support.xmind.net/hc/en-us/articles/360042544171-What-are-the-differences-between-XMind-8-free-version-and-XMind-8-Pro-
https://support.xmind.net/hc/en-us/articles/360028231712-What-are-the-differences-between-XMind-2021-and-XMind-8-Pro-

Note: I just noticed that the pkg is pulling version 8, when there is an update 9 available https://www.xmind.net/xmind/downloads/xmind-8-update9-linux.zip.

Compared against vym, minder, heimer, freemind, freeplane, semantik and treesheets.

Same issue with using 2 versions of GTK here :disappointed:


NPM-provided clang-format cannot be specified on Windows

On a Windows machine with clang-format installed through NPM at C:/Users/MyName/myProject/node_modules/.bin/clang-format.
I set the correct path to the executable in VS Code's settings.
"clang-format.executable": "C:/Users/MyName/myProject/node_modules/.bin/clang-format"

However, the plugin is still looking for clang-format.exe (which doesn't exist) instead of clang-format (which is installed).
The plugin should attempt to find the provided executable without the .exe appended, even on Windows machines.
The same situation occurs when a clang-format executable is available globally (installed via npm install -g clang-format)
This is not a duplicate of #19 since that did bug did not pertain to the plugin's automatic appending of .exe but rather the ability to specify placeholders.

Thanks, should be available in the Marketplace any minute.


[Resolver] Unexpected keyword argument 'images_urls'

I have configured the environment variables, and when I add the fix-me tag, the action triggers correctly, but it generates the error below. I also tried modifying the action by adding verification of the enc values, and they are all correct. I use OpenRouter and pass the model anthropic/claude-3.5-sonnet. Any ideas ?
Part of my action:
  call-openhands-resolver:
    needs: verify-prerequisites
    if: needs.verify-prerequisites.outputs.can-proceed == 'true'
    uses: All-Hands-AI/openhands-resolver/.github/workflows/openhands-resolver.yml@main
    with:
      macro: ${{ vars.OPENHANDS_MACRO || '@openhands-agent' }}
      max_iterations: 50
    secrets:
      PAT_TOKEN: ${{ secrets.PAT_TOKEN }}
      PAT_USERNAME: ${{ vars.PAT_USERNAME }}
      LLM_MODEL: ${{ vars.LLM_MODEL }}
      LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
      LLM_BASE_URL: ${{ vars.LLM_BASE_URL }}

My log:
Cloning into 'output/repo'...
00:21:17 - openhands:INFO: resolve_issue.py:364 - Base commit: bc553693cf4ae1d8d917fc779be6c07e092600ef
00:21:17 - openhands:INFO: resolve_issue.py:375 - Writing output to output/output.jsonl
00:21:17 - openhands:INFO: resolve_issue.py:[38](https://github.com/TestudoSrl/turbo-pricebook/actions/runs/11808064676/job/32895964800#step:10:39)8 - Resolving issue 21 with Agent CodeActAgent, model claude-3.5-sonnet, max iterations 50.
00:21:17 - openhands:INFO: resolve_issue.py:172 - Starting fixing issue 21.
00:21:17 - openhands:INFO: eventstream_runtime.py:220 - [runtime 21] Starting runtime with image: ghcr.io/all-hands-ai/runtime:0.13.1-nikolaik
00:22:32 - openhands:INFO: eventstream_runtime.py:224 - [runtime 21] Container started: openhands-runtime-21
00:22:32 - openhands:INFO: eventstream_runtime.py:227 - [runtime 21] Waiting for client to become ready at http://localhost:30132...
00:22:54 - openhands:INFO: eventstream_runtime.py:233 - [runtime 21] Runtime is ready.
00:22:54 - openhands:INFO: resolve_issue.py:56 - ------------------------------
00:22:54 - openhands:INFO: resolve_issue.py:57 - BEGIN Runtime Completion Fn
00:22:54 - openhands:INFO: resolve_issue.py:58 - ------------------------------
00:22:54 - ACTION
**CmdRunAction (source=None)**
COMMAND:
cd /workspace
00:22:54 - OBSERVATION
**CmdOutputObservation (source=None, exit code=0)**
00:22:54 - ACTION
**CmdRunAction (source=None)**
COMMAND:
git config --global core.pager ""
00:22:54 - OBSERVATION
**CmdOutputObservation (source=None, exit code=0)**
00:22:54 - openhands:INFO: resolve_issue.py:427 - Finished.
ERROR:root:  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/site-packages/openhands_resolver/resolve_issue.py", line 590, in <module>
    main()
  File "/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/site-packages/openhands_resolver/resolve_issue.py", line 570, in main
    asyncio.run(
  File "/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/asyncio/runners.py", line 194, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/site-packages/openhands_resolver/resolve_issue.py", line [41](https://github.com/TestudoSrl/turbo-pricebook/actions/runs/11808064676/job/32895964800#step:10:42)0, in resolve_issue
    output = await process_issue(
             ^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/site-packages/openhands_resolver/resolve_issue.py", line 211, in process_issue
    action = MessageAction(
             ^^^^^^^^^^^^^^
ERROR:root:<class 'TypeError'>: MessageAction.__init__() got an unexpected keyword argument 'images_urls'
Provider List: https://docs.litellm.ai/docs/providers
Provider List: https://docs.litellm.ai/docs/providers
Error: Process completed with exit code 1.

Moved from All-Hands-AI/openhands-resolver#340

This was fixed already


MethodReflection::getPrototype() crashes when method has no return

When I use this method to grab the protype of a method of my class, it crashes with this error:

"Call to a member function getTypes() on boolean"

It happens because I have a method without return. My opinion is: the return type should be "void" on prototype. Issue #84 adresses the support for void. I've modified the code to make it return void. I could create a pull request if you guys want me to do so.
It was like this:

             $return = $docBlock->getTag('return');
             $returnTypes = $return->getTypes();
             $returnType = count($returnTypes) > 1 ? implode('|', $returnTypes) : $returnTypes[0];

And I've changed to this:

            $return = $docBlock->getTag('return');

            if($return === false)
            {
                $returnType = 'void';
            }
            else
            {
                $returnTypes = $return->getTypes();
                $returnType = count($returnTypes) > 1 ? implode('|', $returnTypes) : $returnTypes[0];
            }

If you don't think it should be void, at least set $returnType variable to empty string or null.
I've read the CONTRIBUTING.md, but I'm still pretty new to contributing on github, so fell free to get this code and push it into repository.
Regards

Hello. I'm kind a dinossaur when it comes to testing.
Anyway, I've attached a whole test case. If you need anything else, just let me know.
zend-code-bug-test-ericklima.comp_2018.04.17.zip

@ericklima-comp you uploaded the entire zip with the repo - can you maybe just add your test to https://gist.github.com/ for now? I can then show you how to open a patch here.

This repository has been closed and moved to laminas/laminas-code; a new issue has been opened at https://github.com/laminas/laminas-code/issues/6.


Unstable Training? White imges as result.

Hello,
first of all thx for sharing the code. Very interesting work.
I tried to train IMavatar with your dataset, but after epoch 75 the results got worse again.
This is epoch 95 for example:

The only thing i noticed until now is that at least one sample in the dataset seems to be corrupt so that the training stops, but I simply continue training.
After epoch 95 the results get a bit better but than white again. I know epoch 95 is quite far away from 1000, but do you think the training gets back to good results?  Maybe you have experience with that.
I would be glad for any help.

Hey,
I'm not so sure why this happens, but let's try to figure it out -
White images usually mean that there is no geometry anymore. I did experience instability in training, but usually a smoothening in the geometry, or wrong LBS weight at the mouth, rather than complete disappearance of the head.
Could you explain what you mean by corrupted samples in the dataset?

Also, which kind of GPU do you use?

Corrupted samples was just a first wrong guess from me. I think the problem seem to be caused by something different. Sometimes the training breaks when computing the mask_loss in loss.py line 64.

Also, which kind of GPU do you use?

I use a RTX 3090.

Hey,
RTX 30xx seems to have problems with broyden's method used in IMavatar and the previous work SNARF. Here. I used RTX 2080Ti, but other GPUs (not RTX 30xx) should also work.
As for the error, it's because sdf_pred is usually shaped as [num_samples, 1] and sdf_pred.squeeze() will shape it to [num_samples]. But in this step, the num_samples is 1, and the squeeze() squeezed both dimensions. I did not notice this bug because this is normally a rare case, thank you for pointing this out, I'll correct this.

I have now also organized a 2080Ti and it seems to work. :D
Thanks a lot for this tip. I would probably never have thought of testing another GPU.

Do you mean that the broyden method also not works well on A-100 like RTX3090?

No, the last time I tried, it doesn't work on A 100 or RTX 3090.


Replace all uses of Path with CString.

All the Paths were being converted to CStrings on every call to any
function that accepted them, which is an unnecessary allocation (and the
possibility of a panic which should probably happen outside the
functions in this crate) which can be easily avoided now.
You can fix existing code by converting Paths to CString using
something like:
CString::from_slice(path.container_as_bytes())

and then passing that to the function(s).
Or just not create Paths and pass a &[u8] to CString::from_slice
directly.
foo(&Path::new("..."))

to
foo(&CString::from_slice(b"..."))

[breaking-change]

I'm somewhat torn. On one hand, I agree w/ all the points that you mention. On the other, the goal of nix is to provide "rusty" interfaces to the posix APIs.
I'm wondering if another option may be to implement a Path like type that is tailored for interfacing w/ the posix C apis and also doesn't have the problems you mentioned. I'm not actually convinced that this is the right strategy, but perhaps you have thoughts?

Would that new Path-like type basically be a newtype for CString, or something more than that?

It could provide the conveniences of Path as well... unsure.
The argument that you have is that you want to avoid the allocation, which means that you need to be manipulating CStrings in the first place, no?

Yes, I don't think we need to store anything more than a CString in that new Path type.
If we want a more "rusty" API, we could even add some methods to it e.g.
let path = Path::new("foo.txt");
path.open(...);
path.stat();
path.chmod(...);
path.chown(...);

but that may be out of nix's scope.. not sure.

I have thought about this some more. Here is my suggestion.
Create a NixPath trait that is implemented for Path, CString, &[u8], etc... The only thing it does is implement a function like:
fn with_nix_path<T, F: FnOnce(&[u8]) -> T>(&self, f: F) -> Result<T, PathError>

Which would return the ptr to the c string, null terminated. The implementation of with_nix_path would be pretty straight forward for &[u8] (it would just pass self. For Path, it could be implemented without an allocation. Stack allocate PATH_MAX (would have to figure out how much this is on various platforms), and copy the bytes in, appending null. It could also be implemented without a panic, by scanning for a null within the body of the path and returning a Err.
Thoughts?

That's much better than my proposal!
How would we handle returning PathError from the functions which return a SysResult?

Is there an invalid argument error perhaps? If not, we could possibly add an extra variant to handle errors that are bubbled up from nix vs. syscalls.

There's EINVAL for Invalid argument and ENOENT for No such file or directory, but I don't think we should return anything other than the actual value of errno..

What do you think we should do?

How about
pub enum Error {
  Sys(Errno), // or SysCall
  InvalidString // or InvalidPath or anything
}

and return Result<T, Error> from all functions?
There are only 2 functions I could find that can panic, and 1 that allocates: execve allocates 2 Vecs which could panic, and eventfd asserts the presence of some global function. We can (probably) fix the execve allocation as the sizes of the args and env must be less than the stack size limit, and I'm sure something can be done about eventfd too.
If we do all this, nix will have no allocations and no panics.

I don't think Error is the right name since Error from std will become a thing, but this general strategy looks good. I would probably use InvalidPath and maybe call it NixError?
I think we are in agreement for the strategy. I am looking forward to a PR :smile:

NixError and InvalidPath sound good. I'm working on a PR :)

fn with_nix_path<T, F: FnOnce(&[u8]) -> T>(&self, f: F) -> Result<T, PathError>

Did you mean F: FnOnce(*const c_char) -> T here?

Either way doesn't matter since one transmutes to the other. So, which ever one you want :smile:

@carllerche does this look like it's going in the right direction: https://gist.github.com/464d19a5bb305ea4098c? I still need to shuffle around some functions and test on Linux.

Looks good to me so far :+1:

Submitted a new PR #61.


AntaresXpansion - number of MC years

It seems that it is not possible to run AntaresXpansion with more than 9 MC years. Please see example that comes with installation ("SmallTestSixCandidatesWithPlaylist")  that does not work with all 10 MC years.
Regards,
Dragana

Hello, I do not understand the problem, if the playlist is parametrized to use all years from 0 to 9 in this study, Xpansion should run with all these years. Could give more details on the issue you encountered so that I can reproduce it ?
Regards,
Thomas

Dear Thomas
Many thanks for the reply.
Please see example that comes with installation ("SmallTestSixCandidatesWithPlaylist") , which includes 10 MC years but  does not work with all 10 MC years.
The version I am talking about can be found at:
https://github.com/AntaresSimulatorTeam/antares-xpansion/releases/download/v1.0.3-rc1/antaresXpansion-1.0.3-xpress-windows-single-file.zip
If you activate MC years 1-9 or 2-10 or just use 3 selected MC years as you can find in the Antares model when you open the example - AntaresXpansion works but if you activate all 10 the following messages are obtained:

Running Antares Xpansion ...
Xpansion version: 1.0.3
antares simulator version: 8.5.0-rc3
D:\Antares\antaresXpansion-xpress-1.0.3-win64\examples\SmallTestSixCandidatesWithPlaylist is locked
<< INFO >> No solver defined in user/expansion/settings.ini.
Hope you can help us…We would like to implement AntaresXpansion on 35 MC years, but with this error we cannot move over 9 MC.
Best regards,
Dragana
From: tbittar @.>
Sent: Thursday, September 28, 2023 16:34
To: AntaresSimulatorTeam/antares-xpansion @.>
Cc: Dragana Orlic @.>; Author @.>
Subject: Re: [AntaresSimulatorTeam/antares-xpansion] AntaresXpansion - number of MC years (Issue #688)
Hello, I do not understand the problem, if the playlist is parametrized to use all years from 0 to 9 in this study, Xpansion should run with all these years. Could give more details on the issue you encountered so that I can reproduce it ?
Regards,
Thomas
—
Reply to this email directly, view it on GitHubhttps://github.com/AntaresSimulatorTeam/antares-xpansion/issues/688#issuecomment-1739379333, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASRPYWA3XBAODBGE3IHCV3DX4WDFTANCNFSM6AAAAAA4ZR34FM.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>

Hello. Thank you for those details.
Just so that I can be sure to understand properly, when you say "activate all 10" you're saying something like this in generaldata.ini:
[playlist] playlist_reset = false playlist_year + = 0 playlist_year + = 1 playlist_year + = 2 playlist_year + = 3 playlist_year + = 4 playlist_year + = 5 playlist_year + = 6 playlist_year + = 7 playlist_year + = 8 playlist_year + = 9

Hello, it's in dev, could you try one of the artifacts here

Hello @DraganaOrlic , it's in dev, could you try one of the artifacts here

Hello Zakir
Thanks for the changes…it works now on small example.
However, I am still struggling to run antaresXpansion on the whole Europe and 35 MC years…I works for 11 MC year (maybe more) but not for 35.
Do you think that benders is the problem? Do you have an idea how to overcome this?
Best regards
Dragana
From: abdoulbari zakir @.>
Sent: Tuesday, October 10, 2023 12:05
To: AntaresSimulatorTeam/antares-xpansion @.>
Cc: Dragana Orlic @.>; Mention @.>
Subject: Re: [AntaresSimulatorTeam/antares-xpansion] AntaresXpansion - number of MC years (Issue #688)
Hello @DraganaOrlichttps://github.com/DraganaOrlic , it's in dev, could you try one of the artifacts herehttps://github.com/AntaresSimulatorTeam/antares-xpansion/actions/runs/6466502606
—
Reply to this email directly, view it on GitHubhttps://github.com/AntaresSimulatorTeam/antares-xpansion/issues/688#issuecomment-1754870740, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASRPYWBPPFVICS3FNA56SMLX6UMWLAVCNFSM6AAAAAA4ZR34FOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJUHA3TANZUGA.
You are receiving this because you were mentioned.Message ID: @.***>

Thanks all
Can you send me the link to new installation please…
Best
Dragana
From: abdoulbari zakir @.>
Sent: Thursday, October 19, 2023 15:43
To: AntaresSimulatorTeam/antares-xpansion @.>
Cc: Dragana Orlic @.>; Mention @.>
Subject: Re: [AntaresSimulatorTeam/antares-xpansion] AntaresXpansion - number of MC years (Issue #688)
Closed #688https://github.com/AntaresSimulatorTeam/antares-xpansion/issues/688 as completed via #697https://github.com/AntaresSimulatorTeam/antares-xpansion/pull/697.
—
Reply to this email directly, view it on GitHubhttps://github.com/AntaresSimulatorTeam/antares-xpansion/issues/688#event-10712247982, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASRPYWDXFCQIBSZ22O7Q5Y3YAEU4XAVCNFSM6AAAAAA4ZR34FOVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJQG4YTEMRUG44TQMQ.
You are receiving this because you were mentioned.Message ID: @.***>

Hello @DraganaOrlic , thanks for your feedbacks, i think we are facing memory problem, in fact on my local machine (windows) the study does not work for 35 mc years (it takes a minimum of 25Gb for 25MC years).
here you can find the latest version of the fix. Still this issue has permitted to fix some bugs
i reopen this discussion...

Hello a-zakir and thanks for trying to solve this issue. Unfortunately, the latest version (https://github.com/AntaresSimulatorTeam/antares-xpansion/actions/runs/6572696835)
cannot run either 1 MC for the European model for which the previous version managed to work with 11 MC years.


animations added on recipe cards

did a git pull this time. Closes #16

thank you for the contribution


Dynamic components

Sadly something like this doesn't seem to work:
{#def sections #}

    {% for section in sections %}
        <{{ section }} />
    {% endfor %}

Any workarounds or ideas?

Possible workaround - does the {{ content }} special variable work for your use case?
e.g.
// Layout.jinja
<!doctype html>

  {{ content }}

and
// TestPage.jinja
<Layout>
    <SomeSection />
    <SomeOtherSection />

Extra content

</Layout>

Alternatively If you need to do something server side to decide which sections to render - maybe render the html to string for those sections with one call, and pass that as the content (or some other argument) to the rendering of the Layout template?

If I'm understand it correctly sections is a list of names of components, aren't they?
You can render a component by name by using catalog.irender like this:
{#def sections #}

    {% for section in sections %}
        {{ catalog.irender(section) }}
    {% endfor %}


dotenv-expand breaking build when "$" is used

We use variables that include $ within the strings, which we don't want to be expanded. Escaping with \$ works fine when it occurs at the start of the string, but not anywhere else within the string.
Example:
REACT_APP_MYVAR=\$bar.baz <- works as expected, value is "$bar.baz"
REACT_APP_MYVAR=foo\$bar.baz <- I'd expect "foo$bar.baz" but I get "foo\.baz"
I also tried working around the problem, like so:
BAR=\$bar
REACT_APP_MYVAR=foo$BAR.baz

But it gave the same result of "foo\.baz"

This sounds really annoying. Sorry.
Do you want to look into what's causing this?

This does appear to be a bug in dotenv-expand. It only looks for an escaped $ at the start of the string.

Right, it looks like this is the problem: https://github.com/motdotla/dotenv-expand/blob/master/lib/main.js#L25

Yes. I think there a couple of ways to fix it:

Only expand when the variable starts with $ (instead of when it doesn't start with \$). This would make it impossible to expand variables inside a string which is maybe okay.
Check if each occurrence of $ in the string is escaped and only expand it if it's not

Check if each occurrence of $ in the string is escaped and only expand it if it's not

This makes sense to me. We should also document that behavior.

Fixed in<EMAIL_ADDRESS>


add docs for notebook storage in S3

Looks good to me.

Thanks for docs. Merge if there're no more discussions


how to know the shard is ready

Note: for reported bugs, please fill in the following details. bug reports without detailed steps on how to reproduce will be automatically closed.

Dragonboat version
v4.0.0
Expected behavior
Follow the  StartReplica(), call the SyncPropose() to update the instance of IStatementMachine
Actual behavior
After StartReplica(), SyncPropose()will return shard is not ready
Steps to reproduce the behavior

With 4.0 being an API breaking upgrade, I actually looked into the StartReplica API, I thought it might be a good idea to allow users to specify an extra flag indicating that they want StartReplica to return only after the replica is ready to be used. But I quickly realized that it won't help much - such new API can make sure that your replica is always ready on StartReplica's return, but your replica's status can change from ready to not ready at any time when the leader becomes unknown for whatever reason.
In short, we all need to accept it as a normal part of life in distributed systems that your nodes can get into such "not ready" state and different applications can react to that in completely different ways, some of them might choose to give up and try again in a few seconds, some might want to keep retrying until timeout.

@lni @kevburnsjr Thank you for your reply all, I got it.


event badge not expands to dates in case of event timespan is more than one day.

event badge not expands to dates in case of event timespan is more than one day.Suppose a event starts 02-05-2019 and ends 04-05-2019, then event badge should expand to three date cells in calendar.

Have you looked at the q-calendar example code? It has a multi-day event that you can even drag and drop.  QCalendar doesn't deal with events but allows the dev to manage them. On May 5, 2019 2:28 p.m., jitendra1607<EMAIL_ADDRESS>wrote:event badge not expands to dates in case of event timespan is more than one day.Suppose a event starts 02-05-2019 and ends 04-05-2019, then event badge should expand to three date cells in calendar.
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or mute the thread.

Also, this is in the wrong repo issue. You can post issues to the QCalendar repo @ https://github.com/quasarframework/app-extension-qcalendar


Add {error, Reason} to typespecs

fabric:design_docs/1 and all_docs/5 can return {error, Reason}
see here and here

+1


Gateway  URL copy buttons are not working

Duplicate issue https://github.com/wso2/product-apim/issues/6113
Fixed from https://github.com/wso2/carbon-apimgt/pull/7681


⚠ Fetchers has degraded performance

In 87324fa, Fetchers ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 279 ms

Resolved: Fetchers performance has improved in 355c5f6.


Feature request: light weight SSMS like SQL query profiler.

Me and my team works a lot with ASP.NET MVC with Entity framework, and we have a lot of LINQ query written in the C# controller or in the DAL. We use sql server query profiler of SSMS to check the EF or LONQ generated query in the database and tune the LINQ query as needed. I would love to have the feature of query profiler, may be a light weight one with only Tracing t-sql will help a lot.

This is on our roadmap. It's not targeted for the December release but should make one of the early-2018 releases based on current progress.

In the meantime, you can use the command-line profiler.
https://github.com/ststeiger/sql_profiler

Finally this feature is in with June release. Thanks team for hearing and bringing this feature in my favorite SQL Operations Studio.

Feature added in June release.


feat: eip-2255 implementation

What it solves
solves #318
How this PR fixes it
We are adding support for EIP-2255 (Wallet permissions system)
Adding 3 new methods:

getAddressBook (SDK)
wallet_getPermissions (SDK and Provider)
wallet_requestPermissions (SDK and Provider)

We are changing the send function to check if the Method has permissions for being executed

Sure, added!


Bug: Clicking the OpenSauced logo on mobile takes users to Highlights feed

Describe the bug
I'm not sure if this behavior is intentional or a bug.
Clicking the OpenSauced logo on mobile will open the Highlights feed. While on desktop, clicking the logo takes users to personal workspace.
I'm expecting to have the same behavior on mobile and desktop.
If this is intentional, we might need to update our docs to provide this information.
Decive information
I'm using Samsung Galaxy S22 with Android 14
Steps to reproduce
Mobile

Click the OpenSauced logo.
You will see the Highlights feed.

Desktop

Click the OpenSauced logo.
You will see the personal workspace page.

Do you have any images or screen captures?
Screen recordings
Mobile
https://github.com/open-sauced/app/assets/45172775/8938a5da-a765-444f-ac91-67ab3f646c58
Desktop

Browsers
Chrome
Additional context (Is this in dev or production?)
production
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Contributing Docs

[ ] I agree to follow this project's Contribution Docs

This sounds like a bug.

This should go to the workspace for logged in users.

.tak

.take

This behaviour is very random, sometimes it will take user to workspace and sometimes it will not.
One common pattern I noticed is, when user is on Highlights feed and try to login sometimes it will redirect to Workspace and sometimes it will not and when user is not being redirected to Workspace that's when this bug is appearing( i.e. when clicking on Opensauced logo it is taking the user to Highlights feed instead of Workspace regardless of Desktop, Mobile or Incognito mode)
Screen Recording
I could not record this as it is very random

This is happening as sometimes middleware is not triggering and locally I was only able to reproduce 2-3 times, I tried multiple times, and I also found the below discussions for it but was unable to implement and not sure if they will work, please help
https://stackoverflow.com/questions/73040090/nextjs-middleware-does-not-seem-to-be-triggered
https://github.com/vercel/next.js/issues/48083

Hi @shubhamchasing
Currently, our maintainers are not available because they're on an in person conference. Hopefully, someone can get back to you by next week or so 🙂

It should always go to the last workspace visited. If note, it defaults to your personal workspace. There were issues with it which is why we have a Workspace link.
There's something wonky going on in middleware causing this although we haven't dug into it yet.


Blink after panning on mobile device

Leaflet 0.7, with L_PREFER_CANVAS
Device: iPhone 5 \ iPod 4g
When panning, just after releasing the touch, I see the canvas elements blinking\flickering (just like a flash) before it gets rendered.
Is it a known behaviour? Please let me know if you need a jsfiddle to demonstrate it (though it's pretty easy, just draw something using canvas and load it on mobile).

Should be fixed on master. Will reopen if you see this.


Auto calculate optimal trim angle

Given the C_l and C_d polars, calculate what would be the optimal aoa of the kite for optimal lift vs drag.

This is not trivial because it depends on the drag of tether and bridle.


notifying sending task is finished

How can i notify when bt.send() task is finished ?
thanks.

Hi membrown, Did you find anything for this issue?

@membrown hello!, did you solve this problem?

hello, i switched to android standard API library (developer.android.com) and my problem solved.


Socket hang up on bigger payloads

Get an error when submitting a "big" migration.
Error: FetchError: request to https://db.fauna.com:443/ failed, reason: socket hang up
On a 653 line migration query ~10778 letters (collections: 7, indexes: 12: roles: 5).
Goes through when I split this into two migrations and run each with yarn fauna-schema-migrate apply.
This still fails with the same error when multiple migrations are run with yarn fauna-schema-migrate apply all.

Hey @stefanhar, thanks. I have noticed the same and I think (but might be wrong) this might be related to a node-fetch problem with our driver. This might be related https://github.com/fauna-brecht/fauna-schema-migrate/issues/5.
I have opened an internal ticket around this and we are looking into it.

in the meantime a new fauna js driver has been released which fixes this issue.
The issue can also be solved for people who are still using the old driver by setting keep alive to false. I changed this in the the fauna-schema-migrate library to make sure that people who haven't seen this and are working with an older javascript driver no longer run into problems.


Whiteline bug

Fix white line on the right and bottom of cropped image
Fix configuraiton typo
Fix pi warnings

This should get merged.


feat: add explorer and portal to zk chain getting started code guide

Description
@sarahschwartz @itsacoyote I added explorer and portal usage to ZK Chain guide. Explorer especially is relevant to coding. Let me know if you want me to change i.e. order of sections.
Possibly a bit OCD of me to do this, but was playing with zkstack today 😉

Linked Issues

Additional context

@sarahschwartz CI seems to be failing for unrelated reasons, could you please take a look?


Using Metrics and Traces to diagnose a memory leak: recommendationCache -> recommendationServiceCacheFailure

The docs say to use the recommendationCache feature flag, but it is now named recommendationServiceCacheFailure

Thanks @harelguy. Could you submit a PR to fix that?


 IF YOU DO NOT FOLLOW THE FORMAT OR MAKE A GENERIC TOKEN REQUEST YOUR ISSUE WILL BE DELETED WITHOUT COMMENT
YOUR JUSTLIST MUST FOLLOW THE JSON SPECIFICATION
https://github.com/justswaporg/justlists/example.justlists.ts
Checklist

[ ] I understand that this is not the place to request a token listing.
[ ] I have tested that my JustList is compatible by pasting the URL into the add a list UI at justswap.org.
[ ] I understand that filing an issue or adding liquidity does not guarantee addition to the justlists website.

Please provide the following information for your token.
https://www.yangyuyangjia.com
JustList URL: 'http://www.yangyuyangjia.com
JustList Name: YYJ
Link to the official homepage of the JustList manager:

Sorry, your issue will be closed as you did not submit your information in the correct format.


Curse changed their directory structure - again

... Updates don't work anmore (404). They add a (random?) number at the end of the URL.

Probably not a good idea, but I've made a (temporary) replacement in perl. Just so I can update my addons without running windows:)
Tbh, I would rather use lcurse, but, hey..
https://git.smokepit.net/Nuadh/pcurse

Probably not a good idea, but I've made a (temporary) replacement in perl. Just so I can update my addons without running windows:)
Tbh, I would rather use lcurse, but, hey..
thank you for your work, but unfortunately it's not working. I get Found Clique(v80000-1.0.0)Could not find product id for Clique for every Addon

Could you send me your ~/.lcurse/addons.json, /.pcurse/config.json and ~/.pcurse/addons.json . I'll try to find out what makes it misbehave:)

Could you send me your ~/.lcurse/addons.json, /.pcurse/config.json and ~/.pcurse/addons.json . I'll try to find out what makes it misbehave:)

here you go

My bad, expecting a http Uri, not a HTTPS one:) new version up, please try again:)

My bad, expecting a http Uri, not a HTTPS one:) new version up, please try again:)

Works great thank you

@mboquien has fixed his lcurse fork, until @ephraim pulls in the changes just use his version.

Hi all.
I made some changes to waitdlg.py
I also used the latest proposed code elements on the main branch
Catalogue and addon updates are functional
I downloaded my modified version on my fork
https://github.com/Philmore971/lcurse
Do not use the file directly, there are translations Fr inside the code
Sometimes the catalogue update stops before the end (98% 99%)
I don’t have an answer
Test my version please

Curse changes again: Now they are providing versions for wow classic under the same project - see BigWigs, Capping, DBM and probably others too. If I enter https://www.curseforge.com/wow//download in the browser the correct non-classic version gets selected. But lcurse seems to check for the newest version and enters that specific id which might be the classic version, depending on what was most recently updated. At the moment most of those addons have a file name that ends on "-classic". But that's not a given so checking the game version would be necessary.
Any idea how to adapt the code, @mboquien, perhaps?

@ilu33 My subscription has lapsed and I will likely not go back for at least a couple of month. If nobody has had a look by then, I will dig into it.

we will only have to process the download corresponding to the correct version of Wow. Actually, wow-classic is installed in another directory. Lcurse does not handle several versions of Wow. For the moment, I had no problem with the versions. Wow 8.2 seems to be the default version when downloading ... to check.

actually it is a problem, it gets the first Release from the list and if the classic version is the last release it installs the classic version. Ran into this with a few addons, like Bigwigs and Details!. Problem is every Addon names their releases different most addons add -classic to the end of the version, easy to filter out. But Details! i.e. just uses total different version number.


Input textboxes: humans do not send input event on RETURN, Syn does

Input textboxes do not send an input event on RETURN, but syn does send one. I added a check to ignore it and a comment explaining why it is ignored. Tests added, but also added a bit of lockdown to make sure that we are sending the additional keypress event that only firefox seems to send for backspace.

👍


Missing jdk.aot.jmod on Windows x86 build

jdk.aot.jmod is not included in AdoptOpenJDK 14 for Windows x86 (32-bit) I need to include it in my jre runtime image for 32-bit windows, as GSON depends on it.

Platform and architecture (e.g. Linux/x64:  Windows 10 Pro 1909

Java version (from "java --version") e.g. 1.8.0_181, 11.0.4+11 etc.:  AdoptOpenJDK (build 14.0.1+7)

Variant e.g. HotSpot or OpenJ9: HotSpot

Have you tested it with other vendors' java: No. As far as I know, AdpotOpenJdk is the only one still supporting 32bit Windows

Steps to reproduce: Download and install/extract AdoptOpenJDK 14 for Windows x86. See that jdk.aot.jmod is not located in jmods-directory.

Error messsage and/or description of what is not working as expected: I need jdk.aot in my custom runtime for 32-bit Windows.

Both Azul Zulu for Windows on x86 as well as AdoptOpenJDK for Windows on x86 lack the module jdk.aot. Azul Zulu does not have it on Linux, either. @jerboaa @karianna I assume it's not supported on x86? https://openjdk.java.net/jeps/295 indicates that, too, but I'm not sure whether the JEP is relevant.
With AdoptOpenJDK 14.0.1 for x86:
> bin/java -version
openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment AdoptOpenJDK (build 14.0.1+7)
OpenJDK Client VM AdoptOpenJDK (build 14.0.1+7, mixed mode, sharing)
> bin/java --list-modules | Select-String -Pattern "aot"

With Azul Zulu 14.0.1 for x86:
> bin/java -version
openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment Zulu14.28+21-CA (build 14.0.1+8)
OpenJDK Client VM Zulu14.28+21-CA (build 14.0.1+8, mixed mode, sharing)
> bin/java --list-modules | Select-String -Pattern "aot"

With OpenJDK 14.0.1 for AMD64:
> bin/java -version
openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment (build 14.0.1+7)
OpenJDK 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)
> bin/java --list-modules | Select-String -Pattern "aot"

<EMAIL_ADDRESS>

@aahlenst I'm not sure which platforms jaotc is supported these days. You are correct. Initially it was Linux x86_64 only.

I found https://bugs.openjdk.java.net/browse/JDK-8172670 ("AOT Platform Support for Windows and Mac OS X x64") which says x86_64 only.
@sekkingsoft Looks like lack of x86 support isn't an accident and not our fault. Considering that x86 (32 bit) support isn't a high priority anymore, it is unlikely that anybody wants to do something about it. Maybe replacing Gson would be an option for you? Moshi is a re-thinking of Gson by the same authors, features code generation and even runs on Android (Java 8 language level).


Pipeline_annotations.py - Generation of geneses_all automatically excludes non-standard contigs

geneset_all.gtf.gz only contains chr 1-22 + XY even when there are no contigs set for removal in the pipeline ini.
It would be useful to have the Mt genes and those on unknown contigs for some analysis but these get filtered because the UCSC and ensembl naming patterns do not match up. This is because gff2gff.py only adds "chr" before the chr id from the ensembl gff, where as the UCSC names are more complex.
A more sophisticated regex should be able to fix this?

Thanks, the mitochondrial genes should be in there (as chrM).
The mapping between different chrosome names actually happens in IndexedFasta.py. IndexedFasta accepts a list of synonyms that can be added to the index, see for example:
chrUn_gl000248<PHONE_NUMBER><PHONE_NUMBER>      39786
chrUn_gl000249<PHONE_NUMBER><PHONE_NUMBER>      38502
chrX<PHONE_NUMBER><PHONE_NUMBER>      155270560
chrY<PHONE_NUMBER><PHONE_NUMBER>      59373566
chrM    chrMT

I would prefer explicit over implicit via a regex.


Using with neither compile-time-rng or runtime-rng features.

I'm trying to understand how to upgrade my ahash dependency version to the newly released version 0.8.0, and want to know what the recommended practice is. On version 0.7, I was able to just use ahash as a dependency, and when I compiled on a no_std target that wasn't supported by getrandom, it seems ahash was nicely resolving that issue for me.
However, now when I upgrade to 0.8.0, no_std support for my library is broken when I enable runtime-rng. So I am thinking that the correct way to handle this would be to just depend on ahash with neither compile-time-rng or runtime-rng set, so that constant keys are used by default (as documented in the Cargo.toml file), and that would leave consumers of my library free to enable whatever rng generation features they want downstream. But, despite what the Cargo.toml says, setting neither of the rng features means that I can't actually create a new RandomState using ahash::RandomState::new(), because the new() method is feature-gated by at least one of those features.
Looking at the source code, there doesn't seem to be a specific reason why it would need to be feature-gated, because get_fixed_seeds() would just return the constant seeds, as expected, so I am wondering whether this feature-gating on the new() method is intentional or not, or perhaps I am missing something.
My expectation was that I could just use ahash::RandomState::new() in my library, and no matter which rng feature was set, or if neither were set, it would still create a RandomState for me to use, similar to what ahash was doing implicitly on version 0.7.

Yes. This is the major API change in the 0.8 release. Previously it attempted to look at the OS / Flags to infer when getrandom was available and use it. In 0.8 it no long does this and simply leaves it up to the feature flags. This was done because the automation logic proved inconvenient for some applications.
If neither runtime-rng or compile-time-rng is set, then there are no random constants available as base value so instead of relying on RandomState::new() which uses these random fixed constants RandomState::generate_with() is available so that the application may provide such values directly. (Note that the values passed to generate_with may be fixed constants, and it will still result in different states each time.)
In terms of security strength runtime-rng is obviously best followed by compile-time-rng. But the flag runtime-rng will implicitly disable compile-time-rng. So if you have a library that needs to work in a no-std environment that does need DOS resistance, then depending on compile-time-rng is reasonable because if an upstream application enables runtime-rng it will automatically enable, and the compiled output will be constant as normal. If anything beyond minimal DOS resistance is not required then just pass fixed keys into generate_with and you will get the same behaviour as it had in 0.7.

Thanks for the explanation. The main cause for my question was use in no-std environments. I initially assumed that I ought to use the runtime-rng feature, but that didn't work in my no-std environment test. I wasn't sure if compile-time-rng was what I wanted, since it wasn't enabled when I was using 0.7. Your explanation was very helpful. I was able to get things working the way I wanted with the compile-time-rng feature.
For the record, I like this change in the new version. It's good for me to actually think about what the hasher is doing when I'm using it.


There are duplicate jobs in the repository.py file

Using the default pygen.py file, it generates duplicate jobs. This causes dagster to fail since it cannot process the same job twice in the same  repository function like below
@repository
def gleaner():
    ...

RISE appears to show up twice in our sitemap. Seems to potentially be our issue

fixed for time being by just skipping the second url with the same name but need to check if we need to change our sitemap

Addressed in https://github.com/internetofwater/scheduler/pull/14

addressed in #13


Add support for Django 5 and Python 3.12

Add support for Django 5
Add support for Python 3.12

@hugorodgerbrown I mostly followed this commit.
I will look through the CI failures to see what else might need updating but if there is anything else that would be worth checking (or in case there is a better way to go about updating this), please let me know.


Fix colorized 1.9 hash syntax

Fixes #112

It tried this PR and it works.

Looks good to me. Thanks for your work!


Modifications not reflected in LDAP

Tried adding gpuultimate QOS to a user via:
usermgmt modify $username --qos advanced bigmem gpubasic interactive ultimate gpuultimate

QOS was sucessfully added in Slurm (verified via sacctmgr show assoc user=$username format=user,qos%50) but was not added in LDAP.
Remote and local execution both seem affected.
Also: We need a proper error message for this. Output said:
[INFO  usermgmt::ldap::ldap] Successfully modified user xy in LDAP

Fixed by PR #42


Relax timestamps check before ignoring timestamps

This PR relaxes the criteria to ignore timestamps, in order to allow small timestamps glitches.
In particular, timestamps are ignored if:

there are more than 10 timestamps drops (negative diff)
OR
if negative drops are detected, any timestamp diff is greater than 1 ms

@jsiegle let me know what you think

@jsiegle this fixes the timestamp glitches. I'll merge and rerun the sessions affected


Feat/cs 42865 taxonomy support

updated version to 3.17.3
added taxonomy support
added relevant e2e tests and unit tests
updated existing test cases
resolved dependency conflicts

Closing this PR, as these changes are already included in #107


fix: leave out tags field to prevent invalid lint config

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.02%) to 91.274%

Totals

Change from base Build<PHONE_NUMBER>:
-0.02%

Covered Lines:
318

Relevant Lines:
346

💛  - Coveralls


Build from distroless/base:nonroot

Switch from the default distroless image (which runs as root) to the distroless image (which runs as uid 65532)
Related to #237

You can compare the User in the manifest for the latest image vs the nonroot tag using these links:
https://explore.ggcr.dev/?image=gcr.io%2Fdistroless%2Fbase%3Alatest
https://explore.ggcr.dev/?image=gcr.io%2Fdistroless%2Fbase%3Anonroot


Expose context lambda payload, context.

Useful e.g. when you need to get access to current lambda function name.
current_lambda_name = request.environ['lambda.context'].function_name
And having payload passed to 'command' invocations allows for parametrised calls.

I like the context in the environ, is there a way we could check the signature of the function? Apparently inspect.getargspec would solve this - then we could could conditionally support simple functions and functions that take (e, c). This pattern would be good for direct invocations, timed functions and AWS reactive events.

I thought of using introspection to do that, but then decided to keep it simple. After all requiring a function to accept *args shouldn't be that big of a deal.
If you think this flexibility is required I can look into doing the introspection check.

Yeah, I think I'd like to have the flexibility so that we can use the same pattern for all event types. For AWS events, it makes sense to require (e, c), but I don't think it makes sense to require that for recurring events, invocations, etc, and I'd like to be able to reuse the same pattern.
It's short, just something like
import inspect if len(inspect.getargspec(func).args) == 2:      func(event, context) else:    func()

@Miserlou updated

Coverage increased (+0.1%) to 89.039% when pulling 4e3460468fcd0648a6637492997cb57e9d0a2da4 on DomainGroupOSS:feature/command-request-context into ddbc945c9d77fb4b1dacaa8600f6fac381d077de on Miserlou:master.

Coverage increased (+0.1%) to 89.029% when pulling 4e3460468fcd0648a6637492997cb57e9d0a2da4 on DomainGroupOSS:feature/command-request-context into ddbc945c9d77fb4b1dacaa8600f6fac381d077de on Miserlou:master.

Coverage increased (+0.1%) to 89.029% when pulling 294f7811b364b8a06ae440e4d74a353e4aa3266e on DomainGroupOSS:feature/command-request-context into ddbc945c9d77fb4b1dacaa8600f6fac381d077de on Miserlou:master.

Excellent! Thank you very much for your contribution!


Transform release notes links

We need a way to reliably transform links of the form:
/api/qiskit/legacy_release_notes.*?
/api/qiskit/release_notes.*?

to the correct places in our documentation. This might be difficult as we split those files up, so we'd probably need to search through the files to find the correct anchors.
This is for #522 (see that issue for a full list of broken links); another option is to remove these entries from the objects.inv, which would mean other projects can't reference them, but I'm not sure how often the release notes are referenced anyway?

another option is to remove these entries from the objects.inv, which would mean other projects can't reference them, but I'm not sure how often the release notes are referenced anyway

I lean towards that for simplicity. Otherwise this is going to be pretty complex: like you suggest, we could try mapping anchors so that we know which link lives where.
But we wouldn't have a solution for when there is no anchor. We don't know where a link to release_notes.html and legacy_release_notes.html goes; I guess release-notes/index?
You could test the impact of this out by starting up a local server with python -m http.server in a folder with objects.inv, and then try building the docs for Provider, and Runtime. There are other projects beyond those 2 that use Intersphinx, but it can give some indication.

After investigating, neither qiskit-ibm-runtime nor qiskit-ibm-provider reference the release notes using intersphinx. We think it's unlikely any other projects do, so we're fine to remove them.

Fixed in 1c8fc2c


Add component diagram

Describe this PR
What is the problem we're trying to solve
We're looking to improve documentation and visuals of the different systems that make up the Social Care system. Social Care System Architecture provides the high-level view and for lower level diagrams, these will live within the individual repos but linking back to the architecture repo.
What changes have we introduced
This PR adds a component diagram for the service API. It's been created by using PlantUML
Still to do

[ ] Fix exported diagram being cropped off.
[ ] Add guidance for how to update the diagram has also been added to the README.
[ ] Update descriptions of repos in container diagram.

Superceded by #193


login callback does not work with keycloak.

login callback does not work with keycloak. Only on second try when authentication is already done with local browser cache it make it works.

Any progress here?


Issue 1470

This isn't addressing #1470 yet but it's worth merging in preparation. It moves a few essential bits over to async/await and introduces a way to handle test validations of async handlers.
Our current method of doing that via static properties on actor Validation isn't actually correct. Saw this in a tweet (which I can't find anymore) and which makes sense since we don't actually use await to read or write the values. We're essentially just tricking TSAN into OKing this.
To do:

[x] migrate actor Validation code
[ ] figure out how to attribute ActorIsolated

This is good to go, except for the open question of how to deal with the attribution.


How to update EMQX resource when using bootstrapConfig

Discussed in https://github.com/emqx/emqx-operator/discussions/471

Originally posted by mariusstaicu November 21, 2022
When using bootstrapConfig one cannot reapply the yaml and update other portions of it because of the validation error:
admission webhook "validator.apps.emqx.io" denied the request: bootstrap config cannot be updated, old bootstrap config:

How to update the EQMX resource without this validation failure?

I still have this problem with emqx-operator 2.1.0 and emqx 5.0.16 when using kubectl apply -f. The error is:
bootstrap config cannot be updated, old bootstrap config: node {
  cookie = emqxsecretcookie
  data_dir = "data"
  etc_dir = "etc"
}
cluster {
  discovery_strategy = dns
  dns {
    record_type = srv
    name = "name"
  }
}
listeners.tcp.default {
  bind = "<IP_ADDRESS>:1883"
  max_connections = 1024000
}
sysmon.vm.long_schedule = disabled
, new bootstrap config: {node:{data_dir:data, etc_dir:etc, cookie:emqxsecretcookie}, cluster:{discovery_strategy:dns, dns:{record_type:srv, name:"name"}}, dashboard:{listeners:{http:{bind:18083}}, default_username:admin, default_password:public}, listeners:{tcp:{default:{bind:"<IP_ADDRESS>:1883", max_connections:1024000}}}}

The bootstrapConfig in my template looks like this, so where does the new bootstrap config come from?
apiVersion: apps.emqx.io/v2alpha1
kind: EMQX
metadata:
  name: emqx
  namespace: some-ns
spec:
  image: emqx/emqx:5.0.16
  bootstrapConfig: |
    node {
      cookie = emqxsecretcookie
      data_dir = "data"
      etc_dir = "etc"
    }
    cluster {
      discovery_strategy = dns
      dns {
        record_type = srv
        name = "name"
      }
    }
    listeners.tcp.default {
      bind = "<IP_ADDRESS>:1883"
      max_connections = 1024000
    }

Is there a way to ignore the bootstrapConfig so I can deploy again?

I thin this happens because of the object merging here: https://github.com/emqx/emqx-operator/blob/3c955c372cf5eeec9a450a3387356a31693edec1/apis/apps/v2alpha1/emqx_webhook.go#L201
The default config has this block: https://github.com/emqx/emqx-operator/blob/3c955c372cf5eeec9a450a3387356a31693edec1/apis/apps/v2alpha1/emqx_webhook.go#L188-L194
My existing bootstrapConfig does not have that block so validation will never be successful. How can I delete the existing bootstrapConfig to make this work?

Hi, @rubengees Sorry for delay
Did you change the bootstrap config in the two kubectl apply runs?
In https://github.com/emqx/emqx-operator/blob/3c955c372cf5eeec9a450a3387356a31693edec1/apis/apps/v2alpha1/emqx_webhook.go#L201
This is to merge the user's bootstrap config with the default bootstrap config, they will eventually be parsed into a string output of https://github.com/emqx/emqx-operator/blob/3c955c372cf5eeec9a450a3387356a31693edec1/apis/apps/v2alpha1/emqx_webhook.go#L202

I don't know how exactly the old config without the new block was created. It might be from an older version of the operator when the cluster was initially created.
The main problem is that when I have an incorrect config, there seems to be no way to fix it since the validating webhook denies all deployments.
In the example above I deleted the operator and the webhooks and then kubectl apply. That works, because the webhooks do not exist. When I deploy the same file again, the deployment fails with the above error.

The main problem is that when I have an incorrect config, there seems to be no way to fix it since the validating webhook denies all deployments.

Bootstrap is designed not to be updated, if you fill in the format incorrectly the webhook will block it and report an error, if EMQX is already running then you can change the EMQX configuration via the Dashboard.

Yes, I understand and that's fine. But once I have an incorrect config I can never deploy again and thus never update the EMQX version or change other things that are designed to be updated, because the webhook does not accept other changes due to the bootstrap config being incorrect. I think this is similar to #554.

Yes, it is a problem.
The reason we disable bootstrap config updates is the following:
The bootstrap config is mounted to /opt/emqx/etc/emqx.conf in the EMQX container, and in EMQX, the configuration modified via dashboard is stored in data/cluster-overwrite.conf, and data/ cluster-overwrite.conf has a higher priority than etc/emqx.conf, this can be confusing if the user modifies the configuration file via both Dashboard and etc/emqx.conf so we disable updating the bootstrap config.
If you have any good ideas, please let me know

@Rory-Z one idea could be to have a separate CRD for the config based on the REST API spec of the broker / cluster itself. Then the operator could reconcile the broker's config via the REST API rather than via files?
E.g.: in the reconcile loop (if a config CR was provided) it could check the current "global zone" config using https://www.emqx.io/docs/en/v5.0/admin/api-docs.html#tag/Configs/paths/~1configs~1global_zone/get ... and if the values don't match between the CR and the broker, then use https://www.emqx.io/docs/en/v5.0/admin/api-docs.html#tag/Configs/paths/~1configs~1global_zone/put to update them so that they match
This way, in a true DevOps / GitOps manner, you could have your config represented as a CR yaml in your git repo, and config updates will be rolled out the usual way (via CI pipelines or something like ArgoCD).
Also, by constantly reconciling, the operator can ensure that the live state of the cluster's config matches the expectations expressed via the resource - preventing haphazard "ClickOps" style shenanigans 😂
WDYT?

Hi, @clive-jevons Good idea. In fact, we have already done this. You can check out this PR: https://github.com/emqx/emqx-operator/pull/849/files#diff-9ec5fbbb1e0c679351d450279506f193c3d005681450eb90ff1c86592e9c2cc8
But we didn't use new single CRD to manager EMQX's config, we also use EMQX CR's filed, do you have any suggestions?
You can try this via EMQX Operator 2.2.0-alpha.1, but the alpha version means that there may still be changes, so it is not recommended to use it in a production environment.

@Rory-Z Noice!! Looks like pretty much exactly what I'd been hoping for 😁👍 Thnx 🙏🏻


ask_about_image error

I encountered the response error using bardapi to ask_about_image:
{'content': 'Response Error: b\')]}\\\'\\n\\n103\\n[["er",null,null,null,null,400,null,null,null,3],["di",56],["af.httprm",55,"-4329840812213668433",0]]\\n25\\n[["e",4,null,null,139]]\\n\'. \nUnable to get response.\nPlease double-check the cookie values and verify your network environment or google account.'}
bardapi version : 0.1.38

Same

Based on real-time method checks, the method is functioning correctly.
Please, read  Before using BARD API carefully.

Google Bard can return different responses based on various factors such as account, country, region, IP, etc., following Google's policies. This means that even well-functioning methods, especially the ask_about_image method, can encounter Response Errors, which are caused by various reasons related to Google's policies, not package errors. (It cannot be resolved at the package level.)

same

This started working for me.  Also, I pass ALL cookies to the bard (using session) and then after it's response, I read and save them again.  Perhaps this is the case why it started working.
So if anything, this is how I did it
https://github.com/F33RNI/GPT-Telegramus/blob/master/BardModule.py
maybe it will help someone


Ability to define two parsers from the same lexer

If you define a lexer niml lexer[MyToken] and then two parsers nimy parserOne[MyToken] and nimy parserTwo[MyToken] you get an error due to a redefinition of the function parse (parsegen.nim:1001)

nimy is designed as a macro to make the parsing table and define the function parse for the table.
So, if you define two parse in one module (with the same token type), these names are conflicted.
But, you can use two (or more) different nimy parser in one module if you define two (or more) parsers in other two (or more) modules.
https://github.com/loloicci/nimly/blob/master/tests/test_lr_lalr.nim is a good example to use two parsers in one module. (using https://github.com/loloicci/nimly/blob/master/tests/parser_415.nim and https://github.com/loloicci/nimly/blob/master/tests/parser_415_lr.nim)
Does it solve your problem?


Update stratified-sampling.md

added two papers as additional reading

🚀 Deployed on https://6697fce4e4e78903297ba696--cozy-fox-0defec.netlify.app


nginxMainline: 1.16.0 -> 1.17.1

Motivation for this change
Update nginxMainline to 1.17.0
Changes with nginx 1.17.0:

Feature: variables support in the "limit_rate" and "limit_rate_after" directives.
Feature: variables support in the "proxy_upload_rate" and "proxy_download_rate" directives in the stream module.
Change: minimum supported OpenSSL version is 0.9.8.
Change: now the postpone filter is always built.
Bugfix: the "include" directive did not work inside the "if" and "limit_except" blocks.
Bugfix: in byte ranges processing.

Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
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 nix-review --run "nix-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)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@GrahamcOfBorg build nginxMainline

Update to version 1.17.1

@GrahamcOfBorg build nginxMainline

Update to version 1.17.2

@GrahamcOfBorg build nginxMainline

cc @Mic92 @xeji @fpletz


ENH: add dict to return type of func argument of DataFrame#apply when result_type="expand"

[ ] Closes #xxxx (Replace xxxx with the Github issue number)
[x] Tests added: Please use assert_type() to assert the type of any return value

Problem
It is perfectly valid to pass a function with a return type of dict as the func argument to DataFrame#apply when result_type="expand", but the current type stub does not support it.
For example, the following code
def returns_dict(x: pd.Series) -> dict[str, int]:
    return {'x': 1, 'y': 2}

df.apply(returns_dict, axis=1, result_type="expand")

results in the following errors when type-checked by Pyright:
error: Argument of type "(x: Series[Unknown]) -> dict[str, int]" cannot be assigned to parameter "f" of type "(...) -> Series[Unknown]" in function "apply"
    Type "(x: Series[Unknown]) -> dict[str, int]" cannot be assigned to type "(...) -> Series[Unknown]"
      Function return type "dict[str, int]" is incompatible with type "Series[Unknown]"
        "dict[str, int]" is incompatible with "Series[Unknown]" (reportGeneralTypeIssues)
error: Argument of type "Literal['expand']" cannot be assigned to parameter "result_type" of type "Literal['reduce']" in function "apply"
    "Literal['expand']" cannot be assigned to type "Literal['reduce']" (reportGeneralTypeIssues)

Solution
Add dict to the return type of func argument of DataFrame#apply when result_type="expand".
Also, add tests for passing a function that returns a dict to DataFrame#apply in the cases where axis is 0 and 1, respectively.

I recently modified these apply overloads and the number of permutations of overloads is a lot higher now. So any changes here need to be very careful to make sure they apply new data types everywhere they need to be present.
The changes you made look good to me, I only have one question. During the last round of changes to apply() annotations, we decided that even if a particular combination of function return and return_type did not make logical sense, if Pandas allowed it without errors, then we would continue to permit it in the annotations.
I cannot test right now, but does dict work for any other result_type value (including the default of None)?

@gandhis1 You are the one who have added those comprehensive overloads! Thanks for the hard work!
Will check other combinations and add support for them if they also work!
@Dr-Irv Thanks for your suggestion! Will add support for func returning dict to other overloads and also additional comprehensive test cases!


Can I scan ean-5 only ?

Hi there,
Does anyone know is there is way to scan just the ean-5 barcode?
Cheers!

From README

From README

Thanks for the reply, but perhaps I wasn't clear. I have tried what is stated in the docs, but I only want to read the second half of the bar code as that is all I have. When testing it only worked when reading the ean-13 part along with the ean-5 part. Can you confirm that the config should work just for the ean-5 section of the barcode?
Many thanks

Thanks for the reply, but perhaps I wasn't clear. I have tried what is stated in the docs, but I only want to read the second half of the bar code as that is all I have. When testing it only worked when reading the ean-13 part along with the ean-5 part. Can you confirm that the config should work just for the ean-5 section of the barcode?
Many thanks

Here is an example  - I want to just read this?

Here is an example  - I want to just read this?

Apologies if I closed prematurely, before fully understanding.  I do not actually know if that is supported or intended to be supported.    None of the tests supplied seem to test that, although the code looks to me like it might work?    I don't even see any other readers that support decoding the 5 part at all, on a quick google search for "online barcode scanners".  Dynamsoft's is usually the one i plug things into when I'm trying to compare Quagga's results to other things, and it doesn't even comprehend the additional 5 digits with a EAN, let alone the 5 digits alone.
Unfortunately, I don't have an answer for that, beyond "maybe".  I'm guessing that without the presence of the main part of the EAN, it might not be able to decode the rest of it.

Apologies if I closed prematurely, before fully understanding.  I do not actually know if that is supported or intended to be supported.    None of the tests supplied seem to test that, although the code looks to me like it might work?    I don't even see any other readers that support decoding the 5 part at all, on a quick google search for "online barcode scanners".  Dynamsoft's is usually the one i plug things into when I'm trying to compare Quagga's results to other things, and it doesn't even comprehend the additional 5 digits with a EAN, let alone the 5 digits alone.
Unfortunately, I don't have an answer for that, beyond "maybe".  I'm guessing that without the presence of the main part of the EAN, it might not be able to decode the rest of it.

@ericblade thats ok, I wasn't very clear! I spoke with Dynamsoft too and they don't do it either. I'll keep checking and see what I come up with - thank you.

@ericblade thats ok, I wasn't very clear! I spoke with Dynamsoft too and they don't do it either. I'll keep checking and see what I come up with - thank you.


Create DCO

DO NOT MERGE

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


npm owner add

Gotta roll a release for a small bugfix:
https://github.com/mapbox/node-tilejson/commit/a4fd8e1e0244e118aa5535c4e49796d9d2da4595

Done.


Adding a 404 page

Hello,
I am trying to add a 404 page to some of my content.
here is my code:
var connect = require("connect");
var freeport = require('freeport');
freeport(function(err, port) {
  if (err) throw err;
  myport = port;
  var serveStatic = require('serve-static');
	connect().use(serveStatic(`${__dirname}/site`)).listen(port, function(){
	    console.log(`Docs server running on ${myport}...`);
	});
})

I try adding an .htaccess file and setting dotfiles to allow, however this module seems to just ignore it.
Is there some way to accomplish this? To detect a 404 response?
Thank you.

Hi @Unforgiven-wanda I'm not sure I understand what you're trying to do. This module does not read any instructions from .htaccess, which is an Apache-style thing.

Ah yes, a bit of context then.
I am serving a small static website using this module, something like
- folder1
- folder2
index.html
someOtherPage.html

I would like to have any request that isn't met, be it a 404 error or other to be redirected to a specific page, for example 404.html.
Is there some way to parse the server's response to check the response status' code?

Ah, I see. So, that would be handling you would need to do in your top-level framework, which looks like is connect. A simple example:
var connect = require("connect");
var freeport = require('freeport');
freeport(function(err, port) {
  if (err) throw err;
  myport = port;
  var serveStatic = require('serve-static');
	connect().use(serveStatic(`${__dirname}/site`)).use(send404).listen(port, function(){
	    console.log(`Docs server running on ${myport}...`);
	});
})
function send404(req, res) {
  // send your 404 here
  res.statusCode = 404
  res.end('nothing here!')
}

Thank you very much, this was exactly what I was looking for.
Good day.


App crashes on creating map

Describe the bug
I installed this plugin, updated the specific files as described and built the app. The build was successful but the app crashes at the point of creating the map. I checked the api key and it is okay since it works well when I use it elsewhere. This is the crash log
java.lang.NullPointerException: Attempt to invoke virtual method 'double java.lang.Double.doubleValue()' on a null object
reference	at com.hemangkumar.capacitorgooglemaps.CapacitorGoogleMaps$1.run(CapacitorGoogleMaps.java:135)	at
android.os.Handler.handleCallback(Handler.java:790)	at android.os.Handler.dispatchMessage(Handler.java:99)	at
android.os.Looper.loop(Looper.java:164)	at android.app.ActivityThread.main(ActivityThread.java:6543)	at
java.lang.reflect.Method.invoke(Native Method)	at
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)	at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:810)

To Reproduce
Steps to reproduce the behavior:

Install the plugin
Build the app
Run the app
See error

Expected behavior
The map should display when the app is run.

Somehow, the latitude and longitude parameters that where suppossedly optional in the CapacitorGoogleMaps.create were causing the error when not provided, so you need to provide those fields
const boundingRect = this.yourMapView.nativeElement.getBoundingClientRect() as DOMRect;
CapacitorGoogleMaps.create({
width: Math.round(boundingRect.width),
height: Math.round(boundingRect.height),
x: Math.round(boundingRect.x),
y: Math.round(boundingRect.y),
zoom: 5,
latitude:xxxxxxxxx,    // you can get the location and add the latitude
longitude:xxxxxxx.   // you can get the location and add the longitude
});

if you face any other issue let me know

ok, i will look into it

We've just released a (pretty stable) beta for version 2 of this plugin under the name @capacitor-community/google-maps.
It features a more complete and consistent API. Also the map can finally be rendered behind the webview in this new version.
Extensive documentation for v2 can be found here: https://capacitor-community.github.io/google-maps/
Since version 1 lacked a lot of (basic) features, did not have good coding practices, had a poor API and it is not recommended to use it anymore, we've dropped support for it. Therefore I will close this issue. We believe version 2 offers a better Developer Experience and is a much better fit for anyones use case.


Android 7.x Issue with Video Enrolment / Auth

No matter how bright the screen is set, using Video to Enrol / Auth a user causes the screen to dull on Android Nougat 7.x.
This was tested on Google Pixel XL, running Android 7.1.1. A video demonstrating the issue can be found here: https://youtu.be/NRx5bFdfDrI
Issue does not appear on:

Samsung S4 Mini, running Android 4.4.2.
Samsung S7 Edge, running Android 6.0.1

We could not replicate the issue on Android 7.1.1. Judging from the comments found online this was a Pixel issue which has since been addressed.


az vm create --generate-ssh-keys documentation should specify where keys are generated and what they are named.

The --generate-ssh-keys parameter is useful, but it isn't clear what key files it creates or where it puts them.  The docs should describe the behavior.

You can find the ssh keys (both public and private) under /etc/ssh, and yes the documentation should ideally mention the path of generated keys, so no one should have to search for it.


User identity research

Perform research on uPort, Civic, Keybase.
Come up with "glue" to support future identity integrations.

We did the research. We discussed. We decided on ERC725. Closing.


Code for running benchmarks on noisy observations

I am interested in running benchmarks on noisy observations as described in section 5.2 of https://arxiv.org/abs/1910.01741.
The code for this part would be greatly appreciated as it apparently is missing from the repo at the moment.

The environments that we used can be found here: https://github.com/facebookresearch/deep_bisim4control/blob/master/dmc2gym/wrappers.py#L103


telegram getupdates error 'Telegram returned an invalid response'

Required Information

PHP version: 5.6.23
PHP Telegram Bot version: last update
Using MySQL database: yes
Update Method: getUpdates

Actual behaviour

getUpdatesCLI.php returns:

php exception 'Longman\TelegramBot\Exception\TelegramException' with message 'Telegram returned an invalid response! Please review your bot name and API key.' in E:\xampp\htdocs\core-master\src\Request.php:333 Stack trace: #0 E:\xampp\htdocs\core-master\src\Request.php(808): Longman\TelegramBot\Request::send('getUpdates', Array) #1 E:\xampp\htdocs\core-master\src\Telegram.php(340): Longman\TelegramBot\Request::getUpdates(Array) #2 E:\xampp\htdocs\core-master\getUpdatesCLI.php(73): Longman\TelegramBot\Telegram->handleGetUpdates() #3 {main}

Steps to reproduce

API key is correct, double-checked and is fine

Windows issue.
As a development workaround:
Replace in Telegram.php:
new Client(['base_uri' => self::$api_base_uri]);

with:
new Client(['base_uri' => self::$api_base_uri, 'verify' => false]);

If you plan on using Botan integration you have to do the same inside Botan.php

@jacklul
i could not find it on Telegram.php but i did find it on Request.ph. and this the output after i change it with yout code :

php 2017-04-17 09:59:28 - Processed 0 updates

is that a normal output ? i have send view messeges to my bot.

muito obrigado jacklul.


pythonPackages.pomegranate: 0.8.0 -> 0.8.1

Also now using GitHub instead of PiPy, because the PiPy version fails to build. Not sure why they aren't identical.
Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
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 nox --run "nox-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[X] Fits CONTRIBUTING.md.

Missing pytest. Lots of errors like this:
conftest (unittest.loader._FailedTest) ... ERROR
test (unittest.loader._FailedTest) ... ERROR
testing (unittest.loader._FailedTest) ... ERROR
joblib.test (unittest.loader._FailedTest) ... ERROR
joblib.testing (unittest.loader._FailedTest) ... ERROR

======================================================================
ERROR: conftest (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: conftest
Traceback (most recent call last):
  File "/nix/store/d0im7d8gvk39xyhwnsqs57rmzvwy8g89-python3-3.6.3/lib/python3.6/unittest/loader.py", line 153, in loadTestsFromName
    module = __import__(module_name)
  File "/build/joblib-0.11/doc/conftest.py", line 2, in <module>
    from joblib.test.common import np, setup_autokill, teardown_autokill
  File "/build/joblib-0.11/joblib/test/__init__.py", line 1, in <module>
    from joblib.test import test_memory
  File "/build/joblib-0.11/joblib/test/test_memory.py", line 32, in <module>
    from joblib.test.common import with_numpy, np
  File "/build/joblib-0.11/joblib/test/common.py", line 12, in <module>
    from joblib.testing import SkipTest, skipif
  File "/build/joblib-0.11/joblib/testing.py", line 12, in <module>
    import pytest
ModuleNotFoundError: No module named 'pytest'

@disassembler Good catch, I wasn't testing Python 3. But that appears to be a problem with python3Packages.joblib. In the mean time I could restrict this package to 2.7..

Now it works with both properly (python2/python3).

Nice!


Update custom Doclet configuration for javadoc

Starting with version 3.0 javadoc uses updated parameter names in custom Doclet configurations, which affects our internal devsite scripts.
This PR updates the config to use the new parameters names.
Tested and verified with the devsite script.

Looks like line 87 still uses the current config name. Updated the rest. Thanks!

Thanks. May be we can remove that profile entirely, and just merge the configuration with the rest? It's reasonable to require jdk 1.8 or higher for all build and release tasks:
       <profile>
            <!-- Disable Doclint on Java 8 and higher -->
            <id>disable-java8-doclint</id>
            <activation>
                <jdk>[1.8,)</jdk>
            </activation>
            <properties>
                <additionalparam>-Xdoclint:none</additionalparam>
            </properties>
        </profile>


Disable gravity once stable, auto-zoom on toggle

Implement auto-zooming after node movement triggered by toggling node types on/off
Once graph has stabilized, disable gravity/forces so that dragging a node only moves that node and all others stay where they are

I think the first item (auto-zoom) doesn't really work.  The graph is "fit" before it has stabilized.  In the apt1 example, the report node kind of anchors all other nodes nearer the center (since it connects to all of them).  If you hide it, the "fit" is pretty much the same since none of the nodes have moved yet.  Then the nodes gradually drift outside the viewport so you can't see them, so the graph looks zoomed in too far.  If you then toggle the report node back on again, the fit is to the zoomed-out arrangement since that's how the nodes are.  Then the nodes gradually migrate back toward the report node again, so that everything is clustered at the center and the graph looks zoomed out too far.
If the goal is to reset the zoom/center such that all of the nodes will fit after they have stabilized, that means you'd have to know where all of the nodes will wind up, before they get there.  I don't think that's possible.  If you are panning and zooming manually, then it will serve to jump the viewport back such that you can see all of the nodes, before stabilizing.  If you are toggling before stabilization is complete, it will jump the zoom/center rather erratically I think, as it keeps fitting to the nodes in mid-stabilization.
Regarding the second item, it reduces the usefulness of "pinning" drag/drop handlers.  If physics is turned off for the whole graph, pinning becomes a moot point.  I think the only uses would be (a) if you wanted to drag nodes around mid-stabilization while physics is still enabled, then pinning matters, and (b) pinned status of individual nodes is preserved as overall graph physics is toggled on and off.  So once pinned, if you toggle node types, the graph may jump around and other nodes will start moving to adjust, but the pinned nodes always stay put.  Do we still need pinning?

Auto-zoom: I wonder if only auto-zooming once the graph has stabilized would work. In other words, making the network.fit() call inside the stabilizedHandler. Interestingly, I get the behavior you describe when I use the poisonivy.json sample locally but not apt1.json.
Pinning: Come to think of it you're right, we don't need pinning anymore.

Auto-zoom is seeming like a bad idea in some cases.  For example, if you graph poisonivy and hide the report node, the graph breaks up into separate "islands".  The nodes spread out a lot, so it zooms out the graph to the point where all the nodes are pretty small, and you can't see any labels.  Maybe I want a closer look at the largest island.  So I zoom into that.  It's mostly a campaign with malware and indicators encircling it.  Let's say I want to focus on the indicators, so I decide to hide the malware nodes.  This causes the graph to re-fit and zoom all the way back out again.  I have to re-center and zoom back in to see what I wanted to look at.    Once again, I have to zoom myself back to where I was.
It seems like the auto-zooming is inappropriately overriding my viewing preferences.  If I have chosen to focus on one part of the graph, nothing should be changing my view around.  I should be in total control of that.  If I am only interested in a big-picture view and just want to watch the graph move around as I hide and show stuff, then maybe auto-zoom is okay.  Forcing auto-zoom seems like a bad idea.