docs(resources): adds resources by thoughtram

These articles are kept constantly up-to-date

I've updated the PR with another article we've published a day ago. Do you think this can be merged?

Pinging @naomiblack :)

Uhm.. anyone fancy at least reviewing it? :D

Updated and rebased.

Are there any policies on what resources should be in this list?
Currently the list consists of posts by Victor (official Angular dev) and Angular conference material (also official).
I have no doubt about the quality of your articles, however since you're quite active and other bloggers may be not, this list could become a Thoughram-only one.
Other contributors (bloggers) may cover the same subjects and may have the same quality level.
Perhaps first add the most valuable Thoughtram links to keep the list a bit less unskewed?

Are there any policies on what resources should be in this list?

Not that I know of.

Currently the list consists of posts by Victor (official Angular dev) and Angular conference material (also official).

Well, the blog posts listed in the resources are still his private blog

I have no doubt about the quality of your articles, however since you're quite active and other bloggers may be not, this list could become a Thoughram-only one.

Currently it's a Victor only one, which I'm trying to fix :)

Other contributors (bloggers) may cover the same subjects and may have the same quality level.

No doubt!

Perhaps first add the most valuable Thoughtram links to keep the list a bit less unskewed?

This is what the PR is all about.

However, I do understand if this ends up to be too thoughtram-y. Maybe this list is not even needed anymore, since we put more energy into the official docs lately anyways.
Would love to hear what @naomiblack thinks. I could also update the PR to only link to http://blog.thoughtram.io/exploring-angular-2

Pascal - Please get in touch with me to discuss if this PR is still viable or should be closed.


Backport verfier fixes for kernel 6.11

Backport of #89 and falcosecurity/libs#2011

Approving based on my previous review of all except one of the commits here, and I've looked at the extra one (593ded1) and it looks fine as well - do we also need it on 0.18.1-stackrox too?

