Don't send an updates to clients if the filtered changes are empty

when using auth_logic (for example) when a logged user makes ANY request to the server, this updates the user model, which causes data to be pushed to the client
which causes the client to update its scopes
which is another request
and so on...
so the solution should be don't sync those attributes to the client
so hyper-mesh filters out those attributes, but the problem is even if you have an empty set of attributes, the update is still being sent, causing the scope resync...

this may fix it:
module ReactiveRecord
  class Broadcast
    def self.after_commit(operation, model)
      Hyperloop::InternalPolicy.regulate_broadcast(model) do |data|
        if !Hyperloop.on_server? && Hyperloop::Connection.root_path
          send_to_server(operation, data)
        elsif operation == :update && data[:previous_changes].empty?
          SendPacket.run(data, operation: operation)
        end
      end
    rescue ActiveRecord::StatementInvalid => e
      raise e unless e.message == "Could not find table 'hyperloop_connections'"
    end unless RUBY_ENGINE == 'opal'
  end
end

you can't monkey patch this but a slightly cleaner (if not quite as  effecient) way is to change the SendPacket operation's dispatch to be:
        dispatch_to { params.channel if params.operation == :update && params.previous_changes.present? }

actually first case (patching after_commit) won't work if the change was made on the console... So best update SendPacket


WIP - Docker/Podman Support

Currently a work in progress which will be documented here.
The current Dockerfile was created for Ubuntu 18.04 from this pull request: https://github.com/ianw1974/zimbra-build-scripts/pull/12
The plan is to adapt this in a similar way that the main Zimbra Build Helper script works, to simplify the docker/podman commands for building Zimbra for various distributions.

The Dockerfile currently supports building for the following Linux distributions:

Almalinux 8.6
Oracle Linux 8.6
Rocky Linux 8.6
Ubuntu 18.04

no docker build support will be offered for CentOS (EOL and not recommended for use), RHEL (due to using microdnf), Ubuntu 16.04 (EOL).

Builds have been made for Alma, Oracle, Rocky and Ubuntu.  Whilst not installed to see if Zimbra works, there shouldn't be any problems with the builds.

As Zimbra have now fixed their repositories for Ubuntu 20.04 for the packages that couldn't be installed (issue #10), the scripts have now been amended to re-add building for Ubuntu 20.04.
Currently testing build process for Ubuntu 20.04 under docker/podman.

Docker builds Ubuntu 20.04 without issues.  Minor change to Dockerfile relating to tzdata package and configuring automatically, else problem occurs.
@maxxer just in case you need Ubuntu 20.04 support, it now works :)

Out of curiosity, did you replace podman with docker for a specific reason or for convenience?

Purely that docker is probably the most used at present - that's the only reason.  Podman tends to be more geared towards RHEL distros (developed by Red Hat).  Should that change in the future, then will re-reference docker with podman.

Looking at RHEL UBI images for building under docker/podman doesn't look like it will be possible.  Whilst the CodeReady Builder repositories are there, as well as Base and AppStream, any additional ones cannot be obtained without having a Red Hat Subscription.  This means without this, we cannot install the Development Tools Group, or enable the appropriate modules for installing ant and ant-junit which come in  javapackages-tools package.

Closing this as pretty much everything works as intended.  RHEL can always be built normally anyway on a VM.


The last problem in the Problems panel for any given file seems to stick around (custom task)

Issue Description
The last problem in the Problems panel, reported by a custom task, for a given file does not get cleared.
Steps to Reproduce
I was actually testing a "fake" task that just dumps a file containing "problem" lines to the console (see https://github.com/dotnet/format/issues/247#issue-466546732).
tasks.json
{
    "label": "format",
    "command": "cmd",
    "type": "process",
    "args": ["/c", "FOR /L %G IN (1,1,100) DO timeout /T 10 & type example.txt"],
    "isBackground": true,
    "problemMatcher": {
        "fileLocation": ["relative", "${workspaceFolder}"],
        "severity": "warning",
        "source": "dotnet format",
        "pattern": {
            "regexp": "^\\s+(.*)\\((\\d+),(\\d+)\\):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "message": 4,
        },
        "background": {
            "activeOnStart": true,
            "beginsPattern": "^Formatting code files in workspace\\s+'(.*)'\\.$",
            "endsPattern": "^Format complete\\.$"
        },
    }
}

Step 1
I know it's a bit of hack, but the custom task and regexes seems to be doing the trick!
example.txt
Formatting code files in workspace 'C:\Users\anthony\example\Example.sln'.
  src\Example\Startup.cs(26,22): space between parentheses not required
  src\Example\Startup.cs(26,42): new line before open brace required
  src\Example\Controllers\ExampleController.cs(100,31): new line before open brace required
Format complete.

Step 2
I removed a second problem from a file just to see that the problem clearing behavior works at all.
example.txt
Formatting code files in workspace 'C:\Users\anthony\example\Example.sln'.
  src\Example\Startup.cs(26,22): space between parentheses not required
  src\Example\Controllers\ExampleController.cs(100,31): new line before open brace required
Format complete.

Step 3
But, removing all of the problems (or the last problem) didn't clear out the problems for that file.
example.txt
Formatting code files in workspace 'C:\Users\anthony\example\Example.sln'.
Format complete.

Expected Behavior
When the last "problem" for a file is removed, it should be cleared from the Problems panel.
Actual Behavior
The last "problem" sticks around... forever?
 I just wrote a real test task that runs as a background problem matcher and it clears the last error from the file in the Problems panel.
        {
            "label": "test",
            "type": "process",
            "group": {
                "kind": "test",
                "isDefault": true
            },
            "command": "dotnet",
            "args": ["watch", "--project", "${workspaceFolder}/SimpleNetQ.sln", "test"],
            "isBackground": true,
            "runOptions": {
                "runOn": "folderOpen"
            },
            "problemMatcher": {
                "fileLocation": ["absolute"],
                "severity": "error",
                "pattern": {
                    "regexp": "^\\s+at\\s+(?<test>.*\\.(?<method>.*?)\\(\\))\\s+in\\s+(?<path>.*):line\\s+(?<line>\\d+)\\s*$",
                    "message": 2,
                    "file": 3,
                    "line": 4
                },
                "background": {
                    "activeOnStart": true,
                    "beginsPattern": "^Starting test execution, please wait...$",
                    "endsPattern": "^Total tests:.*$"
                }
            }
        }

Is it possibly the nature of my fake task that's causing problems?

Using timeout causes the terminal to re-write things. When lines are re-written in the terminal, the task problem watcher can behave unexpectedly. As (unfortunately) designed.


ALSA, jack connection errors - Melissa does not listen

$ python main.py
ALSA lib pcm_dmix.c:1024:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_dmix.c:1024:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dmix.c:1024:(snd_pcm_dmix_open) unable to open slave
connect(2) call to /dev/shm/jack-1000/default/jack_0 failed (err=No such file or directory)
attempt to connect to server failed
Say something!

It doesn't listen anything, I think, at this point.

Thanks for reporting this @asdofindia !
Can you please check to see if the following articles help you:
https://www.reddit.com/r/archlinux/comments/2fepl5/need_help_with_this_alsa_error_attempt_to_connect/
http://bandshed.net/forum/index.php?topic=3446.0

Can't replicate on testing with OS X and Linux Mint. If the problem persists or can be replicated, feel free to re-open this issue.


Add sqlite backend and use for snapshots

Closes #208 #252
Description

For contributor use:

[x] Targeted PR against master branch
[ ] Linked to GitHub issue with discussion and accepted design OR link to spec that describes this work
[ ] Code follows the standards mentioned here
[ ] Updated relevant documentation
[ ] Re-reviewed Files changed in the GitHub PR explorer
[ ] Added appropriate labels

Codecov Report

Merging #273 (fd4418f) into master (a8d9168) will decrease coverage by 0.24%.
The diff coverage is 0.00%.

:exclamation: Current head fd4418f differs from pull request most recent head 9ad4e68. Consider uploading reports for the commit 9ad4e68 to get more accurate results

@@            Coverage Diff             @@
##           master     #273      +/-   ##
==========================================
- Coverage   49.32%   49.08%   -0.25%
==========================================
  Files          27       27
  Lines        2222     2233      +11
==========================================
  Hits         1096     1096
- Misses        998     1007       +9
- Partials      128      130       +2

Flag
Coverage Δ

unittests
49.08% <0.00%> (-0.25%)
:arrow_down:

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

Impacted Files
Coverage Δ

server/server.go
47.10% <0.00%> (-1.41%)
:arrow_down:

server/storage.go
32.00% <0.00%> (-5.21%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


source change results in double load. No caching of video files

hi
i use videogular to display a single video at a time with other media formats so the videogular is hidden sometimes
Here is the code i use within the html

in the script i set the source object. Manipulating the array did not work since the watcher watches the array value and not its content.
mc.config.sources=[{src: $sce.trustAsResourceUrl(mc.selectedImage.url), type: "video/mp4"}];
if i do this the video will be downloaded tiwce which is a nightmare cause the bandwidth i use is not very good.
i fixed that by commenting out one watch (line 960 of videogular)
scope.$watch("vgSrc", scope.onChangeSource);
// scope.$watch(
//     function() {
//         return API.sources;
//     },
//     scope.onChangeSource
// );
since this triggered the onChangeSource twice.
Did i make a mistake or is there another way to change the source without triggering this twice?
Second thing - if i set the source the video is always reloaded from the server even if it was played before. Is there a way to use the preloaded one. so for example if i use sources to set an array with 1 element - then set an array with another element - and after that re-use the first element again the first one is downloaded.
concerning the download - cache expire is set, etag is set so it should not download at all.
btw.: thanks for the fantastic pice of work:-)

As long as your source is the same, it's a matter of resource caching between the browser and server.


Cannot find video track

Hello,
first of all thank you for this easy to use, great package. Unfortunately, there is an error saying cannot find video track for quiet a lot of videos on my iPhone. What could be the reason for this? Is there a way to get additional information about this?
Thank you
Marcel

@SchnMar Thank you for opening this issue and i am sorry you're facing it. I think it has to do with missing metadata of the videos. The plugin used to pick the videos could play a major role in this. Could you please try the sample apk in README? Let me know if it is happening. You could as will provide a sample video and information on which plugin you're using, Android/iOS versions and the device. Thank you.

I have same error, did you guys find any solution ?

In my case that error caused by missing meta data of picked video.
I picked video file from AssetEntity.file and it not contain the meta data of video file.
When i change AssetEntity.file =>  AssetEntity.originFile to make it contain EXIF information, the error is solved.
So that, make sure your picked video contain meta data of video.

@hungvinh1234 Thank you for confirming this. @SchnMar Does that solve your issue ?

Hello, works like a charm. Sorry for the late reply.
Thank you!

@hungvinh1234 @SchnMar @AbedElazizShe  how to change AssetEntity.file => AssetEntity.originFile ?


Portal Funneling

Sorry for the repeat post. This is the exact same as the previous PR, but I accidentally deleted the main branch (renamed it, which I was hoping wouldn't affect anything) and that also automatically deleted the PR.
Here's the demo for the feature again

I wont do funneling.. feels kinda weird, sry

Understandable


Feature/cuda arc

This change is

Reviewed 2 of 2 files at r1.
Review status: :shipit: complete! all files reviewed, all discussions resolved

Comments from Reviewable


Migrate to SDL/examples/ folder

There are now examples in the main SDL repo, so let's move to that system so it can get merged along with the API!

This is partially blocked by #13, but it's probably also helpful to know how they set up the examples boilerplate ahead of time in case we have to screw around with our existing framework.


Can't change color of Outdoor Strip Light

Hello,
today i installed my new Govee Outdoor Strip Light and tried then to use the adapter.
I can switch the light on and off, change brightness and saturation, but color settings fail.
Kind regards
Volker

I can confirm this. I've got the same issue with H6159 LED Strip. Any value set to R, G or B does not have any effect to the strip. Brightness, Turn and Saturation are fine.
Kind regards
Patrick


Use core react-apollo-hooks implementation of subscription hooks by default

This removes the need for adding importUseSubscriptionFrom since react-apollo-hooks now ships with an official implementation.

Hey, I already did that :) #1339

@FredyC haha, great minds think alike I guess. :)

