Add NoUnneededFinalMethodFixer

 final class Foo {
-    final public function foo() {}
-    final protected function bar() {}
-    final private function baz() {}
+    public function foo() {}
+    protected function bar() {}
+    private function baz() {}
 }

Not sure about the rule itself.
Same way, one could say that public in public function is unneeded

Not sure about the rule itself.
Same way, one could say that public in public function is unneeded

@keradus you are right; my reasoning is:

I want a standard, be it with or without final; having final classes with half final methods and half non-final methods is nonsense

What standard should we pursue?

Well, visibility needs to be explicit because in this example:
class A {
    protected function foo() {}
}
class B extends A {
    function foo() {}
}

PHP has strictly rules about the result, but the developer could be confused by what should be the outcome (hit: B::foo() becomes public)
On the other side, final keyword in a final class has no interaction with possible parent classes and as far as I can see there is no misunderstanding of what the outcome is, that is the same with or without final.
So my choise is to raise verbosity for visibility, and to reduce verbosity for final

why raising verbosity in one place and reducing in another? this looks not consistent

Because as I said in one context it helps, in the other it doesn't.
BTW I can make it configurable if you prefer.

I agree that some enforced standard to have about this is nice.
While final methods in final class could look superfluous, they follow defensive approach:
when having final class + final methods, if one drop final from class, then he need to decide which methods he want to open as well. comparing to final only on class level - droping one final would open every method.

This is a good point.
In our business this can't happen because we adopt two harsh custom fixers:

All non-abstract classes MUST be final
All abstract classes MUST have public methods marked ad final

To reduce inheritance nightmares and increase template method pattern.
I told you this not advertise something, but to drop some thoughts about the topic.
We would never benefit from a fixer that marks methods as final in a final class.

FYI: #1389 ;)
If you go extra defensive like that, it's cool and not needed for you indeed.
But when one don't follow that approach and has only some of the class marked as final, he would benefit from it.

Knew #1389 👍 but never used because it requires an annotation to be written; I use PHP-CS-Fixer in CI to get rid of lazy developers 😸
It seems we all understood the topic, but what about the solution?
Is it ok for you to make it configurable, with default behaviour as adding the final keyword?
If yes, @julienfalque please help me to find a better fixer name, you words master 🙏

To be honest, not sure... yet ;)
I do see the value of the fixer, I find your reasoning valid in your case for sure.
On the other side, I want to promote only good, generic rules. That's the reason why we don't have option to remove public before function.
Not claiming this rule in current form is bad, don't take it like that. I just need to think a bit more about it ;)
Other opinions are welcome of course ;)

IMO this PR can be merged as is. I don't see the benefits of a defensive approach with final keyword on each method. I would not make the fixer configurable, and its name looks good to me :)

btw, if you would add it to .php_cs.dist, what will happen ?

btw, if you would add it to .php_cs.dist, what will happen ?

Nothing because the only final method here is this one, and is legitime:
https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/63661f3add3609e90e4ab8115113e189ae547bb4/src/AbstractFixer.php#L66

please add it to .php_cs.dist file

Already done

then, my other concert is still in place ;)

I'm working 🏃

@keradus can you look at the failing utest? https://travis-ci.org/FriendsOfPHP/PHP-CS-Fixer/jobs/266908788#L757 (not sure who to ping)
This PR looks good to me :)
I would however like to see a utest to be added with multiple candidates in one test/file (like <?php class A {} class B{}). Pretty sure the fixer will work correctly, but the added test will prevent regression.

you already approved a fix for that failure #2989

@SpacePossum This failure is unrelated to changes here and will be fixed by https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/2989.

Thank you @Slamdunk.


[ Feature ] Manual override for memory offsets in league-observer-tool

Almost every time a patch comes out Game memory offsets change, therefore Fairsight is down.
(For example, we have a broadcast day today and 13.6 just dropped, we can't use fairsight.)
It would be great to have a manual override option for the memory offsets in league observer tool, so that the offsets can be updated on demand without having to wait for the official update.

If you already have updated offsets, you can always submit them to Farsight directly so the observer tool automatically updates :)
A way to manually set offset version is planned for Farsight to allow TR compatibility, this should be included with it.


WIP: Thrust update 1.11.0

Thrust update 1.11.0
I have to fix one test, but until it's reveiwable.

@neon60 The earlier build fail was due to internal network issues.   @stanleytsang-amd reran the build and we're now failing on  "8 - async_transform.hip (Failed)".  We should be good with this PR after that is investigated and fixed.


stdout of Process.start has wrong encoding?

there seems to be a problem with decoding umlauts. my cli is currentling using the german language. running this will result in an unhandeled exception "FormatException: Unexpected extension byte (at offset 18)"
Future<void> main() async {
  var process = await Process.start("ping", ["<IP_ADDRESS>"], runInShell: false);

  await for (var out in process.stdout.transform(utf8.decoder)) {
    print(out);
  }
}

those are the first characters returned by stoud
  var chars = const [13, 10, 80, 105, 110, 103, 32, 119, 105, 114, 100, 32, 97, 117, 115, 103, 101, 102, 129, 104, 114, 116, 32, 102, 129, 114, 32, 56, 46, 56, 46, 56, 46, 56, 32, 109, 105, 116, 32, 51, 50, 32, 66, 121, 116, 101, 115, 32, 68, 97, 116, 101, 110, 58, 13, 10];

