Add default values for query params.

Current coverage is 35.91% (diff: 100%)

Merging #153 into 2.0 will increase coverage by <.01%

@@                2.0       #153   diff @@
==========================================
  Files           225        225
  Lines         12605      12605
  Methods           0          0
  Messages          0          0
  Branches       2132       2132
==========================================
+ Hits           4526       4527     +1
+ Misses         7508       7507     -1
  Partials        571        571

Powered by Codecov. Last update 122b836...5db3905


Update API doc and deprecations

Move the functions from the global namespace to the Humbug namespace
Add missing phpdoc to make the code more self-documented and laying the path for a PHP7 upgrade where we will be able to add typehints
Try to make things private or final whenever possible

Ready for a new review

@Nyholm you might want to take a look


Fix doxygen segfault on osx

Revert to previous version of doxygen from homebrew.

Ooh, good idea!

It works! Thanks!


Remove deprecated grpc.WithInsecure

Patch initially proposed in #1148

btw, it was the lint action failing on https://github.com/inspektor-gadget/inspektor-gadget/actions/runs/3540022940/jobs/5942596388 that triggered this.


Weekly issue for week of  for week of 07/29/2022

Weekly sync body

Previous in series: #7

Next in series: #9


Party invite event never fired

Seems like only ping event gets fired, don't really know what Fortnite did in the update

Well, first time invite the event will always get fired, all invites after that are 'pings'. You can listen to both the invite and ping event to receive invites.

 BTW ping event doesn't have party id its always null

Ping messages don't contain a party ID because its not given in the original packet/message.

What is considered first time invite, as I can't make it do it consistently

So what you have to do is, you create a new party in-game you can do this by

Clicking choose gamemode
Going back into battle royale

This will create a new party, and you will receive the invite event and a ping.
Epic made it so you cannot send multiple invites so if you already invited the person once and they didn't join or decline then its still considered a pending invite.
I'm guessing ping is their way of getting around this, maybe they didn't want to change the back-end too much or something.

Your steps work but if I use an existing party and invite the user, the event doesn't get fired only the ping event. (how would i get around that) BTW why do some events get logged and some do not that's why i started the issue in the first case as it looked like everything was logged

I'm not sure what you mean by the log thing, they all should get logged if you didn't get the event then you didn't get it.
To get around the ping issue, you can get the account ID of the event and use this to get the party ID.
        resource.getPartyByAccountId(accountId).ifPresent(party -> {
           // do something
        });

^^ Let me know if that works or not, if not then I have another workaround

Tried that already, received a forbidden response

Alright, give me a minute or two here to try something

The invite event is fired on my listener but it doesn't seem to log the request or I am just overlooking it

Requests don't get logged, only if they failed and need to re-send (or there is a debug line somewhere).
To get around the ping issue you can use:
       resource.getInvites().forEach(invite -> {
            if(invite.sentById().equals(event.accountId())) {
                // do something
            }
       });

did that, empty list

Not sure then, I guess the invite either expired or got revoked? My testing shows the invite everytime I receive a ping.

That's weird, maybe i did something wrong i'll check

Hey, I found a way to resolve this problem:
You need to save partyIds sent by users on their presence packets and then reuse them when you receive a ping !
The only problem I have is when I restart the bot, he don't get thhe party presence of users which are already playing the game. Is there a way to reload the roaster like before to receive party presence of everyone at once ?

I don't think that would work if their party was private?

I'll try it but I think it still works, putting your party in private doesn't disable people to see your presence status

Well no, but it won't give you the party ID.

Also, I've never had a problem with getting party IDs, I would always get the initial invite which has the party ID and would just store it from there. So I can't help all that much since I don't have experience with this situation

Ok I just found that when you're in private, it sends an invitation and when the user is in friend or public mode, it just sends a ping.


README 2.0

This would be nice alongside of the interface 'update'.
Needs way more modern and updated usage header.
Possibly include schemas
But maybe the new README should just reflect the new UI, metadata, and schemas printed to stdout, along with the logging module changes... maybe an additional
Errors.md
should be produced to describe the various types of errors and what may trigger them. Referring to the Sphinx docstrings where appropriate to recall the TypeErrors, ValueErrors, KeyErrors etc. that may be raised.

Condense header, leave the "beta" disclaimer under the development subheader, and make usage go before install. Show the primary two workflows (prof-> matrix -> dist., and graph -> assemble) succinctly.

Also, make website links more easily accessible.

Is TOC necessary?

any subheaders missing?

maybe make subcommands headers in usage area link to their own page, with the expanded help and more detailed description?

Dramatically condense acknowledgements to just that.

usage statement details can be moved to quickstart page.

whole readme needs to feel sleek and modern

usage .gif


docs: further clarify and reinforce the performance impacts of single page apps (SPAs)

A huge portion of SvelteKit apps in the wild that are failing core web vitals are single page apps. The percentage of SvelteKit apps which pass/fail are tracked on cwvtech.report leveraging data from HTTP Archive. Some folks at Google were able to supply me with a random sample of SvelteKit sites from this dataset. While investigating the failing sites, I saw that the most common cause of failure was deployment as a SPA.

I pushed an update to the docs to recommend using a name other than index.html for the fallback. See https://github.com/sveltejs/kit/pull/11661


How to fill only 33%, but other 66% leave empty?

Greetings, commrads
I have one minor issue
I have this data columns :
	columns: [ 	    ['data1', 33], 	],
and was expecting, that c3 fill only 33% of donut, and other 66% leave white. On timeout I am loading other 33% and so on. But atm it filling 100% instead of only 33%.
How may I fix this trouble?
Thanks

The columns expect absolute values, no percentage, so 33 represent 100% of the total.
For further support enquiries, please use the Google Group at https://groups.google.com/forum/#!forum/c3js.


Gh 2000 get variables throws npe

While looking at this area of code, is there benefit in returning results from this operation which are keys mapped to null? (functionality illustrated in this test)
Is it more desirable by default to not return these results and add an option to the operation to return the mappings to null if the user desires it?

Your above comment was considered when it was implemented but users may want to use a null value (for whatever reason) and this provides a way to do this without a flag.  Also further flags makes it not possible to use nulls within JSON OperationChains using Variables (which is the final goal for these Variables tickets), again something we don't want to limit users to.

@m55624 makes sense, thanks for clarifying

@benj-fletch No problem, thanks for the contribution again :)

Codecov Report

Merging #2003 into develop will increase coverage by 0.02%.
The diff coverage is 100%.

@@              Coverage Diff              @@
##             develop    #2003      +/-   ##
=============================================
+ Coverage      66.01%   66.03%   +0.02%
  Complexity      2205     2205
=============================================
  Files            888      888
  Lines          29060    29061       +1
  Branches        3627     3628       +1
=============================================
+ Hits           19183    19190       +7
+ Misses          8391     8387       -4
+ Partials        1486     1484       -2

Impacted Files
Coverage Δ
Complexity Δ

...r/store/operation/handler/GetVariablesHandler.java
100% <100%> (ø)
0 <0> (ø)
:arrow_down:

.../gov/gchq/gaffer/store/schema/SchemaOptimiser.java
84.94% <0%> (+6.45%)
0% <0%> (ø)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update af75bf5...cfff91d. Read the comment docs.


Liveblocks 2.0 docs: DX improvements & deprecations

https://linear.app/liveblocks/issue/LB-596/document-simpler-dx

Nice! Glad we're finally removing some of these APIs! 🧹
Should we however maybe keep the documentation for these removed endpoints, so that existing links to them would still point to useful info, e.g. for users still on 0.x or 1.x?
One way we might be able to solve this is like how we do it on our REST API page, where we moved all deprecated APIs to the bottom, under the "Deprecated" section. Links to these sections would still work. And this way, people can still read the upgrade instructions.

Good idea, I've done this for the more commonly used and most recent deprecations.


The search input has an incorrect icon in Carbon X

Detailed description
The clear button shows the magnifying glass instead of x
Steps to reproduce the issue

Type something into a search field

Screenshots or code

hi @lee-chase thanks for reporting this. Can you tell me where the screenshot was pulled from?

Sorry and yes
https://next.carbondesignsystem.com/components/search/code

thanks for the clarification. It looks like the dependency the docs website is using contains this fix, so a new build probably just needs to be deployed


Make tokenization and detokenization optional

Add a flag to initialize the LLM engine to disable tokenizer.
If tokenizer is disabled, so does detokenizer.
FIX #3635
FIX #3647

Thanks for making this PR! It appears to me that unlike https://github.com/vllm-project/vllm/pull/3749 to allow detokenization as sampling param level, this PR simply disables the use of tokenizer as a whole, so I guess the two PRs can still co-exist.
We might want to be careful with all these API changes - cc @simon-mo

Ready for review.
@simon-mo
could you pls take a look?

@GeauxEric Thank you for the contribution! Could you update this branch with the changes merged in the main branch? Happy to review after the conflicts are resolved!

@GeauxEric Thank you for the contribution! Could you update this branch with the changes merged in the main branch? Happy to review after the conflicts are resolved!

conflicts resolved.

you can pass in prompt_token_ids instead of prompt to skip tokenization

Thanks for the feedback.
To better clarify the intent, I changed the the title to be Make initialization of tokenizer and detokenizer optional from Make tokenization and detokenization optional
As found in https://github.com/vllm-project/vllm/issues/3647, the code always tries to initialize tokenizer, even its API intends to make it optional.
In addition to the performance overhead, there are other concerning factors about the actual development, production and architecture.

Every user needs to prepare a vocab file to initialize tokenizer, even it is not used during the runtime. The engineering time wasted scales  with the number engineers who do not need tokenization.
The build size is much larger, as the vocab file needs to be included; the size of the vocab is huge these days.
The tokenizer/de-tok is pinned to Huggingface class and methods, forbidding users from using their own implementations, or separate tok/de-tok as micro-services.

If this make sense, I will continue to resolve the comments.

I think it's reasonable to not require a tokenizer. However, as @ywang96 alluded to vLLM currently assumes there is an eos_token_id and that it comes from the tokenizer. It's used in stopping evaluation and min_tokens logic. So we either need to also make eos token optional and handle that in those places, or require an explicit eos token id to be configured in the case that no tokenizer is configured.

The tokenizer/de-tok is pinned to Huggingface class and methods, forbidding users from using their own implementations, or separate tok/de-tok as micro-services.

As @ywang96 said, the last part of this isn't really true, since prompt_token_ids along with detokenize=False can be used in requests to allow tok/de-tok to be handled in another layer.

So we either need to also make eos token optional and handle that in those places, or require an explicit eos token id to be configured in the case that no tokenizer is configured.

This is not needed, because user can provide the eos token ids in the sampling parameter.

So we either need to also make eos token optional and handle that in those places, or require an explicit eos token id to be configured in the case that no tokenizer is configured.

This is not needed, because user can provide the eos token ids in the sampling parameter.

True, but it would be to retain the existing behaviour of stopping at EOS by default. Agree though that it's probably fine to not have this.

Maybe others can help take a look? @simon-mo?