Thank you @jeroenvisser101 and @FredyC !
I merged @FredyC 's PR because subscriptions is merged and now part of the react-apollo-hooks package.


How Embed Gist in Wagtail?

I added  link gist in the rich text and the sentence appears: Can not find an embed for this URL. But I looked at the support in github and got the gist in wagtail integration. What do you think it could be?

Gist doesn't support the oEmbed standard which Wagtail uses by default. You will have to use a different finder such as Embedly, or create a custom embed finder.
You can find documentation for how to do this here: https://docs.wagtail.io/en/v2.4/advanced_topics/embeds.html?highlight=embedly


when bind "click.delegate" to checkbox input element, ui will not follow the checked value, always show uncheck state

when bind "click.delegate" to checkbox input element, ui element can not follow the checked value, always show uncheck state
    <input id="toggleAll" type="checkbox" click.delegate="toggleAll();" >

if delete the code [ click.delegate="toggleAll();" ], the ui state is correct!

this usually happens when the click event toggles the state of the element before the callback toggles the state of the element. in other words, clicking an empty box checks the box, and then your function unchecks it again. can you post the contents of your toggleAll function

this should be resolved with https://github.com/aurelia/binding/pull/25

@liuyuanhuo can you confirm this issue is fixed for you?  We're wondering if we can close this or if further troubleshooting is needed.

I have a test for this issue, and the problem still exist.
click on the checkbox, the ui state always show uncheck state.
if delete the code [ click.delegate="toggleAll();" ], the ui state is correct!
I update the skeleton-navigation sample's welcome page for test.
just add the html code below to welcome.html,

      <input id="chkToggleAll" type="checkbox" click.delegate="toggleAll();" >

and the js code below to welcome.js,

  toggleAll()
  {
    //alert(`Welcome, ${this.fullName}!`);
  }

and the whole files:
welcome.html
<template>

${heading}

    <form role="form" submit.delegate="welcome()">

        First Name
        <input type="text" value.bind="firstName" class="form-control" id="fn" placeholder="first name">

        Last Name
        <input type="text" value.bind="lastName" class="form-control" id="ln" placeholder="last name">

        Full Name

${fullName | upper}

      <input id="chkToggleAll" type="checkbox" click.delegate="toggleAll();" >

      <button type="submit" class="btn btn-default">Submit</button>
    </form>

</template>

welcome.js
import {computedFrom} from 'aurelia-framework';

export class Welcome{
  heading = 'Welcome to the Aurelia Navigation App!';
  firstName = 'John';
  lastName = 'Doe';

  //Getters can't be observed with Object.observe, so they must be dirty checked.
  //However, if you tell Aurelia the dependencies, it no longer needs to dirty check the property.
  //To optimize by declaring the properties that this getter is computed from, uncomment the line below.
  //@computedFrom('firstName', 'lastName')
  get fullName(){
    return `${this.firstName} ${this.lastName}`;
  }

  welcome(){
    alert(`Welcome, ${this.fullName}!`);
  }

  toggleAll()
  {
    //alert(`Welcome, ${this.fullName}!`);
  }
}

export class UpperValueConverter {
  toView(value){
    return value && value.toUpperCase();
  }
}

@liuyuanhuo please try toggleAll() { return true; } as you need to leverage the stop propagation convention within the click handler.


Unable to access Jaeger UI even after having the ingress IP

Hi,
I am trying to setup Jaeger in my system. I followed all the instructions and everything went according to the instrcutions. But i am unable to access the UI even though the pods are all running and i have the ingress ip available as well.

I tried to logon to the UI on <IP_ADDRESS> aswell as with port 16686. <IP_ADDRESS>:16686
Nothing helps.
Please help me figure out this issue

That's strange, the UI should have been available at http://<IP_ADDRESS> . Could you try doing a port-forward and try it again? Like this:
$ kubectl port-forward deployments/simplest 16686

The UI should then be available at http://localhost:16686 .

Hi @jpkrohling
I tried port forwarding  Still not working. Browser says connection timed out.

This sounds like a networking issue between you and your Kubernetes cluster then. Are you trying it locally with minikube, or are you using a remote cluster somewhere?

I am using a remote cluster. But everything else works fine. I am able to access all the other apps deployed there (I am using dashboards like prometheus and grafana deployed there..works fine).
Thanks

I'm afraid I can't help you much further: if you can reproduce the problem with minikube, it means that I can reproduce it as well and I'll be able to help you.
In any case, could you please paste the logs here? Perhaps there's something interesting there:
$ kubectl logs deployments/simplest

Closing, not information provided

feel free to reopen if the issue is still there


[SUPPORT] two insert into operation works like upsert

Hi,
I am using Hudi 0.15.0,
In the spark-sql cli, I do  the following things. I insert two records with two insert clause, I think there will be two records（with same id）,but only one is left there, looks Hudi does upsert instead of insert here,
The default behavior of insert into is insert, so I don't understand how upsert happens here
CREATE TABLE IF NOT EXISTS hudi_cow_19 (
  a INT,
  b INT,
  c INT
)

USING hudi

tblproperties(
type='cow',
primaryKey='a',
hoodie.datasource.write.precombine.field='c',
hoodie.merge.allow.duplicate.on.inserts='true'

);

insert into hudi_cow_19 select 1,1,1;     --- insert the first record
select * from hudi_cow_19;
insert into hudi_cow_19 select 1,10,10;  --- insert the second record with same key as the first one
select * from hudi_cow_19;

@bithw1 because you set precombine field, you can set
set hoodie.combine.before.insert = false;

Eliminate the primary key definition, that is what we call a pk-less table,

@bithw1 because you set precombine field, you can set set hoodie.combine.before.insert = false;

Thanks, but it doesn't work for me..actually, hoodie.combine.before.insert is false by default.
  public static final ConfigProperty<String> COMBINE_BEFORE_INSERT = ConfigProperty
      .key("hoodie.combine.before.insert")
      .defaultValue("false")
      .markAdvanced()
      .withDocumentation("When inserted records share same key, controls whether they should be first combined (i.e de-duplicated) before"
          + " writing to storage.");

Eliminate the primary key definition, that is what we call a pk-less table,

Thanks, I tried and it works for me!
So, can i conclude that with pk definition and precombine field, insert operation will work like upsert?

@bithw1 the default value will be modified when running job if not specified.