That commit is included in the 0.18.1 release of Falco, so it is already included in 0.18.1-stackrox (https://github.com/stackrox/falcosecurity-libs/commit/2641e573befa17f68007710dd0746366fd6d989e)


Program doesn't terminate when invoking one of the suspend library functions

This program doesn't terminate
fun main(args: Array<String>) = runBlocking(CommonPool) {
    val result = service.someCall().awaitResponse()
    println(result)
}

I've tried and I see no issue:
https://gist.github.com/gildor/aa2b2f23ffbc963e3bde2f180150cc07
Could you reproduce this issue and share code?
The only possible reason that I see it's some exceptions in your OkHttp interceptor or Retrofit adapter factory, I just not sure that in this case, coroutine getting callbacks

When I build and run the project in https://gist.github.com/anonymous/e13969100d35b778986db6bf7fb2275f, the app doesn't terminate.

I'm sorry, the gist is a bit messy, you can compile the project from these sources
KotlinDesktopPlayground.zip

Yes, I see that if I use gradle application plugin and run task.
Looks like some thread still alive, even after coroutines finished. I will investigate this

@cypressious The reason of that behavior Executors.newCachedThreadPool() that used as default executor for Retrofit2 (except cases when you run request synchronously).
According to docs threads of CachedThreadPool wait 60 seconds before shutdown.
So I see only one way: set custom Executor to OkHttpClient and shutdown it manually or create executor that creates daemon threads.

@cypressious I'm closing this issue. if you have some other ideas please reopen with your comment


logging in R

log messages
add / update verbosity function

switched to message() and warning() with a verbosity flag in the countland object


Support per-query retry reporting customization

Enable SessionRetryContext to call custom user-defined reporting handler methods.

Codecov Report
Patch coverage: 85.71% and project coverage change: +0.09% :tada:

Comparison is base (5c0f63b) 50.96% compared to head (a8dac73) 51.05%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@              Coverage Diff              @@
##             develop     #149      +/-   ##
=============================================
+ Coverage      50.96%   51.05%   +0.09%
- Complexity      1099     1107       +8
=============================================
  Files            175      176       +1
  Lines           7154     7170      +16
  Branches         720      720
=============================================
+ Hits            3646     3661      +15
- Misses          3247     3248       +1
  Partials         261      261

Files Changed
Coverage Δ

.../main/java/tech/ydb/table/SessionRetryHandler.java
83.33% <83.33%> (ø)

.../main/java/tech/ydb/table/SessionRetryContext.java
87.97% <89.47%> (+1.34%)
:arrow_up:

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


modifying local disk content

Hi,
Is it possible to read a local folder and then dynamically change its file content when delivering?
for example lets assume a file has the following content:
time is %time%

I would like to replace %time% every-time a request is made.

Hello,
Yes, it is possible using a custom file system.
Take a look at the wiki page about it. You can find an example here of a custom file system.
You will have to use a PhysicalFileSystem as parent class of your custom file system class. In the openReadStream method, you will have to create a stream which can change on the fly these kind of things.
I hope this helped you.


Path renders blurry when scaling is >100%

Create a simple Path like this:
<Path Data="M 0 0 H 10 V 10 H 0 V 0" StrokeThickness="1" Stroke="Black" Stretch="Fill" Width="10" Height="10" />
It will render blurry when display scaling is larger than 100%.
Some pictures with the UWP caption buttons vs them recreated in XAML:
100%

150%

UseLayoutRounding doesn't fix this, and it seems it's enabled by default.

@gabrieln17 Did you find this issue in Winui3 or System xaml?

@GeGao18 FYI

It behaves the same with system xaml, WinUI 2.x and WinUI 3 uwp. With WinUI 3 desktop, it's blurry even with 100% scaling.

If the stroke thickness is 1epx, and you scale to 150%, that would be 1.5epx, so of course would show some blurring?
I know there was another issue regarding TextBox borders showing blurring at 100% scale, so WinUI 3.0 rendering may have an issue.
But were you expecting the stroke to remain at 1epx with scaling turned on?  Is there an API to prevent scaling of elements?

The scaling makes sense, but there doesn't seem to be a way to make sure the lines are sharp.
UseLayoutRounding works for position and dimensions. There could be a similar property for paths and borders.

Kinda hard to have a 1.5px line not be blurry.
Now maybe there should be a Xaml feature to allow for stroke values which are not scaled.  So it will remain 1px thick even at 150% - 200% - 400% scaling etc.
You can opt out of scaling I think with Windows.UI.ViewManagement.ApplicationViewScaling.TrySetDisableLayoutScaling(true); but it may be Xbox only.

The new titlebar buttons in WinUI3 Preview 4 have the same issue, as they probably also use Path.

I thought this is a known issue because I have it on my pc and laptop (both on latest windows 11, scale 100%) but apparently it's supposed to work? The "Restore" icon looks awful

Generically scaling up a path at partial pixel percentages is going to incur anti-aliasing. There is no easy solution to this problem and this is not in plan to be addressed at this time.


[1] Failed transaction for buy 'project token' on Goerli

User encountered an issue when trying to 'buy' a project token on Goerli.
Error message:
Transaction failed
invalid arrayify value (argument="value", value="", code=INVALID_ARGUMENT, version=bytes/5.5.0)
Discussion thread:
https://discord.com/channels/775859454780244028/864240636277293106/1073645695619309689
RICE:
R – 1 //only applies to people that are testing project creation on Goerli
I – 1 //issue doesn't prevent any contributions or projects being created in prod
C – 1 //unsure about how many creators create projects on Goerli before creating in prod
E – 1 //relatively small fix and change
Score:
1

@tjl-me this ended up bring a critical bug where payments for non-NFT projects were broken (goerli and mainnet).
Fixed tho, so closing!


neon: Implementation of padd instruction

Here's another one, hopefully with less weird constraints like vget_lane.
(cc @ngzhian @tlively)

Oh, I see the mistake here, I'll fix it

There is a relatively efficient way to implement pairwise operations on most architectures.  If you shuffle the inputs so you have one vector composed of the even elements from both inputs, and a second one composed of the odd elements, all you have to do is perform the operation (add) on them.
The shuffles are usually pretty fast.  For 32 bits on x86 there is _mm_shuffle_ps/_mm_shuffle_epi32. For 64 bits, _mm_unpacklo_pd and _mm_unpackhi_pd / _mm_unpacklo_epi64 and _mm_unpackhi_epi64.   _mm_shuffle_ps, for example maps to shufps, which is about as fast as you can get (it's right there with operations like xor).
For relatively recent versions of clang and GCC, you can use __builtin_shuffle/__builtin_shufflevector to do it portably; SIMDe has a SIMDE_SHUFFLE_VECTOR_ macro to abstract away the differences.  pmin.h has some examples of using SIMDE_SHUFFLE_VECTOR_ for exactly this purpose.
More interestingly, though, NEON also has functions to do exactly what we want: vuzp1* and vuzp2*.  If we implement those functions we can use them to implement all the pairwise functions by just doing something like
return vaddq_s32(vuzp1q_s32(a, b), vuzp1q_s32(a, b));

I think the best thing to do would be to implement uzp1 and uzp2 (pmin.h already has the logic necessary, it just needs to be reworked a bit to only do one of the shuffles (per file) instead of both shuffles and a min.  Once that's done, we can use that to implement this and pmin.
Is that something you would be interested in doing, or would you prefer for me to do it?

I'll give it a shot, await a PR soon :+1:


Add aws_internet_gateway

Currently appears to be missing.

@errordeveloper
See the PR #164. :eyes:

@manabusakai thanks!


feature: allow default keymaps customization

Did you check the docs?

[X] I have read all the LazyVim docs

Is your feature request related to a problem? Please describe.
Currently, the only customization for default keymaps is to disable all default keymaps:
      opts = {
        defaults = {
          keymaps = false,
        },
      }

And I just need a little customization:

Disable default C-h/j/k/l to avoid confliction with tmux.nvim, cuz I use nvim in tmux, I want to jump nvim window and tmux pane smoothly with keymap C-h/j/k/l.

-- map("n", "<C-h>", "<C-w>h", { desc = "Go to left window", remap = true })
-- map("n", "<C-j>", "<C-w>j", { desc = "Go to lower window", remap = true })
-- map("n", "<C-k>", "<C-w>k", { desc = "Go to upper window", remap = true })
-- map("n", "<C-l>", "<C-w>l", { desc = "Go to right window", remap = true })

Disable default C-s to avoid conflict with tmux, cuz I use C-s as tmux prefix key.

-- map({ "i", "x", "n", "s" }, "<C-s>", "<cmd>w<cr><esc>", { desc = "Save file" })

To achieve my needs, I have to disable all default keymaps, and copy keymaps.lua and remove those default keymaps that I have to disable. And LazyVim is currently under active development, if I upgrade LazyVim, I have to check the latest keymaps.lua and compare with my own keymaps.lua, find new difference and patch to my own keymaps.lua, This is a bit too troublesome.
Describe the solution you'd like
And some options to customize default keymaps,
      opts = {
        defaults = {
          keymaps = {
            window_jump = false,
            save_file = false,
          },
        },
      }

Describe alternatives you've considered
none
Additional context
No response

You don't have to disable all default keymaps. Just change or delete what you want in your own keymaps.lua. They will get merged with the defaults in the end.

How to delete? Do you mean execute vim.keymap.del in my own keymaps.lua?

I tried vim.keymap.del keys <C-h/j/k/l>, the same keys in plugin tmux.nvim will not work.

Currently, the only customization for default keymaps is to disable all default keymaps

I would argue that the statement above is not correct.
The tmux plugin, when navigation.enable_default_keybindings = true, creates the keybindings which will be overwritten by LazyVim's keybindings in lazyvim.config.keymaps.lua.
Overriding a generic keybinding with a plugin keybinding is a special case.
You have to create the keybindings yourself. This could be done in your own config.keymaps.lua.
However, this file is intended for generic keybindings. Introducing plugins here is not recommended.
LazyVim will not override keybindings defined in the spec with keys = .
I recommend the following spec:
  {
    "aserowy/tmux.nvim",
    keys = {
      {"<c-h>", function() require("tmux").move_left() end, desc = "tmux move left"},
      {"<c-j>", function() require("tmux").move_bottom() end, desc = "tmux move bottom"},
      {"<c-k>", function() require("tmux").move_top() end, desc = "tmux move top"},
      {"<c-l>", function() require("tmux").move_right() end, desc = "tmux move right"},
    },
    opts = {
      navigation = {
        -- enables default keybindings (C-hjkl) for normal mode
        enable_default_keybindings = false
      }
    },
  }

I do the same in my config, using these ctrl keys for harpoon.
In general, I only use vim.keymap.del if I want the keymap removed instead of redefined. For example, <S-h> <S-l> to restore Neovim's top and bottom navigation.
The <C-s> keymapping can be removed in your own config.keymaps.lua:
for _, mode in pairs({ "i", "v", "n" }) do
  vim.keymap.del(mode, "<C-s>")
end

Best regards!

For vim-tmux-navigator i have the following in my keymaps.lua
if os.getenv("TMUX") then
  map("n", "<C-h>", "<cmd>TmuxNavigateLeft<cr>")
  map("n", "<C-j>", "<cmd>TmuxNavigateDown<cr>")
  map("n", "<C-k>", "<cmd>TmuxNavigateUp<cr>")
  map("n", "<C-l>", "<cmd>TmuxNavigateRight<cr>")
end

I'd guess you could do something similar for tmux.nvim or go the keys route like @abeldekat suggested.

@abeldekat  Thanks a lot! It works, now I use this configuration (tmux.lua):
return {
  {
    "aserowy/tmux.nvim",
    keys = {
      {
        "<c-h>",
        function()
          require("tmux").move_left()
        end,
        desc = "tmux move left",
      },
      {
        "<c-j>",
        function()
          require("tmux").move_bottom()
        end,
        desc = "tmux move bottom",
      },
      {
        "<c-k>",
        function()
          require("tmux").move_top()
        end,
        desc = "tmux move top",
      },
      {
        "<c-l>",
        function()
          require("tmux").move_right()
        end,
        desc = "tmux move right",
      },
    },
    opts = {
      navigation = {
        enable_default_keybindings = false,
      },
    },
  },
}

And my keymaps.lua:
vim.keymap.del({ "i", "x", "n", "s" }, "<C-s>")

You're welcome!

Currently, the only customization for default keymaps is to disable all default keymaps

I would argue that the statement above is not correct.
The tmux plugin, when navigation.enable_default_keybindings = true, creates the keybindings which will be overwritten by LazyVim's keybindings in lazyvim.config.keymaps.lua.
Overriding a generic keybinding with a plugin keybinding is a special case. You have to create the keybindings yourself. This can be done in your own config.keymaps.lua. However, that file is intended for generic keybindings. Introducing plugins here is not recommended.
LazyVim will not override keybindings defined in the spec with keys = .
I recommend the following spec:
{
"aserowy/tmux.nvim",
keys = {
{"", function() require("tmux").move_left() end, desc = "tmux move left"},
{"", function() require("tmux").move_bottom() end, desc = "tmux move bottom"},
{"", function() require("tmux").move_top() end, desc = "tmux move top"},
{"", function() require("tmux").move_right() end, desc = "tmux move right"},
},
opts = {
navigation = {
-- enables default keybindings (C-hjkl) for normal mode
enable_default_keybindings = false
}
},
}
I do the same in my config, using these ctrl keys for harpoon.
In general, I only use vim.keymap.del if I want the keybinding removed instead of redefined. For example, <S-h> <S-l> to restore Neovim's top and bottom navigation. The <C-s> keymapping can be removed in your own config.keymaps.lua:
for _, mode in pairs({ "i", "v", "n" }) do
vim.keymap.del(mode, "")
end
Best regards!

Thank you!


Improper handling of the '--verbose-build' option in remote builds

Nimbella provides guidance on handling errors in builds: https://docs.nimbella.com/building#errors-in-builds.  As stated, nim does not display build output unless the build "fails" as indicated by a nonzero exit code.  The --verbose-build flag is provided to allow inspection of build output when the build "succeeds" (as indicated by a zero exit code) but you don't like the results and believe some error may have been swallowed.
The --verbose-build flag does not do its job when the build is remote.   Even worse, it actually causes the output of the build to be lost even when the build actually exits with a nonzero code.   This happens because this logic assumes that feedback.progress() will display its output.   In a remote build, a special warnOnly flag has been set that makes the progress method into a no-op, which defeats the intent of --verbose-build.   Suppressing the progress reports in general is necessary to avoid filling the remote build transcript (which doesn't display until the build is finished) from being dominated by "build is still running" messages and other useless cruft.    But, it should not be suppressing the build's stdout messages when --verbose-build has been requested.
I understand how to fix this (it will take a little thought) so you can assign it to me for coding and unit testing, after which I can submit a PR.   Merging that PR will not fix the problem until a new nim version is released and runtimes rebuilt to incorporate that nim.

I'm inclined to tack on another small fix, since we will need a new deployer and a new CLI and it would be nice to catch other known problems.
In these lines there should not be a newline after the opening backtick.   The newline causes the "shebang" (#!) to not appear in the first two bytes of the file, so it will not be recognized by the OS.

I'm keeping this open only because there is still no public nim CLI release that includes this change and the runtimes have not been rebuilt with a nim containing the change.   Since the related PR has been merged, there is no actual coding remaining to be done.

Closing this because the change is present in @nimbella/nimbella-cli and there is no plan to place later versions of the CLI in the apigcp downloads area or to update the runtimes on apigcp.   These improvements will appear in a different deployment eventually.


Suggestion for README: when folder structures change often, it helps to have a dynamically evaluated import

This feature will help a lot in terms of saving dev time.

I don't understand this suggestion. Perhaps a pull request would be clearer.

@domenic I think he's suggesting that a use case for dyanimic import() is when a directory tree is modified a single variable can be set to the correct module ID; verses having to change all lines of import something from 'old/directory/tree' in every sibling module file.
The way that problem is currently solved is by using injection of imported module contents into other imported module members which is not so parsimonious.

I still don't understand and still suggest a pull request with e.g. example code or spec changes so we can judge more clearly.

I think the suggestion is to add an example to the readme like the following to illustrate the dynamic nature of the import() operand:
// constants.js
export const COMPONENTS = '/path/to/components';

// module.js
import { COMPONENTS } from './constants';

export default function gimmeComponent(name) {
  return import(`${COMPONENTS}/name.js`);
}

@ljharb Thanks. That's what I was trying to explain.

So the idea is to show that template strings with variables can be used when using import() ?

@mkay581 i think the idea is specifically to convey that paths to modules can be stored in a constant, and used in import(), which gives you all the benefits that constantization normally does, but newly gives them for importing modules.

Ah okay, I thought that this "constantization" was implied, given that import() operates like other function calls and does not have to appear at the top of the module file like legacy imports. But thanks for the explanation.

@mkay581 It is implied. Though it might be of interest for persuading interested parties.

I think this is adequately illustrated by https://github.com/tc39/proposal-dynamic-import#example, so I'll close this.


[$250] Settings - The starting "s" is capitalised in the "Account settings" tooltip

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.85-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause - Internal Team
Action Performed:

Log in with any account
Hover over the "Account settings" button

Expected Result:
The tooltip should be "Account settings"
Actual Result:
The starting "s" is capitalised in the "Account settings" tooltip
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/189d19e1-9220-4f2e-b500-d6976ee99563
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01c180ec6dec4f4508
Upwork Job ID:<PHONE_NUMBER>736034334
Last Price Increase: 2024-06-19

Issue OwnerCurrent Issue Owner: @allroundexperts

We think that this bug might be related to #vip-vsp

Proposal
Please re-state the problem that we are trying to solve in this issue.
Settings - The starting "s" is capitalised in the "Account settings" tooltip
What is the root cause of that problem?
Translation string needs to be modified.
What changes do you think we should make in order to solve the problem?
Change "Account Settings" to "Account settings" and "Street Address" to "Street address".
https://github.com/Expensify/App/blob/f6085d284bfb69c837fbac7e3b4e3fba9853df26/src/languages/en.ts#L978
https://github.com/Expensify/App/blob/f6085d284bfb69c837fbac7e3b4e3fba9853df26/src/languages/en.ts#L1241

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01547a18555dde1c71

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~018f2471a350e1b5be

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01547a18555dde1c71
Please re-state the problem that we are trying to solve in this issue.
Settings - The starting "s" is capitalized in the "Account settings" tooltip
Proposed Solution
Update the tooltip on the "Account settings" button, Need to localize the string to capitalize it.
What is the root cause of that problem?
Right now tooltip fetches the text from the translation file. we need to add a logic to capitalize the first letter of the tooltip text.
What changes do you think we should make in order to solve the problem?
Add a function to fetch a tooltip that capitalizes the first letter of the text in a sentence case.

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01547a18555dde1c71

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01922d1856797de60a

Proposal
Please re-state the problem that we are trying to solve in this issue.
Settings - The starting "s" is capitalised in the "Account settings" tooltip
What is the root cause of that problem?
Translation string needs to be modified.
What changes do you think we should make in order to solve the problem?

Change "Account Settings" to "Account settings";
Change "Street Address" to "Street address";
Remove unnecessary space at the end of the string on line 1455;
Change : 'The Entered Contact Method already exists.' to 'The entered Contact Method already exists.'.

https://github.com/Expensify/App/blob/f6085d284bfb69c837fbac7e3b4e3fba9853df26/src/languages/en.ts#L978
https://github.com/Expensify/App/blob/f6085d284bfb69c837fbac7e3b4e3fba9853df26/src/languages/en.ts#L1446
https://github.com/Expensify/App/blob/f6085d284bfb69c837fbac7e3b4e3fba9853df26/src/languages/en.ts#L1455
https://github.com/Expensify/App/blob/f6085d284bfb69c837fbac7e3b4e3fba9853df26/src/languages/en.ts#L868

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01922d1856797de60a

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01922d1856797de60a

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/parthshekhaliya

Since this is a very straight forward issue, I'd go with the first proposal with the correct RCA and the fix.
Let's go with @devguest07's proposal.
🎀 👀 🎀 C+ reviewed

Oh, I think the automation did not kick in here. The PR was merged some time ago. @strepanier03 Can you check?

Yep @strepanier03 can you help with the payments here please? Thanks

@devguest07 can you please accept the job and reply here once you have?
https://www.upwork.com/jobs/~011c3fb8ccd13b93fb
Apologies for the delay.

Contributor: @devguest07  paid $250 via Upwork
Contributor+: @allroundexperts due $250 via NewDot
Not going to create a regression test for this since it's just a capped letter.


Allow download of content defined by the IDC Portal manifest

This way we could use the extension as a GUI IDC data downloader.

@adamli98 would be great if you could work on this one - I think it should be rather easy, but quite helpful!
As a background, one can use IDC portal to define subsets of data, and export manifests that can then be used with s5cmd to download the corresponding files. To do that, one would first use the filters on the left to define selection criteria (yellow arrow in the below), then click the "Download images" button (red arrow), and download the manifest (green arrow).

We already have s5cmd installed, so we would need to add an option to the module interface to open the manifest supplied by the user, launch download into the directory defined by the user, and (as an option) index the downloaded files in the Slicer DICOM database.

@adamli98 in the meantime, we are working to change the way IDCClient is operating. Hopefully sometime this week, we will swap IDCClient to use idc-index package we are working on (see #15). That package will have a function to download content defined by a manifest: https://github.com/vkt1414/idc_index/blob/main/idc_index/index.py#L295. So if you already started, maybe it is best if you share what you have, to avoid redundant work, or maybe we will do it as part of idc-index introduction? I just realized that the idc-index work is not independent from this issue.

Hi Mr. Fedorov,My apologies for the late reply. I haven’t not completed and implemented the function, yet. All I have now is a rough graphic design for the function. I can test the latest code you have tonight and let you know if I have any ideas.Best Regards Adam LiOn Nov 15, 2023, at 12:09, Andrey Fedorov @.***> wrote:
@adamli98 in the meantime, we are working to change the way IDCClient is operating. Hopefully sometime this week, we will swap IDCClient to use idc-index package we are working on (see #15). That package will have a function to download content defined by a manifest: https://github.com/vkt1414/idc_index/blob/main/idc_index/index.py#L295. So if you already started, maybe it is best if you share what you have, to avoid redundant work, or maybe we will do it as part of idc-index introduction? I just realized that the idc-index work is not independent from this issue.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

Adam, meanwhile, we swapped IDCClient implementation to use python idc-index package, which includes this function to download the content defined by the manifest: https://github.com/ImagingDataCommons/idc-index/blob/main/idc_index/index.py#L260.


Fix for Falcon

What does this PR do?

Changes to Falcon's modeling following the release of Transformers v4.34.
Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?

@schoi-habana Here is a fix for Falcon with Transformers v4.34: https://github.com/huggingface/transformers/blob/v4.34.0/src/transformers/models/falcon/modeling_falcon.py#L124

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Issue with highlighting dynamically

Hi
I'm trying to update the highlights with a function and it doesn't throw any errors but the highlight doesn't change. There can be any number of segments that need colour between various degrees. If I hardcode 4 or more they work perfectly but creating the array and passing it in inst working.
Here is my code
function colourSector() {
 var strHighlights = [];
 var strColor = 'rgba(54,255,75,1)';
  for (i = 0; i < secStart.length; i++)
  {
    strHighlights.push({from: secStart[i], to: secEnd[i], color: strColor});
  }

  var guage = document.gauges.get("canvas1");
  var hl = [];
  hl.push({highlights: strHighlights});
  guage.update(JSON.stringify(hl));

}

Try “from”: x, “to”: y etc.

@node1coza - did you managed to get over the reported issue? It seems that it's not possible to reconfigure the highlight ranges dynamically. Whenever I try to update the gauge with new highlights the highlight just disappears. All the other options appear to update dynamically without any issues. It looks like a bug for me.

Hi Sent from my Huawei phoneHi GabrielNo I didnt. I basically destroy and recreate the Guage to fill in the highlights-------- Original message --------From: Gabriel Kujawski<EMAIL_ADDRESS>Wed, Mar 25, 2020, 16:24To: Mikhus/canvas-gauges<EMAIL_ADDRESS>node1coza<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Re: [Mikhus/canvas-gauges] Issue with highlighting dynamically (#189)
@node1coza - did you managed to get over the reported issue? It seems that it's not possible to reconfigure the highlight ranges dynamically. Whenever I try to update the gauge with new highlights the highlight just disappears. All the other options appear to update dynamically without any issues. It looks like a bug for me.
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.

I use this:
        var green = "rgba(0, 255, 0, .3)";
        var yellow = "rgba(192, 192 , .3)";
        var red = "rgba(255, 0, 0, .3)";
        var blue = "rgba(0, 0, 255, .3)";

var Highlights = [];
Highlights.push({ from: 0, to: 10, color: red });
Highlights.push({ from: 10, to: 40, color: yellow });
Highlights.push({ from: 40, to: 45, color: green });
Highlights.push({ from: 45, to: 50, color: blue });
gauge = new RadialGauge({
highlights: Highlights,
});


Sync up issues with Maven central?

Not sure if this is right place to report an issue, it is my understanding that javadoc.io automatically syncs up with Maven central. I have a opensource component available in Maven central whose first version was automatically synced up with javadoc.io but a few week ago i released the second version (2.0.0) however I do not see this new version's document in javadoc.io

org.bitbucket.gt_tech
nano-rxnetty-mvc-server
2.0.0

Not sure if I am missing a step in pushing new version doc to appear on javadoc.io.

Figured, I had to access the 2.0.0 version from browser to trigger the site to load newer version. I am not sure if its the right process for pulling in new version but it does the trick for me.

FYI the scheduled job is also fixed to be able to pick up the new version. You shouldn't have to manually sync doc anymore. Please reopen this ticket if this happens again.


Server icon/label customization

Just a fun idea. Right now the label is a number:

Perhaps it could be customized, like "fn" for freenode. Or maybe users could upload a picture somehow? Dunno. Curious to hear your thoughts.

i think we should do better than just a number, and it'd be great to be able to distinguish your connections.
the "fn" idea is cool. you can connect to any domain or IP, so we'd have a couple cases to deal with. i'm not sure what the "freenode" -> "fn" function looks like that supports arbitrary domains. if you wanna play with this and the result looks good, i think it'd be a nice improvement!

i'm not sure what the "freenode" -> "fn" function looks like that supports arbitrary domains

Yeah that's the problem I was thinking about too... hmm. I will sit on this for a bit :P

Hello guys,
I hope I may give my two cents and share an idea:
I personally love what Mozilla did on Firefox's "about:newtab" page: When they do not have an icon for a website, they use a thing called "letter fallback", which looks like this:

It is a very short algorithm which produces a more or less unique combination of letter and color.
How they did it?

build a simple hash code from the URL
with that hash code choose a color from a predefined array
apply some fancy CSS with ::before and the first letter

Ingredients:

the hash function:

/*
 * Takes the url as a string, runs it through a simple (non-secure) hash turning it into a random number
 * Apply that random number to the color array. The same url will always generate the same color.
 */
function generateColor() {
    let { title, colors } = this.props;
    if (!colors) {
        return "";
    }

    let colorArray = colors.split(",");

    const hashStr = str => {
        let hash = 0;
        for (let i = 0; i < str.length; i++) {
            let charCode = str.charCodeAt(i);
            hash += charCode;
        }
        return hash;
    };

    let hash = hashStr(title);
    let index = hash % colorArray.length;
    return colorArray[index];
}

source: https://hg.mozilla.org/mozilla-central/file/tip/browser/components/newtab/content-src/components/TopSites/TopSite.jsx

their choice of colors: #0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A
It is a nice selection of pastel colors with tendency to warm colors
(I could not find the source for it, I just debugged it)

their choice of fonts: font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Ubuntu", "Helvetica Neue", sans-serif (might be platform-dependent, IDK)

apply the CSS with the ::before pseudo-selector, of which the most important parts are:

    font-size: 64px;
    font-weight: 800;
    transform: rotate(-10deg);
    top: 6px;
    position: relative;
    color: #FFF;

the full list is:
{
    content: attr(data-fallback);
    text-transform: uppercase;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 64px;
    font-weight: 800;
    transform: rotate(-10deg);
    top: 6px;
    position: relative;
    color: #FFF;
}

(I think the flex-box-related staff is need only if in a flex box)
source: https://hg.mozilla.org/mozilla-central/file/tip/browser/components/newtab/content-src/components/TopSites/_TopSites.scss
Of course it can be adapted a little (change colors, font) and you should remove common parts like "chat." to not use letter C for all servers.
What do you think?

I tested the algorithm with the strings "chat.freenode.net" and "irc.libera.chat", which would give this result:

And in Lax it would look like this:

Just in case you prefer the original (more minimalistic) idea of two letters suggest the following algorithm which logically splits the string into vowels and consonants:
const vowels = ['a', 'e', 'i', 'o', 'u'];

function isVowel(char) {
    return vowels.includes(char);
}

function twoLetters(string) {
    if (!string) {
        return '??';
    }
    if (typeof string !== 'string') {
        return twoLetters(typeof string);
    }
    if (string.length < 2) {
        return string.repeat(2);
    }
    // 1. take the first letter
    const first = string[0].toLowerCase();
    // 2. search for the next vowel
    let i;
    for (i = 1; i < string.length && !isVowel(string[i]); i++);
    // in case we reached the end
    if (i >= string.length) {
        return first + string[i - 1];
    }
    // 3. seatch for the next consonant
    for (; i < string.length && isVowel(string[i]); i++);
    if (i >= string.length) {
        // we reached the end
        return first + string[i - 1];
    } else {
        // take that consonant
        return first + string[i];
    }
}

Of course this works only for Ascii.
A small test gives the follwing result:
"freenode" ==> fn
"libera"   ==> lb
"mozilla"  ==> mz
"lax"      ==> lx
"eeeff"    ==> ef
"fffee"    ==> fe
"eeeee"    ==> ee
"fffff"    ==> ff
"f"        ==> ff
""         ==> ??
*falsy*    ==> ??
42         ==> nm

For the letter y it's a bit a matter of taste I'd say - it's sometimes a vowel and sometimes a consonant: https://www.merriam-webster.com/words-at-play/why-y-is-sometimes-a-vowel-usage
If you treat the y as consonant:
"oyster"   ==> or
"yard"     ==> yr
"lawyer"   ==> lw
"beyond"   ==> by

If you treat the y as vowel:
"oyster"   ==> os
"yard"     ==> yr
"lawyer"   ==> lw
"beyond"   ==> bn

A correct distinction according to language rules would be a bit overkill here, I'd say 😆 .


Generate URLs in dashboard using Jenkins job data

Description:
Currently, the URLs are hardcoded in the dashboard. but they need to be built dynamically using the Jenkins job data.
Suggested Labels:
Type/Task
Priority/High
Suggested Assignees:
Sameera Wickramasekara

This is fixed now..


publish web-pull-to-refresh npm module

WPTR is the nicest implementation I've seen so far of pull-to-refresh. I think if you published an npm module, lots of developers would happily drop this in to their app. Including me!

Great idea, I'll get this sorted out.

bower +1 ngPull2Refresh +1


clone下来后第一遍正常，运行第二遍generate_training_data.py就报错了，什么都没改

Traceback (most recent call last):
File "generate_training_data.py", line 12, in
from basicts.data.transform import standard_transform
File "/nfs/project/chenao/pythonProject/idt_predict/BasicTSCode/basicts/init.py", line 2, in
from .runners import BaseRunner
File "/nfs/project/chenao/pythonProject/idt_predict/BasicTSCode/basicts/runners/init.py", line 2, in
from .base_tsf_runner import BaseTimeSeriesForecastingRunner
File "/nfs/project/chenao/pythonProject/idt_predict/BasicTSCode/basicts/runners/base_tsf_runner.py", line 11, in
from ..data import SCALER_REGISTRY
File "/nfs/project/chenao/pythonProject/idt_predict/BasicTSCode/basicts/data/init.py", line 12, in
scan_modules(project_dir, file, ["init.py", "registry.py"])
File "/home/luban/anaconda3/lib/python3.8/site-packages/easytorch/utils/registry.py", line 109, in scan_modules
return [importlib.import_module(f'{import_prefix}.{file_name}') for file_name in model_file_names]
File "/home/luban/anaconda3/lib/python3.8/site-packages/easytorch/utils/registry.py", line 109, in
return [importlib.import_module(f'{import_prefix}.{file_name}') for file_name in model_file_names]
File "/home/luban/anaconda3/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named 'basicts.data.'

I can't reproduce this error. Is there any more information?

This seems to be an issue with easytorch. You can try to delete all the "pycache" and ".ipynb_checkpoints" folders in the directories.

This seems to be an issue with easytorch. You can try to delete all the "__ pycache __" and ".ipynb_checkpoints" folders in the directories.

Thanks for the clue, is there any way to reproduce it?

This seems to be an issue with easytorch. You can try to delete all the "__ pycache __" and ".ipynb_checkpoints" folders in the directories.

Thanks for the clue, is there any way to reproduce it?

I met the same problem when using jupyterlab terminal. I modified some files in basicts/data and saved the changes, which I believe impacted the cache in some way. Then I saw this bug.

Thanks for the details! I'll try to fix it later.

Thanks for the details! I'll try to fix it later.

No problem. Thanks for fixing!

Hi everyone, thank you for your suggestions. This issue should have been fixed in the latest commit 0af86ed.

Now it works well, thanks!

在运行METR-LR的generate_train_data.py遇到了差不多的问题
FileNotFoundError: File datasets/raw_data/METR-LA/METR-LA.h5 does not exist
我觉得大概是sys.path.append(os.path.abspath(file + "/../../../.."))这一行没有起作用
当我自己手动修改
OUTPUT_DIR = "datasets/" + DATASET_NAME
DATA_FILE_PATH = "datasets/raw_data/{0}/{0}.h5".format(DATASET_NAME)
GRAPH_FILE_PATH = "datasets/raw_data/{0}/adj_{0}.pkl".format(DATASET_NAME)使用绝对路径时能正常产生
但是当我接着运行train时，遇到了找不到文件的问题，我没找到应该在哪修改文件路径


Update README.md

added Dailymotion engineering blog

thanks @vincentgarcia for your support!

no problem. Thanks for putting this together! :)


HADOOP-17358

Description of PR
How was this patch tested?
For code changes:

[ ] Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
[ ] Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m  0s

Docker mode activated.

-1 :x:
patch
0m 35s

https://github.com/apache/hadoop/pull/5504 does not apply to trunk. Rebase required? Wrong Branch? See https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute for help.

Subsystem
Report/Notes

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-5504/1/console

versions
git=2.17.1

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

This message was automatically generated.


Distance update

Adds distance between constellations and makes the price of each constellation change based on how close each constellation is from each other. Currently I did not mess with configs so it is set to 500 price difference based on the order.
You said I could submit a PR here:
https://discord.com/channels/1168655651455639582/1269406512313405571/1310064700758949929

Added light years but could not figure out how to make configs for them.
Important, the method that updates the constellation prices runs after you route to a new constellation, but when you load in to a new lobby, it does not run.

let me know once you've completed your work and I'll review the overall change

Alright, I will let you know when it is finished. In the new version I created a formula that allows users can set the distance, but it has been causing some issues.


[editor] Connect UPDATE_PROMPT_INPUT to update_prompt endpoint

[editor] Connect UPDATE_PROMPT_INPUT to update_prompt endpoint
[editor] Connect UPDATE_PROMPT_INPUT to update_prompt endpoint
Hook up the UPDATE_PROMPT_INPUT action to the server update_prompt endpoint, sending requests with a 250ms debounce so that we don't spam the server and avoid potential overlap.
We don't have server-side endpoints for updating specific parts of the prompt right now (not sure if that would be any major improvement), so we currently need to send a Prompt constructed with the updated input as a spread into the current prompt in state. We still maintain the UI state in the reducer instead of passing in this new spread prompt to the reducer from this callback since the reducer should be the source of truth for UI state and will ensure the proper immutable state flow is maintained. We can also add other state values (e.g. 'isExecuting', 'isDirty', 'isReadonly') in this reducer but leaving that out for now until it's for sure needed.
Testing:

Make some quick changes to the prompt input and see the proper updates and debounced requests

https://github.com/lastmile-ai/aiconfig/assets/5060851/b95d5116-9484-4d2f-88c3-de441507a140

Stack created with Sapling. Best reviewed with ReviewStack.

#647
#644
#643
-> #642

Going to land this stack to unblock and can make any review changes on top


ALYZ-732 Plaid Theme

Icons and colors have been updated to match plaidcloud theme. The page title (what displays on the browser tab) will be "Superset" for any pages that have '/superset' as the path base. Spent quite a bit of time trying to figure out how to override that behavior, and discovered the location where the magic happens:
https://github.com/PlaidCloud/incubator-superset/blob/c1e6c68a3ed31d3875b6d9dfac1484d8897d6561/superset/templates/superset/basic.html#L4-L12
Unfortunately, changing this would mean that any page that sets a title would have it automatically overridden with the appbuilder's app_info property value. This is probably not desirable, so I will continue to look for where the "Superset" title is set manually.

Made a mistake and merged this into master.


Remove "ci"

Bad copy paste?

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

whoops 😁
Thanks for pointing this out.


Add Copy confirmation to keys UI

When copying a function URL, when you hit the copy button, you get a confirmation popup that says "copied!" so you know something happened. That gives me warm fuzzies.
However, int the function keys UI, I don't get any confirmation, so I don't know if anything happened :(

fix is part of https://github.com/projectkudu/AzureFunctionsPortal/issues/1209.


limiting possible placements

Thanks for the library, it's been a life saver and is in many of my projects! 🎉
I was wondering if there was a way to limit placements to either left or right, and never top/bottom.
I'm building a UI with a large cascading menu use react-popper and went each sub menu to open only ever on the left or the right.
Thanks again for the great lib!
I've created a codeandbox that is extremely close to the situation I'm trying to make work: https://codesandbox.io/s/7w9yyl2p7x?from-embed

Nevermind, I think I had a default somewhere that was setting my placement to auto, removing that seems to resolve things.
Will reopen if I run into it again, sorry!

On second thought, is there a way to basically do auto-horizontal where the placement would be automatic, but only ever left or right?

You can define the flip modifier behavior to ['left', 'right', 'left'] to make it work only on the horizontal axis

Thanks @FezVrasta!


CodeMirror inside a Fieldset

In FF - If CodeMirror is placed inside a fieldset and contains at least one very long line without a line break (scrolling), then CodeMirror no longer scrolls but extends outside its container.
Current workaround:
fieldset style:
display:table-cell

Similar issue on Chrome with min-width:0 workaround on <fieldset>.
display:table-cell workaround spoils rendering on IE11, where otherwise CodeMirror works fine inside <fieldset>.

Just came across this myself. Here's a reduced fiddle: http://jsfiddle.net/9zj32q4t/
The same behavior occurs in Chrome, Firefox, and Safari.


Returning multiple turboStreams

I'm submitting a ...
[ ] bug report
[ x ] feature request
[ ] question about the decisions made in the repository
[ ] question about how to use this project

Summary
Allow to return multiple turbo streams in one response

Other information
Turbo-laravel seems to support such a case with a simple array form of turboStreams

@zewa666 Thanks for the feature suggestion and your contributions! I've merged your change and a follow up PR to change the structure of how to send multiple turbostream responses. Check out the updated README.md file for the documentation.
This update has been published to npm as version 0.3.2


NaN's while using SphereShape

Hi,
I was writing up my engine and came across a NaN issue while using a SphereShape. I think the problem is linked specifically to the SphereShape as CapsuleShape (which I was using previously) works fine. Currently using master branch, will switch to develop and report upon the error once I test it.
Colin

Issue was fixed in upstream. :)


CitySectionList

Waiting on Metaphysics query
Paired with @ashfurrow on this
Adds CitySectionList and new view controller to All events page
( https://artsyproduct.atlassian.net/browse/LD-307 )

#skip_new_tests.

Fails

:no_entry_sign:

No CHANGELOG added.

:no_entry_sign:

Missing Test Files:

src/lib/Scenes/City/Components/__tests__/EventList-tests.tsx
src/lib/Scenes/City/__tests__/CitySectionList-tests.tsx

If these files are supposed to not exist, please update your PR body to include "#skip_new_tests".

:no_entry_sign:

[danger-plugin-jest] Could not read test results. Danger cannot pass or fail the build.

  Generated by :no_entry_sign: dangerJS

Okay, I wrapped this up:

Nice @ashfurrow 👌
One thing that’s missing is a spinner when loading more items, though, and perhaps it should start paging earlier? Not sure, that could just be because of your fast scrolling.

Yeah good call.

Thanks @ashfurrow !!


ChunkWithProof exposes the smart constructor only

Only expose smart constructor: ChunkWithProof::new(index: u64, data: &impl AsRef<[u8]>) -> Result<ChunkWithProof, IndexOutOfBoundesError>.

Currently, as a result of implementation of the chunking ticket we only expose the following constructor, which I think is consistent with the requirements of this ticket:
pub fn new(data: &[u8], index: u64) -> Result<Self, MerkleConstructionError>


Fix issue where jobs() sometimes errors with alt backends

Summary
When retrieving jobs from some alt backends, there is a type error when the backend options don't have noise_model or seed_simulator
Details and comments
Fixes #770

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 68.336%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
3453

Relevant Lines:
5053

💛  - Coveralls


PGPPublicKey: Improve handling of signatures for duplicated user-id/attributes

Since BC internally relies on List<List<PGPSignature>> and indices to keep track of which signatures belong to which user-id, it cannot properly handle duplicate user-id packets.
As a consequence, BC will not return all signatures on a duplicated user-id, if the certificate is of the form
Public Key
User-id
User-id (duplicate)
User-id Signature

since it will return the idSigs item at index 0, which is empty in this case.
This PR changes the behavior of BC by accumulating all signatures that match a given user-id / user-attributes packet before returning all collected signatures. The behavior of returning null if no user-id matches is preserved.

Thanks for the patch. Merged! Will be in 170b08.


Run evaluation again with stanford dependencies to make results comparable

https://twitter.com/d_q_nguyen/status/1098821054414258177

Done, will update paper shortly.


Sentinel: If you subscribe after connection established, you error.

Consider the folowing:
var Redis = require('ioredis');

var config = {
  options: {
    name: 'mymsater',
    db: 10,
    sentinels: [
      { host: '<IP_ADDRESS>', port: 26379 },
    ]
  }
};

var pub = Redis.createClient(null, null, config.options);
var sub = Redis.createClient(null, null, config.options);

pub.on('error', function(err){ console.log(err); });
sub.on('error', function(err){ console.log(err); });

pub.on('connect', function(){
  console.log('PUB connected');
});

sub.on('connect', function(){
  console.log('SUB connected');

  sub.subscribe('channel', function(error){
    if(error){ console.log(error); }

    sub.on('message', function(channel, message){
      console.log('[%s]: %s', channel, message);
    })

    pub.publish('channel', 'hello');
  })
});

If you wait until after the connection even to subscribe the following uncaught promise rejection is fired:
Unhandled rejection Error: Connection in subscriber mode, only subscriber commands may be used
    at Redis.sendCommand (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/lib/redis.js:500:20)
    at Redis.selectBuffer (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/lib/commander.js:117:17)
    at /Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/lib/redis/event_handler.js:184:12
    at /Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/lib/redis/event_handler.js:35:39
    at /Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/lib/redis.js:392:7
    at tryCatcher (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/node_modules/bluebird/js/main/util.js:26:23)
    at Promise.successAdapter (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/node_modules/bluebird/js/main/nodeify.js:23:30)
    at Promise._settlePromiseAt (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/node_modules/bluebird/js/main/promise.js:579:21)
    at Promise._settlePromises (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/node_modules/bluebird/js/main/promise.js:697:14)
    at Async._drainQueue (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/node_modules/bluebird/js/main/async.js:123:16)
    at Async._drainQueues (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/node_modules/bluebird/js/main/async.js:133:10)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/node_modules/bluebird/js/main/async.js:15:14)
    at processImmediate [as _immediateCallback] (timers.js:383:17)

This only seems to happen when sentinels are in use

Oh, I should point out that while the rejection occurs, the message is still received:
> node test.js
PUB connected
SUB connected
Unhandled rejection Error: Connection in subscriber mode, only subscriber commands may be used
    at Redis.sendCommand (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/lib/redis.js:500:20)
    at Redis.selectBuffer (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/lib/commander.js:117:17)
    at /Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/lib/redis/event_handler.js:184:12
    at /Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/lib/redis/event_handler.js:35:39
    at /Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/lib/redis.js:392:7
    at tryCatcher (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/node_modules/bluebird/js/main/util.js:26:23)
    at Promise.successAdapter (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/node_modules/bluebird/js/main/nodeify.js:23:30)
    at Promise._settlePromiseAt (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/node_modules/bluebird/js/main/promise.js:579:21)
    at Promise._settlePromises (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/node_modules/bluebird/js/main/promise.js:697:14)
    at Async._drainQueue (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/node_modules/bluebird/js/main/async.js:123:16)
    at Async._drainQueues (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/node_modules/bluebird/js/main/async.js:133:10)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/evantahler/Dropbox/Projects/actionhero/node_modules/ioredis/node_modules/bluebird/js/main/async.js:15:14)
    at processImmediate [as _immediateCallback] (timers.js:383:17)
[channel]: hello

Thank you for the feedback! This issue is related with db option instead of sentinel. The following code can reproduce the error:
var redis = new Redis({ db: 10 });
redis.on('connect', function () {
  redis.subscribe('anychannel');
});

The error is because ioredis sends the SELECT command to switch to db 10 on the ready event. In most cases that would not cause any problem because commands sent after the connect event and before the ready event will be added to the offline queue and will be resent after the ready event.
However, pub/sub commands (SUBSCRIBE, PSUBSCRIBE and UNSUBSCRIBE etc) are special that ioredis allows them to be sent to Redis before the ready event. So when we sends SELECT command on the ready event, the connection has been in the subscribe mode and Redis will reject the SELECT command.

Release in 1.15.1 :rocket:

Thanks for the quick patch!

@seunlanlege This issue has been resolved, so there may be another issue. Could you enable debug mode (DEBUG=ioredis:* node yourapp.js) and post the logs here?

@seunlanlege What's the constructor argument of Redis? And what's the version of Redis server? Please enable the showFriendlyErrorStack option to see which command cause the exception (new Redis({showFriendlyErrorStack: true})).

I think its a problem with the code. Redis.config is issued without await, command cant complete before .subscribe, connection is then moved to subscriber mode and cant finish it
ie I'm pretty sure if you do
await Redis.config()
and only then subscribe - you should be good


Update fr.json

"Size"

We've decided not to add a size field to contracts, as that would only be useful for some listings. In the future, please submit all changes to a repo in a single PR, instead of one per file.


Added some flexibility regarding the query which is passed to the component.

I was having trouble getting the graphql to output the data in the format which satisfied the plugin so I altered it in order to some flexibility to it. The function created will allow you to simply search for the fluid element of each node passed to the component. Then you simply pass that fluid element to the Image component.

Lines 57 - 67: A simple function which takes two arguments -- an object (haystack) and a string (needle).
It will recursively check to see if it can find a key/value pair which matches the needle and return the matching object if it finds one or null if not.

Line 94: Pass the data object to the findObject function with a needle of fluid

Sorry for getting to this so late. Would you mind providing an example of the graphql query/file-structure you're testing with?

Modifying findObject to match this snippet, worked for me, but I'd still like to know where you were having issues with fluid not being found.
const findObject = (haystack, needle) => {
  var value;
  Object.keys(haystack).some(function (k) {
    if (k === needle) {
      value = haystack[k];
      return true;
    }
    if (haystack[k] && typeof haystack[k] === 'object') {
      value = findObject(haystack[k], needle);
      return value !== undefined;
    }
  });
  return value;
};

Modifying findObject to match this snippet, worked for me, but I'd still like to know where you were having issues with fluid not being found.
const findObject = (haystack, needle) => {
  var value;
  Object.keys(haystack).some(function (k) {
    if (k === needle) {
      value = haystack[k];
      return true;
    }
    if (haystack[k] && typeof haystack[k] === 'object') {
      value = findObject(haystack[k], needle);
      return value !== undefined;
    }
  });
  return value;
};

Nice one mate, I did not know about the some() function! Seems like a simpler way to do what I was trying to do for sure. Although, out of curiosity, did my solution work for you also?
The query I was passing to the props was as follows:
useStaticQuery(graphql`
    query {
      backgrounds: allStrapiHeaderImages {
        nodes {
          image {
            childImageSharp {
              fluid(quality: 90, maxWidth: 1920) {
                ...GatsbyImageSharpFluid_withWebp_tracedSVG
              }
            }
          }
        }
      }
    }
  `)

As you can see, the issue was in the fact that the images were stored under the image key. I am sure there is probably some way to make grapQL remove the parent but I could not find it.

Your original solution didn't work for me. The structure of the query I use mirrors the one in the Readme:
query {
	backgrounds: allFile (filter: {sourceInstanceName: {eq: "backgrounds"}}){
		nodes {
			relativePath
			childImageSharp {
				fluid (maxWidth: 4000, quality: 100){
					...GatsbyImageSharpFluid_withWebp_tracedSVG
				}
			}
		}
	}
}

So I'm not sure why your function wouldn't work unless it requires an extra level of depth.
Can you confirm that the solution I pulled from StackOverflow works with your setup?


feat: Added 2 new github issue templates

This PR resolves #112 , and it implements 2 new github issue forms which can help any user to create new issues the repository in a easier and more defined way
Screenshots:
Feature-request:

Bug-report:

That's fire, @Absterrg0! Amazing job! 👏 👏 👏

Thank you @maxprilutskiy , looking forward to solve more issues


An Int is converted to a double

com.plutolib.plugins:network:2.0.3  response -> body   Int is converted to a double ....

hey @ReggieLei, can you share more details & steps to reproduce the issue.

Right back
[{
"deviceId": "905436c790da4766a1c8e7d213f6a765",
"deviceCode": "NIC1C2206022",
"fourGOnline": 0,
"wifiOnline": 1,
"bluetoothOnline": 1,
"wifiStrength": 18,
"fourGStrength": 0,
"pileStatus": -1,
"isAdmin": 1,
"isForbid": 1,
}]
pluto catch back
RESPONSE
*** Body ***
[
{
"deviceId": "905436c790da4766a1c8e7d213f6a765",
"deviceCode": "NIC1C2206022",
"fourGOnline": 0.0,
"wifiOnline": 1.0,
"bluetoothOnline": 1.0,
"wifiStrength": 18.0,
"fourGStrength": 0.0,
"pileStatus": -1.0,
"isAdmin": 1.0,
"isForbid": 1.0,
}
]

report generated by Pluto (https://plutolib.com)
All Int is converted to double

thanks for posting the issue @ReggieLei .
JSON is a type agnostic representation. As per official JSON docs

JSON does not have distinct types for integers and floating-point values. Therefore, the presence or absence of a decimal point is not enough to distinguish between integers and non-integers.
https://json-schema.org/understanding-json-schema/reference/numeric.html

That said, we ll definitely look into it, if we can differentiate between Integer & Double.

Maybe you can try  (https://github.com/alibaba/fastjson2)
or  extends  to rewrite TypeAdapter for Gson
public class MapTypeAdapter extends TypeAdapter {
private final TypeAdapter<Object> delegate = new Gson().getAdapter(Object.class);

@Override
public Object read(JsonReader in) throws IOException {
    JsonToken token = in.peek();
    switch (token) {
        case BEGIN_ARRAY:
            List<Object> list = new ArrayList<>();
            in.beginArray();
            while (in.hasNext()) {
                list.add(read(in));
            }
            in.endArray();
            return list;

        case BEGIN_OBJECT:
            Map<String, Object> map = new LinkedTreeMap<>();
            in.beginObject();
            while (in.hasNext()) {
                map.put(in.nextName(), read(in));
            }
            in.endObject();
            return map;

        case STRING:
            return in.nextString();

        case NUMBER:
            double dbNum = in.nextDouble();

            if (dbNum > Long.MAX_VALUE) {
                return String.valueOf(dbNum);
            }

            long lngNum = (long) dbNum;
            if (dbNum == lngNum) {
                return String.valueOf(lngNum);
            } else {
                return String.valueOf(dbNum);
            }

        case BOOLEAN:
            return in.nextBoolean();

        case NULL:
            in.nextNull();
            return null;

        default:
            throw new IllegalStateException();
    }
}

@Override
public void write(JsonWriter out, Object value) throws IOException {
    delegate.write(out,value);
}

}
public T gsonToMap(String strJson) {
Gson gson = new GsonBuilder()
.registerTypeAdapter(new TypeToken(){}.getType(),new MapTypeAdapter()).create();
return gson.fromJson(strJson, new TypeToken() {
}.getType());
}
String json = "{"identifier":"18111111111","opType":1,"platform":0}";
Map<String, Object> map = new MyType<Map<String, Object>>().gsonToMap(json);

sure @ReggieLei,
thanks for the suggestion, will look into this


TypeError: expected string or bytes-like object when using scrape_races

I stepped through the 'Basic Usage' of punters_client (literally copy-paste) and everything worked up until using scrape_races. When running races = scraper.scrape_races(meet) the following error was received: "TypeError: expected string or bytes-like object".

See the attached image where the error can be traced back to line182 in re.py (return _compile(pattern, flags).search(string)).
I'm using Docker Toolbox on Windows 10 to run a datascience-notebook docker container. I'm running your code in a Jupyter Lab on that container that has Python 3.6 installed. The following packages are all installed and seem to be working: cache_requests, lxml
Any help would be great!

I have the same problem. I think we need to update the code to solve this problem, but I can't quite figure out if do make certain changes then it won't affect the entire code.

It's because the variable URL is empty when passed to the re.search function.


[FR] Sort by emitter

Maybe I don't see it, but it seems it is not possible to automatically sort entries.
Would it make sense to implement a feature that sorts by emitter?

It doesn't currently support automatic sorting. And yea I will consider automatic sorting by issuer or account. But once auto sorting is used, the previous manual sorting or by recency will be overridden.

Both sorting options by issuer and account make sense and are really a requirement with large lists. Maybe manual sorting makes sense too. But currently i only used it to manually sort by issuer because of the missing sorting option.

Not sure if I should ask it here or in the upstream project (where there's also a discussion about sorting), but I want to sort the most recently used items by recency.
Sorting the entire list by recency is definitely not recommended, as older items get lost in the (apparently unsorted) noise. I suggest showing only the N most recent items on top, and the rest default, either alphabetically or manual ordering. N can be e.g., 5, or perhaps a configurable amount. When normal ordering is 'manual', and recency is enabled, there will be some challenges, like how to move an entry that happens to be a recent entry. I imagine an 'edit' mode separate from the list mode.


/internal/v2/droplets returns 404 where /internal/v4/droplets does not

Thanks for submitting an issue to cloud_controller_ng. We are always trying to improve! To help us, please fill out the following template.
Issue
After updating to cf-deployment 2.9 we've noticed a lot of apps not coming back up with a "Downloading failed" error.
Digging deeper we've found out that the root cause for this is that all those app still have a /internal/v2/droplets/ url registered in their desired-lrp state in diego. This /v2/droplets returns a 404 now.
Manually restarting the app solves the problem (after a manual restart the url changes to /internal/v4/droplets url.
Was /v2/droplets removed recently? If yes, shouldn't there been some kind of coordination with diego regarding the migration of apps that weren't "touched" for a long time?
We now have 100s of apps on the platform in this weird state (we can't say if they're still important or not).
@emalm fyi
Crashing app:
"actions": [
        {
          "download": {
            "from": "http://cloud-controller-ng.service.cf.internal:9022/internal/v2/droplets/730dc597-c734-4a5d-b074-fd2c1ef707b3/506a828a78533f94d45125395e321ecc4de88d4f/download",
            "to": ".",
            "cache_key": "droplets-730dc597-c734-4a5d-b074-fd2c1ef707b3-fb55e262-e22a-49ef-b127-4678c2223d75",
            "user": "vcap",
            "checksum_algorithm": "sha1",
            "checksum_value": "506a828a78533f94d45125395e321ecc4de88d4f"
          }
        }
      ]

Restarted app:
"actions": [
        {
          "download": {
            "from": "https://cloud-controller-ng.service.cf.internal:9023/internal/v4/droplets/730dc597-c734-4a5d-b074-fd2c1ef707b3/506a828a78533f94d45125395e321ecc4de88d4f/download",
            "to": ".",
            "cache_key": "droplets-730dc597-c734-4a5d-b074-fd2c1ef707b3-2b76b02a-89a3-4da6-9a5d-53eb76c04d59",
            "user": "vcap",
            "checksum_algorithm": "sha1",
            "checksum_value": "506a828a78533f94d45125395e321ecc4de88d4f"
          }
        }
      ]

fyi - we restarted all affected apps to mitigate the issue for our users.
It would be nice if something like this could be avoided in the future.
CC should have all the knowledge necessary to make this smoother (knows when an app was restarted/updated the last time).

Hi @x6j8x
Thanks for reporting this issue.  This endpoint was accidentally removed as part of an effort to clean up some dead code.  Interestingly this comment specifically notes that we should not have removed this endpoint.
We are going to add it back to potentially avoid this problem for other folks.  We'll also update release notes with information regarding this problem.


[visualize] Add geometric primitives

I meant to wait for a day or two for further testing and/or additions in order to deliver these commits, but then I saw #1003, so I told myself I might as well do the PR now.

Compared to #1003, I think my solution is slightly more robust to different install configurations (with/without hppfcl, mostly).
Additionally, I fixed the visualization of geometric primitives for meshcat too
I now use Talos in the visualization examples. previously this was not possible, since the model contained some primitives which made the meshcat visualizer crash.
I retained the Romeo example in meshcat-viewer-dae.py to show the specific  problems that arise with DAE files in meshcat. I determined that there is no problem of textures, since Romeo does not contain them: the issue is that meshcat does not parse colors in DAE files correctly.
I added color to the sample model so that it can be easily visualized
I created a script called sample-model-viewer.py to visualize the sample humanoid
#1003 also incudes cones
#1003 features a script testing all geometric shapes which might be interesting to integrate

Thanks Gabriel, your PR seems indeed more complete. I think if you could add cones and the test I have written, which check if all the shapes are aligned along an axis and should have the same size, it would be great.

@rstrudel yes, I will do it.  Thank you

For the test, I created a branch topic/example_shapes which contains only the test. Hope this can help

Indeed it helped, thanks!

Done.
Some considerations on  examples/display_shapes.py

I modified it in order to include it in the the CI. However, right now this addition is only nominal, since it fails importing hppfcl. I'll work on it later.
It could be easily modified to work for meshcat, or adapted to work for both. However, I left it with Gepetto Viewer only

@gabrielebndn and @rstrudel Thanks a lot for your contributions.

@gabrielebndn thanks a lot for the work ! I can now use meshcat and gepetto visualizer on all of my usecases it is really appreciated :)


Cropping issues with real-world items

Hi,
My app is related to garments and when trying with the test bed, the cropping was not proper. The cropping happens in different places.
Is it possible to crop only the surrounding empty areas around the main object.

I'm not not sure I understand what you mean. Can you post an example?

No answer for over a week -> closing.


Document that TabController is a ChangeNotifier that notifies of tab changes

It would be great if TabBar could provide onIndexChanged(Int) callback. It's helpful for me to do some root UI changes based on the index.

Currently I only found https://docs.flutter.io/flutter/material/TabController/animation.html
where you can add a listener to get notified when it's done
and then check https://docs.flutter.io/flutter/material/TabController/index.html (and https://docs.flutter.io/flutter/material/TabController/previousIndex.html) to get the new (and old) index.

Well, that's the only workaround

TabController is a ChangeNotifier. Listeners added to a TabController will be notified when the index changes.

Considering the fact that TabController itself is a ChangeNotifier, there's no explicit need to document per the issue title.

And listeners added to TabController will be notified per this comment, https://github.com/flutter/flutter/issues/25542#issuecomment-448701877, I believe this issue has already been resolved.
Going ahead and closing this. If anybody disagrees, write in comments and I'll reopen it.


modified:   xarray/backends/api.py

This pull request addresses issue #816, allowing the user to open remote openDAP files that are gzipped using the netCDF4 openDAP-enabled backend. Thanks to @dopplershift and @shoyer for the quick guidance!

I think this is probably correct, but the heuristics here are starting to get convoluted enough that I worry about test coverage. Is there any way we can test this? Maybe try to pull the gzip logic into a helper function (an extended variant of _get_default_engine) that we could test?

Certainly can take a crack at this.  This is working for my application, but would be good to clean up the code to simplify the cases as you suggest.
Regarding testing, it would be good to have a test module that includes grabbing files for local access and accessing openDAP datasets (from UNIDATA?) to ensure that the installed backends are all working as expected.

We do have existing tests for backends: https://github.com/pydata/xarray/blob/master/xarray/test/test_backends.py
This includes a test accessing an OpenDAP dataset from the OpenDAP test server (via pydap, at the end). But in my experience, there servers are somewhat unreliable (maybe available 90%), so we don't require that test to pass for the build to pass. Also, even in the best case scenario network access is slow. So it would be nice to modularize this enough that our logic is testable without actually using opendap.

Regarding testing, it would be good to have a test module that includes grabbing files for local access and accessing openDAP datasets (from UNIDATA?) to ensure that the installed backends are all working as expected.

I'd be a little hesitant to enforce that we get access to opendap (or other remote datasets) on travis.  I've seen this come back to bite us in the past.  We can allow tests to fail on travis and just print a warning via pytest if it is something we really want to see tested in that way.

Currently the way we handle this is that the only test that accessing
remote resources is the pydap test, which only runs in one build (not
required to pass).
On Wed, Apr 6, 2016 at 10:00 AM, Joe Hamman<EMAIL_ADDRESS>wrote:

Regarding testing, it would be good to have a test module that includes
grabbing files for local access and accessing openDAP datasets (from
UNIDATA?) to ensure that the installed backends are all working as expected.
I'd be a little hesitant to enforce that we get access to opendap (or
other remote datasets) on travis. I've seen this come back to bite us in
the past. We can allow tests to fail on travis and just print a warning via
pytest if it is something we really want to see tested in that way.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/pydata/xarray/pull/817#issuecomment-206464547

OK - understood.  Incidentally, I didn't include pydap because it doesn't seem to be python 3.* compatible.  I tested it on 2.7 for my application and it seems to work.

@shoyer - are we okay with the final logic here?
@swnesbitt - can we get an entry in the what's new docs?

I am reluctant to merge this without having any way to test the logic. Without automated tests this issue is likely to recur.
That said, I suppose we could leave the refactoring for a TODO. Let's add a note on that and also one minimal test to verify that we raise an error if you try to use engine='netcdf4' with a path to local gzipped file.

How is this issue progressed so far?  I am running into the same problem now and I might able to offer some help in testing.

Regarding the testing issue, another option is to use something like vcrpy to record and playback http responses for opendap requests. I've had good luck with that for Siphon.

I am trying to understand the logic by looking through the comments/discussion on this commit.
After two years of development, there are quite some changes on the API itself e.g. the logic on the gzipped file handling seems already moved from api.py
to scipy_.py. So I think it would be better to start a new commit from the latest version.
To bring the concept on the same table, there are 3 backends that can be used to handle gzipped netCDF file namely scipy, netcdf4 and pydap. scipy backend only support netCDF3 so far and that is the only implemented method to handle gzipped netCDF3 file. netcdf4 and pydap should able to deal with netCDF4 file given the file is first opened by gzip.open (as it was implement in scipy_.py).
So what we need to do is to make both netCDF4_.py and pydap_.py aware of the file is end with .gz and first open it using gzip.open. Following tests also need to be done to verify the implementation of the logic. I have looked at vcrpy and it seems a nice idea to speed up tests with HTTP stuff involved. I must confess I only use xarray with local file so it may takes quite a while to understand the issue.

Closing this as stale and out of date with our current backends. @swnesbitt (or others) - feel free to open a new PR if you feel there is more to do here.


Adding github action workflow for PR validation

The workflow checks consist of following steps-

Should check for the PR Description in the pull request
Check for the issue number, if the PR is not addressing any issue it should include Fixes #NEW

Pls assign me this issue and give me level2,gssoc-extd,hacktoberfest

Please Assign


Test: Arrays not merging

Change-type: patch
Signed-off-by: Josh Bowling<EMAIL_ADDRESS>
Add example failing test to show a case in which /tags data is lost as arrays aren't merged as I (possibly incorrectly) expect.
The array still fails to merge properly even after applying the changes presented in https://github.com/product-os/jellyfish-jellyscript/pull/832 so I'm guessing I'm not understanding how this is expected to work.

@joshbwlng The correct behaviour (what action-set-add does) is to merge in with the existing arrays.

@balena-ci I self-certify!


MSID: 94168 Version: 1 DOI: 10.1101/2<IP_ADDRESS>7808

MSID: 94168
Version: 1
Preprint DOI: https://doi.org/10.1101/2<IP_ADDRESS>7808
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=94168
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>7808

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/94168v1
Update ticket with any problems (add blocked label)
When QC OK, add QC OK label to ticket and add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.1101/2<IP_ADDRESS>7808
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/94168/v1/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Upload PDF to relevent folder in git repo https://github.com/elifesciences/enhanced-preprints-data/
Step 6: Done!

[ ] Kettle is on!

Hi @fred-atherden yeah! shall we try the new spreadsheet or shall move them across?

I don't have the API key to attempt moving them over in the new spreadsheet, but if you do then feel free!

(Reviews are on the R2: well done Fred!)

Should be ready to check now @naushinthomson


Commit hashes are different sizes and overflow on homepage

Description
Sorry if this is a dupe, I searched for everything that came to mind...
After upgrading to 1.22.0-rc1 the homepage has this problem with commit ids both in Firefox and Edge. This only happens for long commit messages and is reproducible on try.gitea.io if you can find or fake a long message. For example, go to Lunny’s activity and use dev tools to make one of the commit messages longer.
It seems to be fixed by adding flex-shrink: 100; to the commit message <span>, but not sure if that will cause problems elsewhere. I’ve only played around in the browser tools.
Thank you!
Screenshots

Gitea Version
1.22.0-rc1
Can you reproduce the bug on the Gitea demo site?
Yes
Operating System
No response
Browser Version
Firefox and MsEdge latest

->  Fix some UI regressions for commit list #30920


Update to cats 1.0.0-MF

Note that I'll probably go ahead and merge this since tests are passing, but won't publish it until an updated catbird is published.

Codecov Report

Merging #207 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master     #207   +/-   ##
=======================================
  Coverage   97.59%   97.59%
=======================================
  Files          28       28
  Lines         916      916
  Branches       68       70    +2
=======================================
  Hits          894      894
  Misses         22       22

Impacted Files
Coverage Δ

...la/io/iteratee/benchmark/FileModuleBenchmark.scala
100% <100%> (ø)
:arrow_up:

...in/scala/io/iteratee/benchmark/FreeTryModule.scala
77.77% <100%> (ø)
: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 a4efe33...690a0d4. Read the comment docs.


Content in custom components

Hi,
I would like to create several components which include compaign monitor's tags. So I did this :
import _ from 'lodash'
import {
  MJMLColumnElement,
  elements,
  registerElement,
} from 'mjml'
import React, { Component } from 'react'

const {
  text: MjText,
} = elements;

const NAME = 'singleline'

@MJMLColumnElement({
  tagName: 'mj-singleline',
  content: '',
  attributes: {
    'label': ''
    }
})

class Singleline extends Component {

  render() {
    const { mjContent, mjAttribute } = this.props

    if (mjAttribute('label') != '') {
      return (
          <singleline dangerouslySetInnerHTML={{ __html: mjContent() }} label={mjAttribute('label')} />
     )
    }
  }
}

registerElement('singleline', Singleline)
export default Singleline

It works, however I don't know how to put my content dynamically in my tags  <mj-singleline> ...(myContent) </mj-singleline>  like  <mj-text> ...(myContent) </mj-text>
Can anyone help me ?

Hey @arnvvd !
First, you shouldn't make a conditional return. You component has to return something or throw an error.

const label = mjAttribute('label')

if (!label) {
  throw new Error('You have to provide a label to SingleLine')
}

then, if your component only contains text, or non-mjml tags, you have to tell the compiler to omit its content:
registerElement('singleline', Singleline, { endingTag: true })

Finally, wrap your rendered html into a div, and set its content to your final result, otherwise, react will throw an error because singleline is not defined:

<div dangerouslySetInnerHTML={{
  __html: `<singleline label=${ label }>${ mjContent() }</singleline>`
}}  />

Didn't try it, but it should work! Keep me up to date! :+1:

Thanks a lot @GuillaumeBadi ! It works perfectly, you made my day !

👍 @GuillaumeBadi @arnvvd. I'm closing the issue, feel free to open new ones should you have any questions.


[Kernel] Remove the protocol specific conversions from JsonHandler.parseJSON

Feature request
Currently the JsonHandler.parseJson parses the stats values. Some of these values are for columns of type TIMESTAMP, DATE which are not native types in Json. Exactly how the string format of the TIMESTAMP, DATE can be interpreted depends on the Delta protocol details. We want to change it as follows:

JsonHandler.parseJson just parses as native json types
Kernel-API module applies expressions on the parsed JSON values to convert them to appropriate types.

Hello! I would be willing to contribute. Do I understand right, that changes should be done:

in io.delta.kernel.defaults.internal.data.DefaultJsonRow.decodeElement(JsonNode jsonValue, DataType dataType) I need to return String (jsonValue.textValue()) for "date" / "timestamp with tz" and Instant for "timestamp"
Applying expressions in this case should be moved to default implementation of ColumnarBatch? I see that JsonHandler.parseJson returns ColumnarBatch but I lost a little what happens after...

Thanks in advance for any advice/clue how to implement it!


spack: meta issue

I'll publish the initial version without doing tasks written here.
Tasks

[ ] type

app - Bundles everything, just like webpack

lib - Preserve module requires, just like rollup

[ ] Watch mode

[x] Small fix for node_resolver (We need to include .ts by default)

[ ] spack.config.ts

[x]  swc.bundle([conf1, conf2])

[ ] Handle dynamic import

[ ] Provide webpack-like plugin / loader /resolver api

This is really a show-stopper. I'm going to publish first version without support for plugins. This requires one of the below, as spack uses all cpu cores.

https://github.com/neon-bindings/neon/issues/73

https://github.com/infinyon/node-bindgen/issues/37

[ ] Implement minifier (#826)

[x] Conditional imports

[x] Run global inlining pass for each module before analyzing dependencies.

Hey, is spack on crates.io yet?
All I'm seeing is the spack crate, but the docs just point to https://swc-project.github.io/rustdoc/swc/.
(And on the side note, is there an actual crate that exposes swc:: that is documented on the above link, or do you need to include individual components?)

@jakajancar  Sorry for late response.
I don't think spack as a crate is mature enough to be published. It's api will be changed frequently, just like the swc crate.
Managing multi crate repository is a big pain if some of those are published...

@jakajancar Bundler is now on crates.io
See: https://crates.io/crates/swc_bundler

@kdy1 Is there a recommended way to invoke spack at build-time (e.g., from a build.rs script)?  That is all I really want from a spack-API.

@jrop You can use Process

@kdy1 I was hoping to avoid a dependency on NodeJS

@kdy1 I was hoping to avoid a dependency on NodeJS

I don't think you can, since SWC uses neon for parts of the parser and interop. One way or another you'll need to have node installed if I understand this correctly.

It's possible, but I'm not sure if it worths.

I don't think you can, since SWC uses neon for parts of the parser and interop.

@ScottAwesome no, swc uses napi-rs


fix bug in d.ts

there is a difference between default export and what sift uses. the d.ts as it was did not describe the way sift should be imported in runtime.
the difference (in typescript) is between:
import sift from 'sift'; // the wrong way. does not work in runtime, but fits the d.ts before the fix
import sift = require('sift'); // the way sift actually works. works in runtime but fails validation with the pre-fix d.ts

Thanks! This should be up NPM now as 3.3.6.


Profiles & Formats (CSV)

Continuing the discussion here from https://github.com/TheAcharya/MarkersExtractor/issues/21#issuecomment-1833807840
We can have Export Profile name called CSV.
While both of our Notion and Airtable Profiles' manifest file would be in .json file format, it would be great if we can have a dedicated profile called CSV.
It would allow users to import the data into spreadsheet applications like, Excel, Numbers, Google Sheet or Libreoffice.
We can use the current Airtable's CSV profile for CSV profile. It would not have Icon Image column and it would not generate the Notion icons.
I am not sure if .csv or .tsv would make the best sense.
https://stackoverflow.com/questions/11130120/choosing-between-tsv-and-csv

It's pretty easy to support both TSV and CSV. I've done it in many other apps.
There is actually more to the formats than just using a tab or comma as column delimiters. There's additional formatting considerations. So whenever reading or writing these formats, never parse it manually. Always use a library that is designed to read and write. And of course same principle applies to JSON.

Once we have a CSV profile it should probably become the default profile since it's the most vanilla / common format.

Once we have a CSV profile it should probably become the default profile since it's the most vanilla / common format.

Yes. CSV profile can become the new default.

Done. CSV and TSV profiles will be in 0.3.1.
I have also fixed CSV encoding so fields that might contain double-quotes (") and/or commas (,) encode correctly.

Notion is still the default profile in 0.3.1?

Yeah, missed that. I'll update the new issue when it's changed.


Config Example

Hello!
Do you have an example of what the config should look like?

Here is an example for manually adding an entry into the homebridge config.json. I'll add the example to the readme.md and push it with a couple little house cleaning items in a patch version soon.
"platforms": [
	{
		"apiKey": "Your API Key",
		"idUser": 0,
		"platform": "Sunsa"
	}
]

Thanks! The plug-in didn't properly install the first few attempts leaving an empty bridge w/no active plug-in.
I now see the apikey and idUser fields are built into the setting so no need for manual entry.
Thank you developing this. My Sunsa Wands just got 10x better!


[kmac] Add KeyMgr interface

This PR is to add KeyMgr interface keymgr_pkg::hw_key_t and keykmgr_pkg::kmac_data_{req|rsp}_t to KMAC port.
Also it implements the interface control logic kmac_keymgr to arbitrate between the software request and KeyMgr request.
It includes some lint fix and also PR #3977 .

i reviewed mainly the documentation and kmac_keymgr and it looks good to me.

That field is the bit position. If it is multiple the format is like bits: "15:12" .

On Nov 2, 2020, at 8:50 AM, udinator<EMAIL_ADDRESS>wrote:
@udinator commented on this pull request.
In hw/ip/kmac/data/kmac.hjson https://github.com/lowRISC/opentitan/pull/3991#discussion_r516110207:

@@ -170,6 +170,16 @@
If 1, convert the internal state value.
'''
} // f: state_endianness

   { bits: "12"

why is this field 12 bits wide if we're just using it as an enable bit?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/lowRISC/opentitan/pull/3991#pullrequestreview-521811771, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJDG3S5R52USKBDTGZGCQDSN3PMLANCNFSM4TFL2UBQ.

That field is the bit position. If it is multiple the format is like bits: "15:12" .
…
On Nov 2, 2020, at 8:50 AM, udinator @.***> wrote: @udinator commented on this pull request. In hw/ip/kmac/data/kmac.hjson <#3991 (comment)>: > @@ -170,6 +170,16 @@ If 1, convert the internal state value. ''' } // f: state_endianness + { bits: "12" why is this field 12 bits wide if we're just using it as an enable bit? — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <#3991 (review)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJDG3S5R52USKBDTGZGCQDSN3PMLANCNFSM4TFL2UBQ.

woops...somehow totally blanked on the meaning of this field...


Password border colour

Steps to replicate the issue

I click login
Enter username then reach enter password screen
Click on the input field to fill it and it immediately turns blue.

What do you expect to happen?

I expect to have a grey field all up until I have entered the right amount of caracters and then for it to turn blue. username input field doesnt turn blue once you click to fill it so the password shouldnt either. Blue colour isnt representing input mode but correct length.

What actually happens

The minute I enter to fill the field it turns blue.

Your environment

Operating system: Android 13
Tonomy ID version: 0.22.1 (click here on your phone)

https://user-images.githubusercontent.com/120083204/235845012-2e6aeb76-c4f3-4671-b5f6-aef2baf287f4.mp4

password screen gone


Update the function signature of st_ranges()

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

Project coverage is 100.00%. Comparing base (a8743fd) to head (e8e2be7).
Report is 4 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main        #4   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           14        14
  Lines          261       262    +1
  Branches        47        47
=========================================
+ Hits           261       262    +1

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