Could you please take another look and consider merging/approving it when you have a moment?


sql parsing issue.

I am trying to parse the below sql its throwing the parse exception.
Select 50ofcourses From tableName Group by 50ofcourses
As it contains the number in the column name of group by section. could you please provide the fix for it ASAP or is there any alternative solution for this ?

The problem is the numbers at the start. test50 does work well. Column names like yours have to be quoted "50test".
IMHO it is non standard to allow your column name.

yes I understand, most of the relational databases will allow this kind of column names and queries also.  that's the problem

Most of relational database s will allow this kind of column names queried only with quotation. I dont know any dbms that would process the way you want
select 50col from table
oracle, sqlserver or postgresql do somethind like select 50 as col from table

will not be solved, due to heavy impact on rest of parsing


minichlink's "step" / "stepi" just hangs

Reproduction:

make in examples/blink (flashes successfully)
riscv-none-embed-gdb -ex "target remote :2000" blink.elf
b main
continue
step

Output:
riscv-none-embed-gdb -ex "target remote :2000" blink.elf
GNU gdb (xPack GNU RISC-V Embedded GCC, 64-bit) 8.3
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "--host=x86_64-unknown-linux-gnu --target=riscv-none-embed".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://github.com/sifive/freedom-tools/issues>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from blink.elf...
Remote debugging using :2000
InterruptVectorDefault () at ../../ch32v003fun/ch32v003fun.c:968
968		return 1;
(gdb) b main
Breakpoint 1 at 0xa0: file ../../ch32v003fun/ch32v003fun.c, line 831.
(gdb) c
Continuing.
Note: automatically using hardware breakpoints for read-only addresses.

Breakpoint 1, main () at ../../ch32v003fun/ch32v003fun.c:831
831		RCC->CFGR0 = RCC_HPRE_DIV1 | RCC_PLLSRC_HSI_Mul2;      // PLLCLK = HSI * 2 = 48 MHz; HCLK = SYSCLK = APB1
(gdb) step

The last command hangs eternally. minichlink output shows no sign of errors.
$ ./minichlink -G
Found WCH Link
WCH Programmer is LinkE version 2.8
Chip Type: 003
Part Type (A): 0x0010 (This is the capacity code, in KB)
Part UUID    : ab-c8-ab-cd-13-de-bc-49
PFlags       : ff-ff-ff-ff
Part Type (B): 00-30-05-00
Interface Setup
GDBServer Running

Most interestingly it doesn't seem to hangup when I only forward the code execution with break main.c:55 continue commands. But I really can't have users do that manually, the "step" should work.

This has been an absolute doozie.
I specifically do not include s in the vCont reply, telling it I don't support s.  It appears that some versions of GDB respect this, others do not.
I'm currently testing with version 12, which reliably recreates the error.  And it was a little complicated but it seems to be working very reliably now.


Upstream HTTPS

I also posted this on Discourse, but I'm posting it here because I believe it to be a bug.
I have my script changing the upstream proxy for HTTP connections, but it seems to fail for HTTPS connections. Here's a basic stripped down example.
https://gist.github.com/JakeAustwick/c3116d86f4483d1acede4420f02efb72
The script works fine for http://api.ipify.org/, but fails for https://api.ipify.org/. With HTTPS I see the following, which shows the upstream proxy wasn't changed.
Server connection to default_proxy:8888 failed: Error connecting to "default_proxy": [Errno 8] nodename nor servname provided, or not known
Running Command:
mitmdump -s utilities/proxy_redirects.py -U http://default_proxy:8888
Platform / Library Version ( I also tested on Ubuntu):
mitmdump --version
Mitmproxy version: 2.0.1 (release version)
Python version: 3.6.1
Platform: Darwin-14.5.0-x86_64-i386-64bit
SSL version: OpenSSL 1.1.0e 16 Feb 2017
Mac version: 10.10.5 ('', '', '') x86_64

The error messages indicates that it can't resolve default_proxy. Is this a valid DNS name in your environment? Can you try and directly use the IP, e.g., -U http://<IP_ADDRESS>:8888?

@Kriechi Sorry, maybe I didn't explain well enough. The issue is that it shouldn't be using default_proxy at all. Look at the code, the proxy should always get changed to a different one. So the one I'm passing on the command line should be irrelevant.

the proxy should always get changed to a different one.

This is not true for the initial CONNECT request: https://gist.github.com/JakeAustwick/c3116d86f4483d1acede4420f02efb72#file-proxy-py-L21-L22

@mhils I tried it without that line too; same issue.
I actually only have those lines because they were from an online example. Is there some kind of technical reason why I need those two lines, and the CONNECT can't go through one of my upstream proxies?

The example has a comment explaining this: https://github.com/mitmproxy/mitmproxy/blob/master/examples/complex/change_upstream_proxy.py