set hoodie.combine.before.insert = false;
I have set this option explicitly per your guide，but I still see the same result(one updated record instead of two records）

@bithw1 the default value will be modified when running job if not specified.

@KnightChess I have set this option explicitly per your guide，but I still see the same result(one updated record instead of two records）

@bithw1 my mistake, the hoodie.combine.before.insert is controll the imcoming records, your insert is two sql. you can set set hoodie.spark.sql.insert.into.operation = insert for pk table too.

Thanks @KnightChess


Video checking system is heavily unreliable

As reported by @petrkucerak, the video seemingly returns a non-404 code even if it is not ready.

Upon further investigation, I checked the status HTTP status code that GitHub returns for non-existent raw files, but yep, still a 404.

Don't use GitHub to host videos, use Vimeo or YT

Ok, definitely the fault of CORS anywhere (our proxy with CORS headers), looking for an alternative.


Deal with clock drifts and use DateTime UTC for server data

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:


emoji: Convert spritesheets to webp.

This provides significant size savings:

Emoji set
png size
webp size
webp/png percent

google-blob
1968954
1373350
69.75%

twitter
2972820
2149672
72.31%

google
3455270
2327834
67.37%

Since these are the largest assets that we ship to clients, it is worth shaving off every byte we can.

Fixes:

Screenshots and screen captures:

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Files referenced from webpack should go in web/generated rather than static/generated, especially large ones so they don’t end up duplicated several times in the release tarball.

Looks plausible to me; haven't tested. @andersk feel free to merge after your review.

Merged, thanks @alexmv!


Finalize reset password workflow

[x] reset password form
[x] url to reset password with token
[x] email setup in Rock (use ResetUrl, UserLogin, and Person as the data passed to the {{Lava}} template

fixed with #242


[Question] Sending a typing activity to the user

Hi,
With v3 of the framework a new typing activity type has been added.  Does anybody have an example of how I can send this to the user when they send a message to the bot, whilst the bot is calling off to a 3rd party service to get a suitable response?
Thanks
Gary

After spending a while on this last night, as soon as I posted this I managed to get this working :)
For anybody who is interested here is the code I have used;
                var connector = new ConnectorClient(new Uri(activity.ServiceUrl));
                Activity isTypingReply = activity.CreateReply();
                isTypingReply.Type = ActivityTypes.Typing;
                await connector.Conversations.ReplyToActivityAsync(isTypingReply);

Thank you, @garypretty. Wondering, what is the way to do that in the Node.js SDK.
@Stevenic would you be kind to share your thoughts on that?

@alexsorokoletov
Node.js SDK have middleware for these purpose.
We can use it like bot.use(builder.Middleware.sendTyping())
Each time when the some data is received for bot, a typing activity will be send as a response.
After that the bot will process the message and response accordingly.

Hi @garypretty . In which part of the project is that which you shared:
var connector = new ConnectorClient(new Uri(activity.ServiceUrl));
Activity isTypingReply = activity.CreateReply();
isTypingReply.Type = ActivityTypes.Typing;
await connector.Conversations.ReplyToActivityAsync(isTypingReply);
Thank you

@alexsorokoletov
With @var23rav reference I'm able to achieve it, with this:
bot.use({
    botbuilder: function (session, next) {
        session.send(); // it doesn't work without this..
        session.sendTyping();
        next();
    }
});

but, it doesn't seem to work when I omit session.send();...


Why LDAP4J?

Hi,
just wondering why would we need this project, when Apache LDAP API is already proposing a non-blocking JAVA LDAP API for more than a decade with all the features you list, but supporting alll the LDAP operations?

See the external issues file. We've already taken a look at it.

Regarding the LdapNetworkConnection.connect()function, making it asynchronous would be a matter of hours to get it done.  But I wonder if it worths the pain: most of the time, one will use a connection pool, so the synchronous aspect of it it pretty irrelevant.
I'm not sure what the point about Integer padding? Could yo be more specific?
The Approx match implementation in Apache Directory Server is actually implemented as an Equal match for some reason: approx match is very language dependent, making it quite hard to implement. All in all, RFC states that it's up to server implementers to decide how to make it works.
You wrote "There's some integer parsing woes:", can you be a bit more specific?
Fast Bind is a AD extension, which can be implemented in both the LDAP API and the server. Actually, that would be easy in the API.
Regarding MINA, I'm not sure what's the issue with the IoSession.write function. The MINA API will just write what is required to be written, it's up to the caller to split has much data as needed (ie, you can call this function as many times you have bytes to be written). At the end of the day, the underlaying network will anyway only accept as much bytes as it can swallow, which means the write only store the data to be written in a buffer before sending what it can.
Same thing with IoSession.read(): there is no way to detect any EOF: it's protocol agnostic.It does not know how many bytes it will receive.
I have to check the other poionts you are making about MINA, you might have some valid points.
All in all, your inputs are very valuable. I wish we can collaborate in making this API a better one.
Thanks !

While looking for an LDAP client library I had two strict requirements, all operations (we want to use) must be non-blocking, and must support timeouts. This was the minimum to start testing it.
The fact that LdapNetworkConnection.connect() blocks was just an instant no-go for us. Including it in a bunch of "non-blocking" methods just add to the injuries. I know it won't block when it's already connected.
The approx match note is just a reminder, that the approx match is not too well defined, and not too well tested either, and the apache ds documentation is confusing.
No-one wants to implement a "true" approx match, so I cannot write a unit test that shows that my approx and equality filters do different things on the server.
The so called integer parsing woe goes like this. The encoding of integers in DER is tag=2, length in bytes, bytes of the value, so 7 could be encoded as $02, $01, $07, and, not so clearly, 128 could be $02, $01, $80. But servers tend to interpret this last string as -128.
To make matters worse this is not even clear to people writing the servers, as this misinterpretation is not consistent.
And to make it even worse, some servers then pad this negative value to 4 bytes, so a message with id $80, sent using the 1-byte encondig, will result in a reply with message id $ffffff80.
Sending 128 as $02, $02, $00, $80 is much more palatable for servers.
The MINA note on complete writes is just a reminder what MINA can do, compared to java NIO, which is just POSIX sockets. We have no need of partial writes at all for an LDAP client.
Please, don't fret over the external issues file too much, it's more of a remainder for us, why we did what we did, and what the known issues are so we don't have to repeat all our bumblings over and over again. It's not really a bug list.
While I'm not happy what I had to do to make MINA work with ldap4j, it works just fine now.

Interesting. To quote your last sentence, "Please, don't fret over the external issues file too much, it's more of a remainder for us", that is a very valid reason for doing what you are doing.
My point is more like we should try to collaborate, and make the LDAP API better (whether you keep going on with your effort or not is not relevant), as I do think we can improve the current implementation.
Typically, the blocking connection could be removed, but there is slightly more work to do than I thought: the fact that we wait for the connection to be completed is easy (we already use a Future for that), the main  issue is the SSL part, which also need to be asynchronous.
I would set aside the approx match as you said is not really an API issue, but rather a server side implementation thing.
Regarding the Integer parsing (beside the fact that LDAP is using BER not DER, but this is not relevant for Integers), I'm pretty sure the Apache Directory server properly deal with IDs (ie 02 01 80 is decoded as -128, not 128. The 128 integer should be encoded as 02 02 00 80). ASN.1 basic encoding rule for integers says that:

positive integers are encoded as 0bbb-bbbb bbbb-bbbb...bbbb-vvvv if the high order bit is 0, or 0000-0000 1bbb-bbbb bbbb-bbbb... if the high order bit is 1
negative integres are encoded as an absolute value, which gets 1's complemented first, then 2's encoded. So -128 is encoded as 128 (1000-000) then  0111-111 then 1000-000, ir 0x80.
So 128 is encoded 02 02 00 80 and -128 is encoded 02 01 80.

I've added a connectAsync() method in Apache LDAP API, but this is only part of the solution. What is missing:

addition of a closeListener (a method that will be called when the connection is closed, because we must send a set of Notice of Disconnect for every pending operations)
add a Binary Attribute detection (this is used to know how to deal with attribute's value, some of them being tagged as binary)
set the initial message ID counter to 0
Create a connectionCloseFuture
eventually establish the TLS layer
keep a track of the network layer.

In a non blocking connection, all of that has to be handled by the caller, which is a pain. For instance, you not only have to check that the connection has been created, but also that it has been secured, and a LDAP connection may have been secured in two ways:

plain TLS handshake
or startTLS extended operation

This is why I have doubts about the necessity of a non-blocking connection.

I've looked around following your pointers, and decided that you're right. Negative integers can be described, but are not used by LDAP. And I've fixed several bugs relating to this. Thank you.
I rewrote the section about this in the external issues, and apache ds seems to work correctly in this regard after all!
I'm not sure what I can bring to the apache ldap api table. Tls is hard.
Ldap4j can do fully non-blocking connect, starttls, and connect+tls now, but tls renegotiation and dropping the tls layer are not supported yet. Both will be a major undertaking, and they will likely brake the current abstraction.
Our tls code is implemented as a wrapper over a nonblocking-posix-socket-like interface. Would it be cheaper to port it than just rewrite it? I'm not sure... Would it even fit?

The main issue with the current Apache LDAP API async API is that you still have to wait for the result to arrive. That means polling, or blocking wait. Which is absurd. I'd like it to be based on something like an event loop, so that the user can process the response as it arrives.
The current implementation require some change, like :

either being able to pass a callback to the async function
or have a Listener associated with each operation
or use a dedicated thread for that purpose.

At this point, it would be just a layer on top of the existing API, where the Future we use would be replaced by something more like Events.
This is where I think we need to go.
Regarding TLS, there are two aspects:

either you get it set while creating the connection
or you establish it once the connection has been set
It's not really that different, the only complicated part is to be sure the underlying network API support a TLS negociation on the fly - that means being able to handle the HS when required, and deal with all the consequences regarding any potential ongoing operations in a multi-threaded env -.

In any case, HS is costly (like  a few tens of ms), and being able to handle it asynchronously is a big plus.
In any case, you should let the underlying layer deal with that (ie, MINA or NETTY or whatever).

I'm gonna close this now. Thanks for the integer tips.


HBASE-25104 The table details page on the Backup Master UI can be del…

…eted.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
4m  1s
Docker mode activated.

 Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/in-progress/precommit-patchnames for help.

Subsystem
Report/Notes

GITHUB PR
https://github.com/apache/hbase/pull/3181

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3181/1/console

versions
git=2.17.1

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m  0s
Docker mode activated.

-1 :x:
patch
0m  3s
https://github.com/apache/hbase/pull/3181 does not apply to master. Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/in-progress/precommit-patchnames for help.

Subsystem
Report/Notes

GITHUB PR
https://github.com/apache/hbase/pull/3181

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3181/1/console

versions
git=2.17.1

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m  0s
Docker mode activated.

-1 :x:
patch
0m  3s
https://github.com/apache/hbase/pull/3181 does not apply to master. Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/in-progress/precommit-patchnames for help.

Subsystem
Report/Notes

GITHUB PR
https://github.com/apache/hbase/pull/3181

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3181/1/console

versions
git=2.17.1

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.


command: 'python.setInterpreter' not found in VSCode 1.20

Environment data
VS Code version:  1.20
Python Extension version:  2018.1.0
Python Version:   3.6.4
OS and version:    Windows 10 Build 16299
Actual behavior
An error notification saying command: 'python.setInterpreter' not found appears
Expected  behavior
Trying to set the python interpreter pulls up a list of interpreter choices.
Steps to reproduce:

Install VSCode 1.20
Install Python 3.6.4
Open a python project with VSCode
Press Ctrl+Shift+P to pull up the commands and select Python: Select Interpreter

Logs
Output from Python output panel
I discovered this trying to reselect an interpreter to force the plugin to load. There is no Python output panel because the plugin has not successfully loaded.
Output from Console window (Help->Developer Tools menu)
/C:/Program Files/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:4183 Activating extension `ms-python.python` failed: Cannot find module './banner'.
R._logMessageInConsole @ /C:/Program Files/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:4183
/C:/Program Files/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:253 [Extension Host] Activating extension `ms-python.python` failed:  Cannot find module './banner'
t.log @ /C:/Program Files/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:253
/C:/Program Files/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:253 [Extension Host] Here is the error stack:  Error: Cannot find module './banner'
	at Function.Module._resolveFilename (module.js:470:15)
	at Function.Module._load (module.js:418:25)
	at Function.o._load (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:664:413)
	at Module.require (module.js:498:17)
	at require (internal/module.js:20:19)
	at Object.<anonymous> (C:\Users\viz_s\.vscode\extensions\ms-python.python-2018.1.0\out\client\extension.js:21:18)
	at Object.<anonymous> (C:\Users\viz_s\.vscode\extensions\ms-python.python-2018.1.0\out\client\extension.js:215:3)
	at Module._compile (module.js:571:32)
	at Object.Module._extensions..js (module.js:580:10)
	at Module.load (module.js:488:32)
/C:/Program Files/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:2925 command 'python.setInterpreter' not found

Please could you try to uninstall and reinstall the extension.
Looks like some files are missing.

I'd already tried that, but I just tried again. Not sure if it's the second time that fixed things, or if it's the fact that before I just reloaded the window, and this time I fully closed VSCode (I had another window open both times that wasn't using Python code). But it's working now.

Uninstalling and reinstalling the plugin fixed the issue for me

This problem happens on my system with the 2018.1 (01 Feb 2018) version:
Version 1.20.1
Commit f88bbf9137d24d36d968ea6b2911786bfe103002
Date 2018-02-13T15:34:36.336Z
Shell 1.7.9
Renderer 58.0.3029.110
Node 7.9.0
Architecture x64
The https://github.com/Microsoft/vscode-python extension is the only one enabled in my workspace for testing this.  python.startREPL and python.selectLinter give similar errors.
Python 2.7 is located C:\Python27 and Python 3.6 in C:\Program Files\Python36
Windows version is 8.1

@sj4nes

Have you tried uninstalling and reinstalling the extension?
Please disable all extensions globally and test
Have you confirmed there are no errors in your console window (Help-> Toggle Developer tools)

Aha, forgive me, I am not familiar with debugging VSCode extensions. There are some errors in the Developer console:
/C:/Program Files/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:253 [Extension Host] Activating extension `ms-python.python` failed:  Cannot find module 'untildify'
t.log @ /C:/Program Files/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:253
/C:/Program Files/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:253 [Extension Host] Here is the error stack:  Error: Cannot find module 'untildify'
	at Function.Module._resolveFilename (module.js:470:15)
	at Function.Module._load (module.js:418:25)
	at Function.o._load (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:664:413)
	at Module.require (module.js:498:17)
	at require (internal/module.js:20:19)
	at Object.<anonymous> (C:\Users\simon_000\.vscode\extensions\ms-python.python-2018.1.0\out\client\common\configSettings.js:10:19)
	at Object.<anonymous> (C:\Users\simon_000\.vscode\extensions\ms-python.python-2018.1.0\out\client\common\configSettings.js:331:3)
	at Module._compile (module.js:571:32)
	at Object.Module._extensions..js (module.js:580:10)
	at Module.load (module.js:488:32)
/C:/Program Files/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:4183 Activating extension `ms-python.python` failed: Cannot find module 'untildify'.

@sj4nes that suggests your installation is somehow being corrupted as untildify is included in the extension.

@sj4nes  here's the solution:

Have you tried uninstalling and reinstalling the extension?

Yes, I have. Currently uninstalling vs studio and reinstalling vs studio as another test.

Okay, it wasn't enough to uninstall/reinstall VSCode nor disabling all extensions except for the Python code nor uninstalling/reinstalling the Python extension.  I had to rename/delete the .vscode directory for a fresh "extensions" state.
Hope this helps others in the future.

@sj4nes This saved me.
I had VSCode Sync extension and pulled my settings and extension from a gist.
Cleaning the .vscode/ solved the problem.

I had to delete the folder inside VSCode installation folder / extensions / python
then restart it and install it again.


Proper way to send data to graphite

Hi, I started the container and the dashboard is running on http://<IP_ADDRESS> (port 80).
I am trying to create a new dashboard and feed data to it but getting stuck as I am new to graphite and graphana. Can you please help.
This is what I did so far.

Created a new datasource with URL http://localhost:8000 (Type grahite).
Created a new dashboard with query metric carbon (is it the correct thing to do ?)
Tried posting some data using the below commands but not seeing any data points on the dashboard.
echo "test.bash.stats 42 date +%s" | nc <IP_ADDRESS> 8000
echo "test.bash.stats 42 date +%s" | nc <IP_ADDRESS> 8125

Can you please help me with the proper way to setup dashboard and feed data to it.
Thanks in advance.

I have found my metrics under 'stats', e.g. 'stats.counter.my_key'.
Try 'echo "foo:1|c" | nc -u -w0 <IP_ADDRESS> 8125' and take a look at 'stats.counter.foo.count'.

If anyone is having trouble feeding data to the dashboard, be sure to use <IP_ADDRESS> instead of localhost


more refactoring and optimizations

refactor some code, add exception handling to the injector, set SSE2 cpu instruction set (league of legends needs that, so why not set it for skin changer too?)

I've never even looked at the minimum system requirements of league of legends.
Thanks!


[tool_crash] FileSystemException: Directory listing failed, OS Error: File name too long, errno = 63

Command
flutter --no-color run --machine --track-widget-creation --device-id=FFB07F54-DCB9-4564-A06D-8BA24619242A --start-paused --dart-define=flutter.inspector.structuredErrors=true lib/main.dart

Steps to Reproduce

...
...
...

Logs
FileSystemException: Directory listing failed, OS Error: File name too long, errno = 63
#0      _Directory._fillWithDirectoryListing (dart:io-patch/directory_patch.dart:42:24)
#1      _Directory.listSync (dart:io/directory_impl.dart:233:5)
#2      ForwardingDirectory.listSync (package:file/src/forwarding/forwarding_directory.dart:43:12)
#3      ForwardingDirectory.listSync (package:file/src/forwarding/forwarding_directory.dart:43:12)
#4      RunCommand.usageValues (package:flutter_tools/src/commands/run.dart:449:14)
<asynchronous suspension>
#5      FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:1423:15)
<asynchronous suspension>
#6      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1257:27)
<asynchronous suspension>
#7      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#8      CommandRunner.runCommand (package:args/command_runner.dart:209:13)
<asynchronous suspension>
#9      FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:283:9)
<asynchronous suspension>
#10     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#11     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:229:5)
<asynchronous suspension>
#12     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:64:9)
<asynchronous suspension>
#13     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#14     main (package:flutter_tools/executable.dart:91:3)

[✓] Flutter (Channel stable, 3.7.7, on macOS 13.2.1 22D68 darwin-arm64, locale en-IN)
    • Flutter version 3.7.7 on channel stable at /Users/rk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2ad6cd72c0 (3 days ago), 2023-03-08 09:41:59 -0800
    • Engine revision 1837b5be5f
    • Dart version 2.19.4
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at /Users/rk/Library/Android/sdk
    • Platform android-33, build-tools 33.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14C18
    • CocoaPods version 1.12.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] VS Code (version 1.76.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.60.0

[✓] Connected device (3 available)
    • iPhone SE (3rd generation) (mobile) • FFB07F54-DCB9-4564-A06D-8BA24619242A • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-2 (simulator)
    • macOS (desktop)                     • macos                                • darwin-arm64   • macOS 13.2.1 22D68 darwin-arm64
    • Chrome (web)                        • chrome                               • web-javascript • Google Chrome 111.0.5563.64

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Flutter Application Metadata
Type: app
Version: 1.0.0+1
Material: true
Android X: false
Module: false
Plugin: false
Android package: null
iOS bundle identifier: null
Creation channel: stable
Creation framework version: 2ad6cd72c040113b47ee9055e722606a490ef0da
Plugins
cloud_firestore-4.4.4
cloud_firestore_web-3.3.4
firebase_auth-4.2.10
firebase_auth_web-5.2.9
firebase_core-2.7.1
firebase_core_web-2.2.2
firebase_storage-11.0.15
firebase_storage_web-3.3.24

Please provide the code that causes this error

Closing this as a duplicate of https://github.com/flutter/flutter/issues/80873
Kindly subscribe to the original issue for updates.
Thank you


kaggle: init at 1.5.6

Motivation for this change
This adds the kaggle package, which can be used to interact with the API for https://www.kaggle.com/.
Note that if you try to build and run this, you will be presented with an error message like the following:
$ nix-build -A kaggle
$ ./result/bin/kaggle  --help
Traceback (most recent call last):
  File "/nix/store/5hxdnnyg76klxwwfdvh31n92mlkhkvgb-python3.8-kaggle-1.5.6/bin/.kaggle-wrapped", line 6, in <module>
    from kaggle.cli import main
  File "/nix/store/5hxdnnyg76klxwwfdvh31n92mlkhkvgb-python3.8-kaggle-1.5.6/lib/python3.8/site-packages/kaggle/__init__.py", line 23, in <module>
    api.authenticate()
  File "/nix/store/5hxdnnyg76klxwwfdvh31n92mlkhkvgb-python3.8-kaggle-1.5.6/lib/python3.8/site-packages/kaggle/api/kaggle_api_extended.py", line 147, in authenticate
    raise IOError('Could not find {}. Make sure it\'s located in'
OSError: Could not find kaggle.json. Make sure it's located in /home/user/.kaggle. Or use the environment method.

You have to actually create the ~/.kaggle/kaggle.json file as described in the README.md.
Things done

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

[ ] NixOS
[ ] macOS
[X] other Linux distributions

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

@GrahamcOfBorg build kaggle

Hmm, maybe ofborg didn't see my last command
@GrahamcOfBorg build kaggle

Hmm, maybe ofborg didn't see my last command

not sure if ofborg see's reviews, it may only apply to comments


Add icon for researchgate.net

https://www.researchgate.net

Cheers! Do you have a higher resolution version of the reference image? The G doesn't look quite right to me.
Thanks for the contribution 😁

Looks like there's a better one at https://mobile.twitter.com/ResearchGate/photo

That's a great find!
Do you have any tips for tracing the outlines? Are you using any tools?
The current version was made by importing it in inkscape and putting out two text elements 🙈 I then tried to match the font and size best I could, but it's far from perfect...

That's pretty much what I do ☺

Found an amazing tool, new file incoming 🐎
https://www.vectorizer.io/

Updated 👏

Typo in the aria label

✅

Please can you make sure the viewbox is 512x512

Hmm, either the file will be larger (because I need to introduce fractions) or quality will degrade a bit...
I tried resizing it and keeping the round nice numbers, but that doesn't look as good, you can absolutely notice...
1,079 images/svg/researchgate 512-0.svg (looks bad)
1,561 images/svg/researchgate 512-1.svg (looks good)
1,287 images/svg/researchgate 4000.svg  (looks perfect)

@edent just let me know how to proceed, happy to pick any of the files ☺

I'm travelling at the moment - and GitHub's mobile tools are crap. It has to fit in the template in the readme, and be under 1,024 bytes.

Under 1KB each!

Ah, just saw this, will try crunching it a bit more 😬

Awesome, thanks 👍


Fiverr

Title and Issue number
Fiverr clone #4047
Checklist:

[x] I have mentioned the issue number in my Pull Request.
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have created a helpful and easy to understand README.md

@khushimarothi please do not upload this image in your PR, if your project is using an image upload it somewhere in the cloud and use that image link in your project. Thanks!

Which imgs?


[feature request] minPixelRatio should be an option in tileSource

I have a tiled image that has a single zoom level. I want to be able to zoom-in up to 10 times the original image width (all tiles stitched). However, due to minPixelRatio there are certain scale values that do not display the image. I can change the minPixelRatio to a high number to fix the issue, but then there are issues when stacking this tileSource with another tileSource that does have multiple zoom levels.
I think the solution would be to allow each tileSource to specify its own minPixelRatio and fallback to viewer.minPixelRatio if not specified instead of always using the same value for all tileSources.
I don't have the time to create a demo right now, but this is part of the configuration I am using:
var tileSources = [
  {
    width: 19166,
    height: 2279,
    tileWidth: 2880,
    tileHeight: 2279,
    tileOverlap: 0,
    minLevel: 1,
    maxLevel: 1,
    getTileUrl: function(level, x, y) {
      return 'path/to/image/%col%.jpg'.replace('%col%', x);
    },
    minPixelRatio: Infinity, // it would be great if I could specify the minPixelRatio here!
  }
];

var config = {
  zoomPerScroll: 1.2,
  maxZoomPixelRatio: 10,
  tileSources: tileSources
};

When I set debug mode to true, I see the image until Size: (718.91,569.09) (viewport.getZoom() === 2.48832), then it disappears and shows up again when Size: (1489.65,1179) (viewport.getZoom() === 5.159780351999999). This is on a 1080px wide container.

Getting this right would actually be pretty tricky, because you have all these scenarios where the user is panning on a deep image and they pan off of that onto a shallow image and now the viewer has to automatically zoom them out in order to keep the constraints.
In general in OSD we try to make all actions reversible, so if you pan one way you can pan back and get back to where you started, but if a pan can trigger a zoom, that doesn't necessarily work out. The result is the user can end up not where they wanted to be.
I made an attempt at something like this in a demo here:
https://github.com/openseadragon/openseadragon/blob/master/test/demo/m2/js/main.js#L296
You can play with it here (in the fourth image along the top):
http://iangilman.com/osd/test/demo/m2/
I'm not entirely happy with the results; it's not hard to get it to behave in an unpleasant fashion.
At any rate, if someone wants to tackle this and really get it right, I'm all for it! I just don't want a half solution that ends up annoying the user by taking control away from them. Constraints, in my view, should keep the user from going off into deep space, but otherwise should feel relatively invisible.


lxc move fails

$ lxc move ubt lxd2:ubt
error: json: cannot unmarshal string into Go value of type shared.jmap

I realize that this error message isn't all that helpful for debugging, but please ask me to provide any additional information that would make this easier for you.

can you confirm both the source and target lxds are running the same version?
We did fix a few REST API mis-implementations around that code recently and the error you're getting would be consistent with your client being on an older version than the server.
lxd --version and lxc version on both machines would be useful.

I was running 0.25 and 0.20.
Thanks for catching my error.

Good to hear that was the issue.
Note that this kind of thing should only happen until we finally mark our REST API as stable, after that, we should have backward compatibility to take care of version differences like that.


[10.x] Implement getOrFail method to retrieve configuration values

The getOrFail method acts as a wrapper around config()->get() and config()->has(). This simplifies the process of retrieving configurations, and if the key does not exist, a RuntimeException will be thrown.
$value = config()->getOrFail('not-exist'); // Will throw an exception

I downvoted it because I believe it is not something the framework should offer, considering that configurations are not manipulated in favor of runtime changes by the framework, but rather by the developer, and if the developer manipulates something at runtime, it is a responsibility to ensure correct configuration definition.
What's more, it's easy to do something like:
throw_if(config()->get('non-exists') === null, new RuntimeException('...'));

Relying solely on throw_if for every configuration read isn't practical.
Using the getOrFail method helps minimize the need for debugging.

I don't think it's necessary when it comes to configuration. It's there to provide users option for their environment. But in practice, you should already have default value in-place if config doesn't exist.
Failing the whole thing because a single config key doesn't exist is a lot more frustrating than null them.

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.


Update MAINTAINERS.MD

What type of PR is this?

subproject management

What this PR does / why we need it:
Update Maintainers list with Code Owners, as Code Owners are not implicitly assumed to be Maintainers
Which issue(s) this PR fixes:
n/a
Special notes for reviewers:
n/a
Changelog input
n/a
Additional documentation
n/a

@bigludo7 I have updated this list as I've been told that this is the list where people taking technical decisions should be reflected. Code owners are for project execution.
In the next meeting we may ask other partners if they need to reflect changes in the list, as it seems very outdated compared to regular participants in meetings and Github discussions.


Fixing Tests

Removing flags that are no longer on the cloud run command
Changing the workers to use google/cloud-sdk

Manually tested this and it worked.  Currently having unrelated issues in the test project.

Manually tested this and it worked.  Currently having unrelated issues in the test project.


WebSockets bridge for WebGL in Unity

Before I start, I would like to thank you for your great effort @RevenantX .
I want to suggest the implementation of a WebSockets bridge for WebGL support. Such an implementation would use ".jslib" files on the client side (like this library or as shown in Unity's documentation). I know I'm asking for a lot, but this would allow game developers to publish multiplayer games that can run on any platform (including browsers).
This would need quite a bit of processor directives on the client side, but the important part is: it would need adding a WebSockets listener that can run in parallel with the UDP listener on the server side (treating all the clients the same way).
Doing so will make multiplayer development so much easier because a game developer would be dealing with a single codebase to make browser+standalone+mobile games.
I don't know much about the internal workings of LiteNetLib, but I can help with the development of such a feature if you are fine with that.

@Byte-Master-101 websocket is TCP. This doesn't make any sense to this library. Also i don't have time for this.

Ok. Thank you for the consideration.


ECS only reports single issue

Trying to upgrade ECS to latest again and I'm getting another really weird problem. When I run vendor/bin/ecs check I always get only a single error even though there are dozens cases of the same problem in other files. Doesn't matter if I add --clear-cache or not.

Could you share some minimal PHP snippets with minimal ecs.php? I'll try to run locally

When I use --fix it seems to fix everything like normal. However it still says it only fixed one issue even though it changed like 200 files.
 [OK] 1 error successfully fixed and no other errors found!

So I think the issue isn't in the actual checking process but rather in printing.
It would take quite a bit of time to setup some minimal repo to reproduce it. I highly suspect you'll see the same thing if you run it on one of your projects (after intentionally making an error in 2 or more files).

I haven't spotted this yet, so reproducible code is needed.

Interesting... In that case a reproducible might be difficult to create. Any idea where to look for a problem? I'd like to try debug it first.

Not sure what's the correct fix but I believe the issue is caused by this array_merge. The arrays are not simply list of errors but like $errorsAndDiffs = ['file_diffs' => (list of errors>) ]. So simple array merge seems wrong here.

As for why you didn't see it, this part of code seems to be called only when isParallel is false which is the default. I wasn't aware that ECS had parallel mode so I'm not using it but I assume you're using it everywhere. So if you set parallel to false you should be able to reproduce the problem I think.

Ah okay parallel mode has the same problem - here I think.

What I don't understand is how is it possible for you to not spot this. The bug doesn't seem conditional in any way and git blame shows it was there ever since 9.4.0. :thinking:

Maybe Symplify\PackageBuilder\Yaml\ParametersMerger would help?

No idea. It would be weird to use it here anyway. This has nothing to do with Yaml.

The namespace is wrong. It was original based for yaml merges, but it's basically merging arrays.

Hi. I am also dealing with this issue.
Here is a minimal example: https://github.com/sustmi/ecs-missing-reports-example
Steps to reproduce:

git clone https://github.com/sustmi/ecs-missing-reports-example
cd ecs-missing-reports-example
composer install
php vendor/bin/ecs check --ansi src/

What happens:
Only issue in src/Two.php is reported.
What should happen:
Issues from both src/One.php and src/Two.php should be reported.
Also, try running php vendor/bin/ecs check --ansi src/ --fix and you will see that only the issue from src/Two.php is reported but git diff shows that both issues were fixed.

And I think that @enumag is right in https://github.com/symplify/symplify/issues/3467#issuecomment-893394465 .
Basically, I can see the following operation:
$errorsAndDiffs = ['file_diffs' => [new Datetime('2021-08-05 01:00:00')]];
$currentErrorsAndDiffs = ['file_diffs' => [new Datetime('2021-08-05 02:00:00')]];

$errorsAndDiffs = \array_merge($errorsAndDiffs, $currentErrorsAndDiffs);

var_dump($errorsAndDiffs);

I guess that the expected output is:
array(1) {
  ["file_diffs"]=>
  array(2) {
    [0]=>
    object(DateTime)#1 (3) {
      ["date"]=>
      string(26) "2021-08-05 01:00:00.000000"
      ["timezone_type"]=>
      int(3)
      ["timezone"]=>
      string(10) "US/Pacific"
    }
    [1]=>
    object(DateTime)#3 (3) {
      ["date"]=>
      string(26) "2021-08-05 02:00:00.000000"
      ["timezone_type"]=>
      int(3)
      ["timezone"]=>
      string(10) "US/Pacific"
    }
  }
};

but because of how array_merge() works, it is actually:
array(1) {
  ["file_diffs"]=>
  array(1) {
    [0]=>
    object(DateTime)#2 (3) {
      ["date"]=>
      string(26) "2021-08-05 02:00:00.000000"
      ["timezone_type"]=>
      int(3)
      ["timezone"]=>
      string(10) "US/Pacific"
    }
  }
}

Here is runnable example in sandbox: http://sandbox.onlinephpfunctions.com/code/98ef11644b0cad0637cf1b97f5f1f3f78fbb3e79

Would this help?
https://github.com/symplify/symplify/issues/3467#issuecomment-893550880

I checked the implementation of ParametersMerger and yeah I think it might. I can't test it today though. Also I have no idea whether to use merge or mergeWithCombine.

After consideration I think merge makes more sense here. PR #3472.

@sustmi Had to close the PR. Feel free to try yourself.

@enumag I've fixed CI issues in your PR.
@TomasVotruba Hope it will close this issue.

@TomasVotruba I've tested it on my local, seems works as expected.
So, waiting for the release, thank you!

Released in https://github.com/symplify/symplify/releases/tag/9.4.27

9.4.27 was released earlier today before the fix was merged. It isn't in the release.

I see, my bad. Let me fix that :)