printing them (print(String.fromCharCodes(chars)); will result in Ping wird ausgefhrt fr <IP_ADDRESS> mit 32 Bytes Daten: while it should be Ping wird ausgeführt für <IP_ADDRESS> mit 32 Bytes Daten:
it seems the bytes returned by stdout are already in a format not being able to be decoed to utf8. i didnt find anything to specify in which format stoud should be returned.

Processes output bytes. The ping process seems to be outputting something which is not UTF-8 bytes. The way to control that is probably by setting the locale of the operating system.
That means you should not be using the UTF-8 decoder to convert those bytes to a Dart String:
I can't tell precisely which converter you should use.
The byte at offset 18 is 129, which is undefined in both Latin-1 and Windows 1252.
Maybe it's code-page 437, where 129 is "ü".
You can create a decoder for CP-437 using package:convert, as:
import 'package:convert/convert.dart' show CodePage;

final CodePage cp437 = CodePage('CP437', _cp437);

const _ascii =
    '\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f'
    '\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f'
    r''' !"#$%&'()*+,-./0123456789:;<=>?'''
    r'@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'
    '`abcdefghijklmnopqrstuvwxyz{|}~\x7f';

const _cp437 = '$_ascii'
    'ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒ'
    'áíóúñÑªº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐'
    '└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀'
    'αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■\xA0';

(This is a variant of CP-437 which has control characters, the original CP-437 had special printable characters in those positions.)
It'd probably be better to make the process see a locale that makes it print Latin-1 or UTF-8.
I do not know how to do that.

my cli uses codepage 850 which does contain the letter 'ü'
i created the cp850 like you did in your example but then i get the following error:
"UnsupportedError (Unsupported operation: This converter does not support chunked conversions: Instance of '_BmpCodePageDecoder')"
i guess setting the machine locale to english does work but limiting your program to work only with english proccess output is not ideal.
im running out of ideas and honestly dont know why exactly its not working besides that its an encoding problem....

It is a problem that there is no easy way to predict which encoding the process you start will emit. It's also hard to solve, because it's decided by that process, and Dart cannot know for certain what it will do. It can, at most, make an educated guess based on the locale settings that it can see, but there are many more code pages that might be used, than what the Dart platform libraries know about. And done programs may just do their own thing instead of using the locale. Like Dart programs, where you can decide the stdout encoding yourself.
I don't know if there is a way to set a specific locale when spawning a new process. I know you can do something using the environment on Unixes, but that may not be sufficient on Windows. And it'll definitely be different, so whatever is done is OS specific.

I'm triaging this with the idea that we should fix _BmpCodePageDecoder by implementing startChunkedConversion.
If there are other issues to fix, let's file them separately.

It should be trivial to implement chunked conversion, a one-to-one conversion means each chunk can be converted independently, using the base convert method.

I have a PR that adds that functionality here: https://github.com/dart-lang/convert/pull/91

This will be fixed in the next package:convert release.


Add basic functionality: home page, about blurb, some images

Add a home page, with 4 buttons.
Add about blurb text, that appears when "About" button is pressed and disappears when "About" button is pressed again with JavaScript "onclick" functionality.
Add 4 pictures. One random picture appears when "Picture" button is pressed, disappears when "Picture" button is pressed again, using Math libraries and JavaScript "onclick" functionality.

oh! it would be awesome if you could include a demo link or screenshots to show the changes as well


Add support for region eu-central-1

Update AWS-SDK library (aws-java-sdk) to version 1.8.11. This is the latest
1.8.x release, which includes support for the new region
Add EU_CENTRAL_1 to Region, with SimpleDB disabled (SDB isn't deployed in
eu-central-1)
Add a Boolean field to Region to disable SimpleDB caching/access, and hack
short-circuits in into AwsSimpleDbService to keep it from trying to make
calls to the non-existant API endpoint.

asgard-pull-requests #490 FAILURE
Looks like there's a problem with this pull request

anyone planning to merge this PULL request? Unfortunately I get a 404 for the cloudbees failure notice above

asgard-pull-requests #526 FAILURE
Looks like there's a problem with this pull request


When I run the AI model on ZU104, how can I perform model performance analysis with B1152？

Do I need to specify the core type of the DPU during model compilation？If so, how do I change the compiled code？

Hi @tensorflowt
Before you start to evaluate the DPU with B1152, you have to design and integrate DPU IP in your system first.  You can refer to https://github.com/Xilinx/Vitis-AI/tree/master/DPU-TRD to do this. Note that the DPU IP in the official release system is B4096 not B1152.
During you design the DPU IP, you will get HWH file which is needed by DLet tool.
https://github.com/Xilinx/Vitis-AI/tree/master/DPU-TRD/prj/Vitis#522-get-hwh-file
Then use DLet tool to generate the new ZCU104.dcf file which is used by vai_c_caffe.
So back to your question, you just need to update the ZCU104.dcf file.
The following link will also help you to move on.
https://www.xilinx.com/html_docs/vitis_ai/1_2/gjp1592545687662.html

Hi @tensorflowt
Since we haven't received your reply for a long time, I'm going to close this issue. If you still have any questions, please feel free to reopen it. Thank you very much.


Ubuntu 18.04 LTD support

hi guys, any chance of getting 18.04 LTS (bionic) support?
When I look into the script code I don't see any contraindications why this won't work if Xenial is supported.

I also tried installing on 18.04 but had no luck. I'll have to look into the script myself to see if this can be circumvented


Issue organization

Moved this to the wiki - feel free to edit and adjust:
https://github.com/istio-ecosystem/istio-installer/wiki/Issue-organization


chore: move modules to its own file

Just move the modules to different files, easier to find where the source code was for the given module.

Yay! 🎉

I'm not against this change, but it'll have to be coordinated to not cause too many conflicts. Let's reopen this open once we cleanup open PRs 💪


[DO-248] Fix very long filenames breaking the tree layout

From SyncLinear.com | DO-248

This has been fixed by using "truncate" in the filename.


Feature request: Deselect via the dropdown

When using a multiple select dropdown with the remove-selected option set to false, the selected options in the dropdown list should be clickable and deselect their value, instead of being disabled. This is the same behaviour as in the original select2, see https://select2.github.io/examples.html (Multiple select boxes).

Can you rephrase as an feature request please?

Did you work on this? I need this feature as well and hacked my way around it by setting "isTag=true" for each choice (this avoids disabling, you can select it multiple times now) and removing an item if it is selected for the second time (in the "on-select" callback, you can inject $selectMultiple and call $selectMultiple.removeChoice for both).
But that's a hack I would like to get rid of soon. It also produces a flickering since the item appears a second time and is removed immediately.
So is there any progress on this feature?

@AndreasIllg feel free to submit a PR for this feature 😃


Fix own tracks mobile beacon race condition

Closes https://github.com/balloob/home-assistant/issues/1273
This PR fixes two issues in ibeacons.
There was a missing lock that could cause region entry and exit to update incorrectly, and there was also an issue that wouldn't handle multiple entries (which shouldn't generally happen unless device connections are lost - but should be handless).

Looks good :dolphin: . Can you add a test to verify that your fix is working?


Multi-server language extension won't build, due to tasks.json issue

When trying to build the lsp-multi-server-example in VS Code, the following messages appear:
Couldn't resolve dependent task 'watch:client' in workspace folder 'lsp-multi-server-sample'
Couldn't resolve dependent task 'watch:server' in workspace folder 'lsp-multi-server-sample'

This appears to be because watch:client and watch:server in vscode-extension-samples/lsp-multi-server-sample/.vscode/tasks.json were changed to npm tasks instead of shell tasks, which changes the signature to npm: watch:client and npm: watch:server.

See my comment in the PR.

@dbaeumer this sounds like the issue I was seeing when trying to run from a multi-root folder, can you merge the PR?

@bpasero I think you were affected by a task bug I introduced this morning. But did the change in the tasks.json to make this work.


Fix HTTP commands for restart and replace

Lgtm.

@mesosphere-ci: retest this please

Duplicated by: https://github.com/mesosphere/dcos-cassandra-service/pull/263

LGTM as well.


Add a diagram with the cache architecture

Add a diagram showing the 2 main concepts behind the cache architecture:

inter process lock using a file lock -> ensures that only 1 process can access the cache store at a time
actual cache store is: DPAPI encrypted file on Win, KeyChain on Mac, KeyRing on Linux
a file event watcher is used to be able to generate a CacheChanged event. The CacheChange event reloads the cache and so it is able to figure out which accounts were added and which were deleted
on Mac and Linux, we don't keep the cache in a file, so a dummy file is used to be able to make it work with the file watcher.

Hopefully this sheds some light on how the extension does caching.


Support for Amazon Linux 2 (2017.12)

This mini utility to change elements of Amazon Linux is perfect for Packer bootstrapping to create a custom AMI without configuration management tools.
Although there are some major changes in Amazon Linux 2, this utility can still cover most of the changes without much alteration. On an initial run (against the latest Amazon Linux 2 AMI - amzn2-ami-hvm-2<IP_ADDRESS>80509-x86_64-*), these things broke...

Chrony service would not enable (removal of init.d in Amazon Linux 2)
Applying the fstab configuration would break the new AMI from bootstrapping (root locked error message)

[I have a solution to allow this python application to work for Amazon Linux 2 - I'll generate a diff against my fork and create a pull request]

I've created a pull request here that includes these changes...
https://github.com/nozaq/amazon-linux-cis/pull/10

@mtunstill
Thank you for fixing issues on Amazon Linux 2 (and a typo as well :p)! I'll check if these changes are compatible on both Amazon Linux 1 & 2.
As you mentioned, Amazon Linux 2 introduced a lot of changes including systemd support. I'm gonna spend some time for complete support.

The fixes might not be 100%, but it gets it through. I'm very likely to be contributing to this repo as this is great for setups without a config management tool.

Is there any update on this issue since this seems to be a great little util if it is made compatible for AL2..


Can't set white rank

I can't seem to set the white rank. While I haven't really tried to understand the code, there's a typo in InfoDrawer.js that's probably related, "whiteRanke" instead of "whiteRank".

Good catch!


[BUG]  Cannot create container for service connector

I can not start the docker image of the connector
To Reproduce
(mongo db is already running, config file is mounted as described on https://enmeshed.eu/integrate/connector-installation)
docker-compose up connector

Expected behavior
A container starting, possibly showing errors in the config file or just success
Screenshots
mongodb is up-to-date
Creating connector ... error

ERROR: for connector  Cannot create container for service connector: No command specified

ERROR: for connector  Cannot create container for service connector: No command specified
ERROR: Encountered errors while bringing up the project.

Environment
docker vm

Hello, please provide your compose file.

version: "3.7"

services:
  connector:
    container_name: connector
    image: ghcr.io/nmshd/connector:2.1.2
    environment:
      CUSTOM_CONFIG_LOCATION: "/config.json"
    ports:
      - 8081:80
    volumes:
      - ./config.json:/config.json:RO
      - ./logs:/usr/app/logs
    depends_on:
      - mongodb
    restart: always

  mongodb:
    container_name: mongodb
    image: mongo:4.4.6
    environment:
      MONGO_INITDB_ROOT_USERNAME: mongo
      MONGO_INITDB_ROOT_PASSWORD: #########
    volumes:
      - mongodb_data:/data/db
    restart: always

volumes:
  mongodb_data:

I can not reproduce it.
It shouldn't be necessary because we are providing an entrypoint, but you can try to add command: node ./dist/index.js on the same level as container_name: connector.
Additional you should check your docker and compose installation.
What versions are you using? Check using docker version and docker compose version (or docker-compose version for compose v1, but we only support compose v2).

Hy, I figured out the problem. i did docker import instead of docker load (had to do that because of restricted net access).
So now that I have the correct image everything started smoothly. Thank you for the support and please excuse the problem located on my side!

No problem, glad you found the solution.


Implement Ctrl+Enter shortcut to save changes

It would be handy to have.

The shortcut CTRL + S is not enough? Press ? to see all shortcuts.

Thanks for the heads-up. It would be nice to have it as ctrl+enter as so many applications already use it as such (including Github).

This was #4234 and #7108 , which I rejected because I was concerned about people uploading their changes accidentally before they finished writing their changeset comment.

I agree with the prior assessments that this probably isn't worth the risk. Actions in an app like iD should be hard to do by accident and/or easy to undo. Since uploading is hard to undo, it should be as deliberate as possible.
Keyboard users can pretty easily use tab navigation to focus and press the Upload button without using a mouse.


Air Conditioner Samsung AR12RSFPAGMNER

Please help adding support for my air conditioner Samsung AR12RSFPAGMNER with Xiaomi remove.
Home Assistant 0.114.4
SmartIR 1.12.0
It is not a bug, it is a request for help with adding my Air conditioner codes to SmartIR.
I tried to teach my Xiaomi IR Remote commands from AC remote control, but each time I teach it anything, it records a different command. If I try to send any learnt command back my AC completely ignores it.
I know there is a configuration for Samsung (1401) which may work with my AC, but it is for Broadlink IR, but I have Xiaomi. Is there a way to convert Broadcom codes to Xiaomi codes?
May be someone will advise my how to record commands from my remote control so Xiaomi will play it back successfully.
Thanks.

Hi mate,
I've the same problem. I didn't get the AC works propertly. With others devices I don't have problems, but with the AC all the commands that I tried doesn't work.
I've tried to learn and send the learned command but it didn't works.
If we could translate the codes from broadlink that would be great; or as you said, if anyone could teach us how to learn the codes successfully.
I hope we can found an answer soon.


Going through the link with the popup opens the cursor

Bug Report 🐛

When we move our cursor forward in a line with the right arrow where one of the words is a hyperlink, the link popup opens up and the cursor jumps to the link URL input field.
Expected Behavior

The pop-up should not open up until we click on the hyperlink text. The cursor should move past the letters in the text one by one without the pop-up opening.
Current Behavior

It jumps to the URL input field as soon as the cursor touches the hyperlink text.

Steps to Reproduce

Open up Storybook => Markdown Editor
Go to the first line which has a hyperlink text with the right arrow.
As soon as the cursor touches the hyperlink text, the link pop-up would open up.

Context (Environment)

Desktop

OS: Windows 10
Browser: Chrome
Version 88.0.4324.182 (Official Build) (64-bit)

Detailed Description

Possible Implementation

@irmerk @DianaLease @Michael-Grover
I have added a PR for the issue. This might be able to resolve the issue.
Requesting a review from the maintainers.

I wonder if this is a bug or a feature :rofl:. As we can see in the source code there is an explicit if condition to show the model when the cursor is inside the link.
https://github.com/accordproject/web-components/blob/90973d4087a1505098ec43a8a9e2df92977987f8/packages/ui-markdown-editor/src/index.js#L146-L148
If we let the cursor move forward in the link body, I believe they can also change the text and it will lead to a change in the name of the link. As I can see, the maintainers wanted to only have a single source of changing the link i.e LinkModal.

web-components/packages/ui-markdown-editor/src/index.js

@jeromesimeon  I see that you made the change that introduced https://github.com/accordproject/web-components/blob/90973d4087a1505098ec43a8a9e2df92977987f8/packages/ui-markdown-editor/src/index.js#L146-L148
Do you recall why you wanted this behaviour, please?

This seems related to #114. I think this needs more investigation before moving on to a PR (#297)


Compose-beta09-crash

There seems to be in issue with the current version beta08 and new version of compose beta09
Fatal Exception: java.lang.NoSuchFieldError
No field Normal of type Landroidx/compose/ui/text/font/FontStyle; in class Landroidx/compose/ui/text/font/FontStyle; or its superclasses (declaration of 'androidx.compose.ui.text.font.FontStyle' appears in ...)

Most likely this will need to be updated to beta09 like other compose libaries.

Yes, we're in the process of updating this to Compose 1.0.0-beta09. Sorry for the delay!

It's been released: https://github.com/material-components/material-components-android-compose-theme-adapter/releases/tag/v1.0.0-beta09


serverless version (wasm)

hi,
at first 👍 for this great tool.
i refactored the code a bit and now the ast parser run at the browser. the go code is compiled to wasm and some small changes at the angular conde need to be done to make the serverless version.
if you like the idea, let me know and i prepare a PR.

@paulvollmer That's great! Cloud you send a PR?

@yuroyoro i'll send the PR, but i think you need to check and cleanup a bit more the angular app.


Depend on guard

Guard is a dependency of its plugins.

I'm sorry to say I have to reject this because of the way Minitest works - it breaks things in really, really obscure ways. In fact, the reason the dependency on Guard was removed in many places was because of Minitest.
It's maybe not intuitive, but plugins don't need to rely on Guard - they need to rely on Guard's API, not on Guard itself (since plugins don't use guard - they just inherit from Guard::Plugin).
This is why Guard::Compat was created (https://github.com/guard-compat) - it's the "Guard API" that Guard plugins "depend on". This separation allows Guard plugins to be used while developing/testing other Guard plugins.
Also, theoretically, you could use Guard plugins without Guard in some cases other than specs/tests (e.g. Rake tasks - or simply reusing the code in the plugins).
The biggest problem is that Guard plugins use inheritance - it wasn't a good design decision, but there's no sane way out of this anymore (too many plugins - Guard::Compat is the best I could do to allow moving away from inheritance in the future - without breaking existing plugins).
So, in your Gemfiles you should have:
gem 'guard-minitest'
gem 'guard'

If this is causing problems (some undefined crashes or something) - do let me know, and I'll figure something out.
Thanks!

No, the only reason for the PR was to prevent specifying both guard and guard-minitest in my Gemfile (seemed redundant and it didn't make sense to me to use the plugin without guard). I checked a few guard plugins and they all seemed to specify the dependency, but it seems there's a good reason not to do it in this case.
Thanks!

Thanks for letting me know.
Yes - the plugins will work, but the tests for those plugins could fail miserably (AFAIR - I what broke the most were plugins themselves using guard-minitest for testing - I didn't want to life harder for plugin authors).
I made the same mistake of adding back the dependency a few times until I realized what was going on.
I think it's ok for most Guard plugins to actually depend on Guard - Guard::Minitest is the exception though.
The tradeoff to making Guard a dependency of Guard::Minitest would be - no other Guard plugin could use Guard::Minitest for testing (not hard, though I think a few plugin authors would prefer to stick to Minitest anyway).
I actually migrated the Guard::Minitest Minitest tests to RSpec, because of the conflicts (shhh - don't tell any Minitest fanatics! ;) ).

If anyone is interested at fixing this, it depends on this getting done first: https://github.com/guard/guard/issues/713


[CSL-2089] Fix diffusion layer

This PR attempts to cleanup some things that became redundant after diffusion layer was merged, also it tries to fix several important bugs that were not noticed at the review stage.
At the time of writing, I've pushed two commits. One removes copy-pasted logic that was moved to the diffusion layer, but wasn't cleaned up from Block.Networking. Second fixes exception handling that violate the exceptions guideline (docs/exceptions.md). It also renames some things and removes getChainFrom (which must be implemented in a completely different way and wasn't used anywhere).
As for bugs, there are two of them:

getHashesRange is used without depthLimit in diffusion layer. This means everybody can query the whole blockchain at once, which is an easy way to attack the node. This changed wasn't discuss explicitly, so it's a bug unless it's decided to think otherwise.
More serious one: block/headers communication is broken in case of rollbacks. It was decided to move all the checks out of the diffusion layer, but one important bit was missed: classifyHeaders was returning LCA header which then was helping to form MsgGetBlocks.  Example: client has A B C D E F G H (oldest first), server has A B C D E' F' G' H', client sends checkpoints set {H G E A} and thus server wil return B..H', then the corresponding blocks will be fetched. But in fact we only need E'..H'. This comparison logic was previously made in classifyHeaders. I must also admit that there is an extra check (taking LCA in handleBlocks) that prevents client to fail when he tries to apply unexpectedly big list of blocks (with already known prefix). But facts are still left: protocol is used incorrectly, leading to non-optimal data transfer in case of forks.

@avieth Please tell your thoughts on this and let's decide what to do.
IMHO:

(1) behavior should be restored, it's easy to do so
(2) should be left as it is, because I think the protocol format will be changed to a more compact one (one request-response instead of two) anyway. Remember though, that neither cheap to increase the size of checkpoints set on the client side as it leads to slower request processing on the server side (every checkpoint must be checked).

@avieth any comments on the (2) bug?

(1) behavior should be restored, it's easy to do so

I'm not so sure. IIRC the depthLimit was in practice determined by the recovery headers limit parameter in the configuration. It was in practice 2200. This also was used to compute the size limit of MsgHeaders. Its effectiveness at mitigating a denial of service attack is modest: the attacker can just spam MsgGetHeaders requests which it knows will lead to 2200 headers in the response. Is that significantly less bad than allowing an attacker to request the whole blockchain?

any comments on the (2) bug?

I'm trying to understand it. We give the server our checkpoints and tip. Server responds with a list of hashes corresponding to a chain, where one end is in our checkpoint set, and the other is the tip we requested. We used to follow that chain to get the LCA with our chain, potentially coming up with a smaller chain to request.
Another option is to have the server do this, no? Instead of giving back all of the headers in a list it could give two hahses, oldest and newest, where the oldest lies in-between two of our checkpoints, or coincides with one of them. That's to say, the server computes the shortest chain that the client needs. Even better, the server could not respond with the two hashes, but instead with the actual shorted blockchain that the client needs.

Is that significantly less bad than allowing an attacker to request the whole blockchain?

We don't have any streaming style, which means that everything will be first load into the RAM. It means that if all the hashes in the chain are big, it's an easy way to fill up all the server RAM. I guess this is much easier attack than just spamming MsgGetBlocks (getHeaderHashes is used there), which would target lot of IO, which in turn would slow down the whole system. We use blake2b, so 256 bytes per 400k blocks (this is current chain length I believe) is 100Mb, which is huge.

where the oldest lies in-between two of our checkpoints, or coincides with one of them

How would you compute this on the server side? It doesn't have enough info about client side chain.
One more note: previously, sending headers list to client (instead of two headers as you suggest) was used to check that the server side is not trying to fool us, as we can perform pretty good headers validation. It's not that trivial to tamper, because headers have slot leaders which we already know in advance, and they also have signatures.

where the oldest lies in-between two of our checkpoints, or coincides with one of them

How would you compute this on the server side? It doesn't have enough info about client side chain.

Right indeed, it would have to give one of the actual checkpoints.
How about a newest-to-oldest approach? Server claims to have a more difficult tip than client's, so client asks for the chain from the tip, backwards. Server can stream the blocks one-at-a-time with rate controlled by the client, and client can stop as soon as it meets its existing chain.

One more note: previously, sending headers list to client (instead of two headers as you suggest) was used to check that the server side is not trying to fool us, as we can perform pretty good headers validation. It's not that trivial to tamper, because headers have slot leaders which we already know in advance, and they also have signatures.

Some checks can be done in the streaming style as well (with a bunch of state-related hazards of course). For each new block, assuming we have enough information about its epoch, we can check that it's signed by the right leader, and that the block we received before it has the appropriate hash, etc. and stop the streaming if this is ever violated.

How about a newest-to-oldest approach?

Very controversial.

We can't immediately data that we get. We also can't verify it.
It's O(n) versus O(logn) in existing approach, and I don't see any advantages. I think assuming that server side has returned correct chain (without verifying) and finding LCA on the client in the unsafe way (meaning that we can fail to find it) is faster and better.

Some checks can be done in the streaming style as well

This is not exactly true, but can be in theory. And I'd like it to be true.
What about (1)? Can we bring the check back for now and later rework this when switching to the never protocol version?

It's O(n) versus O(logn) in existing approach, and I don't see any advantages. I think assuming that server side has returned correct chain (without verifying) and finding LCA on the client in the unsafe way (meaning that we can fail to find it) is faster and better.

I don't see the linear v. logarithmic distinction. In either case, we have to transmit the same number of blocks.

What about (1)? Can we bring the check back for now and later rework this when switching to the never protocol version?

Ok I'll look into this. To be sure I understand: after requesting the headers, find the newest hash in the list such that we have that block, and then request from the next header to the tip?

I don't see the linear v. logarithmic distinction. In either case, we have to transmit the same number of blocks.

Yes, there's obviously the same number of blocks. We try to minimize the data to get [b1,bn] which we should then query. Indeed, my mistake, in your top-to-bottom solution the number of headers sent from server to client is O(n) as it is in worst case in the current solution. What we could do is to send client [c1..c2], where c1 is the newest checkpoint present on the server and c2 is the oldest checkpoint (after c1) which is not present on it. Then client can find LCA among [c1..c2]. This is still O(n) data sent, but much less (n/2 in the worst case).
Top-to-bottom solution seems fine actually, but i suggest to think about everything in a separate ticket, because we better batch all the protocol changes to make things optimal. I would also be happy to see some simplification of this two-request scheme if it's possible. What i suggest now is to take LCA between querying headers and asking for blocks, doing no checks.

after requesting the headers, find the newest hash in the list such that we have that block, and then request from the next header to the tip?

Yes, this is a correct understanding, but it's not relevant to (1). (1) is about restricting traversals. See this comment from me again (first part of it): https://github.com/input-output-hk/cardano-sl/pull/2460#issuecomment-363836042

Yes, this is a correct understanding, but it's not relevant to (1). (1) is about restricting traversals. See this comment from me again (first part of it): #2460 (comment)

Oh right, got my numbers mixed up. I was talking about 2.

Actually I believe issue 1 isn't a problem. getHeadersFromManyTo already has the recoveryHeadersMessage built-in:
let loadUpCond (headerHash -> curH) h =
        curH /= startHash && h < recoveryHeadersMessage
GS.loadHeadersUpWhile newestCheckpoint loadUpCond

@volhovm Should be fine, right?

@avieth Not really. Indeed, when server is asked about headers (given checkpoints), he returns no more than recoveryHeadersMessage. So yes, protocol works as expected next -- client queries about the same number of headers. But again, without getHeaderHashes limitation anybody can ask server to retrieve [b0..bs] , where b0 is the very first block, and bs is some block having difficulty 10^6+, and node will load everything into memory. Hashes are 256 bytes, so 10^6 hashes is about 250 Mb. That's a very easy OOM, takes malicious client just a bunch of simultaneous calls to achieve node crash.
We can later remove this limit when we switch to conduit-based streaming (which will not load all the data into memory at once).

@volhovm There's 2 listeners which load up block (header) data: get headers and get blocks.
The former will use getBlockHeaders from the logic layer, which has the depth limit built in (as I showed above) so that's fine, no attacker can make the server fill up its heap beyond some bound in this way.
Maybe the get blocks listener is vulnerable? It uses getBlockHeaders', a variant that takes two particular ends point hashes rather than a list of checkpoints. The server will get all hashes between these two points, so yes indeed we need a limit. Full logic layer uses getHeadersRange Nothing, so we have to change that. Is this what you meant?

https://github.com/input-output-hk/cardano-sl/pull/2484

Is this what you meant?

Yes, I'll fix it in this PR.

@avieth I've restored the behaviour with LCA on (2). Please review this PR again.

@avieth Check out https://github.com/input-output-hk/cardano-sl/pull/2460/commits/fb50e112c8ed5cd256e936da252737388fa7e682

@avieth I've returned back Either e res, though e is now a datatype. Can you please review this again?

@avieth I've returned back Either e res, though e is now a datatype. Can you please review this again?

Ok looking now.

@avieth https://github.com/input-output-hk/cardano-sl/pull/2460/commits/f4f926bc1d4c6390368fbc4f0df6aa60f826ab74


Network formation issue using the NRF52840-DK

problem descript

last version openwsn-nrf52840DK project can not build by segger embedded studio (have fixed the compile error if you need I can push the branch to you)
nrf52840DK can not organize network when root the mote(does not show any information while the num of ASN is growth)
port older version openwsn-fw to stm32f103 + CC1101 development board, using openv-server command and terminal show :

development environment description
hardware : stm32f103 + CC1101
I have located the error file--board_info.h. My board uses 32.768KHz clock crystal as the source clock of sctimer, below is my board_info.h context:
#define PORT_TICS_PER_MS				32     //32KHz->RTC->sctimer
#define PORT_US_PER_TICK				30
#define SCHEDULER_WAKEUP()				EXTI_GenerateSWInterrupt(EXTI_Line1);
#define SCHEDULER_ENABLE_INTERRUPT()
//======== IEEE802154E timing
#define SLOTDURATION	10       //in miliseconds
//time-slot related
#define PORT_TsSlotDuration			330  //10ms
//execution speed related
#define PORT_maxTxDataPrepare		110
#define PORT_maxRxAckPrepare		         20
#define PORT_maxRxDataPrepare		33
#define PORT_maxTxAckPrepare		        50
//radio speed related
#define PORT_delayTx						18
#define PORT_delayRx						0
// ==adaptive_sync accuracy
#define SYNC_ACCURACY						1//ticks
My source code link: https://github.com/kyh-ly/openws-fw-stm32

04-TRAN/sock.h has some error, some variable undeclared. Can not find the errno.h file
-EADDRINUSE
EAFNOSUPPORT
ENOBUFS
ENOTCONN

04-TRAN/sock.h has some error, some variable undeclared. Can not find the errno.h file
-EADDRINUSE
EAFNOSUPPORT
ENOBUFS
ENOTCONN

for that issue I recently opend a PR https://github.com/openwsn-berkeley/openwsn-fw/pull/533/files

@chris-ho @kyh-ly Going to move this to a new issue. Sorry I haven't had the time to look at your PR's. I was busy with some other projects. In the following days, I'll probably have time to merge some PRs.

@TimothyClaeys
Thanks. I have fixed the sock.c error with your reference and nrf52840-DK project builds successfully. The mote can't organize the network after I register the master mote, it stops a long time.

@TimothyClaeys @chris-ho  Hi, I have ported openwsn to stm32f103VET6+CC1101 development board, and it still can not organize network or join the network. It meets the same problem with nrf52840DK.

Hi，guys. There has some problem when I use OpenVisulizer to set up RPL server:

the root mote can not work well and the network doesn't organize.
how to transmit data between different motes.
@chris-ho @TimothyClaeys @thomaseichinger @remyleone

hardware description:
nrf52840DK
openwsn version: last version
openvisualizer: last version
reporter:kyh

Hi, guys. If anyone meets this problem when using OpenVisualizer to connect with the mote (NRF52840DK)?

@changtengfei  Even if I increase the value of wdRadioTx , the problem still occurs. I think I should analyze the duration of the TT3 and determine if there is a problem with the timer

@TimothyClaeys  Hi, I find that my CC1101 RF has a long time between finishing loading packet and start to send a packet, I think this value is the delayTx. But set a big value to delayTx the code would die in some time, and why this problem occurs and how to fix it?

@TimothyClaeys @remyleone How to add the user schedule on the openwsn

@TimothyClaeys @remyleone How to add the user schedule on the openwsn


Add Flash-socket support for Network component

This feature might be scrapped for now. Could be probably brought back, if there are cases of peopl actually needing it.


EPIC: share encoding

This is a tracking issue for all share encoding issues. Issues that represent breaking share encoding changes need to be completed prior to mainnet.

https://github.com/celestiaorg/celestia-app/issues/802
https://github.com/celestiaorg/celestia-app/issues/1105
https://github.com/celestiaorg/celestia-app/issues/1110
https://github.com/celestiaorg/celestia-app/issues/1322
https://github.com/celestiaorg/celestia-app/issues/1347
https://github.com/celestiaorg/celestia-app/issues/1443
https://github.com/celestiaorg/celestia-app/issues/1434
https://github.com/celestiaorg/celestia-app/issues/1444
https://github.com/celestiaorg/celestia-app/issues/1489
https://github.com/celestiaorg/celestia-app/issues/1490
https://github.com/celestiaorg/celestia-app/issues/1522
https://github.com/celestiaorg/celestia-app/issues/1558

@rootulp are the remaining issues here planned for mainnet?

I just updated the milestone on individual issues to reflect whether I think we should do it before mainnet or after.

FYI the share encoding issues needed for the mainnet milestone are complete. The post-mainnet issues have the "Post-mainnet" milestone so I'm going to close this epic in favor of tracking via the milestone and label "share-encoding"


Procedurally highlight "active" menu item based on current URL

At present the main menu items are highlighted based on a CSS class added to the body tag, defined in each template within a module. This is unmaintainable in the long-term and unsupportive of contrib modules. Our own code already contains mistakes attributing modules to the wrong menu through simple  copy/paste errors during development.
@gasman notes:

it looks like it's possible to find out the view function responsible for the current request, within the template: request.resolver_match.func. We could probably build a custom tag out of that

Closed by https://github.com/torchbox/wagtail/pull/1186


updated powerphotos (1.1.3)

Thank you for the contribution. It was merged directly as 20f0c70d2ba39d5d6e968d91465940d9d1c27ffb to keep commit history cleaner. Your contribution is still credited to you.


Java 10

It would be nice to have a cask for "java9" since "java" now installs Java 10.
Moreover, in my opinion, it would be better to have also a "java10" cask because I'd like to avoid a generic "java" which installs the latest one: today I risked to install Java 10 when I upgraded "java".

http://www.oracle.com/technetwork/java/eol-135779.html

Java SE 9 will be a short term release, and users should immediately transition to the next release

Having issues with java10 with kotlin koans / gradle. Unable to downgrade to java9 :(

Java 9 isn't available to download from Oracle.
http://www.oracle.com/technetwork/java/javase/overview/index.html

Java 9 has moved into the archive: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase9-3934878.html.

Can this be reopened? Despite Oracle's directive various systems/projects haven't been updated yet.
We still have java6 and java8 casks after all. There probably could be a java7 one too.
@mtneug shows where it can be downloaded from.

java7 and java9 require an Oracle account to access their downloads.


Discussion: Bad FPS

this isn’t an issue but I figured you could probably give some insight: does the bad JSON parser also explain the bad FPS despite low system resources? Switching most graphics settings (reasonably, like not maxing out your grass & water quality for example) doesn’t change the FPS, and no CPU part (in terms of usage %) shows a bottleneck.

does the bad JSON parser also explain the bad FPS

Nope, unrelated. This is just when first starting up online mode.

this isn’t an issue but I figured you could probably give some insight: does the bad JSON parser also explain the bad FPS despite low system resources? Switching most graphics settings (reasonably, like not maxing out your grass & water quality for example) doesn’t change the FPS, and no CPU part (in terms of usage %) shows a bottleneck.

@JJGadgets I've said this to some people, and they said their graphics improved somehow:
There is a file called settings.xml, which keeps your graphics settings in check. I believe, even if you change some settings ingame, it doesn't completely change all. If you backup & delete that file, you might see some improvements. You can find that file under Documents->Rockstar Games->GTAV.

@Tmp341 So you basically mean that some of the graphics settings parameters are not being written correctly after changes in main menu, so you need to delete settings file in order to make the game changes those details at all since some of them wasn't changing correctly at all in some cases?

@Tmp341 So you basically mean that some of the graphics settings parameters are not being written correctly after changes in main menu, so you need to delete settings file in order to make the game changes those details at all since some of the details weren't changing correctly at all in some cases?

That's what i'm suspecting. I belive, GTA doesn't detect all changes (and writes in the file). If you open that file with notepad, you can see lots of lines in there.


Overflow problem in IE

If you open demo with Internet Explorer and select some long address, it will overflow edges of input element.
I've tested with IE11.
Solution is to add following style to CSS.
.ui-select-match {
    overflow: hidden;
}

Going to close as a usage issue - this may not be desired CSS for everyone, or may not be a relevant fix anymore.


unison: 2.51.5 -> 2.52.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/bcpierce00/unison/releases.
meta.description for unison is: "Bidirectional file synchronizer"
meta.homepage for unison is: "https://www.cis.upenn.edu/~bcpierce/unison/"
meta.changelog for unison is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
Warning: no invocation of /nix/store/dlvvim677z2f03jki3k9r4580xp1v5wh-unison-2.52.0/bin/unison-fsmonitor had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/dlvvim677z2f03jki3k9r4580xp1v5wh-unison-2.52.0/bin/unison-2.52 had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/dlvvim677z2f03jki3k9r4580xp1v5wh-unison-2.52.0/bin/unison had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/dlvvim677z2f03jki3k9r4580xp1v5wh-unison-2.52.0/bin/.unison-2.52-wrapped had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/dlvvim677z2f03jki3k9r4580xp1v5wh-unison-2.52.0/bin/.unison-wrapped had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/dlvvim677z2f03jki3k9r4580xp1v5wh-unison-2.52.0/bin/.unison-fsmonitor-wrapped had a zero exit code or showed the expected version
0 of 6 passed binary check by having a zero exit code.
0 of 6 passed binary check by having the new version present in output.
found 2.52.0 with grep in /nix/store/dlvvim677z2f03jki3k9r4580xp1v5wh-unison-2.52.0
found 2.52.0 in filename of file in /nix/store/dlvvim677z2f03jki3k9r4580xp1v5wh-unison-2.52.0

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

2 package rebuild(s)

2 x86_64-linux rebuild(s)
2 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
unison
usync

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/dlvvim677z2f03jki3k9r4580xp1v5wh-unison-2.52.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A unison https://github.com/r-ryantm/nixpkgs/archive/2e480dc1626b6eac6ea8c5eac23094ffe568b18f.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/dlvvim677z2f03jki3k9r4580xp1v5wh-unison-2.52.0
ls -la /nix/store/dlvvim677z2f03jki3k9r4580xp1v5wh-unison-2.52.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

unison
usync

Maintainer pings
cc @viric for testing.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/465

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/464


feat!: use snake case for file names in go

Description

This MR enforces go file names to be in snake_case format. This is considered best practice in golang: https://github.com/golang/go/issues/36060
Related Issue

Checklist

[x] The code follows the project's coding standards and is properly linted (npm run lint).
[x] Tests have been added or updated to cover the changes.
[x] Documentation has been updated to reflect the changes.
[x] All tests pass successfully locally.(npm run test).

Additional Notes

/rtm


[BUG] "Handler not found for view SkiaSharp.Views.Maui.Controls.SKGLView."

Description
Target Windows Machine, get Unhandled Exception:
"Handler not found for view SkiaSharp.Views.Maui.Controls.SKGLView."
-- Other details --
.csproj targetframework: net8.0-windows10.0.19041.0
VS Community 17.9.7 on Windows 11 Home
Tested with Microsoft.Maui.Controls 8.0.40 +
SkiaSharp.Views & SkiaSharp.Views.Maui Controls:

latest stable 2.88.8, then tried

latest preview 3.0.0-preview.3.1

Did not try on earlier versions of Maui or these SkiaSharp nugets.

Before Maui, we used OpenTK.GLWpfControl with SkiaSharp.Views.WPF under .Net Framework. That older version of our app builds and runs on this PC without problems.

Code
Maui App template. Modified to add SKGLView. Removed AppShell and other unneeded stuff.
ToolmakerSteve/MauiAppWithSKGLView
        public MainPage()
        {
            InitializeComponent();

            MainThread.BeginInvokeOnMainThread(async () =>
            {
                await Task.Delay(2000);
                // UNCOMMENT these lines to test adding SKGLView in code.
                //var skv = new SKGLView() { WidthRequest = 300, HeightRequest = 300 };
                // Below line: Exception: "Handler not found for view SkiaSharp.Views.Maui.Controls.SKGLView."
                //layout.Children.Add(skv);
            });
        }

You can also share some XAML:
<ContentPage
    xmlns:sk="clr-namespace:SkiaSharp.Views.Maui.Controls;assembly=SkiaSharp.Views.Maui.Controls"
    ...

    <VerticalStackLayout x:Name="layout" Padding="30,0" Spacing="25">
        <!-- Exception: "Handler not found for view SkiaSharp.Views.Maui.Controls.SKGLView."  -->
        <sk:SKGLView WidthRequest="500" HeightRequest="300" BackgroundColor="Green" />
    </VerticalStackLayout>

Expected Behavior
A Window containing an SKGLView.
Actual Behavior
Unhandled Exception:
"Handler not found for view SkiaSharp.Views.Maui.Controls.SKGLView."
Version of SkiaSharp
Other (Please indicate in the description)
Last Known Good Version of SkiaSharp
Other (Please indicate in the description)
IDE / Editor
Visual Studio (Windows)
Platform / Operating System
Windows
Platform / Operating System Version
Windows 11 Home.
Did not test elsewhere.
Devices
No response
Relevant Screenshots
No response
Relevant Log Output
No response
Code of Conduct

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

I downloaded your sample and noticed the .UseSkiaSharp() line is missing from your MauiPRogram.cs:

I downloaded your sample and noticed the .UseSkiaSharp() line is missing from your MauiProgram.cs:

That fixes it. I completely forgot about that.
Sorry about the false alarm.

I need to put this in the docs... Not sure if there are any docs for setting up a maui with skia app.

Indeed the latest stable nuget  2.88.8 still has this problem (as we can see in the source code
https://github.com/mono/SkiaSharp/blob/release/2.88.8/source/SkiaSharp.Views.Maui/SkiaSharp.Views.Maui.Controls/AppHostBuilderExtensions.cs#L25
)
I currently had to switch the UseSkiaSharp(bool)overload  with true argument if i wanted it to work on ios with latest nuget(2.88.8) version
the doc i found on this was that:
https://learn.microsoft.com/en-us/dotnet/maui/migration/skiasharp?view=net-maui-8.0#initialize-skiasharp
(as i was migrating  from a xamarin application, this is what I naturally  found)
This thing is , i think the doc will be ok by the time you will release the next version...

@mattleibow - is there a plan to backport the Maui SKGLView fix on Windows to 2.88.x?
Updating my client from .Net Framework 4.5 to .Net 8.
We've successfully updated on iOS and Android.
(WITHOUT Maui; these are "platform native" .Net 8 apps, with GUI entirely rendered via SkiaSharp. Plus some OpenGL.)
On Windows .Net 8, SkiaSharp 2.88.8 or .9, we've got everything EXCEPT OpenGL working. Using Maui SKCanvasView.
I made a new Maui app. Added SkiaSharp 2.88.9. Remembered to do "UseSkiaSharp()". Same handler exception.
Updating to SkiaSharp <IP_ADDRESS> preview, it works.  BUT this app is used in a production situation where failures must be very rare. So I can't use anything that isn't considered a stable release.


Follow the node/terminal class is TerminalNode convention

Or do away with this altogether.

Nothing to do.


migrate status

Can you support migrate status command? just like rake db:migrate:status

It wouldn't be difficult to add, and make a great first PR for someone. ;)

Absolutely, on it already.
P.S:  I am new to Go!

https://github.com/markbates/pop/pull/66


directories with blank spaces in name  are not supported

My Environment

[x] Windows 7

[ ] Windows 8

[ ] Windows 8.1

[ ] Windows 10

[ ] Windows 10 IoT Core

[ ] Windows Server 2012

[ ] Windows Server 2012 R2

[ ] Windows Server 2016

[x] My Windows installation is non-English.

I'm using NVM4W version:1.1.7
I have already...

[x] read the README to be aware of npm gotchas & antivirus issues.
[x] reviewed the wiki to make sure my issue hasn't already been resolved.
[x] verified I'm using an account with administrative privileges.
[x] searched the issues (open and closed) to make sure this isn't a duplicate.
[x] made sure this isn't a question about how to use NVM for Windows, since gitter is used for questions and comments.

My issue is related to (check only those which apply):

[ ] settings.txt
[ ] proxy support (Have you tried version 1.1.0+?)
[ ] 32 or 64 bit support (Have you tried version 1.1.3+?)
[x] Character escaping (Have you tried version 1.1.6+?)
[ ] A standard shell environment (terminal/powershell)
[ ] A non-standard shell environment (Cmder, Hyper, Cygwin, git)

Expected Behavior
my settings.txt
root: D:\Program Files\nvm
path: d:\Program Files\nodejs

nvm itself can be installed correctly
nvm install 10.14.2 32 also runs as expected.
now i expect  nvm use 10.14.2 32 can set current node.js version to 10.14.2
Actual Behavior
when i try to run nvm use 10.14.2 32 , error occurred:

exit status 1: 'D:\Program'

Steps to reproduce the problem:

Same problem just occurred for me:
C:\>nvm root
Current Root: C:\Program Files\nvm

C:\>nvm version
1.1.7

C:\>nvm list
    13.11.0
    12.12.0
    10.19.0

When activating:
C:\>nvm use 10.19.0
exit status 1: Der Befehl "C:\Program" ist entweder falsch geschrieben oder konnte nicht gefunden werden.

Which translates: The command "C: \ Program" is either misspelled or could not be found.
I guess this is linked to the fact, that Windows uses 'Program Files' and 'Program Files (x86)'.

See https://github.com/coreybutler/nvm-windows/wiki/Common-Issues

@decherneyge thanks , i will try to reproduce this issue with 1.1.8 version when it's released

Additionally, diacritic characters are not handled properly as well, as you can see below:
C:\Users\Frédéric>nvm install latest
C:\Users\Fr�d�ric\AppData\Roaming\nvm could not be found or does not exist. Exiting.
After I set the root to use the "old" 8.3 file name (found it using dir /X), it works:
nvm root C:\Users\FRDRIC~1\AppData\Roaming\nvm
HTH

Suggestion
When installing, install to a directory that does not have spaces.
C:\dev\nvm\

That worked for me.

Resolved with https://github.com/coreybutler/nvm-windows/releases/tag/1.1.8


Tracking session in gpflow

With respect to the code in https://github.com/GPflow/GPflow/blob/develop/gpflow/conditionals.py
what is the proper way to tap the session of Xnew inside the: "@conditional.register(object, object, Kernel, object) @name_scope("conditional") def _conditional(Xnew, X, kern, f, *, full_cov=False, q_sqrt=None, white=False):" method. And how to actually view the value of Xnew in ndarray format inside _conditional method.
Though this issue is more related to gpflow, any help is highly appreciated!

I'm not sure what you mean by 'tap' in this context. In general getting tensors out the graph is a little tricky: they need to be fetched using session.run, and there's no easy way to do this without writing a custom class / conditional. NB conditional itself is called several times, so the logic of fetching the relevant tensor needs to be at the model level, not inside the conditional itself.
The predict_all_layers_full_cov is included for the purpose of getting the inner layer values. Perhaps that is helpful as a starting point?
In the future tensorflow2 (and gpflow2 https://github.com/GPflow/GPflow/pull/871) will address exactly this issue.


Upgraded rspec 2.14.2 to 2.99.0.

#159: Upgraded rspec 2.14.2 to 2.99.0. This is the last 2.x version of rspec before they went to 3.x.

This included fixing specs/tests to use new formats/conventions.

Upgraded misc gems by rebuilding Gemfile.lock file.

new PR

Sorry @jasnow , somehow I missed this

Reviewed, bundled, tests run, etc. 👍

Thanks


remove Array.from

What's Changed?
Removed Array.from method so it'll work in IE (#1662)
How To Test
Try it in IE
Notes
We could do this with a polyfill, but it's a pretty big one, so I would suggest this work around
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Polyfill

Nice work @andrewlouie :)

Nice work @andrewlouie :)


Randomize selected item volumes by X percent (mix humanizing)

From<EMAIL_ADDRESS>on October 10, 2010 06:50:25
So I've heard one of the secrets to a dynamic, 'alive' sounding mix is to automate the track volumes rather than keeping them static so the ear of the listener is consistently engaged.
This is especially important for those doing primarily loop based composition as the natural dynamics of a live performance are largely missing.
I think it would be great to be able to select all the items in a section and randomize their volumes by a user definable percent. Ideally the overall amplitude should remain fairly constant (i.e. the random volume increases should mostly cancel the volume decreases).
I hope this makes sense. :)
Cheers!
Original issue: http://code.google.com/p/sws-extension/issues/detail?id=194

@sws Can be closed because it was done as a script : https://github.com/X-Raym/REAPER-ReaScripts/blob/master/Items Properties/X-Raym_Nudge active takes volume randomly (normal distribution) with GUI.eel
Not percent, but dB based, which I think is more reliable than percentage.


Your minified version is bad

Your minified version changes all query tr to white removing the required red/green and appears to not be minified with new lines added at the start for some reason.  Your non-min version I believe when I diffed from forks doesn't even contain the offending tr.odd tr.even, so not sure if you even intended them to be there?

Please check my last commit, it explains why this is. It is an ugly patch but is needed due to the pihole team using inline css for several elements (Including the colour grading).
I plan to make pull requests to change that in the future, but my time is limited at the moment.