@mhils The comment suggests that doing this is only required if I need access to the request data to make the proxy choice, right?
I have the same issue with the following code though, with the CONNECT line removed (because I'm just using a random proxy, no request data needed).
https://gist.github.com/JakeAustwick/af0bc5a5052b2ff8ec423a9c6ca49b97

@mhils The comment suggests that doing this is only required if I need access to the request data to make the proxy choice, right?

If you don't redirect before the CONNECT request, said request will be sent to the default server. Whatsoever, looking at the code, this won't fix your problem. We always establish a connection with the default host here. I'm not exactly sure why that is the case, just calling self.set_server(address) might enough at this point. Not sure, maybe that breaks some hidden invariants. Feel free to try that out and submit a PR if it works for you.

How do I strip ssl with mitmweb I’m running transparent mode and can get traffic through me with bettercap arp spoof


Update license year

Updated license year in LICENSE file.

No. License years should not be updated. They should point to the first time the file was created and not changed. If you have a file written in 2010 but license year is 2020 then any change to the file between 2010 and 2020 could be argued to not be covered by license (I am not a lawyer, that's my understanding of the law).
Next, the text of the license is copied verbatim in all files as comment preamble. Why not change the year in all of these files?
Furthermore, we don't accept PRs which only change one word.
Hence, closing the PR.


Make it available for any S3 compatible back-end storage

Tell us more about this new feature.
This is a fantastic project, it would be nice if we can have it compatible with any S3 compatible storage in future.

Looks like a duplicate of #144

Yes, i just realized it after creating this request.

Thanks! Going to close this in favor of #144, which has some pointers on compatibility.


update_installed_extensions.sh will ALWAYS fail with the redhat.java (and possibly others) extensions

Hi! I've found a pretty nasty (bug? ms issue? extension issue?) thing that I would like to raise as an issue, in case someone else runs into the same mind twisting nonsense.
A few months back I wrote a relatively simple script called code2nix, which was intended to convert my vscode extensions -> nix expressions. It has since worked flawlessly until yesterday, when I tried it and it would consistently fail when pulling the latest versions but would pass when pulling whatever I had currently installed.
Strange! So I went to debugging and attempting tests. What I discovered was honestly mind boggling. Every single time the hash of certain extensions kept randomly changing. Furthermore, there was indeed one singular extension that would consistently fail when pulling its latest. Which one? redhat.java. After realizing this I quickly took to figuring out what the hell was going on, and I discovered that while both were internally VERSIONED the same (1.33.2024072008 at the time of writing), the file content was subtly different.
Here's a simple shell snippet to see what I mean:
$ nix-prefetch-url --print-path "https://redhat.gallery.vsassets.io/_apis/public/gallery/publisher/redhat/extension/java/1.33.2024072008/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage"
0java0yqb6yrycsszlv3vj2hapk5xlx3lr02airrkx09cdlwdrw1
/nix/store/gbmx94y50k4fd5iazrizwm8w4valkflh-Microsoft.VisualStudio.Services.VSIXPackage

However:
$ nix-prefetch-url --print-path "https://redhat.gallery.vsassets.io/_apis/public/gallery/publisher/redhat/extension/java/latest/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage"
1bf97qy9dvc0d37ligkkw6jh1406awb7mdrzamr5gy9q40jmf2bd
/nix/store/zjikf6maii5b21qiyxh609dqa7h1xhqj-Microsoft.VisualStudio.Services.VSIXPackage

A completely different narHash and store path!? Now of course you must be thinking, well obviously these must be completely different versions of the extension, right? Well...
$ nix run nixpkgs#unzip -- -qc "/nix/store/gbmx94y50k4fd5iazrizwm8w4valkflh-Microsoft.VisualStudio.Services.VSIXPackage" "extension/package.json" | nix run nixpkgs#jq -- -r '.version'
1.33.2024072008
$ nix run nixpkgs#unzip -- -qc "/nix/store/zjikf6maii5b21qiyxh609dqa7h1xhqj-Microsoft.VisualStudio.Services.VSIXPackage" "extension/package.json" | nix run nixpkgs#jq -- -r '.version'
1.33.2024072008

For some reason, these files are versioned the exact same, but actually contain some kind of difference. I extracted the files using unzip and reviewed the file structure with diff and found:
diff --unified --recursive --text latest/[Content_Types].xml version/[Content_Types].xml
--- latest/[Content_Types].xml  2024-07-20 08:07:48.000000000 +0000
+++ version/[Content_Types].xml 2024-07-20 08:11:08.000000000 +0000
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension=".json" ContentType="application/json"/><Default Extension=".vsixmanifest" ContentType="text/xml"/><Default Extension=".ts" ContentType="video/mp2t"/><Default Extension=".md" ContentType="text/markdown"/><Default Extension=".txt" ContentType="text/plain"/><Default Extension=".css" ContentType="text/css"/><Default Extension=".jar" ContentType="application/java-archive"/><Default Extension=".png" ContentType="image/png"/><Default Extension=".xml" ContentType="application/xml"/><Default Extension=".js" ContentType="application/javascript"/><Default Extension=".ini" ContentType="text/plain"/><Default Extension=".py" ContentType="application/octet-stream"/><Default Extension=".bat" ContentType="application/x-msdownload"/><Default Extension=".properties" ContentType="application/octet-stream"/><Default Extension=".dat" ContentType="application/octet-stream"/><Default Extension=".ja" ContentType="application/octet-stream"/><Default Extension=".lib" ContentType="application/octet-stream"/><Default Extension=".cfg" ContentType="application/octet-stream"/><Default Extension=".src" ContentType="application/x-wais-source"/><Default Extension=".bfc" ContentType="application/octet-stream"/><Default Extension=".sym" ContentType="application/octet-stream"/><Default Extension=".h" ContentType="text/x-c"/><Default Extension=".dll" ContentType="application/octet-stream"/><Default Extension=".exe" ContentType="application/octet-stream"/><Default Extension=".policy" ContentType="application/octet-stream"/><Default Extension=".certs" ContentType="application/octet-stream"/><Default Extension=".jfc" ContentType="application/octet-stream"/><Default Extension=".security" ContentType="application/octet-stream"/><Default Extension=".template" ContentType="application/octet-stream"/><Default Extension=".access" ContentType="application/octet-stream"/></Types>
+<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension=".json" ContentType="application/json"/><Default Extension=".vsixmanifest" ContentType="text/xml"/><Default Extension=".ts" ContentType="video/mp2t"/><Default Extension=".md" ContentType="text/markdown"/><Default Extension=".txt" ContentType="text/plain"/><Default Extension=".css" ContentType="text/css"/><Default Extension=".jar" ContentType="application/java-archive"/><Default Extension=".png" ContentType="image/png"/><Default Extension=".xml" ContentType="application/xml"/><Default Extension=".js" ContentType="application/javascript"/><Default Extension=".ini" ContentType="text/plain"/><Default Extension=".py" ContentType="application/octet-stream"/><Default Extension=".bat" ContentType="application/x-msdownload"/></Types>
Only in latest/extension: jre
diff --unified --recursive --text latest/extension.vsixmanifest version/extension.vsixmanifest
--- latest/extension.vsixmanifest       2024-07-20 08:07:48.000000000 +0000
+++ version/extension.vsixmanifest      2024-07-20 08:11:08.000000000 +0000
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
        <PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
                <Metadata>
-                       <Identity Language="en-US" Id="java" Version="1.33.2024072008" Publisher="redhat" TargetPlatform="win32-x64"/>
+                       <Identity Language="en-US" Id="java" Version="1.33.2024072008" Publisher="redhat" />
                        <DisplayName>Language Support for Java(TM) by Red Hat</DisplayName>
                        <Description xml:space="preserve">Java Linting, Intellisense, formatting, refactoring, Maven/Gradle support and more...</Description>
                        <Tags>multi-root ready,keybindings,json,java,__ext_java,__ext_class,java-properties,Java Properties,__ext_properties,gradle-kotlin-dsl,Gradle Kotlin DSL,__ext_gradlekts,linters</Tags>

Seems the difference is in the extension.vsixmanifest and [Content_Types].xml. I'm not quite sure who to pin the blame for this since this is an issue that I can only so far find with this specific extension. Maybe its a combination of both.
So why does this all matter? This matters because https://github.com/NixOS/nixpkgs/blob/71770c17e76268cb001cf03ad670a01db8d00ad6/pkgs/applications/editors/vscode/extensions/update_installed_exts.sh will occasionally fail if given extensions like this. Actually this was the second script I attempted to try after my own app failed me, thinking that maybe I had actually missed a bug, but no, it turns out the root issue was impure nonsense from upstream. This is an issue that can easily propagate and can lead to a lot of confusing issues if not known about.
The personal fix I am planning to implement is to pull the latest package, pull the version, then re-download the versioned package and use that for hashing. Super inefficient but its unfortunately necessary in this context. I don't really know if a similar approach is feasible for nixpkgs, but I figure I should both share my findings and my take on a "solution" for others who may struggle with the same behaviour.
If anyone feels like having an evening laugh, feel free to take a look at the commit history here, noting especially how the hashes will randomly change when pulling certain versioned things vs. certain latest things. My personal favorite has to be this commit where the hashes completely swap despite no logical reason to.

This issue still exists, even with the aforementioned "fix" of re-downloading the package. I suspect upstream repacks the extensions in some cases, which leads to a different FOD. May or may not be related to #347212


GitHub stars

Is your feature request related to a problem? Please describe.
The list of available plugins and Lovelace cards is quickly growing.
Describe the solution you'd like
Main goal => Adding the GitHub star count next to name on the list would help highlight the most popular ones.
Also, hopefully will encourage people to visit the GitHub page of their favorite add-ons and star them too.

It's pretty unlikely that people will go from hacs to Star a repo IMO

If you want this to be added to the overview/store pages, then no, I do not want to add "clutter" to those.
But inside the individual pages, maybe.
@iantrich It can be done with an API call ;)

I agree but I do think power users usually star the repos more often than regular users so showing the number of stars would still help highlight the popular ones, especially as the list of available cards and plugins keep growing.

Create a mockup of how it should be shown, and I'll add a poll on the forum page.

There are 2 major drawbacks to adding this:

It adds 2 API calls extra for each element every 8h.
The data will not be correct since it's only updated every 8h.

Can you add it as a toggle feature so can be turned on or off as people prefer?

I tried to add this, the data was wrong, especially if you restart often.
Developers that want to show this, can add it to their info.md file.


improve decode JPEG 2000 data performance

Motivation
When parse grib2 file with 36x5011x7501 shape, the data encode with JPEG 2000, the performance is very slow. with one submessage 5011x7501 spent 10s, for parse all 36 submessage is almost need 6 min on my labtop.
Proposed Solution
Is there some optimization? Change openjpeg-sys to other jpeg 2000 library?
Additional Context
No response

Thank you very much for reporting.
As you say, there are performance issues with JPEG 2000 decoding. I have not examined it carefully, but I suspect that this is due to the fact that the C library is called inside, and the array obtained from the primary decoding by the C library is processed again as an iterator on the Rust side to obtain the final decoded result. In other words, the larger the array, the more it costs to temporarily hold the intermediate data.
The above is just my imagination, but it is possible that performance could be improved by replacing the JPEG 2000 decoder C implementation with a pure Rust implementation. At the time I added JPEG 2000 support, there was no pure Rust implementation, but it has been some time since then, so I would like to look into it again.


syncCalendars marking unchanged calendars as updated

I am using the library in the following way to fetch any changes made since the last sync
const existingCalendars = await db
    .select()
    .from(calendars)
    .where(
      and(eq(calendars.userId, userId), eq(calendars.accountId, accountId))
    );

  const { created, updated, deleted } = await syncCalendars({
    oldCalendars: existingCalendars.map((cal) => ({
      url: cal.url,
      ctag: cal.ctag,
      syncToken: cal.syncToken,
      displayName: cal.name
    })) as DAVCalendar[],
    detailedResult: true,
    headers: client.authHeaders,
    account: client.account
  });

The debug logs show the following
  tsdav:calendar new calendars:  +0ms
  tsdav:calendar updated calendars: Formula 1,Birthdays,Todoist,harshyt.goel@gmail.com,House Viewings 2019,Todoist,Family,HZ Holdings +0ms
  tsdav:collection smart collection sync with type caldav and method webdav +0ms
  tsdav:collection smart collection sync with type caldav and method webdav +2ms
  tsdav:collection smart collection sync with type caldav and method webdav +2ms
  tsdav:collection smart collection sync with type caldav and method webdav +0ms
  tsdav:collection smart collection sync with type caldav and method webdav +1ms
  tsdav:collection smart collection sync with type caldav and method webdav +0ms
  tsdav:collection smart collection sync with type caldav and method webdav +0ms
  tsdav:collection smart collection sync with type caldav and method webdav +1ms

On an immediate refresh - such that there are no updates on the mentioned calendars - i get the same logs again. Marking the unchanged calendars as "updated"
here is the code i'm using to check
  // Handle updated calendars
  const calendarsToUpdate: Calendar[] = updated.map((cal) => {
    const existingCal = existingCalendars.find((e) => e.url === cal.url);

    console.log(
      'ctag',
      existingCal?.ctag,
      typeof existingCal?.ctag,
      existingCal?.ctag === cal.ctag,
      cal.ctag,
      typeof cal.ctag
    );

    console.log('syncToken', existingCal?.syncToken === cal.syncToken);
    return {
      ...existingCal!,
      name: typeof cal.displayName === 'string' ? cal.displayName : '',
      description: cal.description ?? existingCal!.description,
      timezone: cal.timezone ?? existingCal!.timezone,
      syncToken: cal.syncToken ?? existingCal!.syncToken,
      ctag: cal.ctag ?? existingCal!.ctag,
      lastSynced: new Date()
    };
  });

The console logs show that the c-tag comparison is failing because of a difference in the type received from the syncCalendar calls number to what is expected as a part of the input with the typescript definitions string | null
ctag<PHONE_NUMBER>9 string false<PHONE_NUMBER>9 number
syncToken true
ctag<PHONE_NUMBER>5 string false<PHONE_NUMBER>5 number
syncToken true
ctag<PHONE_NUMBER>3 string false<PHONE_NUMBER>3 number
syncToken true
ctag<PHONE_NUMBER>4 string false<PHONE_NUMBER>4 number
syncToken true
ctag<PHONE_NUMBER>2 string false<PHONE_NUMBER>2 number
syncToken true
ctag<PHONE_NUMBER>9 string false<PHONE_NUMBER>9 number
syncToken true
ctag<PHONE_NUMBER>7 string false<PHONE_NUMBER>7 number
syncToken true
ctag<PHONE_NUMBER>2 string false<PHONE_NUMBER>2 number
syncToken true

This seems like perhaps there should be some inherent coercion to do accurate comparisons. The issue may be here in what is expected vs what we see:
https://github.com/natelindev/tsdav/blob/df2088ac6a5e5017ab35385cb839745141ef55d0/src/calendar.ts#L464
Let me know if you'd like some more information but some guidance/fix here would be great! I haven't checked if etags have the same issue but is possible - i'm using this with the google endpoints.
Thanks

I'll take a look this week.

Awesome, thanks! Let me know if I can provide any more info

fixed in v2.1.1


Tip-Modal: Add settings persistence and UX improvements.

PR Type

[x] Improvement

Fixes #4394 add persistence to new support modal

Should save my tip/support preference and last amount (button) and custom amount.

Should collapse the custom field when presets are selected.
Even though the Send button repeats the amount for Tip, it's still confusing to see both the Preset being active and Custom numeric field visible.

Missing localization tags.

This is great. Definitely an improvement over the current modal. Thank you! 🙂


Chp 11 exercises missing 11H5

As discussed in #43 here is a reminder to complete this notebook with answers to 11H5 once the issue with Ordered Logistic is solved. I'll gladly do it
PyMCheers!

I just wanted to stop by and say this your portmanteau made my day. Keep up the good work

FYI, @AlexAndorra, I just opened a PR that should fix this error

Yeah I just saw that @lucianopaz :tada: Thank you, that's awesome!
When it's merged, I can go on and fulfill my destiny: finish chapter 11 and 12 exercises!

Is this still an issue?

The underlying issue is solved on PyMC, but the exercise is still missing from this repo. As this is for the first edition though, I suggest closing and taking care of exercises for the second edition -- of course, if a volunteer wants to finish this, she's welcome but I think it's less of a priority 🙂


Can I use tigerbeetle without using io_uring?

Tigerbeetle uses io_uring, and while great for performance, this actually makes it extremely difficult to deploy apps that use the official tigerbeetle client (because they also use io_uring) on many PaaS services. I'm pretty sure this is ultimately because docker doesn't allow io_uring syscalls by default, and as a result most PaaS offerings don't configure docker to allow it.
Are there any build options or configuration I can apply to have Tigerbeetle clients not use io_uring?

TL;DR: not yet
Longer form:
For the server part, we are designing for linux + io_uring as our primarily deployment target, and that's what should be used to get all the performance and reliability guarantees that TigerBeetle provides. We could at some point add an epoll based implementation, but this is not at all a priority.
For the clients part, we are designing for a variety of environments, and we definitely will support non-io-uring based clients at some point, though we aren't working on that right now.

Would Tigerbeetle be open to external contributions on this, particularly for the client side? I’ve managed a workaround, but it’s pretty hacky and definitely not production-ready. While I’m not deeply experienced with Zig, I’d be more than willing to contribute code or support however I can to help move this forward.


Why lora can apply in trt base model even though i do not convert lora to trt engine

when i use the lora which is not converted to trt engine to apply in the trt base model, it can work well. I cannot understand why

If you are on the Lora branch that is expected,  if you are not then it is not working and your are just imagining it, maybe your prompt alone is enough to get the desired effect.


Openshift changes

This PR does two things

set the Shared VPC in the DNS private zone of the service project, similar to what we do for Cloud DNS in GKE
set custom hostnames for bootstrap and master instances, since the FQDN is used to set the node name

@LucaPrete


add twitter timelines

twitter has a working publish api:
https://publish.twitter.com/?query=https%3A%2F%2Ftwitter.com%2Ftaylorswift13&widget=Timeline

duplicate issue! addressed in https://github.com/max-hill-4/uni-twitter-analysis/issues/5


This implements the EventExpansion needed to emit K8s events.

With this change, I was able to pass some downstream e2e tests that check for event emission with this path enabled, which previously failed.
The relevant hand-rolled bits in Kubernetes client-go is here: https://github.com/kubernetes/client-go/blob/35bf219cc60981cdf318b711e2630cc05e0a83e5/kubernetes/typed/core/v1/event_expansion.go#L49
I opted to avoid copy/pasting the generated code, and instead used a trick that let me call into the generated code.
Going through this exercise also (likely) uncovered a Kubernetes bug: https://github.com/kubernetes/kubernetes/issues/104495
/kind enhancement
/assign @n3wscott
Release Note

Docs

/retest
MetricsExporter...


Remove ActiveSupport

Depend on hashery for a AS::HWIA replacement. Replace all other
usages with core behavior.
ActiveSupport is an unnecessary big dependency. json-jwt is very useful outside Rails contexts, too. Bloating the dependency tree of every project directly or indirectly depending on it seems unreasonable for the "benefits" we get.

@nov Ping, any word on whether this has any prospect of getting in?

Updated.

Any word here, I'd love to see this get merged as well ...

+1 to this. It's a show stopper for me for letsencrypt integration. It's doing "fun things" to my code base.


Add support for multi platform images

Hi,
This is kind of in relation to #345
Been wanting to use this image to have a web UI to manage my redis install on a raspberry pi, however on docker hub it states the latest tag only support Linux/amd64 despite the fact that the alpine image this is based on supports more platforms.
I don't know what you guys use for publishing to docker hub currently, but I've had a look at GitHub actions and built a docker buildx action which pushes x86, x64 and arm images to docker hub. For an example please feel free to look at my docker hub
This action will automatically build on each commit to master but also support manual triggers.
Hope this is useful
Cameron

Hi - this PR is really good to have automated builds for all architectures. But setting up secrets needs to be done by @joeferner [1] Before this is done its no use to merge it...
[1] https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets

This is awesome, would love to get Commander on my pi server. Any ETA on publishing to Docker Hub @joeferner

And we could add proper versioning too in the same go? See here https://github.com/joeferner/redis-commander/pull/441/files
add:
      - name: Get latest tag
        id: tag
        run: |
          git fetch --prune --unshallow
          echo '::set-output name=version::'$(git describe --tags $(git rev-list --tags --max-count=1))

change build and push step to push versioned tag + latest:

      - name: Docker build and push
        uses<EMAIL_ADDRESS>        with:
          context: .
          platforms: linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/386,linux/amd64
          push: true
          tags: |
            ${{ secrets.DOCKER_REPO }}/redis-commander:latest,
            ${{ secrets.DOCKER_REPO }}/redis-commander:${{steps.tag.outputs.version}}

Hi @thomastvedt. With your comments in mind, I've added automatic git tagging and creating a secondary docker hub tagging using this. Once again, I'm not sure how you guys use versioning, but can always be tweaked

Hi @thomastvedt. With your comments in mind, I've added automatic git tagging and creating a secondary docker hub tagging using this. Once again, I'm not sure how you guys use versioning, but can always be tweaked

Great thanks @MilkyWare , I'll close my other PR and hopefully @joeferner will incorporate changes in this one 👍🏻

@joeferner hope for the adoption of this PR

Any chance to adopt this request and launch in next release? Has other way to run this image in ARM64?


pnpm安装完成后，运行pnpm run tauri:dev报错

报错提示：Error failed to get cargo metadata: program not found
是不是还要安装rust？

是的，你需要安装一下rustup(rust)安装程序，windows系统运行：winget install --id Rustlang.Rustup， 可以看一下这个 https://tauri.app/zh-cn/v1/guides/getting-started/prerequisites/，其次你可以在RustRover这个编辑器里面安装，这个比较方便，也可以在官网进行下载：https://www.rust-lang.org/tools/install

安装了还报错，是我电脑VC++需要升级吗？
# dong @ lufei in ~\Desktop\test-im\HuLa-IM-Tauri on git:master x [01:07:38]
$ pnpm run tauri:dev

><EMAIL_ADDRESS>tauri:dev C:\Users\13697\Desktop\test-im\HuLa-IM-Tauri
> tauri dev

     Running BeforeDevCommand (`pnpm dev`)

><EMAIL_ADDRESS>dev C:\Users\13697\Desktop\test-im\HuLa-IM-Tauri
> vite --mode dev

  🍀 HuLa-IM-Tauri v1.5.0
  ➜  当前环境: dev
  ➜  Vue: ^3.4.31 Vite: 5.3.2 Node.js: v20.15.1
  ➜  当前 Tauri 版本:  ^1.5.6
  ➜  后端服务地址: https://github.com/nongyehong/HuLa-IM-Server
  ➜  项目地址: https://github.com/nongyehong/HuLa-IM-Tauri

  VITE v5.3.2  ready in 2675 ms

  ➜  Local:   http://localhost:6130/
  ➜  Network: http://<IP_ADDRESS>:6130/
  ➜  Network: http://<IP_ADDRESS>:6130/
        Info Watching C:\Users\13697\Desktop\test-im\HuLa-IM-Tauri\src-tauri for changes...

 ELIFECYCLE  Command failed with exit code 101.
# dong @ lufei in ~\Desktop\test-im\HuLa-IM-Tauri on git:master x [01:08:25] C:101

你使用tauri info打印版本环境给我看看，我排查一下问题

@nongyehong
dong @ lufei in ~\Desktop\test-im\HuLa-IM-Tauri on git:master x [01:08:25] C:101
$ tauri info
tauri: The term 'tauri' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
dong @ lufei in ~\Desktop\test-im\HuLa-IM-Tauri on git:master x [01:26:38] C:1
$ npm i -g @tauri-apps/cli
added 2 packages in 3s
1 package is looking for funding
run npm fund for details
dong @ lufei in ~\Desktop\test-im\HuLa-IM-Tauri on git:master x [01:28:45]
$ tauri info
[✘] Environment
- OS: Windows 10.0.22631 X64
✔ WebView2: 124.0.2478.67
✘ Couldn't detect any Visual Studio or VS Build Tools instance with MSVC and SDK components. Download from https://aka.ms/vs/17/release/vs_BuildTools.exe
✔ rustc: 1.79.0 (129f3b996 2024-06-10)
✔ cargo: 1.79.0 (ffa9cf99a 2024-06-03)
⚠ rustup: not installed!
If you have rust installed some other way, we recommend uninstalling it
then use rustup instead. Visit https://rustup.rs/
⚠ Rust toolchain: couldn't be detected!
Maybe you don't have rustup installed? if so, Visit https://rustup.rs/
- node: 20.15.1
- pnpm: 9.5.0
- yarn: 1.22.22
- npm: 10.7.0
[-] Packages
- tauri [RUST]: 1.7.1
- tauri-build [RUST]: 1.5.2
- wry [RUST]: 0.24.10
- tao [RUST]: 0.16.9
- @tauri-apps/api [NPM]: 1.6.0
- @tauri-apps/cli [NPM]: 1.6.0
[-] App
- build-type: bundle
- CSP: unset
- distDir: ../dist
- devPath: http://localhost:6130/
- framework: Vue.js
- bundler: Rollup
dong @ lufei in ~\Desktop\test-im\HuLa-IM-Tauri on git:master x [01:28:58]
$

rustup: not installed! 提示你没有安装这个rustup

@nongyehong
# dong @ lufei in E:\test [23:48:21]
$ tauri info

[✔] Environment
    - OS: Windows 10.0.22631 X64
    ✔ WebView2: 124.0.2478.67
    ✔ MSVC: Visual Studio ���ɹ��� 2022
    ✔ rustc: 1.79.0 (129f3b996 2024-06-10)
    ✔ cargo: 1.79.0 (ffa9cf99a 2024-06-03)
    ✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
    ✔ Rust toolchain: stable-x86_64-pc-windows-msvc (default)
    - node: 20.15.1
    - pnpm: 9.5.0
    - yarn: 1.22.22
    - npm: 10.7.0

[-] Packages
    - @tauri-apps/api : not installed!
    - @tauri-apps/cli [NPM]: 1.6.0

[-] App
# dong @ lufei in E:\test [23:48:29]

跑起来了，命令行就是一些样式警告，还有登录时的二维码方式二维码加载不出来

ctrl + r刷新你就会发现开发环境下是无法请求二维码的，因为我没有把后端服务部署，你可以自己拉取后端环境先本地跑起来

我也遇到过101错误的情况。配置rust的环境需要从mingw开始


about preprocessing step

can you explain what labels plays a role in bert tokenizer.
especially this code:
labels = labels[:len(cls_ids)]
i don't understand what the above code does and how do labels play a part in tokenization for bert?

i don't know what you mean. this label is the classification label, indicating which sentences should be extracted.

sorry I may be a newbie at this. if I was following the code correctly cls_ids is the id of the 'start token' in bert '[cls]? So why would the length of cls_ids be used to filter the labels under preprocessing? if labels are for classification, all the one-hot vectors of labels should be specific for each label. Is there a specific place I should look at to find the classification labels for these one-hot vectors to better understand the code preprocessing?
I may be misinterpreting the code I have been reading but I seem stumped on how labels are being generated. what does cls_ids represent?

I am still not sure I understand what you mean here. We are using multiple cls symbols to obtain sentence vectors. The number of labels should be the same as the number of the cls_ids (both equal to the number of sentences of a document).

oh okay, that makes sense now. That is where I was getting confused. they should equal the same so that is what I was trying to understand. Thanks for your patience.


customize and debug changes

I want to make a custom browser with ungoogled chromium, is there a way to preview my changes without having to create a package/release every time like chromium you can build using autoninja and then run a debug with out\Default\chrome

then run a debug with out\Default\chrome

Yes

Do you know what the command is?

Please provide more information on the issue, so that someone could help you further.

I have changed the chromium icon so that way the application settings everything that uses the chromium icon is changed these are my local changes and I'm looking for the command to upload them that way when I do out\Default\chrome it will show the changes, with default chromium you use autoninja to compile local changes so it looks like this: autoninja -C out\Default chrome and then out\Default\chrome autoninja allows you to build your custom changes. Is there a script I can run to compile my local changes and if so what is the script?

Please note that this is an issue tracker for windows platform, it is not a chat, and as such it is not the best place to ask this kind of questions.
 I'm just looking for the one script, like build.py replaces fetch it does the same thing it downloads the source or package.py packages chromium. I'm looking for the command that will recompile my local changes that way I can do out\Default\chrome to preview my changes


no check return type

typescript version 2
this code (for example):
interface String{
    go(step: any): boolean;
}

String.prototype.go = function (step: any): boolean {
    return step;
}

function go return boolean type but no check return type

That is the correct behavior because any is assignable to any type.
function go(step: any): boolean {
  return step;
}

but i set boolean for return type
ignore return type?

It is not ignoring the return type. The tricky part is that the static type any is the formal static type that represents the untyped (or dynamically typed if you prefer) nature of JavaScript declarations. That is any is assignable to and from all other types.
If you write
function go(step): boolean {
    return step;
}

the result is exactly the same. Where does it says that step is not a boolean. In other languages, the any type is often named dynamic.

but when use this function (for example):
let travel: string = 'Ardebil';
let ok: boolean = travel.go(1990);

when run travel.go(1990); return number type
This is not wrong?

It is wrong in the sense that the declared type of .go is lying. Given what .go does, I would argue it should be declared as
interface String{
    go<T>(step: T): T;
}

Tangentially, in the following code
let travel: string = 'Ardebil';
let ok: boolean = travel.go(1990);

I would argue that the use of type annotations on the variable declarations is a bad practice. They have initializers and allowing the compiler to infer the type of the declaration from the initializer often provides a richer, more accurate, and stricter type.

i tested this code
interface String{
    go<T>(step: T): boolean;
}

but ignore return value!

That is a type declaration, there is nothing to ignore. It is just stating that a string has a method go that takes a value of any type, because there is no constraint on T, and returns a boolean. It would help if we knew what .go was supposed to do.

ignore  when function set void type for return
function go(step:any): void {
    return step;
}

TypeScript does check return types it is simply that type any is compatible with everything. That is not the case with void.

@uxitten it seems like you're new to TypeScript -- StackOverflow and the TypeScript Documentation (especially the TypeScript Handbook) are the best place to go for learning. The issue tracker is for bugs only. Thanks!

@RyanCavanaugh i am no beginner. just a question in your opinion no issue?


CodeBrowser / Edit the Listing Fields: add options for prefixes and sufixes on each field

I'm trying to use the code disassembled by ghidra, but:

Most assemblers expect labels to have a : suffix.
All comments need to have a ; suffix

CodeBrowser has a  "Edit the Listing Fields" button to allow the Listing view to be configured, it still needs a bit more customization to output code generic enough for assemblers.
It would be enough if it was possible to add prefixes and suffixes for each field.
This way, in my case, I would add the colon suffix to the Label fields, and the semicolon prefix to all "XRef header", "Plate Comment", "Function Signature" and "Thunked-function" fields.

Just looking for this. It seems for end-of-line comments, the option to prefix with ; already exists in Ghidra 10.3:

It doesn't seem to exist for post and pre comments
I am interested on this feature so I can copy & paste the assembly code into editors like VS Code or markdown code blocks for documentation and get the correct language highlights.

We aren't keen on having that many new options but would be willing to add options on the two missing comment types fields and the label field. For handling the rest, could you use the field editor to remove them from your tool since they are not necessary for an assembler? Then do the copy/paste with just the fields that are necessary showing in the Listing? If you don't want to keep switching fields, you could create a dedicated tool with the necessary fields removed and open your program in that tool (programs can be open in multiple tools simultaneously) when you want to do a copy/paste. If this would be a sufficient solution for you please let us know.

Maybe the best solution would be to add a new "copy special"  for disassembly.


Consider using postcss-selector-parser to implement the :matches(…) selector

postcss-selector-parser has been made with the goal of improving the handling of css selectors in postcss plugins by making sure to avoid outputting broken selectors (see #7, #14, #16).

I am doing this in the next release. I am only struggling with the extrapolation.


Half rotations total not increasing unless being calibrated

Thank you for releasing this project. Have been trying to get it to capture my Neptune water meter readings and eventually my gas meter as well.
Running into an issue where the Half rotations total only increases while calibration is being run. The water flow is also detected at this time. Once calibration completes, water flow shows 0 and Half rotations total gets stuck at what ever it increments to while calibrating and total gallon also gets stuck at where it read during the calibration.
Enabling the data for each axis shows it’s changing when water is running but the other values just don’t update unless calibration is running. Any ideas what could be the issue?

This is strange. During calibration the half rotations total and flow should NOT be increasing.
Make sure you calibrate while you are running water at a low flow rate. Can you try with the latest version (as long as you have refresh: 0s you will get the latest version after clicking install)? There was a bug with 0 values that I just fixed.
In the logs you should see something like:
[22:54:34][I][calibration:203]: x ranged from 13.39 to 76.49
[22:54:34][I][calibration:209]: y ranged from -81.57 to -3.85
[22:54:34][I][calibration:215]: z ranged from -18.03 to 74.43
[22:54:34][I][calibration:238]: Selected z axis with lower threshold: 41.23 and upper threshold: 51.23
[22:54:34][D][select:062]: 'Axis' - Setting
[22:54:34][D][select:115]: 'Axis' - Set selected option to: z
[22:54:34][D][select:015]: 'Axis': Sending state z (index 2)
[22:54:34][D][number:054]: 'Threshold lower' - Setting number value
[22:54:34][D][number:113]:   New number value: 41.200001
[22:54:34][D][number:012]: 'Threshold lower': Sending state 41.200001
[22:54:34][D][number:054]: 'Threshold upper' - Setting number value
[22:54:34][D][number:113]:   New number value: 51.200001

And the corresponding entities in HA should get updated to reflect these numbers.

Can you post a screenshot like the first one I have in the README before and after clicking on calibrate? Can you also post logs when calibration happens like the logs I posted above?

Thanks for the help, will post the logs data later today soon as I can. For now I seem to have it reading the water flow after reinstalling with latest version like you mentioned. One odd behaviour noticed during auto calibration was it chose Z axis but range was more appropriate for Y. Z axis would not show any flow data but manually selecting Y seemed to work. Will still need to verify accuracy but attest when I have water running it detects and updates the number now.

Please see attached screenshots and log requested.

logs_water-meter-reading_logs.txt

I see:
[13:44:00][I][calibration:204]: x ranged from -40.07 to -27.96
[13:44:00][I][calibration:210]: y ranged from 11.85 to 33.21
[13:44:00][I][calibration:216]: z ranged from -115.29 to -68.49
[13:44:00][I][calibration:239]: Selected z axis with lower threshold: 18.40 and upper threshold: 28.40
[13:44:00][D][select:062]: 'Axis' - Setting
[13:44:00][D][select:115]: 'Axis' - Set selected option to: z
[13:44:00][D][select:015]: 'Axis': Sending state z (index 2)
[13:44:00][D][number:054]: 'Threshold lower' - Setting number value
[13:44:00][D][number:113]:   New number value: 18.400000
[13:44:00][D][number:012]: 'Threshold lower': Sending state 18.400000
[13:44:00][D][number:054]: 'Threshold upper' - Setting number value
[13:44:00][D][number:113]:   New number value: 28.400000
[13:44:00][D][number:012]: 'Threshold upper': Sending state 28.400000

The z axis is better than y. The thresholds are wrong though. I fixed this yesterday so it seems you built during the short time I introduced this bug. Please try again with the latest version.

Installed the latest version and the Z axis being auto selected after calibration seems to be working now. Will monitor next few days to see how accurate the readings are when compared to the data from my utility provider, thank again for your help and for this great tool.

I forgot to mention. If you want, you can use the same ESP device for both meters. You need to include esphome-two-meters.yaml instead of esphome-water-meter.yaml. That config is untested so let me know if it works or not.


Reworked output of phpcompat details

{
  totals: {
    errors: 225,
    warnings: 0
  },
  error_map: {
    5.2: [
      PHPCompatibility.PHP.LateStaticBinding.Found
    ],
  },
  errors: {
    PHPCompatibility.PHP.LateStaticBinding.Found: {
      message: "Late static binding is not supported in PHP 5.2 or earlier.",
      source: "PHPCompatibility.PHP.LateStaticBinding.Found",
      type: "ERROR",
      severity: 5,
      versions: [
        "5.2"
      ],
      files: {
        includes/lib/Example.php: {
          line: 2199,
          column: 32
        }
      }
    }
  }
}

@valendesigns please note that I renamed violation_map and violations to error_map and errors respectively.  This is so that we can add warnings later too.

Aren’t there warnings in there, or is it only errors?

@rheinardkorf Are you leaving the warnings out because they don't fail the PHP version?

@valendesigns yup. We don't need them for the compat report, but it wouldn't hurt including them if you think its meaningful in a UI.


feat(Editor): add rich-text editor for edit & NodeTopicBox

Rich-text editor, fix #99
edit topic content & topic reply content:

edit topic main content:

edit topic reply:

Create topic from Node:

from node small box

from node box

lgtm


adapt notifications to travel hex

currently notifications only work when you travel from realm to realm. But not on the map. Need to show new notification for travel hex that pins when the tick is finished.

resolves #424


API: exception caused by invalid(?) JSDoc

TypeScript Version:  2.7.0-dev.20171115
Code
Trying to get the JsDocTags from the method signature below (signature.getJsDocTags()) crashes with the following exception:
TypeError: Cannot read property 'getText' of undefined
    at withNode (/Users/klaus/code/tslint/node_modules/typescript/lib/typescript.js:83916:29)
    at getCommentText (/Users/klaus/code/tslint/node_modules/typescript/lib/typescript.js:83906:28)
    at /Users/klaus/code/tslint/node_modules/typescript/lib/typescript.js:83892:63
    at forEachUnique (/Users/klaus/code/tslint/node_modules/typescript/lib/typescript.js:83931:38)
    at Object.getJsDocTagsFromDeclarations (/Users/klaus/code/tslint/node_modules/typescript/lib/typescript.js:83889:13)
    at SignatureObject.getJsDocTags (/Users/klaus/code/tslint/node_modules/typescript/lib/typescript.js:95615:62)

// from<EMAIL_ADDRESS>interface Assert {
        /**
         * Asserts that actual is deeply equal to expected.
         *
         * @type T   Type of the objects.
         * @param actual   Actual value.
         * @param expected   Potential expected value.
         * @param message   Message to display on error.
         */
        deepEqual<T>(actual: T, expected: T, message?: string): void;
}

Expected behavior:
No exception
Actual behavior:
Exception, because JSDocTypeTag.typeExpression is undefined.

This should be fixed by the strictNullChecks PR. Also the relevant code was refactored a lot recently so the call stack is no longer accurate.
Closing because this is no longer an issue for me.


[Tiered Caching] Make took time caching policy setting dynamic

Is your feature request related to a problem? Please describe
As of now, we have a took time policy setting via which we determine whether we need to put an item into disk cache which got evicted from upper onHeap tier. This was needed so that we only cache queries into disk which are relatively slow and can gain benefit by having them in disk cache.
This is a static setting as of now, so we need to make this dynamic so that user can change it easily on the fly.
Describe the solution you'd like

Make static setting dynamic and desired changes required around that.
Add IT tests

Related component
Search:Performance
Describe alternatives you've considered
No response
Additional context
No response

[Triage - attendees 1 2 3 4 5 6]
@sgup432 Thanks for filing, look forward to this improvement


I can't reproduce this tutorial

Hi,
I can copy the sample behaviour pack with the angry cows and that works for me.
However, I have tried for a while to follow the tutorial and I can't get the game to print anything to the chat.
Is there any setting that needs to be set (apart from activating cheats on the world)?

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

ID: 3264465c-a1b7-3e3d-cccf-4aa294e95b29
Version Independent ID: 3264465c-a1b7-3e3d-cccf-4aa294e95b29
Content: Introduction to Scripting in Minecraft
Content Source: creator/Documents/ScriptingIntroduction.md
Service: minecraft-bedrock-edition
GitHub Login: @iconicNurdle
Microsoft Alias: mikeam

I'll be glad to help!
First, a question: Does your code use the TicksPerSecond import, like this?
import {
    world,
    system,
    TicksPerSecond
  } from "@minecraft/server";

There was a recent change to remove TicksPerSecond from the import section, and calculate the timing differently.
Make sure "TicksPerSecond" is not used anywhere in your code.
Another solution: Increase the time before the message is displayed.  Change the "400" to "1000" in this line...
function mainTick() {
  if (system.currentTick === 400) {

If neither of these actions help, please copy/paste your .js file here and I will take a look.
If it DOES work, please let me know - thanks! :)

I'm going to close this for now. If you have any further questions, please feel free to re-open this issue or start a new one. Thanks!


Make it possible to retain html comments

Please note, that this request is concerning vue sfc files. (.vue-files)
What problem does this feature solve?
For technologies like server-side-includes it is really important to retain html comments in certain scenarios. There was an option to retain them for vue-2 (https://vuejs.org/v2/api/#comments), however, that seems to be removed from vue-3 :(
I could not find anything concerning this feature in the vue-3 docs.
What does the proposed API look like?
an option would be to keep the v-2 api

This was added at https://github.com/vuejs/vue-next/pull/1858

Hi, thanks for your swift response. I am not sure if I understand the context of your linked PR & issue, but to me it sounds like only useful in a situation where I am using the parse() function of vue/compiler-core. In my scenario, I am creating a new instance of a vue component inside of a sfc file. In vue2, the comments:  option was exposed directly in the options of a component, however that api has now changed (because if configured there, the comments are still lost), and I do not understand where I would specify that option now.

try <template comments>, this is the syntax for vue 2, haven't really tried this with vue 3

hi vhoyer, I have just tried that and sadly, it did not preserve my comments. ty for the input though

From what I gather, the <template comments> capability is not supported in Vue 3 SFCs? Is there any workaround available? In my case, the HTML comments are being stripped out only in production mode, and I'm confused where the root cause of the behaviour lies; my webpack config, the internal behaviour of @vue/compiler-sfc, or just Vue 3 in general?

From what I gather, the <template comments> capability is not supported in Vue 3 SFCs? Is there any workaround available? In my case, the HTML comments are being stripped out only in production mode, and I'm confused where the root cause of the behaviour lies; my webpack config, the internal behaviour of @vue/compiler-sfc, or just Vue 3 in general?

@ferencbeutel4711 Could you find a solution?

@JasperTey your case looks behaving this way because of this internal compiler bug: https://github.com/vuejs/vue-next/issues/3392


How to Prediction

when I trained the simple-cnaps model, how to use the model to predict the new dataset?

You need to create a few-shot task. Basically, you need to provide the inputs to the def forward(self, context_images, context_labels, target_images): function and call the function using a loaded model checkpoint. The context_images and context_labels would be your new dataset and its labels, while target_images are the images which you want the model to produce labels for. All images need to be resized to 84x84 and pixels need to be normalized (i.e. divide by 255, see how Meta Dataset, miniImageNet, and tieredImageNet images are prepared). Labels would simply be integers, indicating which class the context_image belongs to.
Hope this helps! I tried to keep the answer very concise. Let me know if you need any additional clarification.

这是来自QQ邮箱的假期自动回复邮件。

您好，您的邮件我已收到，我稍后会给您回复的~~

Thank you, I also want to ask： When I have a small amount of labeled data, do I need to retrain the simple-cnaps model with this small amount of data? Or directly load the trained model （trained by tieredImageNet images）, and let these small amounts of data be used as context_images and context_labels, and then predict new data?

The latter. You should load the trained model, then use your small labeled dataset as context_images and context_labels, and have the images you want to predict as target_images to get predicted labels for. Hope that helps :)

Thanks a lot, it works！

I used a small amount of labeled data as content data, and then predicted the same data, and found that the accuracy rate was only 70%, not 100%. Is there any problem?
step1:load model
model.load_state_dict(torch.load('simple-cnaps/model-checkpoints/meta-dataset-checkpoints/best_simple_cnaps.pt', map_location=torch.device('cpu')))
step2: The same way to convert context and query image numpy array
load_img_rz = Image.open(os.path.join(path, img)) im = load_img_rz.convert('RGB') im = im.resize((84, 84), resample=Image.LANCZOS) img_np = 2 * (np.array(im) / 255.0 - 0.5) context_images_np = img_np.transpose([0, 3, 1, 2]) context_images = torch.from_numpy(context_images_np) context_images = context_images.to(torch.float32)
I want to ask if there is any problem？

Looks reasonable, and keep in mind that even fully supervised data-rich classifiers never reach 100% accuracy. In fact, despite our method being one of the best-performing ones on most datasets, accuracy levels are around 70%. See https://openaccess.thecvf.com/content_CVPR_2020/html/Bateni_Improved_Few-Shot_Visual_Classification_CVPR_2020_paper.html for more details.

Thank you very much for your detailed explanation


Add localization for finnish

Created fi.strings file with correct localizations

This is great! Looks good to me. I did not realize that all I have to do is to add this one localization file. Thanks Jussi!

I am actually not a 100% sure that the localizations are autogenerated from the files. It might still need to be included in the project file separately. But I am counting on that who ever merges this will add it if it is necessary.

I can add the comments but the [here] link you provided does not work. I found comments from the CardIOPaymentViewController.h & CardIOView.h that have the languages listed. Are those the only places?
I can make the same change to Android.

Ok, thanks for the link.
Btw, I checked the android project.. How do you do the localisation in there? I found the loc files inside the locales folder. But it seems that those generated with a script which I could not find. Also I couldn't find the original localisation files the script seems to use.


Spellchecking?

Hi - OK, I solved the "get only the used-image file name list" issue by noticing the data were in the .log file.
Now I am trying to do a document-wide spell check.  checking the 40 individual .tex files is a huge pain
because of all the latex macros that confuse the emacs ispell process, plus having to run each .tex file separately.
I found a post that said Adobe would check the PDF file, - yes! - getting rid of all the LaTeX macro
confusion!  Except - boo -- it was wrong.  Adobe only checks the note spelling, not the 600 pages
of pdf words' spelling.
Any ideas about something that would check the WHOLE pdf document spelling in one go?  Also,
I am editing typos etc., something could change accidentally, and I'd need to run spell check again,
and being able to do it just in the pdf would make that trivially easy to redo the spell check.
Thanks, Andy

Hi, - I do not have any good suggestions.
What I would do perhaps, convert pdf file to txt format
(e.g., pdftotext or Adobe Acrobat can do that -  but different programs
would produce different results)
and run ispell on txt file.
The txt file will not be very clean for spelling. There will be
quite some spelling "false positives" but hopefully one can
live with that.
One more thing that I would personally do: - I would
split PDF into smaller PDF chunks (say, chapters: with \includeonly{chapter01}, ... )
and work with smaller chunks of text.
Version control (e.g. git) can be used for accidental changes
management. A quick diff for different commits would give you a list of
changes - wanted and unwanted.
best, - deimi


Resizing Tiles

A feature should be added that lets you bind keycommands to changing the size of a focused tile. It could be something with modifier keys + a direction (configurable so users can do hjkl, wasd, ijkl or combinations of [] {}) or an axis?
For example, given you had 3 tiles displaying next to each other as columns and you wanted to alter the width of the center tile..

a command to expand out the window in both directions, shrinking the tiles on either side
a command to expand in a specific direction, shrinking only the tile on the side you choose

Same for decreasing the tile size but in the opposite directions (adjacent tiles would expand).
Additionally, the amount that the tiles expand/shrink should be configurable as either a pixel-based amount or a percentage size of the display the tiles are currently displaying on.
Might also want to consider what happens when a user has several tiles that have been resized on one grid and then they unmanage or move a tile onto a different workspace, although it may just be as simple as have the adjacent tiles split the difference between them.

Additionally, the amount that the tiles expand/shrink should be configurable as either a pixel-based amount or a percentage size of the display the tiles are currently displaying on.

I don't really think that supporting pixel based expansion is really important. I don't really see a valid use case for this, can you please tell me a few examples? This will probably increase the difficulty by a bit.

Ah, the only reason I suggested pixel-based as an option was because the existing sizing code looks like it's calculating widths/heights and x/y positions in pixels. But, I suspect having a increment/decrement set to one pixel count value would cause issues between monitors of different resolutions, i.e., changing by 5 pixels may work on a user's small screen but take forever on their large screen.
I do think it'd be simpler as just one system and I suspect it'd be easier and more compatible if it was percentage-based. Not sure if there's a flaw in that approach that I'm unaware of.
Oh, also another thing I forgot to mention is what to do if the amount it's changing ends up as an odd number split between two adjacent tiles. I figured in that scenario though you'd just default to giving the extra pixel or whatever to the left/up or right/down tile.

Oh, also another thing I forgot to mention is what to do if the amount it's changing ends up as an odd number split between two adjacent tiles. I figured in that scenario though you'd just default to giving the extra pixel or whatever to the left/up or right/down tile.

We will see what feels best when it is implemented.

Note to self: this will include a small refactor from pixel based to percentage based alignment.

Ideally also support auto resize all tiles when dragging on the border of one window

Ideally also support auto resize all tiles when dragging on the border of one window

I thought about that too, but also thought it may go against the spirit of a tile manager. I'm not saying it shouldn't be done, but ideally it should be easy enough to resize windows via just key commands, right?

I will try to implement this in the following order:

Keybindings for basic resizing
Resize mode (use movement keys for resizing until you leave the resize mode)
Mouse support

Whenever I'm done with one part I'll push it to dev.

I pushed my current progress to the resize branch.
Keybindings I used:
  - type: Resize
    key: Alt+Shift+H
    direction: Left
    amount: 2
  - type: Resize
    key: Alt+Control+Shift+H
    direction: Left
    amount: -2
  - type: Resize
    key: Alt+Shift+J
    direction: Down
    amount: 2
  - type: Resize
    key: Alt+Control+Shift+J
    direction: Down
    amount: -2
  - type: Resize
    key: Alt+Shift+K
    direction: Up
    amount: 2
  - type: Resize
    key: Alt+Control+Shift+K
    direction: Up
    amount: -2
  - type: Resize
    key: Alt+Shift+L
    direction: Right
    amount: 2
  - type: Resize
    key: Alt+Control+Shift+L
    direction: Right
    amount: -2

I got the basic stuff to work, but there are still some edge cases I'll have to fix, but it would be nice if some of you try the branch out give me some feedback on how the resizing feels.
The direction based resizing feels really bad for me to be honest.
I'm currently thinking about just providing keybindings for resizing by changing the height/width of a tile.

I fetched from the resize branch but ran into borrow errors when compiling. I'll try to get it running sometime later today, but I looked over the changes and...

The direction based resizing feels really bad for me to be honest.

Can you describe what you mean? From the code it looks like it just expands/contracts in the direction you pick. Should it have some momentum while you resize or do you feel like it's too imprecise?

Can you describe what you mean?

There aren't really keybindings that feel good to use, because you need 8 for 4 directions.
I probably just need to get used to it before I can be really sure.

I fetched from the resize branch but ran into borrow errors when compiling

Hmm interesting. I am not getting any borrow errors. Can you please tell me what the problem was once you fixed it?

Can you please tell me what the problem was once you fixed it?

Did another reset on the commit and re-compiled and everything worked, so it probably was just a conflict with my working directory or something.
Anyway, I played around with it a bit. Obviously I realize this is a wip, but I was a bit confused as to whether you're planning on having the tiles all react to resizes or just the one tile you're resizing. At some points it did start modifying the sizes of multiple tiles simultaneously and got a bit confusing.

There isn't really any keybinding combination that feels good to use, because you need 8 for 4 directions.

Another approach could be to have a keybinding that puts the user in "resize mode" and then use hjkl/modifier + hjkl but.. that might still be technically 8 bindings although it could at least overlap with existing keybindings in that case.

The direction based resizing feels really bad for me to be honest.

I don't think the keybindings themselves are that bad, but because of the nature of the tiling windows, depending on what tile is focused some of they keybindings won't make sense: "what does it mean to shrink/expand up/down on a tile that fills a column?", "expanding a tile to the left when it's already on the left border of the screen" and that kind of stuff.
I did get tripped up a bit because of these things which made it feel tedious-ish:

expanding a tile to the left when it's already as left as it can go makes it expand right, which I'm assuming is just because it's a wip
other tiles don't react to focused tile's size changes
gaps that can be created

Like here, I shifted B window -Left a bit. Should C window follow with it? Should A expand to the right? Or in the following two pictures where I've -Left and -Right window A and then expanded window A past the other tiles.

Personally, if I'm resizing I'm doing so with the goal of making use of the entire screen, trying to eliminate any gaps (ignoring configurable margin/padding) and avoid overlapping, so if the controls were more context-sensitive it may make it feel better in that regard.
Given a setup like this assuming the hotkeys are just hjkl for ResizeLeft, ResizeDown, ResizeUp, ResizeRight:

Focused on Tile A:
Left - Doesn't do anything OR shrinks the right side of A in the LEFT direction
UP/Down - Not applicable
Right - Expands to the right
Focused on Tile B:
Left - Expands B and C tiles to the left and shrinks A
Right - Shrinks B and C tiles to the right and expands A
Up - Shrinks B upward and expands C and D upward
Down - Expands B downward and shrinks C and D downward
Focused on Tile C:
Left - Expands B and C tiles to the left and shrinks A
Right - Expands C tile to the right and shrinks D
Up - Shrinks B upward and expands C and D upward
Down - Expands B downward and shrinks C and D downward
I realize that's a lot of context-sensitive coding and might be un-intuitive with questionable edge-cases, but I hope that somewhat shows an approach of resizing with assumptions about what the user is trying to achieve in order to speed up the process.
All that said, I want to also stress that I'd really like other people to share their thoughts too as I don't want to be the only other voice in the room here throwing out crazy ideas that no one actually wants. I definitely think there's room for discussion here.

Thanks to your example I changed my way of thinking about this problem and I believe I can now implement this a LOT easier. Before I set some data on each tile when resizing which results in a massive amount of edge cases which have to be handled, but now I will just think about resizing a column/row instead of an indiviual tile. This is pretty obvious when I think about it in hindsight since it is a grid.

Resizing is now implemented in the resize branch.

Update: I looked for ways on how to make the keybinding system a lot more flexible and I should now be able to add the concept of a "mode".
This means that I no longer use the RegisterHotKey function, but instead listen for every keypress and use custom logic to know which keybinding to use.
Concept for a resize mode:

Press a shortcut for toggling resize mode (Example: Alt+R)
Use h/j/k/l to increase in a direction (Shift for decreasing)
Press the shortcut again
h/j/k/l are no longer used for resizing

This can be leveraged to make it possible to define custom modes.
I am still thinking about how to support modes in the config, but this is how I am currently imagining it:
modes:
  resize:
    key: Control+R
    keybindings:
      - type: Resize
        key: H
        direction: Left
        amount: 2

Everything besides the key field gets only loaded when you are inside a mode.
This could be expanded for modifying the gaps for example.
modes:
  gap:
    key: Control+G
    keybindings:
      - type: IncrementConfig
        key: Plus
        field: padding
        value: 2
      - type: DecrementConfig
        key: Minus
        field: padding
        value: 2
      - type: IncrementConfig
        key: Shift+Plus
        field: margin
        value: 2
      - type: DecrementConfig
        key: Shift+Minus
        field: margin
        value: 2

One thing I am not to sure about is whether to swallow the keypress when in a custom mode or to let them go through.
I am very excited for the future of this feature!

I tried out the resize branch and it's definitely feeling a lot better for me although there were still moments where I hit key commands expecting something to move but nothing did, and I think that's more of like what I was saying above.
I definitely like the way it reacts as a grid more though, but I was still able to make situations like this:

Although, honestly I don't think I'd really setup windows this way anyway and it may be a contrived example. I'm not really sure what should happen there.
As far as the modes, that definitely sounds useful. One thing I thought of at some point was putting some sort of visual indicator on the app_bar when you have an app fullscreened because sometimes I'd forget or switch to a workspace and try un-fullscreening only to realize it was the only app on that workspace. I think that... while that  may or may not deserve an indicator, I think switching modes should show some indicator of what mode you're in.

@ramirezmike I can't really reproduce your screenshot. In what sequence did you create the tiles?

I tried out the resize branch and it's definitely feeling a lot better for me although there were still moments where I hit key commands expecting something to move but nothing did, and I think that's more of like what I was saying above.

Could you please give me some examples?

In what sequence did you create the tiles?

For something like this:

(Assuming "open window" is just like... opening a new application that automatically gets managed)

Open window (A)
Open window with vertical split (B)
Switch to horizontal split and open window (C)
Switch back to vertical split and open window (D)

I don't really have a use case for this, it feels like a contrived situation I came across playing around with this but I can't expand B individually width-wise without affecting C.
Also, I did run into this afterward while closing windows I had opened and resized:

thread 'main' panicked at 'attempt to divide by zero', src/tile_grid.rs:491:30

But I'm having trouble reproducing that.

Could you please give me some examples?

After playing with it some more, I think it's just I thinking of it as moving the split rather than expanding/shrinking the window in a specific direction. Like, in the picture above if I do Alt+Shift+J to expand B window downward, if I go to far and want to "go back" my instinct is to hit Alt+Shift+K rather than Alt+Ctrl+Shift+J. Switching into the resize mode may make this easier for me though.

Also, another quick thought: while in "resize mode" hjkl can resize the focused tile and something like wasd can be used to change which tile is focused?

The goal is that you can do whatever you want when in a mode.
example
modes:
  resize:
    key: Control+R
    keybindings:
      - type: resize
        key: H
        direction: Left
        amount: 2
      - type: focus
        key: A
        direction: Left

The resize keybinding type can also be assigned to when not in a custom mode.
example
keybindings:
  - type: resize
    key: Alt+Shift+H
    direction: Left
    amount: 2

Note: Every keybinding that doesn't belong to the current mode gets ignored.

The mode feature is now almost complete. The only remaining part is a visual indicator in the appbar. The problem is that I don't really know what the best way to display an active mode in the appbar is.
My plan right now is to just support a letter (which can be a unicode character if you want a nice icon like 👁).
The letter would be visible somewhere in the area of the red square in the following picture

If someone wants to try out the mode feature you can checkout this branch.
Config I used to test this (modes are at the bottom)

app_bar_font: Cascadia Mono
app_bar_font_size: 17

min_width: 200
min_height: 200

work_mode: false
multi_monitor: true
launch_on_startup: true
display_app_bar: true
remove_title_bar: true
remove_task_bar: true

rules:
  - pattern: ^(File Explorer|Task Manager)$
    manage: false
  - pattern: ^.*- Mozilla Firefox|Mozilla Firefox$
    has_custom_titlebar: true
    workspace: 2
    firefox: true
  - pattern: ^.*- Discord|Discord$
    has_custom_titlebar: true
  - pattern: ^Spotify Premium$
    has_custom_titlebar: true
  - pattern: ^.*- Google Chrome$
    has_custom_titlebar: true
    workspace: 2
    chromium: true
  - pattern: ^.*- Visual Studio Code$
    has_custom_titlebar: true

keybindings:
  - type: Launch
    key: Alt+Enter
    cmd: wt.exe
  - type: Launch
    key: Alt+B
    cmd: C:\\Program Files\\Mozilla Firefox\\firefox.exe

  - type: CloseTile
    key: Alt+Q

  - type: Quit
    key: Alt+X

  - type: Focus
    key: Alt+H
    direction: Left
  - type: Focus
    key: Alt+J
    direction: Down
  - type: Focus
    key: Alt+K
    direction: Up
  - type: Focus
    key: Alt+L
    direction: Right

  - type: Swap
    key: Alt+Control+H
    direction: Left
  - type: Swap
    key: Alt+Control+J
    direction: Down
  - type: Swap
    key: Alt+Control+K
    direction: Up
  - type: Swap
    key: Alt+Control+L
    direction: Right

  - type: Split
    key: Alt+Plus
    direction: Vertical
  - type: Split
    key: Alt+Minus
    direction: Horizontal

  - type: ToggleFloatingMode
    key: Alt+Control+F
  - type: ToggleFullscreen
    key: Alt+F
  - type: ToggleWorkMode
    key: Alt+Control+W

  - type: MoveToWorkspace
    key: Alt+Shift+1
    id: 1
  - type: MoveToWorkspace
    key: Alt+Shift+2
    id: 2
  - type: MoveToWorkspace
    key: Alt+Shift+3
    id: 3
  - type: MoveToWorkspace
    key: Alt+Shift+4
    id: 4

  - type: MoveWorkspaceToMonitor
    key: Alt+Control+1
    monitor: 1
  - type: MoveWorkspaceToMonitor
    key: Alt+Control+2
    monitor: 2

  - type: ChangeWorkspace
    key: Alt+1
    id: 1
  - type: ChangeWorkspace
    key: Alt+2
    id: 2
  - type: ChangeWorkspace
    key: Alt+3
    id: 3
  - type: ChangeWorkspace
    key: Alt+4
    id: 4
  - type: ChangeWorkspace
    key: Alt+5
    id: 5
modes:
  resize:
    key: Alt+R
    keybindings:
      - type: Resize
        key: H
        direction: Left
        amount: 2
      - type: Resize
        key: Shift+H
        direction: Left
        amount: -2
      - type: Focus
        key: A
        direction: Left
      - type: Focus
        key: D
        direction: Right
      - type: Focus
        key: W
        direction: Up
      - type: Focus
        key: S
        direction: Down

My plan right now is to just support a letter (which can be a unicode character if you want a nice icon like eye).

I actually like this idea a lot.

@ramirezmike have you noticed any problems with the resize feature, else I'll merge this into development today.

I haven't used it extensively, but aside from the tiles work that the other issue was created for, I'm not really seeing any issues and it hasn't paniced on me yet aside from that one time I got

thread 'main' panicked at 'attempt to divide by zero', src/tile_grid.rs:491:30

that I mentioned above, but I still haven't managed to reproduce it.
I think it will definitely be a lot more fun once the modes and config changes are merged too.

I saw this branch and was interested in testing it. Are you still planning to merge it will development or should I build it myself?

I am actually thinking about merging this together with the new config format and modes.
I will be doing this later today.

resize, modes and rhai are now merged into development. I will be creating a new issue for visual indicator when mode is active and after this is done I will be merging everything into master.


Remove dead code and further lower gas usage

https://github.com/ethereum-optimism/synthetix/tree/geohot/safetycheck <-- in order to re-generate the JSON files, run node publish build --use-OVM --show-warnings.
To change solc version used: https://github.com/ethereum-optimism/synthetix/blob/1623ed7133fb5d864bbccd6beb8f68143ddf99a7/publish/src/solidity.js#L68

Still failing CI with "Focused tests are not allowed", not sure what this means. But yarn test in packages/contracts passes 21 tests on my machine.

Still failing CI with "Focused tests are not allowed", not sure what this means. But yarn test in packages/contracts passes 21 tests on my machine.

Oh yeah, that's just because the safety checker tests are .onlyed

Made a couple small updates to this branch: https://github.com/ethereum-optimism/optimism-monorepo/pull/211 - should make EtherCollateral safe now and console.log when encountering a non-whitelisted opcode

A quick claim of why 1.5 million will be very hard (50 gas per byte). Arguments are put on the stack with DUP or PUSH, so something like an LT, while only costing 3, really costs more like 9.
Exit compare (34+10=22 gas): dupx dupx gt push(addr) jumpi
Load (34=12 gas, currently 6 more for add): dupx mload push(0x00) byte
Shift compare (3*6+10=28 gas): push(1) dupx shl dupx and push(addr) jumpi
Inc pc (6 gas, currently 8 more for jump): push(1) add
Even with the absolute minimum in hardcoded asm, you are left with 22+12+28+6 = 68 gas. Pushes do help? And maybe maybe there's word stuff?

got 1432474, though like...eww
https://github.com/geohot/optimism-monorepo/commit/7e07a996dff5e661790ac0023b7af18c34b86308

got 1432474 with some multibytish, though like...eww (also, it doesn't work as is*)
now 1349924 after using all 32 bytes, 1323483 with new call check and cleanup
geohot@7e07a99

Would require compiler change to call with: CALLER PUSH1 0x0 SWAP1 GAS CALL. Or actually...question? What's "unsafe" about calling the execution manager with a value?

We need to make sure execution is deterministic on and off chain - the CALL opcode will fail if the call value exceeds its balance. You could have a call that failed on L2 but succeeds on L1 during a fraud proof (e.g. an attacker sends ETH to the contract right before execution).

Ahh I see. The fast version would require the compiler change than with the SWAP1 as far as I can think, since unless you track it, I don't think you can ever be sure you aren't in a PUSH.

Ahh I see. The fast version would require the compiler change than with the SWAP1 as far as I can think, since unless you track it, I don't think you can ever be sure you aren't in a PUSH in O(1).
Also, do you need to be able to pass in an opcodeWhitelistMask, or can it be hardcoded?

Oooh! SWAP1 is a clever trick. Opcode whitelist mask could probably be hardcoded. As long as we can configure it without affecting audit/formal verification

Replaced by #214


CORS Solution & Robust Error Handling

CORS Implementation

Created new end point to send UPS Object Data from the client end to the new route
Handled the post request from Django end to make an API call to UPS versus making the call from client

Propagated errors up from the model to the controller file

Checks for complete address submission
Check and handling for incorrect address (will redirect the user back to the product/address submission page and clear out our state variable so a new rate can accurately be generated)
Check for product selection
Check for weight limitations on our largest shipping box

This PR puts an end to the CORS issue 👍


Heads-up: lru.0.3.0 breakage

Lru.0.3.0 breaks the API: bindings need to be explicitly promoted, and the map needs to be explicitly trimmed. The change is mostly search-and-replace.

Thanks for the ping; sed and I are on the case.

Closing this since I've merged #29; thanks for your adult supervision ;)


Vertex Color Rainbow still there

Current Behavior
I recently upgraded my Blender version from 3.6 LTS to 4.2 LTS and opened a project file used in 3.6 LTS. After updating the materials by re-selecting their types, I proceeded to export the project using the same process as in Blender 3.6 LTS. However, upon loading the exported objects into Microsoft Flight Simulator 2020 (MSFS 2020), I noticed that some objects display rainbow-colored artifacts.
I referred to the related issue #252 in the Asobo Blender repository and updated the objects by switching the Color Attribute Byte Color to Color, as suggested. Unfortunately, this did not resolve the problem; the rainbow colors persist. (Note With 3.6 i didn't had this rainbow issue).
I also enabled the "This Project Uses Vertex Color Nodes" option in the glTF Blender I/O MSFS add-on settings, but the issue remains unresolved.

Expected Behavior
When exporting a project from Blender 4.2 LTS using the glTF Blender I/O MSFS add-on, objects should display correctly in Microsoft Flight Simulator 2020 without any unexpected artifacts, such as rainbow-colored effects. Materials and vertex color attributes should export accurately, maintaining the intended appearance of the objects as seen in Blender. The settings and workflow used, including "Color Attribute Byte Color to Color" and "This Project Uses Vertex Color Nodes," should ensure proper compatibility and rendering
Steps To Reproduce

Upgrade Blender from version 3.6 LTS to 4.2 LTS.
Open a project file used in Blender 3.6 LTS in Blender 4.2 LTS.
Update the materials in the project by re-selecting their types to match the new version's requirements.
Export the project using the glTF Blender I/O MSFS add-on with the same workflow as used in Blender 3.6 LTS.
Load the exported project into Microsoft Flight Simulator 2020 (MSFS 2020).
Observe some objects displaying rainbow-colored artifacts instead of the expected appearance.

(Optional troubleshooting steps attempted):

Update the Color Attribute Byte Color to Color for the affected objects.
Enable the "This Project Uses Vertex Color Nodes" option in the add-on settings.
Re-export the project and reload it in MSFS 2020
Observe that the rainbow-colored artifacts persist despite these adjustments.

Seeing
Environment
- OS: Win 11
- Blender: 4.2.4 LTS
- glTF-Blender-IO-MSFS: 2.2.15

Anything else?
No response

Is this still an issue?

Is this still an issue?

As long as i not export Vertext Color its not an issue. Dont know if it is intended?

Is this still an issue?

hi, do you have a plan for msfs2024? already asobo exporter is very problematic :/

There will be a MSFS 2024 exporter for 4.2 LTS only , but ASOBO's current one is still too unstable to add in my changes/updates.


Clean up

Removed two more bits. Neither was as egregious as the reason for the fork, but this just felt prudent.

❤


Add the ability to set custom colors on the terminal output

i.e., 256 colors enabled

Tailor GoAccess to suit your own taste with custom colors for the terminal output. Now available on the just released v0.9.3
Color Syntax:
DEFINITION space/tab colorFG#:colorBG# [attributes,PANEL]

FG# = foreground color number [-1...255] (-1 = default terminal color)
BG# = background color number [-1...255] (-1 = default terminal color)

Optionally
It is possible to apply color attributes, such as:
bold,underline,normal,reverse,blink.

Multiple attributes are comma separated
If desired, it is possible to apply custom colors per panel, that is, a metric in the REQUESTS panel can be of color A, while the same metric in the BROWSERS panel can be of color B.
The following is a 256 color scheme (Monokai palette)
color COLOR_MTRC_HITS     color197:color-1
color COLOR_MTRC_VISITORS color148:color-1
color COLOR_MTRC_DATA     color7:color-1
color COLOR_MTRC_BW       color81:color-1
color COLOR_MTRC_AVGTS    color247:color-1
color COLOR_MTRC_CUMTS    color95:color-1
color COLOR_MTRC_MAXTS    color186:color-1
color COLOR_MTRC_PROT     color141:color-1
color COLOR_MTRC_MTHD     color81:color-1
color COLOR_MTRC_PERC     color186:color-1
color COLOR_MTRC_PERC     color186:color-1 VISITORS
color COLOR_MTRC_PERC     color186:color-1 OS
color COLOR_MTRC_PERC     color186:color-1 BROWSERS
color COLOR_MTRC_PERC     color186:color-1 VISIT_TIMES
color COLOR_MTRC_PERC_MAX color208:color-1
color COLOR_MTRC_PERC_MAX color208:color-1 VISITORS
color COLOR_MTRC_PERC_MAX color208:color-1 OS
color COLOR_MTRC_PERC_MAX color208:color-1 BROWSERS
color COLOR_MTRC_PERC_MAX color208:color-1 VISIT_TIMES
color COLOR_PANEL_COLS    color242:color-1
color COLOR_BARS          color186:color-1
color COLOR_ERROR         color231:color197
color COLOR_SELECTED      color0:color215
color COLOR_PANEL_ACTIVE  color7:color240
color COLOR_PANEL_HEADER  color7:color237
color COLOR_PANEL_DESC    color242:color-1
color COLOR_OVERALL_LBLS  color251:color-1
color COLOR_OVERALL_VALS  color148:color-1
color COLOR_OVERALL_PATH  color186:color-1
color COLOR_ACTIVE_LABEL  color7:color237
color COLOR_BG            color7:color-1
color COLOR_DEFAULT       color7:color-1
color COLOR_PROGRESS      color7:color141

See config file for more details.