getLine doesn't get update from SGR

getLine doesn't get an update from SGR unless it is preceded by a printing of a new line. I'm not expert in ANSI specification so maybe I'm missing something.
This reproduces what I've found:
main :: IO String
main = do
  setSGR [SetColor Foreground Vivid Blue]
  getLine -- It won't be blue

main :: IO String
main = do
  setSGR [SetColor Foreground Vivid Blue]
  putStr ""
  getLine -- It won't be blue

main :: IO String
main = do
  setSGR [SetColor Foreground Vivid Blue]
  putStrLn ""
  getLine -- It will be blue!!

That is correct - the 'ANSI' control sequences need to be flushed from the output buffer (with a new line character or hFlush stdout) before they can be acted on by the terminal. getLine input from the keyboard is echoed as output to the terminal, but that does not flush the output buffer.
The hFlush stdout is needed for the same reason that it is needed in this sort of a program:
module Main where

import System.IO (hFlush, stdout)

main :: IO ()
main = do
  putStr "What is your name: "
  hFlush stdout
  s <- getLine
  putStrLn $ "Hello, " ++ s

Thanks for the explanation @mpilgrem, now it makes sense. I guess I can close the issue then.


etcdserver: allow 1 learner in cluster

Hard-coded the maximum number of learners to 1.
cc @gyuho @jpbetz @WIZARD-CXY

Still thinking about how to make this limit reconfigurable for experimenting purpose. Since this is a cluster configuration, seem it is only safe to reconfigure it via quorum write.

1 maybe too small for big cluster. We can make it as some function of quorum number.
For example, #maxLearner = #quorum. So it can grow as the cluster grows.
Reconfigure the #maxLearner indeed requires more work. we can leave it afterwards IMHO.

1 maybe too small for big cluster. We can make it as some function of quorum number.
For example, #maxLearner = #quorum. So it can grow as the cluster grows.
Reconfigure the #maxLearner indeed requires more work. we can leave it afterwards IMHO.

Currently we do not know how much overhead a learner adds to leader. We do not want adding learner causes cluster to be unavailable. Despite quorum size, there is only 1 leader. If we have more learners, that means more load on leader. See https://github.com/jingyih/etcd/pull/24#issuecomment-486080361 and https://github.com/jingyih/etcd/pull/24#issuecomment-486408857.

Are we still considering this? Sorry for late review. Added a comment.

Are we still considering this? Sorry for late review. Added a comment.

Yes we still plan to merge this.

lgtm, thanks!


AzureAD group member of local Administrators group on Hybrid AzureAD joined device

Hello.
If I have a Hybrid Azure AD joined device. The user that sign in to the device with a domain user that is synchronized to AzureAD. That user is member of a AzureAD group. If I then configure that AzureAD group to be a member of the local administrators group. Would then that user be able to elevate privilege to administrator?
I have this scenario setup in a lab environment, I can see that the AzureAD group SID is member of the local Administrators group, but still the user isn't able to elevate to administrator on the device.
Its not fully clarified in the documentation if this is supported.

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

ID: 8b0c55a7-9aaa-d395-409e-59c2595c8e9e
Version Independent ID: cf8e5a71-a8fc-1d43-6eed-03d3f2490693
Content: Policy CSP - LocalUsersAndGroups - Windows Client Management
Content Source: windows/client-management/mdm/policy-csp-localusersandgroups.md
Product: w10
Technology: windows
GitHub Login: @ManikaDhiman
Microsoft Alias: dansimp

Hello, @toxarisswe
Please feel free to reopen this PR by responding to the question provided by an independent contributor. Thanks.


Add AUR package

Adds an Arch image and link to the AUR package
Closes #16

Perfect, thanks! :cake:


Hide admin page for unauthorized users

Checklist

[X] The bug is reproducible against the latest release or master.
[X] There are no similar issues or pull requests to fix it yet.

Describe the bug
According documentation we can use middleware for hiding admin page from some users.
If user is not is_authenticated it shows:

Steps to reproduce the bug
Just add auth middleware like this:
from sqladmin import Admin, ModelAdmin
from starlette.applications import Starlette
from starlette.requests import Request

# AuthenticationMiddleware explained in Starlette docs

middlewares = [
    Middleware(AuthenticationMiddleware, backend=BasicAuthBackend())
]

app = Starlette()
admin = Admin(app=app, engine=engine, middlewares=middlewares)

class AuthModelAdmin(ModelAdmin):
    def is_accessible(self, request: Request) -> bool:
        # With Authentication backend you can now access request.user.
        if request.user.is_authenticated:
            return True
        return False

Expected behavior
Do not show page; raise error
Actual behavior
No response
Debugging material
No response
Environment
SMP Debian 5.10.106-1 (2022-03-17)
Python 3.9
Additional context
No response

Hey, thanks for the suggestion. Yes that makes sense.
The problem is there might be some classes not inheriting from AuthModelAdmin  so they might be visible in the page.
There should be a generic way to control this via middlewares maybe. Let me take a look.

I've added basic support for Authentication in https://github.com/aminalaee/sqladmin/pull/277
I'll update the documentation how to use it, but this will achieve what you want.


Add notifications endpoint

Fixes #323

Not sure what happend with fo r 7.8...

@phadej Any chance you can take a look at this. I'd like to merge something to taffybar, that needs this change.

Thanks @phadej. I've updated the pr. Are you planning to do a release any time soon?

@phadej ping? any chance thsi can be merged soon?

@phadej ping. I think I fixed all of the issues you raised. Is there something else you wanted me to do?

Rebased into https://github.com/phadej/github/pull/372


[ADAM-1949] Support validation stringency in out formatters.

Fixes #1949.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/ADAM-prb/2741/
Test PASSed.

Merged! Thanks @heuermh!


events.js:160 Unhandled 'error' event

Running on an older version of Discord (not sure where to check the version number), however recently one of the hosted bots ends up disconnecting and reconnecting itself many times over using the following piece of code:
bot.on('disconnected', function() {\n
    console.log('Disconnected!');\n
    bot.login(AuthDetails.email, AuthDetails.password);\n
});

And eventually (or straight away when manually restarting it) it will display the following error message on the console:
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: Invalid session
    at WebSocket.websocket.onclose (C:\Path\Discord\node_modules\discord.js\lib\Client\InternalClient.js
:1791:12)
    at WebSocket.onClose (C:\Path\Discord\node_modules\ws\lib\WebSocket.js:446:14)
    at emitTwo (events.js:106:13)
    at WebSocket.emit (events.js:191:7)
    at WebSocket.cleanupWebsocketResources (C:\Path\Discord\node_modules\ws\lib\WebSocket.js:950:8)
    at emitNone (events.js:91:20)
    at TLSSocket.emit (events.js:185:7)
    at endReadableNT (_stream_readable.js:973:12)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)

It appears to be frequently affecting one of the first bots we wrote, but doesn't appear to affect the later ones which were written in a similar fashion and are running on the same version. Running 3 of them at the same time, and they never had this issue before, until recently. How could I resolve this, or was something changed in the Discord APIs?
I couldn't find any information about it, so I thought I'd drop this here.

can you check the version using npm list discord.js, also feel free to join us for quicker support here

Version displayed appears to be v8.0.0
--<EMAIL_ADDRESS>(git://github.com/hydrabolt/discord.js.git#422fffdbfb4cc17
7a4d98b5c4a1a473fad52663c)

well as much as i hate to say this, v8 is not supported anymore, and there have been large changes in how the api works. I would say your best bet is updating to the latest version, which is v10. you can find some docs here

Hm, yeah.. there are however some large changes breaking some important features the current bot is able to do with v8, that's why I hadn't updated yet. It was actually running fine and without problems until recently, and since it appears to only be affecting mainly one of the bots (the other two had only showed the same issue once or twice, while this is very frequent), I thought I'd check.
Thanks anyways


chore: align default config with python gateway

This change is

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#406
#405  👈
#380
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @ArniStarkware and the rest of your teammates on  Graphite

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 83.34%. Comparing base (ef4b845) to head (1663dd9).

Additional details and impacted files
@@                           Coverage Diff                           @@
##           arni/chore/config/max_bytecode_size     #405      +/-   ##
=======================================================================
- Coverage                                83.36%   83.34%   -0.02%
=======================================================================
  Files                                       37       37
  Lines                                     1707     1705       -2
  Branches                                  1707     1705       -2
=======================================================================
- Hits                                      1423     1421       -2
  Misses                                     209      209
  Partials                                    75       75

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Merge activity

Jul 9, 6:05 AM EDT: @ArniStarkware started a stack merge that includes this pull request via Graphite.


refactor: Complete rename of huddle to direct_message_group in non api files.

This commit completes rename of "huddle" to "direct_message_group" in all the non API files.
Part of #28640
Also includes:

huddle_recipient_id_to_user_ids to user_ids_in_direct_message_groups
include_deactivated_users_for_huddles to include_deactivated_users_for_dm_groups
(since using `direct_message_groups would be long for them)

remaining as per the CZO thread

Self-review checklist

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

Communicate decisions, questions, and potential concerns.

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

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

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

Completed manual review and testing of the following:

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

This needs a rebase.

@timabbott rebased!

Now that 9.0 is out, merged, thanks @roanster007!
It looks like we still need a translations PR before finishing #28640.

Backported to 9.x in https://github.com/zulip/zulip/pull/31584.


Feature request: update Direct3D from 1.608.2 to 1.611.0 for AV1 encode libVA support under WSL..

**Is your feature request related to a problem?
yes in part.. I want to get support for AV1 encode under VAAPI (LibVA) under WSL..
this required until few days ago a Agility Preview release (711) but now with SDK 1.611.0 we get DX AV1 encode in a stable Agility SDK release..
Mesa master right now supports AV1 D3D encode.. as shown by commits like these:

https://cgit.freedesktop.org/mesa/mesa/commit/?id=1d5b5bb9e18055f1d87f3171e21b814661d3a4d9

right now we get Versión de Direct3D: 1.608.2-61064218  as shown using latest WSL 2.0.5 build:
wsl --version
Versión de WSL: <IP_ADDRESS>
Versión de kernel: <IP_ADDRESS>-1
Versión de WSLg: 1.0.59
Versión de MSRDC: 1.2.4485
Versión de Direct3D: 1.608.2-61064218
Versión DXCore: 10.0.25880.1000-230602-1350.main
Versión de Windows: 10.0.25951.1000

Describe the solution you'd like
update Direct3D from "Direct3D: 1.608.2-61064218" to 611..
Describe alternatives you've considered
no other way to support it..
Additional context

Good timing, I've already made this change and it will be in WSL 2.0.6.

nice!
just a quick question @benhillis : it's possible for an user to update these libraries (Agility SDK version) without waiting for WSL version updates.. even in a hacky (unsupported way).. mainly thinking about for testing Agility "preview" releases such as work graphs or WMMA under WSL..

https://github.com/microsoft/WSL/releases/tag/2.0.6


Can't run a fresh gowebly project

Required check list:

[x] I understand, this is an Open Source and not-for-profit product.
[x] I didn't find in the repository's issues section a similar bug.
[x] This is not about a third-party project, framework, or technology.

My environment:
│ Gowebly CLI: v2.6.7 (build with go1.23.1 on darwin/arm64)
│
│ Go: 1.23.1 darwin/arm64
│ Node.js version: 22.9.0 (npm 10.8.3)
│ Bun version: 1.1.29
│
│ Is Air tool installed? true
│ Is Templ package installed? true
Describe the bug:
When I create a new project with "gowebly create" I get this error at the end of installation process.

When I run the project with "gowebly run" I get this error

I think is something wrong with parcel because I have and old gowebly install from February and now I can't run. Same problem

The problem is with M1 Mac. Fixed https://github.com/parcel-bundler/parcel/issues/9926#issuecomment-2325311920


Problem with Ctrl+k kill-line

Thanks for this package !
When I use Ctrl-k then the line is deleted regardless of the cursor position but
in emacs terminology Ctrl-k is kill line to end so this do not match this emacs keybinding
The exact rule should be
atom-workspace atom-text-editor': 'ctrl-k': 'editor:cut-to-end-of-line'

Hi,
I'm not seeing this behavior myself. What do you see bound to the key when you run key-binding-resolver:toggle and then type ctrl-k?

Hi,
This is working now after the update, thanks a lot


Breaking changes

Just quickly tried to change the resolver but it's still throwing an error
  scope = function()
    -- Attempt to use a git directory as the project scope
    local root_files = vim.fs.find(".git", { upward = true })
    if #root_files > 0 then
      return vim.fs.dirname(root_files[1])
    end
    -- Fallback to "lsp", which will fallback to "directory" if not found
    return require("grapple.scope").resolvers.lsp
  end

also tried
  scope = function()
    require("grapple.scope").fallback({
      require("grapple.scope").resolvers.lsp,
      require("grapple.scope").root(".git"),
      require("grapple.scope").resolvers.static
    })
  end

Not sure what im doing wrong.

The scope passed in should now be a scope resolver. The last example was close, should just be without the surrounding function:
require("grapple").setup({
    scope = require("grapple").fallback({
        require("grapple").resolvers.lsp,
        require("grapple").resolvers.git,
        require("grapple").resolvers.static,
    })
})

@cbochs
seems something is wrong

Yup. You're right. That's because I used grapple not grapple.scope
require("grapple").setup({
    scope = require("grapple.scope").fallback({
        require("grapple.scope").resolvers.lsp,
        require("grapple.scope").resolvers.git,
        require("grapple.scope").resolvers.static,
    })
})

an other error,

That is odd. Can you let me know if the following works?
require("grapple").setup({ scope = "static" })

Yep that works fine

How about this command:
lua =vim.lsp.get_active_clients({ bufnr = 0 })[1].config

Seem to get an output,
{
  _on_attach = <function 1>,
  autostart = true,
  capabilities = {
    callHierarchy = {
      dynamicRegistration = false
    },
    textDocument = {
      codeAction = {
        codeActionLiteralSupport = {
          codeActionKind = {
            valueSet = { "", "Empty", "QuickFix", "Refactor", "RefactorExtract", "RefactorInline", "RefactorRewrite", "Source", "SourceOrganizeImports", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports" }
          }
        },
        dataSupport = true,
        dynamicRegistration = false,
        isPreferredSupport = true,
        resolveSupport = {
          properties = { "edit" }
        }
      },
      completion = {

Hm. I just made a commit (https://github.com/cbochs/grapple.nvim/commit/c3d27d77c3c3c821a3d201494cb59634d08b0bcd) that separates out two resolvers that don't have builtin fallbacks: git_fallback and lsp_fallback. Can you try:
require("grapple").setup({
    setup = require("grapple.scope").fallback({
        require("grapple.scope").resolvers.lsp_fallback,
        require("grapple.scope").resolvers.git_fallback,
        require("grapple.scope").resolvers.static
    })
})

There was an error at first but after a resync everything seems to be working fine now.

Will close this now, thanks for the assist :D

Great! I'll make sure to edit the post I made in the Breaking Changes #39 issue to note this. Thanks for the help diagnosing

As a final note, I've updated both the Tag Scopes and grapple.scope#fallback sections in the README to mention these special scope resolvers


Freeplay Use Full Viewable Area

I feel like I might not be understanding this correctly, but I'd like to use the full "viewable" area of the Freeplay Zero (302x202).
I'd also like to set the HDMI resolution to 1024x768, because it works for most HDMI TVs/Monitors.  This way the HDMI output can be hot pluggable while the LCD remains fully usable.
Today we tried 1024x768 and 320x240 HDMI resolution on the Freeplay Zero.  As shown in the attached photo, the LCD gets sized to (I think) 269x202 which doesn't use the full viewable 302x202.
I understand that 269/202 = 1.3 just like 1024/768 (or 320/240), but I would prefer to stretch this output to 302x202 and allow the emulator to do the scaling.  That way the HDMI output and the LCD output will match and use the entire viewable area.
Can we attain this?  If so, what settings should I use to set it up?

the LCD gets sized to (I think) 269x202 which doesn't use the full viewable 302x202.

The code in https://github.com/juj/fbcp-ili9341/blob/master/gpu.cpp#L396 performs an aspect ratio preserving scale, that does not stretch width/height disproportionately. The output in the photo looks correct and expected from that behavior viewpoint.
If you'd like to do an aspect ratio ignoring scale, you can try removing the computation of the single scaling factor that is applied equally to both width and height, and apply separate scaling factors to width and height. Something like following: (I'm on the road, so did not actually test this, off the top of my head)
diff --git a/gpu.cpp b/gpu.cpp
index 112fd52..d8b29e8 100644
--- a/gpu.cpp
+++ b/gpu.cpp
@@ -337,7 +337,8 @@ void InitGPU()
   displayYOffset = 0;
   int scaledWidth = DISPLAY_DRAWABLE_WIDTH;
   int scaledHeight = DISPLAY_DRAWABLE_HEIGHT;
-  double scalingFactor = 1.0;
+  double scalingFactorWidth = 1.0;
+  double scalingFactorHeight = 1.0;

   // Often it happens that the content that is being rendered already has black letterboxes/pillarboxes if it was produced for a different aspect ratio than
   // what the current HDMI resolution is. However the current HDMI resolution might not be in the same aspect ratio as DISPLAY_DRAWABLE_WIDTH x DISPLAY_DRAWABLE_HEIGHT.
@@ -393,25 +394,18 @@ void InitGPU()
   int relevantDisplayHeight = (int)(display_info.height * (1.0 - overscanTop - overscanBottom) + 0.5);
   printf("Relevant source display area size with overscan cropped away: %dx%d.\n", relevantDisplayWidth, relevantDisplayHeight);

-  if (DISPLAY_DRAWABLE_WIDTH * relevantDisplayHeight < DISPLAY_DRAWABLE_HEIGHT * relevantDisplayWidth)
-  {
-    scaledHeight = (int)((double)DISPLAY_DRAWABLE_WIDTH * relevantDisplayHeight / relevantDisplayWidth + 0.5);
-    scalingFactor = (double)DISPLAY_DRAWABLE_WIDTH/relevantDisplayWidth;
-    displayXOffset = DISPLAY_COVERED_LEFT_SIDE;
-    displayYOffset = DISPLAY_COVERED_TOP_SIDE + (DISPLAY_DRAWABLE_HEIGHT - scaledHeight) / 2;
-  }
-  else
-  {
-    scaledWidth = (int)((double)DISPLAY_DRAWABLE_HEIGHT * relevantDisplayWidth / relevantDisplayHeight + 0.5);
-    scalingFactor = (double)DISPLAY_DRAWABLE_HEIGHT/relevantDisplayHeight;
-    displayXOffset = DISPLAY_COVERED_LEFT_SIDE + (DISPLAY_DRAWABLE_WIDTH - scaledWidth) / 2;
-    displayYOffset = DISPLAY_COVERED_TOP_SIDE;
-  }
+  scaledWidth = DISPLAY_DRAWABLE_WIDTH;
+  scaledHeight = DISPLAY_DRAWABLE_HEIGHT;
+  displayXOffset = DISPLAY_COVERED_LEFT_SIDE;
+  displayYOffset = DISPLAY_COVERED_TOP_SIDE;
+
+  scalingFactorWidth = (double)scaledWidth / relevantDisplayWidth;
+  scalingFactorHeight = (double)scaledHeight / relevantDisplayHeight;

-  excessPixelsLeft = (int)(display_info.width * overscanLeft * scalingFactor + 0.5);
-  excessPixelsRight = (int)(display_info.width * overscanRight * scalingFactor + 0.5);
-  excessPixelsTop = (int)(display_info.height * overscanTop * scalingFactor + 0.5);
-  excessPixelsBottom = (int)(display_info.height * overscanBottom * scalingFactor + 0.5);
+  excessPixelsLeft = (int)(display_info.width * overscanLeft * scalingFactorWidth + 0.5);
+  excessPixelsRight = (int)(display_info.width * overscanRight * scalingFactorWidth + 0.5);
+  excessPixelsTop = (int)(display_info.height * overscanTop * scalingFactorHeight + 0.5);
+  excessPixelsBottom = (int)(display_info.height * overscanBottom * scalingFactorHeight + 0.5);

   gpuFrameWidth = scaledWidth;
   gpuFrameHeight = scaledHeight;
@@ -430,8 +424,8 @@ void InitGPU()
   videoCoreFramebuffer[0] += (gpuFramebufferSizeBytes>>1);
   videoCoreFramebuffer[1] += (gpuFramebufferSizeBytes>>1);

-  syslog(LOG_INFO, "GPU display is %dx%d. SPI display is %dx%d with drawable area of %dx%d. Applying scaling factor %.2fx, xOffset: %d, yOffset: %d, scaledWidth: %d, scaledHeight: %d", display_info.width, display_info.height, DISPLAY_WIDTH, DISPLAY_HEIGHT, DISPLAY_DRAWABLE_WIDTH, DISPLAY_DRAWABLE_HEIGHT, scalingFactor, displayXOffset, displayYOffset, scaledWidth, scaledHeight);
-  printf("Source GPU display is %dx%d. Output SPI display is %dx%d with a drawable area of %dx%d. Applying scaling factor %.2fx, xOffset: %d, yOffset: %d, scaledWidth: %d, scaledHeight: %d\n", display_info.width, display_info.height, DISPLAY_WIDTH, DISPLAY_HEIGHT, DISPLAY_DRAWABLE_WIDTH, DISPLAY_DRAWABLE_HEIGHT, scalingFactor, displayXOffset, displayYOffset, scaledWidth, scaledHeight);
+  syslog(LOG_INFO, "GPU display is %dx%d. SPI display is %dx%d with drawable area of %dx%d. Applying scaling factor %.2fx/%.2fx, xOffset: %d, yOffset: %d, scaledWidth: %d, scaledHeight: %d", display_info.width, display_info.height, DISPLAY_WIDTH, DISPLAY_HEIGHT, DISPLAY_DRAWABLE_WIDTH, DISPLAY_DRAWABLE_HEIGHT, scalingFactorWidth, scalingFactorHeight, displayXOffset, displayYOffset, scaledWidth, scaledHeight);
+  printf("Source GPU display is %dx%d. Output SPI display is %dx%d with a drawable area of %dx%d. Applying scaling factor %.2fx/%.2fx, xOffset: %d, yOffset: %d, scaledWidth: %d, scaledHeight: %d\n", display_info.width, display_info.height, DISPLAY_WIDTH, DISPLAY_HEIGHT, DISPLAY_DRAWABLE_WIDTH, DISPLAY_DRAWABLE_HEIGHT, scalingFactorWidth, scalingFactorHeight, displayXOffset, displayYOffset, scaledWidth, scaledHeight);

   uint32_t image_prt;
   printf("Creating dispmanX resource of size %dx%d (aspect ratio=%f).\n", scaledWidth + excessPixelsLeft + excessPixelsRight, scaledHeight + excessPixelsTop + excessPixelsBottom, (double)(scaledWidth + excessPixelsLeft + excessPixelsRight) / (scaledHeight + excessPixelsTop + excessPixelsBottom));

This fix works perfectly as you wrote it, thanks a lot :D

Perfect! Added this as a config.h and CMake option in above commits.


The Windows Server content doesn't have scoped search configured

So I only have the option of searching the entire docs site

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

ID: 844864ef-2c94-77ff-b85e-301331d283a6
Version Independent ID: 960ddbd0-a265-7730-859d-a0a308d7a3b1
Content: What's new in Windows Server 2019
Content Source: WindowsServerDocs/get-started-19/whats-new-19.md
Product: windows-server-threshold
GitHub Login: @dawnwood
Microsoft Alias: dawn.wood

Hi @mairaw Thanks for letting us know! I'll keep this issue open until we get this fixed.
Best,
Dawn


update nodejs runtime installer to grab latest minor versions

builds were broken trying to install nodejs.
fixed dockerfile to install latest minor version.

This is great, I was hoping there was a straightforward way to automate these updates. Thanks!


[Event Hubs] Refactor sender tests to use EventHubProducerClient

This PR refactors the tests that deal with sending events to use EventHubProducerClient.sendBatch() directly instead of creating a producer from the internal class EventHubClient and then sending messages. This will help us in eventually removing the intermediate EventHubClient class altogether.
Apart from this, the main changes are to the sender.spec.ts file and below are the highlights

The test helper sendBatch which took in messages and gave back a batch filled with given messages is removed in favor of EventHubProducerClient.sendBatch() as the latter now supports taking array of events
Instead of creating producer client once for the entire test suite, create one for each test. Some tests need to test createBatch to be called for the first time.
Move the creation of consumer client from the inner before each to the outer before each. This is so that the producer and consumer client can be created and closed together
Remove the tests written for single message as this API is no longer exposed to the user. For the same reason, remove support for it from EventHubProducer.send() as well.
Delete tests “Batch message” that uses the internal producer class in favor of similar tests that use the producer client later in the file
Skip the test for abort signal with createBatch() due to https://github.com/Azure/azure-sdk-for-js/issues/9202. Previously, this wasnt an issue as createProducer() would re-use the sender link created by prior tests and therefore wouldnt need to create a new link and set up token renewal
Remove the check to receives the message for the with max message size should be sent successfully case. None of the other tests in the group do the receive to test success, so this feels unnecessary
Delete the entire block for “multiple producers”,  this has only 1 test that tested calling createProducer repeatedly on the same partitionId. This is no longer a supported use case
Add few test cases to the Array of events block to have parity with the tests for the batch block
Remove the test that tests service throws error when empty string is given as invalid partitionId to createProducer(). We shouldn’t be testing service side errors. Also, empty string with 0 length is considered as no partitionId

This is part of a multiple series of code changes required to

have tests depend on public api surface where possible
reduce internal dependency on EventHubClient so that it can be eventually removed altogether

/azp run js - eventhubs-client - tests

/azp run js - eventhubs-client - tests

/azp run js - eventhubs-client - tests

/azp run js - eventhubs-client - tests

/azp run js - eventhubs-client - tests


Migrate to platform.io

In order to have a more modern interface/building system and in order to avoid compilation problems (expecially on various esp32 platforms with minimal changes e.g. heltech, ttgo, lopy ...) I suggest migrate from arduino to platform.io.
You can still use all arduino library as well.

It is true, it is a modern and pleasant interface, but it has its own idf and was discarded when we decided on the standards and the rude Arduino is still a standard these days. For example, Marlin continues to use Arduino as a reference. But the compilation process is independent of the development process. The locha binaries are created automatically every day through CI depending on the definitions of the board that you will find in the hardware folder, you can define your board and test it


current folder shows more than just current folder

I'm getting something like the following:
https://cl.ly/3R2Q2S2K1M0x

Interesting. Can I see your .hyper.js and your .zshrc?

I actually removed both of these files while debugging and I get the same behavior.

I can't be much help unless I get more information ✌

Yeah, just saying I pulled both those out of the running without luck. Where exactly is what is being displayed coming from?

It's fetching CWD through this command:
const setCwd = (pid) => {
    exec(`lsof -p ${pid} | grep cwd | tr -s ' ' | cut -d ' ' -f9-`, (err, cwd) => {
        curCwd = cwd.trim();
        setBranch(curCwd);
    })
};

For some reason it appears to be returning false CWD which to me sounds impossible considering it should affect the entire terminal behavior 🤔

hm, what is pid in this case? (I'm in no way a terminal expert). When I type pwd I get the expected result, not sure if this is too simplistic for what this package is trying to do :D

ok, I think I've figured this out. The issue is that my username is cwd so the grep is finding everything. Not sure if there is an easy fix, and this only really affects me and maybe a very small number of users...


Text overflow in docs

A long description like
http://package.elm-lang.org/packages/elm-lang/core/5.1.1/Platform#program
overflows in the TOC on the right side, apparently because of the CSS
.docs-annotation {
    white-space: pre;

If we remove "white-space: pre;" the text stays in its container.
Should the  ".docs-annotation white-space: pre;" be removed?

This should be an issue in the repo https://github.com/elm-lang/package.elm-lang.org, not of the core library.

Thanks for the report!
It looks like we have https://github.com/elm-lang/package.elm-lang.org/issues/201 as well, so let's go with that one.


Fix demo test failures for sequencing consensus.

The sequencing demo test won't pass until the ConsensusExchange refactoring is done. It's now hanging because the next leader doesn't appropriately handle the received messages due to the restricted proposal type in the current version.

Fixed with the ConsensusExchange refactoring.


[Impeller] Blur performance issue.

Details

Target Platform: iOS
Target OS version/browser: 16.6
Devices: iPhone 11 Pro Max
Logs

flutter doctor -v

[✓] Flutter (Channel stable, 3.10.6, on macOS 13.5 22G74 darwin-x64, locale ru-RU)
    • Flutter version 3.10.6 on channel stable at /Users/..../flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f468f3366c (5 weeks ago), 2023-07-12 15:19:05 -0700
    • Engine revision cdbeda788a
    • Dart version 3.0.6
    • DevTools version 2.23.1

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

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

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

[✓] Android Studio (version 2022.3)
    • Android Studio at /Users/.../Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

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

[✓] Connected device (3 available)
    • iPhone 11 Pro Max (mobile) • 00008030-001E71D01104802E • ios            • iOS 16.6 20G75
    • macOS (desktop)            • macos                     • darwin-x64     • macOS 13.5 22G74 darwin-x64
    • Chrome (web)               • chrome                    • web-javascript • Google Chrome 115.0.5790.170

[✓] Network resources
    • All expected network resources are available.

• No issues found!

source code
import 'dart:math';
import 'dart:ui';

import 'package:flutter/material.dart';

final _random = Random();

void main() => runApp(const BackdropFilterDemo());

class BackdropFilterDemo extends StatelessWidget {
  const BackdropFilterDemo({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        backgroundColor: Colors.black,
        body: Stack(
          children: [
            ListView.separated(
              separatorBuilder: (_, __) => const SizedBox(height: 8),
              itemBuilder: (context, index) => BlurEffect(
                child: Container(
                  height: 50,
                  color: Colors.primaries[_random.nextInt(17)].shade300,
                  child: Center(
                    child: Text(index.toString()),
                  ),
                ),
              ),
              itemCount: 200,
            ),
            Positioned.fill(
              bottom: null,
              child: BlurEffect(
                child: Padding(
                  padding: EdgeInsets.only(
                    top: MediaQuery.of(context).viewPadding.top,
                  ),
                  child: const SizedBox(height: 45),
                ),
              ),
            ),
            Positioned.fill(
              top: null,
              child: BlurEffect(
                child: Padding(
                  padding: EdgeInsets.only(
                    top: MediaQuery.of(context).viewPadding.bottom,
                  ),
                  child: const SizedBox(height: 50),
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

class BlurEffect extends StatelessWidget {
  final Widget child;

  const BlurEffect({
    required this.child,
    Key? key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ClipRect(
      child: BackdropFilter(
        filter: ImageFilter.blur(
          sigmaX: 28,
          sigmaY: 28,
          tileMode: TileMode.mirror,
        ),
        child: DecoratedBox(
          decoration: BoxDecoration(color: Colors.black.withOpacity(.65)),
          child: child,
        ),
      ),
    );
  }
}

I'm trying to use the blur effect in the app. But I noticed that it greatly reduces the performance of the application. At the same time, performance drops more when there are several widgets on the screen that have a blur effect. In more detail, the performance reduction is shown in the video
https://github.com/flutter/flutter/assets/61468224/5b9569c9-80c2-4e55-be54-31f75d6bfbd8

Im actually seeing the same issue after newest upgrade, janking like crazy when using BackdropFilter. It was smooth before update 3.13.

I can confirm the same, @DennisKragekjaer. I've been facing the same issue since the recent update

Our team experienced this too. Makes our app pretty much unusable with the newest version.

Same here

I haven't bisected this to any version but we (customer:flex) recently decided to remove all blur effects from our app due to serious performance issues. We are on latest stable channel using default renderers

@chinmaygarde I see the priority label was removed. Is that by mistake?

I see the priority label was removed. Is that by mistake?

I wanted to surface this in triage where many more folks working on different aspects of filtering performance and correctness will focus on this issue. Following up on it as well. Will update when I have a lead.

Can we add the customer: flex label to this?

The underlying issues for improving blur performance are:

https://github.com/flutter/flutter/issues/131568
https://github.com/flutter/flutter/issues/131580

The first is being worked on by myself but it might not solve your particular issue. I'm a bit curious about the claims that things got slower, because we benchmark blurs and none of our benchmarks have regressed in this time period, certainly not by a noticeable amount.
There are really only two candidates for a regression:

Switch to wide gamut by default.

To determine if this is the case, you could add an opt out to your info.plist and rerun:
<key>FLTEnableWideGamut</key>
<false />

Changes to waitUntilScheduled/cmd buffer scheduling.

Essentially we had a bug where the raster thread would return too soon, so the reported raster time was not accurate, and worse could actually end up dropping rendering commands. If this is the case you'll see that most of the time in the timeline events is for something called "waitUntilScheduled". If this is the case, then there isn't much we can do to fix it.

If I profile the original example, it takes over 200ms for the GPU to complete the blur workload on Impeller, Because every single item has a backdrop filter around it, so we're running 12+ backdrop filters per frame. Removing wide gamut halves this to 100ms, but still ....
If I run the Skia example, their renderer is essentially doing something like https://github.com/flutter/flutter/issues/131568 , but more tailored for blurs? Its a bit hard to tell. That is a much heavier lift, and I would not expect that to be available anytime this year. The other notable difference is that they seem to be slicing up the blur input based on the output coverage, which we definitely don't do, but I'm also not sure about this.
So, for this particular example disabling wide gamut will improve things a bit, but I would either rewrite this to use fewer blurs or plan on using Skia for the next 1+ years

Triage: We believe the cross-referenced work items will improve this significantly (barring wide-gamut rendering which is, plainly, just more work). Keeping this around to re-verify once the others are fixed in case there those issues don't sufficiently describe all the action itesm.

Another sample - Using Cupertino Widgets
For those interested in trying the impact of using blurs with a more common use case, here is another sample.
This one only uses the blur on app bar and bottom nav bar using Flutter's Cupertino widgets. As app bar the CupertinoNavigationBar or the sliver version version CupertinoSliverNavigationBar are used, and the CupertinoTabBar is used as bottom nav in a CupertinoTabScaffold and CupertinoTabView.
The blur on the app bar and bottom navigation can each be toggled ON/OFF with the icons on the app bar, to test the differences.
The used blurs are the one built into CupertinoNavigationBar and CupertinoTabBar, that get added automatically when these widgets use opacity (alpha on background color is different than 0xFF), as per iOS design. They only use a bit more opacity than the iOS widgets do by default, to make the effect more obvious.
I wanted to make a test sample where the used blurs come only from widgets that the Flutter SDK adds and that one would expect to be used in a Flutter app using CupertinoApp and Cupertino widgets with their default and expected designs.

BLUR ON
BLUR OFF

With this sample I could not observe any major issues, sure a slowdown, but imo not at all critical.
Perhaps my tests were not made on old enough devices. However, in addition to not performance relevant simulator build, I did also test it on an iPhone6S (8 years old) with iOS 15.7.9. I got consistent 60 FPS in both profile and even debug mode on it. To make sure the test was production relevant, I used latest Flutter stable 3.13.5. I could test on master as well of course.
If anybody has some devices where this sample becomes unusable, I would love to know when and how it happens. Feel free to post results @mtrfnvwork, @lukepighetti, @bulltechnologies, @AlexDochioiu? Or please provide your own problematic samples.
Alternatively, perhaps the scrolling content behind app bar and bottom nav is just too simple in this sample, but I don't think that should matter much.
@lukepighetti, you mentioned you had to remove the app bar and bottom nav blurs from your production app that used only app bar and bottom nav blurs? I don't doubt that, but with this sample I could not see the need for it.
Also slowdown in apps where I had used it, using custom made app bar blurs on Material AppBar and bottom NavigationBar, that were implemented the same way as the Flutter Cupertino widgets do in their source, I did not see that it would be so bad that I would have to remove it either.
cc: @jonahwilliams
Code sample using Cupertino Widgets
// MIT License
//
// Copyright (c) 2023 Mike Rydstrom
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.

import 'dart:math' as math;

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

// This issue reported here: https://github.com/flutter/flutter/issues/132735

void main() {
  runApp(const IssueDemoApp());
}

class IssueDemoApp extends StatelessWidget {
  const IssueDemoApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const CupertinoApp(
      debugShowCheckedModeBanner: false,
      showPerformanceOverlay: true,
      theme: CupertinoThemeData(brightness: Brightness.light),
      home: HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  const HomePage({
    super.key,
  });

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  final _random = math.Random();
  bool blurAppBar = true;
  bool blurBottomNav = true;

  @override
  Widget build(BuildContext context) {
    final double topSliverPadding =
        MediaQuery.paddingOf(context).top + kMinInteractiveDimensionCupertino;

    debugPrint('topSliverPadding = $topSliverPadding');
    return CupertinoTabScaffold(
      tabBar: CupertinoTabBar(
        backgroundColor:
            CupertinoColors.white.withAlpha(blurBottomNav ? 0x99 : 0xFF),
        items: const <BottomNavigationBarItem>[
          BottomNavigationBarItem(
            icon: Icon(CupertinoIcons.bars),
            label: 'Standard',
          ),
          BottomNavigationBarItem(
            icon: Icon(CupertinoIcons.rectangle_fill),
            label: 'Large',
          ),
        ],
      ),
      tabBuilder: (BuildContext context, int index) {
        return CupertinoTabView(
          builder: (BuildContext context) {
            return CupertinoPageScaffold(
              navigationBar: index == 0
                  ? CupertinoNavigationBar(
                      backgroundColor: CupertinoColors.white
                          .withAlpha(blurAppBar ? 0x99 : 0xFF),
                      leading: CupertinoButton(
                        child: blurAppBar
                            ? const Icon(CupertinoIcons.viewfinder_circle_fill)
                            : const Icon(CupertinoIcons.viewfinder_circle),
                        onPressed: () {
                          setState(() {
                            blurAppBar = !blurAppBar;
                          });
                        },
                      ),
                      middle: blurAppBar
                          ? const Text('Blur Standard NavBar')
                          : const Text('No Blur Standard NavBar'),
                      trailing: CupertinoButton(
                        child: blurBottomNav
                            ? const Icon(CupertinoIcons.circle_grid_hex_fill)
                            : const Icon(CupertinoIcons.circle_grid_hex),
                        onPressed: () {
                          setState(() {
                            blurBottomNav = !blurBottomNav;
                          });
                        },
                      ),
                    )
                  : null,
              child: CustomScrollView(
                // A list of sliver widgets.
                slivers: <Widget>[
                  if (index != 0)
                    CupertinoSliverNavigationBar(
                      backgroundColor: CupertinoColors.white
                          .withAlpha(blurAppBar ? 0x75 : 0xFF),
                      leading: CupertinoButton(
                        child: blurAppBar
                            ? const Icon(CupertinoIcons.viewfinder_circle_fill)
                            : const Icon(CupertinoIcons.viewfinder_circle),
                        onPressed: () {
                          setState(() {
                            blurAppBar = !blurAppBar;
                          });
                        },
                      ),
                      largeTitle: blurAppBar
                          ? const Text('Blur Large NavBar')
                          : const Text('No Blur Large NavBar'),
                      trailing: CupertinoButton(
                        child: blurBottomNav
                            ? const Icon(CupertinoIcons.circle_grid_hex_fill)
                            : const Icon(CupertinoIcons.circle_grid_hex),
                        onPressed: () {
                          setState(() {
                            blurBottomNav = !blurBottomNav;
                          });
                        },
                      ),
                    ),
                  if (index == 0 && blurAppBar)
                    SliverToBoxAdapter(
                      child: SizedBox(height: topSliverPadding),
                    ),
                  SliverList.builder(
                    itemBuilder: (context, index) => Padding(
                      padding: const EdgeInsets.symmetric(
                          horizontal: 16.0, vertical: 8),
                      child: SizedBox(
                        height: 50,
                        child: ColoredBox(
                          color: Colors.primaries[_random.nextInt(17)].shade300,
                          child: Center(
                            child: Text(index.toString()),
                          ),
                        ),
                      ),
                    ),
                    itemCount: 500,
                  ),
                ],
              ),
            );
          },
        );
      },
    );
  }
}

Ok maybe that was premature, because interestingly on an old iPad Pro 10.5" with iOS 17.0, I get only about 42FPS with the blur ON and from 60 to 120 FPS with the blur OFF in profile mode.
This iPad Pro 10.5" is from 2017, it uses Apple A10X Fusion chip, has 4GB of ram and 256GB storage. It interestingly is one of the first Apple devices with a a 120 FPS refreshed screen.
The interesting part is that on this device I do see and feel the jank clearly with this sample, using Flutter SDK default iOS widgets, when the blur is turned ON.

I measured the filter performance here: https://github.com/flutter/flutter/issues/131573
To me it seems that the main issue is that on Impeller a fullscreen blur with sigma = 30 on iPhone 13 does 2.4 GiB L1 reads per frame. That's because for the first pass the blur is only downscaled in one direction and there are 153 samples per pixel (because the other direction is left in original resolution). Compare to this Skia only does a small fraction of work - it initially downscales in both direction (IIRC to reach max sigma ~5 or so) after which it only needs 15 samples per pixels (and has much less pixels to process).
I don't know if skia collapses blur render passes. That was not the case couple of years ago (i remember two tiny blurs being much slower than one large blur), but maybe they implemented it already.

Related to https://github.com/flutter/flutter/issues/139449

Okie dokie. Please bump up the priority to P1 if this is on the top of your work list.

I also get the performance hit with flutter 3.16 about the blur effect

We are having many issues due to this. v3.1.16

@bulltechnologies can you test this on the profile version?

Did you also read the master (or beta channel)? There should be some improvements regarding blur performance on Impeller.

Beta 3.20 includes the new blur implemented by @gaaclarke which should be much faster. Please try it out and let us know if it works for you.

Huge improvement.
For my test app it went from barely usable to butter smooth.
Will do more tests and report back.

it's working fine for me after upgrading to flutter 3.19.0

I'm going to close this out.  Thanks everyone for helping out with this.


eslint-plugin-diff doesn't play nicely with the eslint-webpack-plugin

Hi,
This is a great plugin! However I've been having troubles integrating it with the eslint-webpack-plugin
What I've found is that the plugin intermittently works and lints line changes, however the majority of the time it won't lint anything. I've had the eslint-webpack-plugin  lintDirtyModulesOnly flag enabled if this helps replicating the issue and have been using the plugin:diff/diff config
eslint-webpack-plugin: 2.5.4
webpack: 5.15.0
Thanks!
Ben

Thanks for raising this issue, Ben.
I’ve never tested this with eslint-webpack-plugin, so this is really good to know.
Would you be able to create a minimal reproduction-repo for this, so I could inspect it the same way you do? That would be tremendously helpful in ensuring it’s working for you as expected.
Thanks again for reporting! 🙂

@bdavies6086 Hi!
If you get the opportunity to share a reproduction repo or some examples on this issue at any time, I’ll be more than happy to look into it. In the meantime I’ll close this issue, in the hopes that you were able to resolve the matter.
Thanks again for reporting!


The specified key does not exist

"The specified key does not exist" in all Thanos components.
Thanos, Prometheus and Golang version used:
I also tested all 0.12., 0.11., 0.10.*
thanos, version 0.12.2 (branch: HEAD, revision: 52e10c6e0f644ea98fd057e7fbece828d8dd07c7)
build user:       circleci@241aa351893e
build date:       20200430-16:37:24
go version:       go1.13.1
Object Storage Provider: AWS S3
What happened: bucket store initial sync: sync block: BaseFetcher: iter bucket: The specified key does not exist.
How to reproduce it (as minimally and precisely as possible): Fresh installation of Prometheus and Thanos in Docker. Prometheus and Thanos works fine, but other components fail with error abowe. Also "thanos bucket ls"
Full logs to relevant components:
thanos-store-gateway_1  | level=info ts=2020-06-17T20:46:33.820958943Z caller=main.go:152 msg="Tracing will be disabled"
thanos-store-gateway_1  | level=info ts=2020-06-17T20:46:33.821148302Z caller=factory.go:46 msg="loading bucket configuration"
thanos-store-gateway_1  | level=info ts=2020-06-17T20:46:33.821641968Z caller=inmemory.go:172 msg="created in-memory index cache" maxItemSizeBytes=131072000 maxSizeBytes=262144000 maxItems=maxInt
thanos-store-gateway_1  | level=info ts=2020-06-17T20:46:33.821810678Z caller=store.go:268 msg="index-header instead of index-cache.json enabled"
thanos-store-gateway_1  | level=info ts=2020-06-17T20:46:33.821960688Z caller=options.go:23 protocol=gRPC msg="disabled TLS, key and cert must be set to enable"
thanos-store-gateway_1  | level=info ts=2020-06-17T20:46:33.822455502Z caller=store.go:352 msg="starting store node"
thanos-store-gateway_1  | level=info ts=2020-06-17T20:46:33.822623618Z caller=store.go:299 msg="initializing bucket store"
thanos-store-gateway_1  | level=info ts=2020-06-17T20:46:33.822675417Z caller=intrumentation.go:60 msg="changing probe status" status=healthy
thanos-store-gateway_1  | level=info ts=2020-06-17T20:46:33.824486164Z caller=http.go:56 service=http/server component=store msg="listening for requests and metrics" address=<IP_ADDRESS>:10902
thanos-store-gateway_1  | level=warn ts=2020-06-17T20:46:33.900527364Z caller=intrumentation.go:54 msg="changing probe status" status=not-ready reason="bucket store initial sync: sync block: BaseFetcher: iter bucket: The specified key does not exist."
thanos-store-gateway_1  | level=info ts=2020-06-17T20:46:33.900677657Z caller=http.go:81 service=http/server component=store msg="internal server shutdown" err="bucket store initial sync: sync block: BaseFetcher: iter bucket: The specified key does not exist."
thanos-store-gateway_1  | level=info ts=2020-06-17T20:46:33.900696807Z caller=intrumentation.go:48 msg="changing probe status" status=ready
thanos-store-gateway_1  | level=info ts=2020-06-17T20:46:33.9008169Z caller=grpc.go:106 service=gRPC/server component=store msg="listening for StoreAPI gRPC" address=<IP_ADDRESS>:10091
thanos-store-gateway_1  | level=info ts=2020-06-17T20:46:33.900860251Z caller=intrumentation.go:66 msg="changing probe status" status=not-healthy reason="bucket store initial sync: sync block: BaseFetcher: iter bucket: The specified key does not exist."
thanos-store-gateway_1  | level=warn ts=2020-06-17T20:46:33.900924136Z caller=intrumentation.go:54 msg="changing probe status" status=not-ready reason="bucket store initial sync: sync block: BaseFetcher: iter bucket: The specified key does not exist."
thanos-store-gateway_1  | level=info ts=2020-06-17T20:46:33.900952383Z caller=grpc.go:125 service=gRPC/server component=store msg="gracefully stopping internal server"
thanos-store-gateway_1  | level=info ts=2020-06-17T20:46:33.901012625Z caller=grpc.go:137 service=gRPC/server component=store msg="internal server shutdown" err="bucket store initial sync: sync block: BaseFetcher: iter bucket: The specified key does not exist."
thanos-store-gateway_1  | level=error ts=2020-06-17T20:46:33.901167154Z caller=main.go:212 err="The specified key does not exist.\nBaseFetcher: iter bucket\ngithub.com/thanos-io/thanos/pkg/block.(*BaseFetcher).fetchMetadata\n\t/go/src/github.com/thanos-io/thanos/pkg/block/fetcher.go:356\ngithub.com/thanos-io/thanos/pkg/block.(*BaseFetcher).fetch.func2\n\t/go/src/github.com/thanos-io/thanos/pkg/block/fetcher.go:413\ngithub.com/golang/groupcache/singleflight.(*Group).Do\n\t/go/pkg/mod/github.com/golang/groupcache@v0.0.0-20191027212112-611e8accdfc9/singleflight/singleflight.go:56\ngithub.com/thanos-io/thanos/pkg/block.(*BaseFetcher).fetch\n\t/go/src/github.com/thanos-io/thanos/pkg/block/fetcher.go:411\ngithub.com/thanos-io/thanos/pkg/block.(*MetaFetcher).Fetch\n\t/go/src/github.com/thanos-io/thanos/pkg/block/fetcher.go:472\ngithub.com/thanos-io/thanos/pkg/store.(*BucketStore).SyncBlocks\n\t/go/src/github.com/thanos-io/thanos/pkg/store/bucket.go:344\ngithub.com/thanos-io/thanos/pkg/store.(*BucketStore).InitialSync\n\t/go/src/github.com/thanos-io/thanos/pkg/store/bucket.go:417\nmain.runStore.func4\n\t/go/src/github.com/thanos-io/thanos/cmd/thanos/store.go:301\ngithub.com/oklog/run.(*Group).Run.func1\n\t/go/pkg/mod/github.com/oklog/run@v1.0.0/group.go:38\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1357\nsync block\ngithub.com/thanos-io/thanos/pkg/store.(*BucketStore).InitialSync\n\t/go/src/github.com/thanos-io/thanos/pkg/store/bucket.go:418\nmain.runStore.func4\n\t/go/src/github.com/thanos-io/thanos/cmd/thanos/store.go:301\ngithub.com/oklog/run.(*Group).Run.func1\n\t/go/pkg/mod/github.com/oklog/run@v1.0.0/group.go:38\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1357\nbucket store initial sync\nmain.runStore.func4\n\t/go/src/github.com/thanos-io/thanos/cmd/thanos/store.go:303\ngithub.com/oklog/run.(*Group).Run.func1\n\t/go/pkg/mod/github.com/oklog/run@v1.0.0/group.go:38\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1357\nstore command failed\nmain.main\n\t/go/src/github.com/thanos-io/thanos/cmd/thanos/main.go:212\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:203\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1357"

Anything else we need to know:
I tested AWS permission and it works fine with external S3 client. I can create/update/list/delete all stuff. Thanos sidecar also can put Prometheus data in the bucket.
Configuration with Minio works fine.
Environment:

OS (e.g. from /etc/os-release): CentOS Linux 7 (Core)
Kernel (e.g. uname -a): 3.10.0-1127.8.2.el7.x86_64
Docker: 19.03.11
Docker-compose: 1.26.0

Hmm, interesting. Perhaps you know what kind of key Thanos Store is trying to find?

Hmm, interesting. Perhaps you know what kind of key Thanos Store is trying to find?

I don't know, it's a clean installation.

I'm having this same issue with Thanos v0.13.0. Clean install, tried recreating the bucket as well. Turned on tracing to find these messages in the logs.
level=debug ts=2020-07-03T12:31:31.258563904Z caller=stdlib.go:89 s3TraceMsg=---------START-HTTP---------
level=debug ts=2020-07-03T12:31:31.258928036Z caller=stdlib.go:89 s3TraceMsg="GET /<my-bucket-name>/?delimiter=%2F&encoding-type=url&prefix= HTTP/1.1\r"
level=debug ts=2020-07-03T12:31:31.259062666Z caller=stdlib.go:89 s3TraceMsg="HTTP/1.1 404 Not Found\r"
level=debug ts=2020-07-03T12:31:31.259091427Z caller=stdlib.go:89 s3TraceMsg=---------END-HTTP---------

Where <my-bucket-name> is a redacted placeholder.

?delimiter=%2F&encoding-type=url&prefix= HTTP/1.1\r

Thanks for this info! One question: this only happens occasionally, right? It works fine even with this error?

No, this was constantly happening and it would cause the process to exit.
I played around with the S3 object store configuration, specifically the endpoint field and was able to get it to spit out a log entry that was something along the lines of "the endpoint should be 's3.amazonaws.com'". I set the endpoint field to s3.amazonaws.com and it seems to be working now, though I should do some actual tests.

I confirm. After I changed endpoint to s3.amazonaws.com it works fine. But it's very strange behavior because previous endpoint was correct for S3 as well.

endpoint: "s3.us-west-2.amazonaws.com"
It is works.

endpoint: "s3.us-west-2.amazonaws.com"
It is works.

Can this parameter configuration 'bucket_lookup_type' use 'virtual hosted' to solve this problem?


docs(samples): deleted quickstart file and corresponding test

Deleted the reCAPTCHA Quickstart file.
Quickstarts in reCAPTCHA are being revamped to a new workflow and this sample doesn't represent a quickstart.

[ ] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[ ] Ensure the tests and linter pass
[ ] Code coverage does not decrease (if any source code was changed)
[ ] Appropriate docs were updated (if necessary)

Is there an internal bug for why this quickstart needs to be removed?

Kindly refer to b/219389828#comment3

@Sita04, would it be possible to fix the sample instead of removing it completely? It makes for a bad user experience to not see a quickstart.

@Sita04, are you still planning on refactoring this sample to retag it? Friendly bump.

@Sita04, would you mind renaming the file if it's not a quickstart, or else deleting it entirely if it's not a viable sample? Thank you.

@Sita04, I think you also need to delete the corresponding test, and update the title. Thank you!

@Sita04, I think you also need to delete the corresponding test, and update the title. Thank you!

The test file contains only quickstart test. So, I removed the testcase and the folder too. Still, I get the missing test file error. Is it mandatory to have a testfile even though there are no testcases in it?


Generating a 64-bit Rabin Fingerprint (as recommended in the Avro * spec) of a byte string

I need to generate a Rabin fingerprint for an avro schema so that it can be decoded by a Java application. I used the method RabinFingerprintFixed for generating a fingerprint of a JSON string converted to bytes. However the resulting value is different than the one generated by a method in the avro Java library. Here is the Java code used for generating a fingerprint. Unfortunately I am not so fit in understanding how the algorithm works as to understand if the Go library and the Java library are doing the same thing. Perhaps I am using the wrong method? I would really appreciate your help because I am pretty stuck!
public static long fingerprint64(byte[] data) {
long result = EMPTY64;
for (byte b: data)
result = (result >>> 8) ^ FP64.FP_TABLE[(int)(result ^ b) & 0xff];
return result;
}
/* An inner class ensures that FP_TABLE initialized only when needed. */
private static class FP64 {
private static final long[] FP_TABLE = new long[256];
static {
for (int i = 0; i < 256; i++) {
long fp = i;
for (int j = 0; j < 8; j++) {
long mask = -(fp & 1L);
fp = (fp >>> 1) ^ (EMPTY64 & mask);
}
FP_TABLE[i] = fp;
}
}
}
And this is how I generate a fingerprint:
file, err := ioutil.ReadFile("ads_raw_bid_stream_request.avsc")
var fingerprint = rabin.RabinFingerprintFixed(file)

Hi,
The typical way would be to use the hash.Hash64 (or RollingHash if you need
rolling windows) interface in either rabin.go or rabin64.go.
RabinFingerprintFixed performs things the long-way using polynomial
division and was just used for comparing results.  However, results should
be identical.  What are you using for EMPTY64 in your java code?  Results
will depend on the chosen irreducible polynomial.
On Sun, Oct 25, 2015 at 4:24 PM, Alexandra<EMAIL_ADDRESS>wrote:

I need to generate a Rabin fingerprint for an avro schema so that it can
be decoded by a Java application. I used the method RabinFingerprintFixed
for generating a fingerprint of a JSON string converted to bytes. However
the resulting value is different than the one generated by a method in the
avro Java library. Here is the Java code used for generating a fingerprint.
Unfortunately I am not so fit in understanding how the algorithm works as
to understand if the Go library and the Java library are doing the same
thing. Perhaps I am using the wrong method? I would really appreciate your
help because I am pretty stuck!
public static long fingerprint64(byte[] data) {
long result = EMPTY64;
for (byte b: data)
result = (result >>> 8) ^ FP64.FP_TABLE[(int)(result ^ b) & 0xff];
return result;
}
/* An inner class ensures that FP_TABLE initialized only when needed. */
private static class FP64 {
private static final long[] FP_TABLE = new long[256];
static {
for (int i = 0; i < 256; i++) {
long fp = i;
for (int j = 0; j < 8; j++) {
long mask = -(fp & 1L);
fp = (fp >>> 1) ^ (EMPTY64 & mask);
}
FP_TABLE[i] = fp;
}
}
}
—
Reply to this email directly or view it on GitHub
https://github.com/kevinko/rabin/issues/2.

final static long EMPTY64 = 0xc15d213aa4d7a795L;
I'm not really sure if the algorithm in java uses the rolling windows or not. As far as I can see, I can not provide an argument for hash.Hash64?

Ah.  That would be why.  The polynomial used in the package
is 0x59cd8807ac3e4017, which is defined in rabin.go.  I probably should
parameterize that.  I'll try to do that later this week.
If you're just fingerprinting an entire block data, which is what your java
sample is doing, you won't need rolling window support.  Rolling windows
don't affect the computed fingerprint.  They just let you determine
fingerprints for a sliding window of fixed size across a larger block of
data with O(1) cost per update.
On Mon, Oct 26, 2015 at 8:35 AM, Alexandra<EMAIL_ADDRESS>wrote:

final static long EMPTY64 = 0xc15d213aa4d7a795L;
I'm not really sure if the algorithm in java uses the rolling windows or
not. As far as I can see, I can not provide an argument for hash.Hash64?
—
Reply to this email directly or view it on GitHub
https://github.com/kevinko/rabin/issues/2#issuecomment-151176867.

Ok now I understand why the function produces a different result. So will it be possible for you to provide a new function for generating a fingerprint for a given polynomial and a []byte? Or is it enough to substitute the used polynomial in RabinFingerprintFixed to get the same result as in the java program?

I'll try to make it possible for you to specify your own polynomial.  If
you'd like to experiment in the meantime, you can try modifying the
constant in rabin.go.  Note that it's still possible that the Java version
might use a slightly different algorithm since the avro page says something
about doing something out of spec with the example.  I'll look at it more
carefully later when I have some free time.
On Tuesday, October 27, 2015, Alexandra<EMAIL_ADDRESS>wrote:

Ok now I understand why the function produces a different result. So will
it be possible for you to provide a new function for generating a
fingerprint for a given polynomial and a []byte? Or is it enough to
substitute the used polynomial in RabinFingerprintFixed to get the same
result as in the java program?
—
Reply to this email directly or view it on GitHub
https://github.com/kevinko/rabin/issues/2#issuecomment-151562445.


feat: Tagline V3: support for countries-only locales: (eg _FR)

Hi everyone!
Today, we only support languages and languages+countries codes.
This PR allows supporting countries-only codes (e.g.: _FR)

Codecov Report
Attention: Patch coverage is 0% with 10 lines in your changes missing coverage. Please review.

Project coverage is 7.43%. Comparing base (4d9c7fc) to head (2464960).
Report is 185 commits behind head on develop.

Files
Patch %
Lines

...ooth_app/lib/data_models/tagline/tagline_json.dart
0.00%
10 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           develop   #5370      +/-   ##
==========================================
- Coverage     9.54%   7.43%   -2.11%
==========================================
  Files          325     380      +55
  Lines        16411   19463    +3052
==========================================
- Hits          1567    1448     -119
- Misses       14844   18015    +3171

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Today, we only support languages and languages+countries codes. This PR allows supporting countries-only codes (e.g.: _FR)

Just curious: is that supposed to happen one day? Doesn't seem to be the case in ios or android for the moment.

Both JSON are outdated (and they are also invalid).
For now, the idea is to deploy Nutri-score outside of France (that's one of the reasons 4.15.0 is still not released).
(And we still don't know when it will be…)

What is supposed to happen with _BE: which language would be used?
Even if the text is supposed to be different for fr_FR and fr_BE, it will definitely be different for fr_BE and nl_BE.
Would make sense to use the language_country syntax, with language only and/or country only as a fallback.

What is supposed to happen with _BE: which language would be used? Even if the text is supposed to be different for fr_FR and fr_BE, it will definitely be different for fr_BE and nl_BE. Would make sense to use the language_country syntax, with language only and/or country only as a fallback.

That's exactly what it is.
The order of priority is:

Strict matching (so test if 'fr_FR' exists)
If not, we check if there is something with the language ('fr')
And then, by the country '_FR' (the feature of this PR)
And if nothing is available -> default value

And then, by the country _FR (the feature of this PR)

That's precisely what I don't get: in which cases are we supposed to receive messages with country but no language?
Have you been confronted to that? Are they supposed to send that?
Maybe it's similar to @yarons in #5339: using the app in Israel but in English, not in Hebrew, right?
Then we would be better off listing all the keys and finding the first one that matches .._IL, possibly with a preference for English in general.
Even then, we'll have either RTL or LTR languages, and that would need to be dealt with.
Anyway, I'm surprised we may rely on receiving _cc messages.
What do you think of my .._cc look-up suggestion: would that solve the "unexpected language x country combo" case?

And then, by the country _FR (the feature of this PR)

That's precisely what I don't get: in which cases are we supposed to receive messages with country but no language? Have you been confronted to that? Are they supposed to send that?
Maybe it's similar to @yarons in #5339: using the app in Israel but in English, not in Hebrew, right? Then we would be better off listing all the keys and finding the first one that matches .._IL, possibly with a preference for English in general. Even then, we'll have either RTL or LTR languages, and that would need to be dealt with.
Anyway, I'm surprised we may rely on receiving _cc messages. What do you think of my .._cc look-up suggestion: would that solve the "unexpected language x country combo" case?

The way the JSON is split is that we have on one side translated news and on the other a feed of news.
That's why we can ask for a feed for each country for example, with still translated content.

Small merge conflict @g123k


The provided hugo binary is no more used to build the site

The provided hugo binary is no more used to build the site: when moving from Travis to GitHub actions an action allowing to install a specific hugo version dynamically and making useless to store the binary in the project directory.
If we want to keep using an embed version (to save time in workflows) we need to update the workflows.
Otherwise it probably makes sense to drop the binaries directory and adjust installation notes, unless we fill that providing the binaries is useful for people willing to build/test the repository locally (making it easier).
Opinions?

It also means that the site is still built using Hugo 0.66.0 as documented in https://github.com/EGI-Federation/documentation/blob/9f716ffb3427f448a05451229f8874c0bbca2280/.github/workflows/deploy.yml#L28.

I installed Hugo locally, not using the binaries in the repo.

Is it easy to do this on Windows? Or is it needed to do painful things like editing the PATH?
For Linux and macOS it will be straightforward, so if it's also simple on Windows we can drop it.

Dropping makes sense. It would be nice in any case having #173 to just remove the need to have things locally installed for those contributors without so much experience

I installed Hugo myself (macOS) as it was listed in the requirements.
By the time I realised it is also provided with the repo, it was too late :-)

So #288 will drop it, so it won't have been useless to install it manually ;)


'this.http.get(...).map is not a function' when built for prod

I am getting the error:
this.http.get(...).map is not a function in [null]

when building and running in prod. There is no issue running in dev.

see
https://github.com/AngularClass/angular2-webpack-starter/blob/master/src/polyfills.ts#L17
make an else that requires require('rxjs/add/operator/map');

Any reason they are all pulled in for dev? I will add the require in the file that needs it.

No luck, still get same error.

I moved rxjs to vendor.ts if you have anymore problems please open another issue thanks


update C++ docs and add new config var

@themmj lemme know what you think. This adds a new config var (we decided to cap lichen growth per tile) and I tried to update docs a bit.

I also noticed that in main.py it calls ./docker_build/agent.out. Do people have to use docker? What about people on ubuntu already.

Regarding docker_build in main.py:
My understanding was that main.py is only used by Kaggle. Thus it needs to run the binary provided in the submission archive. The create_submission script will start an ubuntu docker container to compile the agent there and zip it for submission. Then when the zip is unpacked ./docker_build/agent.out will point to the agent compiled in docker.
When testing locally you'd point the runner directly to the compiled binary (thus not using main.py), so you can just use the compile script to build the agent locally (provided you're running linux or a wsl). By default the binary is placed in build.
So when testing locally you don't need docker.
If you are running ubuntu natively you can just build the agent with compile.sh -b docker_build to overwrite the default build folder. Then just zip it and upload it manually.
However, if you are running anything else it makes sense to use the docker build to ensure the agent is built in the same env it will be running in.

@themmj alright that makes sense. Ill update the comments and merge


minidoc.txt

There is a very useful file in the binary download called minidoc.txt that documents a lot of things in the application even if it is written for some early version of Video Paint, so not everything is 100 % accurate. It is still the best documentation I have been able to find so far, and I think it could be useful to also include in the source code repo or even the wiki if that is not a problem with rights or something.
It would make sense to mention it in the readme as well.

I could spend a few minutes (or hours) working it into the wiki if that sounds interesting. At least get the original text in there, split up into smaller pages perhaps, and do a first attempt att fixing things that are no longer true. Unless there IS some newer document it would be better to use.

not a bad idea, there's a couple other documents worth noting as well.
https://github.com/AnimatorPro/Animator-Pro/blob/master/text/v/GAMES
https://github.com/AnimatorPro/Animator-Pro/blob/master/text/v/MINIDOC.ASC
https://github.com/AnimatorPro/Animator-Pro/blob/b63d1d862ec6ab45db776e69d58c970e7000e030/Pristine-Pro/DOC/KEYEQUIV.DOC
in addition the archive.org version says it has some documentation with it that I haven't had a chance to look at yet
https://archive.org/details/animatorpro

I can't judge if there is some possible copyright infringement going on, but the aadocs.zip file on archive is definitely what I would recommend to anyone interested in learning how to use animator at this point.
MINIDOC.ASC looks like it is the same as the bundled minidoc.txt. I just did not spot it with that name. So it is included. Might still be good to link to. Or just drop this issue.


Bump Go versions and use '.x' to always get latest patch versions

Codecov Report

Merging #39 into master will decrease coverage by 0.26%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #39      +/-   ##
==========================================
- Coverage   86.35%   86.08%   -0.27%
==========================================
  Files           4        4
  Lines         381      381
==========================================
- Hits          329      328       -1
  Misses         47       47
- Partials        5        6       +1

Impacted Files
Coverage Δ

session.go
86.08% <0%> (-1.55%)
:arrow_down:

stream.go
84.02% <0%> (+1.38%)
:arrow_up:

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 545ecee...8a3a4d8. Read the comment docs.


Feat: request token when vela auth gen-kubeconfig

Signed-off-by: Qiaozp<EMAIL_ADDRESS>Description of your changes

Fixes #4675
With this PR, KubeVela is generally compatible with K8s 1.24.
I have:

[x] Read and followed KubeVela's contribution process.
[ ] Related Docs updated properly. In a new feature or configuration option, an update to the documentation is necessary.
[x] Run make reviewable to ensure this PR is ready for review.
[ ] Added backport release-x.y labels to auto-backport this PR if necessary.

How has this code been tested

Special notes for your reviewer

do we backport to 1.5.x?

do we backport to 1.5.x?

Yes, label added.


In task.py: _filter_datasets() is not used

https://github.com/cedadev/cmip6-object-store/blob/master/cmip6_object_store/cmip6_zarr/task.py#L126

comment it out.

Assigning to @alaniwi


Periodic meter reads for SMR5

 You should sign our Contributor License Agreement in order to get your pull request merged.

SonarQube analysis reported 1 issue

 1 major

Watch the comments in this conversation to review them.


Publish on PYPI

Setup automatic publishing on PYPI
Should be done when tagged
Build artefacts should also be published on Github
README should have Badge for PYPI

ok, now it is working for the PYI (test). Final step should be to change the URL to match the production PYPI. The token has to be generated there and replaced on the Github environment too. The next version 1.0.4 should close this ticket then.


[FEATURE REQUEST] Report Screen option "View Zero as Empty" doesn't work for "Toolkit Reports" screen.

Describe the bug
Report Screen option "View Zero as Empty" doesn't work for "Toolkit Reports" screen.
To Reproduce
Steps to reproduce the behavior:

Go to 'Settings'
Click on 'General'
Enable 'Toolkit Reports'
Click on 'Reports Screen'
Enable 'View Zero as Empty'
Go to YNAB 'Toolkit Reports' page
Go to 'Income vs. Expense' tab

Expected behavior
The 'zero' cell are empty, like in the YNAB 'Reports' screen.
Desktop (please complete the following information):

OS: Windows 10
Browser Chrome
Version 79

Setting Export
Please replace the text below with your exported Toolkit settings. You can export these by going to the Toolkit Options page, click the Import/Export Settings button at the bottom left and copying the text in the modal which appears.
[{"key":"AccountsDisplayDensity","value":"2"},{"key":"AccountsEmphasizedOutflows","value":true},{"key":"AccountsStripedRows","value":true},{"key":"AutoDistributeSplits","value":false},{"key":"AutoEnableRunningBalance","value":true},{"key":"AutomaticallyMarkAsCleared","value":false},{"key":"BetterScrollbars","value":"0"},{"key":"BudgetCategoryFeatures","value":true},{"key":"BudgetProgressBars","value":"0"},{"key":"BudgetQuickSwitch","value":true},{"key":"BudgetSpendingGoal","value":true},{"key":"BulkManagePayees","value":false},{"key":"CalendarFirstDay","value":"1"},{"key":"CategoryActivityCopy","value":false},{"key":"CategoryActivityPopupWidth","value":"0"},{"key":"CategorySoloMode","value":"0"},{"key":"ChangeEnterBehavior","value":false},{"key":"ChangeMemoEnterBehavior","value":false},{"key":"CheckCreditBalances","value":false},{"key":"CheckNumbers","value":false},{"key":"ClearSelection","value":false},{"key":"CollapseSideMenu","value":false},{"key":"ColourBlindMode","value":false},{"key":"CompactIncomeVsExpense","value":true},{"key":"CreditCardEmoji","value":true},{"key":"CurrentMonthIndicator","value":true},{"key":"CustomFlagNames","value":false},{"key":"DateOfMoney","value":false},{"key":"DaysOfBuffering","value":true},{"key":"DaysOfBufferingDate","value":false},{"key":"DaysOfBufferingHistoryLookup","value":"3"},{"key":"DeselectTransactionsOnSave","value":true},{"key":"DisableToolkit","value":false},{"key":"DisplayTargetGoalAmount","value":"3"},{"key":"DisplayTotalMonthlyGoals","value":true},{"key":"DisplayUpcomingAmount","value":false},{"key":"EasyTransactionApproval","value":false},{"key":"EditAccountButton","value":"0"},{"key":"EnlargeCategoriesDropdown","value":true},{"key":"EnterToMove","value":false},{"key":"FilterCategories","value":true},{"key":"GoalIndicator","value":true},{"key":"GoalWarningColor","value":true},{"key":"GoogleFontsSelector","value":"2"},{"key":"HideAccountBalancesType","value":"0"},{"key":"HideAgeOfMoney","value":true},{"key":"HideClosedAccounts","value":false},{"key":"HideHelp","value":true},{"key":"HideReferralBanner","value":true},{"key":"HideTotalAvailable","value":true},{"key":"HighlightNegatives","value":true},{"key":"ImportNotification","value":"0"},{"key":"IncomeFromLastMonth","value":"1"},{"key":"IncomeVsExpenseHoverHighlight","value":true},{"key":"LargerClickableIcons","value":true},{"key":"LinkToInflows","value":false},{"key":"MonthlyNotesPopupWidth","value":"0"},{"key":"NavDisplayDensity","value":"2"},{"key":"NotesAsMarkdown","value":false},{"key":"POSStyleCurrencyEntryMode","value":false},{"key":"Pacing","value":"0"},{"key":"PrintingImprovements","value":false},{"key":"PrivacyMode","value":"2"},{"key":"QuickBudgetWarning","value":true},{"key":"ReconciledTextColor","value":"0"},{"key":"RemovePositiveHighlight","value":true},{"key":"RemoveZeroCategories","value":false},{"key":"ResizeInspector","value":true},{"key":"ResizeSidebar","value":true},{"key":"RightClickToEdit","value":true},{"key":"RowHeight","value":"0"},{"key":"RowsHeight","value":"3"},{"key":"RunningBalance","value":"1"},{"key":"SeamlessBudgetHeader","value":false},{"key":"SetMultipleFlags","value":false},{"key":"ShowCategoryBalance","value":false},{"key":"SpareChange","value":false},{"key":"SplitKeyboardShortcut","value":true},{"key":"SplitTransactionAutoAdjust","value":true},{"key":"SquareNegativeMode","value":true},{"key":"StealingFromFuture","value":true},{"key":"SwapClearedFlagged","value":false},{"key":"TargetBalanceWarning","value":true},{"key":"ToBeBudgetedWarning","value":true},{"key":"ToggleMasterCategories","value":false},{"key":"ToggleSplits","value":false},{"key":"ToggleTransactionFilters","value":"0"},{"key":"ToolkitReports","value":true},{"key":"TransactionGridFeatures","value":true},{"key":"ViewZeroAsEmpty","value":true},{"key":"l10n","value":"0"},{"key":"options.dark-mode","value":false}]

This isn't actually a bug since the feature isn't meant for the Toolkit Reports -- it's meant for the normal reports. Though I agree it would make sense to respect the setting in Toolkit Reports.

Relabelled as FEATURE REQUEST after @joshmadewell comment.

Hey @joshmadewell - I wanted to jump in and work on this issue, however, I think there's some assumptions I should validate with you before I start blindly hacking.
I had two approaches in mind:

In the view-zero-as-empty feature, run the same operation to hide cells on the Toolkit Income v Expense report
Check if the view-zero-as-empty feature is active in the MonthlyTransactionTotalsTable component and only render non-zero cells.

Problems with the above:

I can't see a reliable way to determine whether the toolkit report page is active (since it doesn't cause a route change and the url stays the same)
It looks like the user settings are sandboxed away from the toolkit report pages in React.

Let me know how you think this problem could be approached, I'd love to contribute.

I don't think you'd have to worry about whether the reports page is visible or not. In the render for the values, you can just check a global object window.ynabToolKit.options.ViewZeroAsEmpty.
If that's true, we should just render an empty currency cell, if false, do things as we do now.

That's so much better, thank you @3stacks and @joshmadewell


0.2.9 --help explained incorrectly

--repetition_penalty REPETITION_PENALTY
prevent repetitions of ngrams with this size (set 0 to disable) (default: 1.0)
--no_repeat_ngram_size NO_REPEAT_NGRAM_SIZE
Penalty applied to the score of previously generated tokens (set > 1 to penalize) (default: 0)
The explanations of these two items are reversed, but "default" is correct.

Fixed, thanks for reporting


Release Google.Cloud.Billing.V1 version 3.8.0

Changes in this release:
New features

Add IServiceCollection extension methods for client registration where an IServiceProvider is required. (commit 022fab2)

Created release for Google.Cloud.Billing.V1-3.8.0


Show inlined function traces ignoring ones from corelib

As requested on tg:
is there a way to show inlined function in traces BUT ignore anythin from the core lib

Let's think about how to tackle this, maybe write a design doc. As Piotr suggested, this could be done with filtering.

I think we may want to add a more general filter with semantics like "ignore functions from crate X"


should occasionally give vote link when scaling

say 1 in 20 chance, with the message contents being a message and link to top.gg page

abandoning bot lists since discord bot discovery is coming


Unreal Marketplace version of Cesium for Unreal for UE 5.2 and 5.3 is missing Config/Engine.ini

This is going to cause all kinds of problems, such as:

Warnings about exceeding the threaded request limit, because of lack of RunningThreadedRequestLimit.
Much worse performance, because of the lack of HttpThreadActiveFrameTimeInSeconds.
Broken view with certain aspect ratios because of lack of AspectRatioAxisConstraint
Broken backward compatibility because all the core redirects are missing.

So it's a pretty big problem.
This file is included in our release distribution, and it is included in the FilterPlugin.ini. Epic seems to have deleted it during their build process, for no apparent reason.
Strangely, the config file is not missing from the UE 5.4 version available on the Marketplace, only the UE 5.2 and UE 5.3 versions.

I've resubmitted our v2.5.0 release for UE 5.2 and 5.3 to the Marketplace team.

At Epic's request, we've started providing distributions to the Marketplace team without any Binaries or Intermediates (see #1440). They build these themselves, and their presence at the start was perhaps confusing Epic's build process.
And it seems to have worked. Our v2.6.0 release includes the necessary files. So I'm closing this issue.


Support for universal apps

Hi,
jBone injects window from global scope. This breaks code execution on node, when you require module:
ReferenceError: window is not defined
    at Object.<anonymous> (./node_modules/jbone/dist/jbone.js:1062:3)

I suggest to use something like typeof window === 'undefined' ? global : window to guard from env differences.
The references to document will be fixed too

@kupriyanenko I can prepare PR, if you still maintaining this repo and will accept such improvement

Hello SleepWalker,
this project is not under active development from my point of view.
What is your use case for jBone under nodejs? Is this just an issue you have while using a bundler like webpack or requirejs? In requirejs you need a window mockup module, in webpack this should work:
  new webpack.ProvidePlugin({
   $: "jbone",
   jBone: "jbone"
  })

Hi @SleepWalker, what is the use case do you have? I see the exception in nodejs, but usually you need to have jsdom for normal using, like:
require('jsdom-global')();
const jBone = require('jbone');

console.log(jBone);

If you really need it, will be cool if you will make PR. Or I will look on it today/tomorrow.

@redaxmedia, @kupriyanenko I want to use jbone in React app with server side rendering (ssr).
I do not need jbone on backend, because the code, that needs DOM manipulations, of coarse, executes in browser.
But during server side rendering step nodejs requires some modules, that depend on jbone and you'll get a ReferenceError, despite jbone won't be used during ssr.
So I see two solutions:

fallback to something else, when window is not available
initialize variables window and document lazily

The second one is a little bit tricky (or even not possible) but it will give more informative errors like 'document is not defined' instead of Cannot read property 'querySelectorAll' of undefined or doc.querySelectorAll is not a function.

There is no need for libaries like jQuery or jBone while using React or Angular. Everything can be solved using the ReactDOM ... please open a issue on Stackoverflow I can resolve it there.

@redaxmedia you are wrong. There is no need in libs like jQuery, but there is need in lightweight wrappers around verbose DOM apis.
 This pattern may be ok for todo mvc or kitten homepage, but not for huge apps with complex, dynamic interface and third party integrations. Using vanilla dom api will break at least DRY principle and will couple your code to specific implementation and global variables. Please think about this, before answering on stackoverflow in future.
And big thanks for this tiny lib!

Sorry, but you are doing something wrong when you think you need a DOM wrapper.

What's the reason to write:
if (typeof document !== 'undefined') {
    const el = document.getElementById('foo');
}

when you can simply write $('#el')? Yes, you can get an element using ref, but only in case, when you are in context of react, but what if you are executing feature test for flash support?
Why should you write all the prefixed events for e.g. fullscreen events if you can simply write $(window).on('fullscreenchange')? What about rAF? (I know, that jbone does not handle this particular case, but we are talking about wrappers)
Why should you write:
if (typeof document !== 'undefined' && document.body) {
    const fn = () => alert('foo');

    document.body.addEventListener('click', (event) => {
        fn(event);
        document.body.removeEventListener('click', fn);
    });
}

if you can simply write: $('body').one(() => alert('foo'));?
If you are integrating with the third party products, they often require jQuery for DOM manipulation. In my case I can use jbone in place of jQuery and don't load the whole jQuery, which is full of features, that nobody needs (btw this lib was, actually written to solve similar issues with backbone ;) ).
That's why I think, that the wrapper is a good idea. It may be used as a layer, that abstracts some browser incompatibilities and reduces the repetition in your code.

@SleepWalker I think it's not bad idea to use abstraction over DOM, because even in react applications you have a cases when you should manipulate with DON. I can fix initialization for jBone, it's ok and not big deal.
But when you will try to use jBone/jQuery (doesn't meter), you will have runtime errors, for example for $(global).on('click', () => { /* ... */ }) in any case you will have error
What do you think about importing jsdom for your sever environment?

You are using the document object in your examples... well, I never tried server-side rendering in React because I switched to Angular but I guess you get in trouble using document on the nodejs side.
I see no problem using:
this.refs.foo; instead of document.getElementById('foo')

I see no problem using Flux or react-global-events:
const Root = () => (
    <div id="app-root" {...listenFor('mouseUp', 'mouseDown')}>
        ...
        <MySubComponent />
    </div>
)

You are working with the fullscreen API?  Search for a react wrapper on the NPM registry!

But when you will try to use jBone/jQuery (doesn't meter), you will have runtime errors, for example for $(global).on('click', () => { /* ... */ }) in any case you will have an error.

Yep, I'll get error. But this is fine. Because, when my code touches DOM on node side, this is really an error. The problem was, that jbone touched DOM before it was actually called by my code.

I can fix initialization for jBone, it's ok and not big deal.

If you think, that this goes out of the scope of your lib, then you not obliged to do this. I've suggested this feature, because it may be useful. (btw. screenfull.js makes similar check in initialization code)

@redaxmedia thank you for suggestion. Probably, we have a little bit different codding habits. But this is another issue :) I don't know which is the best approach, but I love the mine one

@SleepWalker fix is released in version 1.2.1

@SleepWalker does it work for you?

@kupriyanenko Yep. It works as expected. Thank you :+1:


Move persons from YAML to config UI 👩💻

Move my persons from YAML configuration over to the UI.

#HomeAssistant person integration documentation - https://www.home-assistant.io/integrations/person/


Run at startup on Ubuntu

On Ubuntu 14.04, I'm starting Tmux with the following upstart script at /etc/init/start-tmux.conf:
description "Start Tmux"
start on runlevel [2345]

script
  su myuser -c "tmux new-session -d -s my-default-session-name"
end script

Not sure how  you want to present this in your docs, but if someone else could verify that this works for them, as well, that'd be great. Now, I can ssh my-dev-box -t tmux attach and always attach to my Tmux session, even if the box has restarted.

Hi,
thank you for pasting this code snippet. It would be ideal if we could make this work for ANY linux so users doesn't have to copy-paste stuff around.
Do you know what other systems (?) apart from upstart are used in linux-land? Are there like top 3 solutions for this?

Looks like systemd is the default for most distributions now. Probably better to work something using that in.
I have no idea how to systemd, but if I figure something out before someone else posts here, I'll post my findings.

On Aug 31, 2015, at 7:55 AM, Bruno Sutic<EMAIL_ADDRESS>wrote:
Hi,
thank you for pasting this code snippet. It would be ideal if we could make this work for ANY linux so users doesn't have to copy-paste stuff around.
Do you know what other systems (?) apart from upstart are used in linux-land? Are there like top 3 solutions for this?
—
Reply to this email directly or view it on GitHub.

I also use Ubuntu 14.04 - which uses upstart by default, but Ubuntu 15.04 has switched to systemd. I haven't tried the script - but it looks to me like it would work on upstart based systems.
The whole linux init system and PID 1 (e.g. sysV, upstart or systemd) is unfortunately quite a mess at the moment, where all major distros literally use different versions - slackware even uses its own init system again.
But where things really get messy is the fact that just because a system uses e.g. upstart as the controlling init service - most packages still define their init processes sysV init scripts - and only a select few important scripts get converted to the new fancy system.
So like most things in Unix like systems - if you wanted the script to work everywhere, you would likely want to write it in the oldest most established system (sysV init) and because the most of the  unix world uses them - any new init systems have to (and do) support them.

systemd is definitely the way to go.  However, I'm (yet) sure how to deal with systemd-logind, as that's the new login manager that monitors sessions, powerbutton events, etc.
In the meantime, a workaround might be to provide a line in ~/.xinitrc and/or a ~/.config/autostart/tmux-start.desktop file with an exec command like:
'''
xterm -e tmux new-session -d 'journalctl -fl' ; split-window -h -d ; attach &
'''
Alternatively, make the line more "portable" by using xdg-open instead of xterm

I just stumbled upon this ArchWiki page that might be of particular interest for creating/using user-specific startup scripts.

We'll soon be merging PR #12 which adds Linux systemd support.


Use npm instead of yarn

We can use npm instead of yarn.
While yarn may be preferable for advanced users, it does create an additional external dependency.  For a beginner tutorial, I suggest npm is preferable.
Modern npm has lockfile capability and is arguably as performant as yarn now.

@deweller Let me check with the team on this one. If I recall, this point was made before but there was some reason they wanted to keep yarn.

@deweller Ok. Looks like we are going to do this. Thanks again for your help.


Docs: how to get files (images, fonts) in a cross-platform way?

My toy project finally compiles to WASM, but it can't find the font file. I moved it from a folder above the /src, but it still has trouble, I suspect Font.new("./fonts/font_terminal_16_16.png") is not cross-platform somehow?

https://ebiten.org/tour/image.html#How_the_code_works
This page shows various ways to load an image :-)

Even a filesystem is not portable (No filesystem on browsers, current directory is unclear on mobiles). So the most portable way is embed a file as a Go bytes.

Huh, https://github.com/BigJk/ramen/blob/master/font/font.go is already using ebitenUtil.openPath(), which according to the link should be fine for both browser and desktop (I don't need mobile) so why does it work on desktop but not browser?

ebitenutil.OpenFile with a relative path works as a relative path from the current URL. You'd need to upload the font/image files at the appropriate directory.

I figured that out after compiling the game myself manually (i.e. not using wasmserve).
The fact that wasmserve doesn't seem to use/copy resources over seems to deserve an issue over in the other repo :P

The fact that wasmserve doesn't seem to use/copy resources over seems to deserve an issue over in the other repo :P

If you specify a relative path with wasmserve and a resource is in the current project, the server should take a look at the file.


Add extra discription keywords

Not an issue with the crate, but more with trying to find it again after forgetting the name.
I tried many keywords like: tiny, small, compact, no-std, fast etc. Mostly because those are what I seemed to remember about it. I wasn't able to find until I searched "zero copy" however.

Right now the keywords and categories for rkyv on crates.io are:
keywords = ["archive", "rkyv", "serialization", "zero-copy", "no_std"]
categories = ["encoding", "no-std"]

So it seems like you should have had success by searching for no-std. While rkyv strives to be tiny, small, compact, and fast, those are relatively subjective measures and I'd prefer to stick to any fact-based information about the crate. What keywords would you suggest?

Closing this since keywords are very squishy and aren't really my wheelhouse. If you want some more keywords, feel free to file a PR.


zIndex not work for the unityView

I want to make unityView on top of an absolute View but it seem like unityView always stay behind any View even i add zIndex to it

Have you solved this problem? I have the same problem now