https://github.com/symplify/symplify/releases/tag/9.4.28
ECS will be build in ~5 mins

Thanks! 🎉


Fixes #78: Links and parentheses don't work well together

Summary:

we count the number of opening and closing parentheses in the link
if we have more closing parentheses than opening parentheses
AND if there are closing parentheses at the end of the link, we assume they should originally have been outside of the link and be part of the regular text

This seems to work well in practice: Almost all links with parentheses have them balanced (e.g. wikipedia links), and links surrounded by () now work correctly as well

Thank you for your contribution :) I'm closing this pr in favour of #90, which contains your commits and some small tweaks from my side.


Documentation on Gutters in the XY Grid doesn't mention the y-axis

Description

Documentation on Gutters in the XY Grid (https://foundation.zurb.com/sites/docs/xy-grid.html#gutters) describes how you can adjust the margin or padding in the x-axis. However, it doesn't explicitly mention there are also classes for adjusting margin/padding in the y-axis too.
Possible Solution

Mention .grid-margin-y and .grid-padding-y in the documentation.
Checklist

[x] I have read and follow the CONTRIBUTING.md document.
[x] here are no other issues similar to this one.
[x] The issue title and template are correctly filled.

Hi @stuart897 👋,
See https://github.com/zurb/foundation-sites/pull/11610


Update kubectrl to newer version

The SRE's are spinning up a cluster running version 1.6.3. The plan is to move all clusters to this version. We will need to update the kubectl and to test against the 1.6.3 cluster.
@InVisionApp/engineering-velocity

Running this on testing for a day or two.

I will push this out on Monday. 😀

Had to rollback. Did a test deploy and saw this error:

private-staging-cluster - Error running kubectl.apply('/tmp/kit-deployer/5d917152-8793-4bb3-8046-6472ebb5e96e/private-staging-cluster-testrosie-svc.yaml.json') Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply

This is where the error message comes from:
https://github.com/kubernetes/kubernetes/blob/master/pkg/kubectl/cmd/apply.go#L69
Looks like it means we need to create our resources using kubectl create --save-config (I think?).
--save-config=false: If true, the configuration of current object will be saved in its
annotation. This is useful when you want to perform kubectl apply on this object in the future.

I'm not sure how we retro-apply this... 🤔

@wincus We found an issue with this and are looking into a fix.

thanks @c1freitas for taking care of it! Hope is not a big time consumer! let me know if there is anything we can help with!

I did some research/testing on this issue. This is only a warning and the apply command works fine. There is a work around to disable this warning documented as part of this issue:  https://github.com/kubernetes/kubernetes/issues/25241#issuecomment-217599165
This involves patching the resource to include the configuration information.
However, in testing this with v1.7.0 and v1.6.4 against clusters running 1.4.2 and 1.6.1 This is only a warning and running the apply command updates the config annotation correctly so that subsequent deployments via apply do not generate this warning.

Great work, @c1freitas. That's great news.

The SRE team is getting the v7 namespace ready for production starting next week. Before they can do that, they'll need this change to get in. Sounds like we're good to test, just an FYI.

I was planning to wait to merge the PR until after fast-rollbacks is out. That could push it to Friday or next week. Is that ok @brianhall ?

Totally (and I should have noted that here). That'll still make it possible for us to merge this in this week, just after fast rollbacks are launched.

We have this deployed to testing and will monitor it there to see if the deploy error rates increase over the next few days. If all is good we will release to production.

I couldn't go directly by the deploy failure count on testing as it continuously has a lot of failed deploys as a lot of testing environments are not configured yet.
However, I've reviewed the testing logs of kit-server and I don't see any errors related to the --save-config flag. So I'm deeming this safe to deploy to staging/production.

This is now closed with #92 and InVisionApp/kit-server/pull/172


[Feature]

Summary
A clear and concise description of what the problem is, and what you solution you want.
Changes
What changes this feature would introduce. Any risks these changes involve. Any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

This was hacked to my phone by way of Bluetooth and the corrupted my router


Docker images and GHA for publishing images

This PR is a reopening of #1888 and still contains some of the issues discussed on that PR. If someone wants to tackle some of those issues (whether actually using this branch or just taking inspiration -- either way is fine with me!), I'd be happy to see this fixed up and working.
cc @WadeBarnes @swcurran

It looks like there are still some bugs to workout with the images published with the workflows that are triggered by a release. The images are still getting overwritten, as they are not getting tagged with the python version or -indy tag.
References:

https://github.com/WadeBarnes/aries-cloudagent-python/actions/runs/3743057801
https://github.com/WadeBarnes/aries-cloudagent-python/actions/runs/3743058781
https://github.com/WadeBarnes/aries-cloudagent-python/actions/runs/3743062864
https://github.com/WadeBarnes/aries-cloudagent-python/actions/runs/3743062872
https://github.com/WadeBarnes/aries-cloudagent-python/pkgs/container/aries-cloudagent-python/versions

Thanks @dbluhm

Tagging myself as an assignee, but others are free to help out too.

Latest commit fixes the release and workflow_dispatch triggered runs so the expected images and image tags are created.  I've also limited the builds to py3.6 (for legacy) and py3.9.  I'd consider this a good first pass an the image builds.  An enhancement would be to include the tests for each python version and gate the image creation and publishing based on the tests passing.
Test runs of each of the workflows and triggers can be found here:

https://github.com/WadeBarnes/aries-cloudagent-python/actions/runs/3915440665
https://github.com/WadeBarnes/aries-cloudagent-python/actions/runs/3915440061
https://github.com/WadeBarnes/aries-cloudagent-python/actions/runs/3915432356
https://github.com/WadeBarnes/aries-cloudagent-python/actions/runs/3915432351

Resulting images can be found here:

https://github.com/WadeBarnes/aries-cloudagent-python/pkgs/container/aries-cloudagent-python/versions

The resulting images have not been tested yet.

Looks good!  What do the tags on the images indicate?  E.g. the tm-11 and 1.0.0-rc18?

Looks good! What do the tags on the images indicate? E.g. the tm-11 and 1.0.0-rc18?

The tm-11 tag was one I used when testing the manually triggered workflow runs.

The 1.0.0-rc18 tag is the result of creating a release to test the release triggered workflow; https://github.com/WadeBarnes/aries-cloudagent-python/releases/tag/1.0.0-rc18

The latest commits add support for mutil-platform images.  Images include support for amd64, arm64, and i386.  The ACA-Py with Indy SDK images do not support arm64 for the reasons noted in .github/workflows/publish-indy.yml

I'd say this PR is ready for review.  Once merged we should add a ticket to track the enhancement to add the gating tests as described here; https://github.com/hyperledger/aries-cloudagent-python/pull/2076#issuecomment-1382579089

Great, I'll add the ticket to track adding the tests.

Issue to track the addition of the unit tests; https://github.com/hyperledger/aries-cloudagent-python/issues/2085


Cannot escape from multiple cursors in Notebook Editor

Steps to cause the bug to occur

inside a .ipynb cell, create second cursor with alt-shift-down
press escape

Actual behavior
leaves edit mode of cell. When re-entering, still have two cursors.
Expected behavior
removes second cursor
Your Jupyter and/or Python environment
Please provide as much info as you readily know
Your Jupyter and/or Python environment

Jupyter server running: Remote
Extension version: 2020.3.71659
VS Code version: 1.42.0
OS: Linux (Ubuntu)
Virtual environment: conda

Microsoft Data Science for VS Code Engineering Team: @rchiodo, @IanMatthewHuff, @DavidKutu, @DonJayamanne, @greazer, @joyceerhl

Thanks for your feedback. This issue will likely be addressed once VS Code adds native support for editing notebooks. Please see https://github.com/microsoft/vscode/issues/91987.


Using modern cmake (version >= 3.9) allows to use the library as submodule

It is based on https://github.com/pablospe/cmake-example-library.
Also see the building scripts: build_linux.sh, build_win.sh, build_ninja.sh
Another feature now it is possible to use the version number:
 project(PoseLib VERSION 1.0.0)
The library will generated POSELIB_DEBUG if it is in Debug mode, it is possible to print the status of the library (version + building type), this is been used in the benchmark (in the end of the report):
poselib_print_version(void)

This is related to issue #1


Fix long dashboard loading

Fix the loading time of dashboard by changing the data to a callback. So the page loads quick, and the data can load in the background

#35


Authrep does not seem to report

I have installed the plugin in my project trying to use authrep to authorize and report.
Authorize part works great, but the reporting is not shown in my analytics dashboard.

client.authrep({ app_id: "APP_ID",
                 app_key: "APP_KEY" }, function(response){
          if(response.is_success()) {
               console.log("works")
          } else {
              throw new Error("not authorized " + response.error_message);
          }
        });

@picsoung you need to pass the usage as a parameter in the following way:
client.authrep({ app_id: "APP_ID",
                 app_key: "APP_KEY"
                 usage: { hits: 1 }}, function(response){
          if(response.is_success()) {
               console.log("works")
          } else {
              throw new Error("not authorized " + response.error_message);
          }
        });

We should probably add a default usage of "hits: 1" when the usage object is not included in the parameters, especially considering that the other libraries are already doing it:
(https://github.com/3scale/3scale_ws_api_for_python/blob/master/ThreeScalePY.py#L173)


Update master to v1.3.0

[1.3.0] - 2020-03-03
Added

Implemented base64analyzer, which matches if a found base64 string decodes to valid ascii (b535781)
Implemented IrcAction - the previous implementation was not working (546b87f)

Changed

SaveFileAction now got a parameter to set the file ending and a template (c3d75f7)

Fixed

Analyzers now check if a passed action is a subclass of BasicAction, which prevents issues such as #175
The DiscordAction now also uses the templating engine - it was forgotten in a previous update (#176)
The SaveFileAction does now store each paste in a different file as it should be (#179)
The IrcAction did not send the correct data. This was fixed and eventually the action was rewritten from scratch (see "Added")

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 5

Complexity increasing per file
==============================
- pastepwn/analyzers/base64asciianalyzer.py  5
- pastepwn/actions/ircaction.py  9
- pastepwn/actions/tests/savefileaction_test.py  3
- pastepwn/errors/errors.py  1
- pastepwn/actions/savefileaction.py  2

Complexity decreasing per file
==============================
+ pastepwn/actions/discordaction.py  -1

See the complete overview on Codacy

Pull Request Test Coverage Report for Build 366

279 of 375 (74.4%)  changed or added relevant lines in 20 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.3%) to 80.121%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pastepwn/actions/tests/savefileaction_test.py
55
56
98.21%

pastepwn/analyzers/tests/base64asciianalyzer_test.py
81
82
98.78%

pastepwn/core/tests/paste_test.py
2
3
66.67%

pastepwn/errors/errors.py
7
8
87.5%

pastepwn/actions/discordaction.py
2
4
50.0%

pastepwn/analyzers/base64asciianalyzer.py
22
24
91.67%

pastepwn/actions/ircaction.py
18
106
16.98%

Files with Coverage Reduction
New Missed Lines
%

pastepwn/actions/ircaction.py
1
20.34%

Totals

Change from base Build 345:
-0.3%

Covered Lines:
3055

Relevant Lines:
3813

💛  - Coveralls

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 2

Complexity increasing per file
==============================
- pastepwn/actions/tests/discordaction_test.py  4
- pastepwn/analyzers/base64asciianalyzer.py  5
- pastepwn/actions/ircaction.py  9
- pastepwn/actions/savefileaction.py  2
- pastepwn/errors/tests/errors_test.py  1
- pastepwn/actions/tests/savefileaction_test.py  3
- pastepwn/errors/errors.py  1

Complexity decreasing per file
==============================
+ pastepwn/actions/discordaction.py  -1

Clones added
============
- pastepwn/actions/tests/discordaction_test.py  3
- pastepwn/actions/tests/savefileaction_test.py  1

See the complete overview on Codacy


DramaCool and AsianLoad won't download

Source information and language
Dramacool - 13.24 Asianload - 13.18
Steps to reproduce

Choose a video from one of the above extension
Select download
It never goes above 0%

Expected behavior
Videos should download.
Actual behavior
It doesn't go above zero and doesn't download.
Aniyomi version
<IP_ADDRESS>
Android version
Android 12
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
[X] I have written a short but informative title.
[X] I have updated the app to version 0.13.5.
[X] I have updated all installed extensions.
[X] I have tried the troubleshooting guide.
[X] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I will fill out all of the requested information in this form.

Experienced the same issue.
Also, linking an older thread here:

https://github.com/jmir1/aniyomi-extensions/issues/576

Closed as multiple bug reports were made. Please make a separate issue for each bug, if still applicable.


Make producing .deb files reproducible

We currently build .deb files using dotnet-deb-tool, which comes from myget. We don't have the source code for this tool.
This moves the scripts from the dotnet-deb-tool 2.0.0 package into this repo.
Fix #887
Adding @Eilon for review since this copies source code from dotnet (repo unknown, which is the problem) into this repo. I've only done a straight copy, including copyright headers which say "MIT License".

Let's go ahead and add a new file called exactly THIRD-PARTY-NOTICES to the root of this repo (as part of this PR), with exactly these contents:
.NET Core uses third-party libraries or other resources that may be
distributed under licenses different than the .NET Core software.

In the event that we accidentally failed to list a required notice, please
bring it to our attention. Post an issue or email us:

<EMAIL_ADDRESS>
The attached notices are provided for information only.

License notice for dotnet-deb-tool
------------------------------------

The MIT License (MIT)

Copyright (c) .NET Foundation and Contributors

All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

I'd imagine this should be part of the common toolset used by us and the dotnet team. Are we sure we want to maintain it in our repo? Is this temporary before we consolidate?

This may be a good candidate for Arcade. I see the version of this code used in a few other places has drifted from what we depend on, so I'm not sure if that's going to be easy or not. If we can consolidate to a tool with other teams, then I'm all for it.
In the meantime, I want to commit these scripts to our source so we can produce builds without a magic package from myget feed (which has gone missing at least once.)

:up: :date:

Filed https://github.com/dotnet/arcade/issues/912 to follow-up on this.


PowerToys Version 0.13.0 Crashes with the Shortcut Guide

Every time that I try to push the Windows key to bring up the Guide, nothing shows up, until released.  It will then open the Start Menu.  After this, the Power Toys Icon leaves the desktop Shortcuts (or running programs section).  The Power Tools settings menu then can only be opened with an opening of the actual Program Files Startup menu icon.  I have not tried the other "Toys",  but this is a disappointing start to what I though might be very fun and cool.
Andy.

Hi @andrasvancsa,
can you provide some more information:

what version of Windows 10 are you running? (you can run the winver command from the taskbar search box to check the exact version)
did you install PowerToys downloading the .msi from Github or did you use other means like chocolately or scoop?
thanks.

Thank you for such a quick reply.
1: Windows Version
Version 1903 (OS Build 19013.02)
2: I got the .msi from GitHub.
Andras Vancsa

Can you try uninstalling 0.13.0 and then install 0.12.0?
If it still doesn't work, uninstall 0.12.0 and try 0.11.0
I would like to understand if the problem is depending on the specific version of PowerToys or not.
Thank you.

@andrasvancsa another good question is do you have any other things installed that may be causing a conflict?

@andrasvancsa have you tried the adjustments?  we don't to repro this.  I'm going to close this out and label need author feedback.


Add custom 3d part models

I modified some of KDY's parts to improve joint stability for the shoulder joint (in the original model, it is supported only on one side of it's axis). This issue is to add my custom parts (or links to them on thingverse) and some description of how to print them, and additional hardware required.

Does cls6336hv files have solved this issue (in the original model, it is supported only on one side of it's axis)

Wondering if you can also share the plate with the screw placements for the Rpi. thanks heaps!

Just merged in a updated readme that has thingverse links to my custom shoulder assembly parts, as well as RPi and servo board platforms I created.


Missed add button

We should add test create button in the profile page.
We can add it to top left corner on the page. The page can open with animation.
But I have a concern. A user might not figure out this.

New design will come for this

Is this issue done, or waiting for the design?

Waiting design


Tabs snap back when trying to put into fancy zones.

ℹ Computer information

PowerToys version: V0.31.2
PowerToy Utility: FancyZones
Running PowerToys as Admin: Yes
Windows build number: 19042.804

📝 Provide detailed reproduction steps (if any)

Open multiple tabs in Google Chrome.
Grab one tab out and move to another fancyzones location.
Press shift to open fancy zones

✔ Expected result
What is the expected result of the above steps?
I should see the fancy zones and be able to place the tab
❌ Actual result
What is the actual result of the above steps?
The tab snaps back next to the other tab and fancyzones is not activated
📷 Screenshots
Are there any useful screenshots? WinKey+Shift+S and then just paste them directly into the form

@BenRemer
it's not a FZ bug, is a Chrome bug. Even when FZ is not running, pressing any key while dragging a tab will reset it.
Closing as duplicate of https://github.com/microsoft/PowerToys/issues/2898


Fixed NotificationAndroidCrontab fromMap mapping

NotificationAndroidCrontab().fromMap returned null even when a valid map was passed
changes:
crontab is String not DateTime (so changed a Type while extracting value)
re-thrown a error rather than supressing

Thank you so much for your help @itsmeabhi12 and welcome aboard!


Adding mobile overlay directive and mobile detection

If a user is on any mobile device, they will see this splash screen. They can dismiss it, or the 'learn more' button will take them to the blog post.

@grindpattern @ParkerFleming I just added placeholder content; let me know what you'd like it to say.

:+1:


Fix docker network inconsistence

Other people tried to run the docker-compose file and came across the same problem I once faced, the three worker projects can not connect to the api project.
Resolved by adding the network declaration to each project, as I did previously.
PR this change to the upstream repository to prevent others stuck in the same scenario.

Thanks for the update ❤


Make publishing time a DB field and add publishing delay

This is an alternative implementation of #396.

As suggested in #396, move the publishing_scheduled_at field to a database field rather than adding it at query time. This saves the content-store from searching the scheduled publishing log entries on every GET request.
Add a new scheduled_publishing_delay_seconds field to allow publishers to check the delay without having to compare it to the updated time, which may be misleading if the document has been manually published after the scheduled publishing.

https://trello.com/c/pMHR10Rv/85-2-scheduled-publication-reporting
cc @cbaines

@cbaines I've updated the PR as you suggested - it now fetches the latest log entry rather than copying data between versions of content items.


ffplay stays open, not responding

Killing app via PyCharm has a ~50% chance of hanging :(

fixed?? cannot reproduce


Sort newest published instead of last published

This is a small wish and perhaps it would be good to hear from other IPT managers if they have a similar wish. When I have just published a new resource in the IPT I usually want to find it immediately to get the link to GBIF. To do this I need to leave the manage view and go to the resource view (Home). I then need to find the newly published dataset so I usually click the Last Publication section on Home but it (understandably) puts the last published dataset at the top. I would rather this functionality put the newest publication at the top instead of the last. I'm almost never looking for the last published dataset and instead looking for the most recent publication.

Should we include a GBIF link at the publication page?

That could be another fix. I do have other times where I'm sorting (e.g. to figure out how many datasets we've published this fiscal year) and still I want it to be newest -> last but it's ok to click twice.

No problem at all, we can do both

Done. Can be tested here UAT


Runtime Error in hellokan.ipynb

I met the same issue that appeared in the previously closed issues #117 #46 #89
File ...\pykan\kan\spline.py:135, in curve2coef(x_eval, y_eval, grid, k, device)
    133 # x_eval: (size, batch); y_eval: (size, batch); grid: (size, grid); k: scalar
    134 mat = B_batch(x_eval, grid, k, device=device).permute(0, 2, 1)
--> 135 coef = torch.linalg.lstsq(mat.to('cpu'), y_eval.unsqueeze(dim=2).to('cpu')).solution[:, :, 0]  # sometimes 'cuda' version may diverge
    136 return coef.to(device)

RuntimeError: false INTERNAL ASSERT FAILED at "...\pytorch\\pytorch\\builder\\windows\\pytorch\\aten\\src\\ATen\\native\\BatchLinearAlgebra.cpp":1540, please report a bug to PyTorch. torch.linalg.lstsq: (Batch element 0): Argument 6 has illegal value. Most certainly there is a bug in the implementation calling the backend library.

Changing the opt to 'Adam' did not solve the problem.
It seems that the driver in torch.linalg.lstsq  should be specifically claimed instead of using 'None'.
Either 'LBFGS' or 'Adam' works when I use the following if statement in curve2coef  though I don't know why.
    if device == 'cpu':
        coef = torch.linalg.lstsq(mat.to(device), y_eval.unsqueeze(dim=2).to(device),driver = 'gelsy').solution[:, :, 0]
    else:
        coef = torch.linalg.lstsq(mat.to(device), y_eval.unsqueeze(dim=2).to(device),driver = 'gels').solution[:, :, 0]  # sometimes 'cuda' version may diverge

This seems promising, I'll test it too! Can you explain the difference between driver = 'gelsy' and driver = 'gels'?
Also, probably that if block can be rewritten as
coef = torch.linalg.lstsq(mat.to(device), y_eval.unsqueeze(dim=2).to(device),driver = 'gelsy' if device == 'cpu' else 'gels').solution[:, :, 0]

Honestly, I don't know in detail. According to the torch.linalg.lstsq document, gelsy is a general QR factorization to solve least-squares using CPU. gels assumes the matrix is full rank. For cuda, gels is the only choice.
Something weird is that if the driver is set to None, as what the original code did, the driver should be automatically set to either gelsy or gels depending on the device setting. Then, the issue appears.

Well I think we can easily make a PR for this annoying bug with your suggestion (maybe just make it a oneliner as described above). If you're unsure how to do that, I'll take care of it.

Sure, please go ahead. I'm new to the GitHub collaboration. Glad this could help.


Test many MVs in e2e test

Many MV on MV deeply nested.
Many flat MV on the same table.

Isn't this covered by longevity test? 🤔

Isn't this covered by longevity test? 🤔

Yeah but longevity test takes a long time to debug. If it exists as a e2e test, we can quickly check the scenario and easily reproduce it.


Highlighting apps that have implemented elements

I love this idea! By highlighting those apps that are implementing these elements we can motivate others to jump on board! @daveajones we may want to highlight this right from the home page. Maybe a list of apps/hosts/players that have implemented at least one of the proposed tags with a link to this more detailed list?

Excellent idea.  Will do.


Extend RandomNumberGenerator to have dice roll function

New feature
Add a function to let programmers call a function to roll an N-sided die, X number of times.
See: this comment

I actually have built a fully functional dice rolling library. You can find it on NuGet.org: https://www.nuget.org/packages/d20tek-dicenotation/. Not only can you call the library to roll any sided dice, but you can also just pass in a dice notation string (like "1d20+5") and parse the string into the appropriate roll.
I wouldn't mind writing up how I implemented it, and the source code is up on: https://dev.azure.com/d20Tek/Libraries/_git/dicenotation.

@ScottLilly what do you think about this?

We chatted in Discord, but (in case anyone else is only looking at GitHub), this sounds good.
Just as a thought, do you plan to convert the package to .NET 5, when it's released? Once .NET 5 is officially released, I'd like to convert SOSCSRPG to that. It should still be able to use the NuGet package, since it's .NET Core 3.1. But that will be something we want to check on when we convert SOSCSRPG.

Sounds good. I will work on integrating it.
And yes, I plan to upgrade the DiceNotation NuGet package to new versions of .NET including 5. My library is already .NET Core 3.1.

Look good. Thanks!