Update Thrimbletrimmer - Initial Version

I've been working on a new version of Thrimbletrimmer. I've been creating this from scratch (though I did reference the existing code for thrimshim interaction). It's now mostly complete, and I believe it's at the point where it's reasonable to work on it in the main wubloader repository.
The new Thrimbletrimmer has the following notable changes:

A fresh and modernized codebase means we're up to date on modern JavaScript practices and should easily be able to incorporate further new features over time.
Automation was increased on small bits of the page, reducing the amount of clicking necessary to accomplish certain tasks (e.g. downloading videos).
Support for ranges allows editors to choose multiple separate parts of the video to upload as a single video without the need to download a clip, edit it manually in a fully featured video editor, and upload it manually.

For now, the new Thrimbletrimmer is located at thrimbletrimmer/beta, and can be accessed at that URL. A future PR will move the code into the main thrimbletrimmer directory (deleting the beta path).
Here are some miscellaneous notes about this PR and the next steps:

The clock page (part of the normal Thrimbletrimmer) was also updated. It probably didn't need it, but whatever. I don't intend to change the clock page any further in this series unless there are comments on it.
This PR also updates the webserver path rules to remove the default redirect to the dashboard. Thrimbletrimmer will now work more like a traditional website where index.html is served by default.
The upcoming PR that removes the beta directory will replace most of the existing Thrimbletrimmer. My plan for that is as follows:

The current stream page (stream.html) and edit page (index.html) will be replaced with the new stream page (index.html) and the new edit page (edit.html). If we have recommendations for how to configure Wubloader documented somewhere I haven't found, we should update it to recommend the Thrimbletrimmer URL that gets posted in the sheet end in edit.html (before the query string).
TestPage will be removed.
Because I don't have a replacement for Rubik's workflow of using the dashboard to get the Thrimbletrimmer URL for already published videos to download clips, I don't intend to update or replace the dashboard page at this time. I don't wish to further maintain the dashboard page and will not make any changes to it at all, and I'll look for better solutions for this in future years. (My supercut editing solution of downloading all my clips from the stream page is unaffected by any of this.)

I took the advice of another commit to this repository and added a prettier configuration, which was a good idea. Mine makes two modifications to the one already in the repository:

The brace style, like mentioned in yours, is sort of a preference thing. I'll happily revert this one with no questions to match the one in the base directory of the repository if you ask me to.
I feel a little bit more strongly about allowParens, however. I read parentheses as important for finding parameter lists (except in languages that allow other delimiters for their lambda parameter lists (e.g. pipes), in which case, those delimiters are fine), and it also helps visually disambiguate constructs like async (event) => { /* code */ }, which are now used in Thrimbletrimmer code.

This version of Thrimbletrimmer contains an initial version of support for multiple clip ranges. I tried to maintain this support throughout the codebase, but there are a few places (the interaction points with thrimshim) where I had to ignore all the extra ranges (due to a lack of support in thrimshim). The follow-up PR should take care of this as well, ensuring that all the interaction points (video submission, download link, etc.) properly handle the range data. Thankfully the thrimshim interaction points are all effectively endpoints of workflows, so the range data is otherwise wholly properly handled throughout the editor.
There are a couple extra things I haven't gotten to yet but would like to do or have done if possible:

Play the video only within the specified ranges (starting at the beginning of the ranges, skipping the skipped areas, and stopping at the end of the last range). This won't be able to play any specified transitions live, but it'd otherwise give a good preview of what's being uploaded.
I'm aware that editors sometimes need to be able to expand the time range of the clip being edited. That's not currently implemented, but I know how we can easily support adding minutes to either end of the time range and have that work with the rest of the Thrimbletrimmer tools available in this new version. I intend this to be included in the next PR (unless we absolutely need it now).
I have a "maybe if I have time" feature of a bar over the waveform image that indicates the current video position, which would help make it even easier to see where in the video you are. I don't think this one will be too difficult to implement, but I have it at lower priority than some of the other things in this list.

Please let me know if you have any feedback or comments about any of this. If we're comfortable with the changes so far in here I'd love to keep building on them moving the code out of beta.

This is amazing! I'll take a closer look when I have time. And sounds like I need to get a move on with multi-range support on the backend.


translation russian

channel modules not translated to russian and even when i translated , it doesnt show at alll

We recently added Russian translation to Channels, module, it wll be available in the next update:
https://github.com/unaio/una/issues/1337


Doesn't seem to work with robot on local network

Even when trying the demo page, I can see topics if running a local rosbridge server on same machine (<IP_ADDRESS>), but not a robot in the local network, for example <IP_ADDRESS>. The dashboard banner goes green but gets stuck in "Loading" with no further information.

Correction to the above. It seems to work only when running a simple server on my laptop, but when I plugged a monitor to the robot (so the ws server lived on <IP_ADDRESS>:9090) and tried to open the web demo, I got the same result, i.e., got stuck in the "loading..." bubble.

https:// to ws:// is disallowed by default on firefox.
Go to firefox's about:config and toggling network.websocket.allowInsecureFromHTTPS to true
https://stackoverflow.com/questions/11768221/firefox-websocket-security-issue/12042843#12042843

Thanks!

Thanks!


Just a thought about a problem in lua that could make CraftOS 2 & its host crash completely due to memory issues, probably fixable

Lemme show you some code I made:
recursiveTable = {
	["recursiveTableWow"] = function()
		return recursiveTable2.recursiveTableWow()
	end
}
recursiveTable2 = {
	["recursiveTableWow"] = function()
		return recursiveTable.recursiveTableWow()
	end
}
print(tostring(recursiveTable.recursiveTableWow()))

This, my friends, is a recursive table. Basically, a() returns b()'s output, and b() returns a()'s output. This loads each one in memory and creates a buffer overflow. Should be fixed as it can be used for arbitrary code execution on the host machine without user knowledge.

Also can brick some devices, which is very, very bad.

What. That's not how Lua works. It just loops forever without any changes in memory. Here's proof:
t1 = {
	f1 = function()
		print(collectgarbage "count" * 1024)
		return t2.f2()
	end
}

t2 = {
	f2 = function()
		print(collectgarbage "count" * 1024)
		return t1.f1()
	end
}

t1.f1()

That's your code with renamed variables and that also prints memory usage in bytes. Run it and you'll see it uses a pretty fixed amount of memory.

Eventually it settles on 34345, at least on my machine.
Have a read of this - it might be more like what you're suggesting. Either way, I don't see how this would let you delete System32. Equally, if it does, it's a Lua issue and not related directly to Silica.

Also worth noting that if you get rid of the return (so make it no longer tail-called), this will just throw a stack overflow error. Unless you're injecting arbitrary Lua bytecode, you really shouldn't be able to corrupt memory with Lua.

Even if it was a buffer overflow, you wouldn't magically get arbitrary code execution. To get arbitrary code execution, you need:

your payload/arbitrary code somewhere in memory
the memory region the payload is in to be marked as executable (which it, by default, is not)
the cpu to somehow start executing that payload
(may be incomplete)

2nd point might be a thing for LuaJIT, but I don't think you can achieve the other two points. And even with arbitrary code execution, you might not be able to delete System32 or so.
I also don't think it's possible to brick a x86 machine.


[fix] fix youtube player showing blank screen

Description
LEARNER-8692
Notes
Fix youtube player blank screen
How to test this PR

[ ] Test youtube player is working while orientation is unlocked

Can you please open this PR with RC branch rc/3.1.0.

closed in favour of https://github.com/openedx/edx-app-ios/pull/1602


Hello

**Hi **

Hey!!
are you willing to accept new contributors? I am interested into contributing to this repository so, if you could explain a bit more this feature request, it would be great.
Thanks


Remove client-go uses

Controllers are supposed to use the client given to them by the
manager, instead of using client-go. This removes our uses of
client-go, except (for now) in tests.
Ultimately this will simplify the operator rebuild, since we won't
have to take care of rebuilding the clientset.
The clientset itself can't be removed yet, subctl imports it.
Signed-off-by: Stephen Kitt<EMAIL_ADDRESS>

Please also remove the make target to generate the clientset.

Please also remove the make target to generate the clientset.

I did this, but then reverted it because we still need to be able to create the clientset for subctl. I’ll drop the Makefile section when we can actually delete all the clientset code.

Please also remove the make target to generate the clientset.

I did this, but then reverted it because we still need to be able to create the clientset for subctl. I’ll drop the Makefile section when we can actually delete all the clientset code.

We're going to need to adjust subctl anyway so I don't think we need to worry about restricting changes. But we can make the changes in multiple PRs then, once done, bump and adjust subctl.


Deriving-via for HasHeader instance for blocks (to refer to the header)

We have two HasHeader instances for lots of blocks: one for the full block, and one for the header, where the former just delegates to the latter. It ought to be possible to use deriving-via for this.

No longer needed after #2329.


PHP 7.4 updates and "other"

This fixes any 7.4 errors that I have encountered, could be more but this is a start.  Some of the 7.4 issues were in fact minor real errors so those were fixed as well
Noticed a bug in the re-encode image function when using imagik, it was not stripping the exif headers and that is where mischievous code could exist, so it was 100% ineffective.
Fixed a few errors reported on the site or in the issues log
Made updates to PBE based on reported errors as well as things found while giving it a good thrashing.   There were some new email content types to deal with and the plain text email link issues.  That fix was a bit eh? but it does what is needed.
Make updates to the build environment which was failing (mostly due to xcache) but also reduced the number of environments.  I'm not sure what is going on with Travis but things sit in the queue for hours and then would only run 4 concurrent jobs, so a 5 job run could take 4 hours to complete, so much for CI ... not sure if this is just the .org to .com change or due to other reasons.


Fix inconsistent encoding of months

Resolve #110 (Mixed up encoding of months in task 30) by using value of 1 to reflect February

Thanks! Cherry-picked the commit separately.


Tower of Hanoi

Can I contribute with Tower of Hanoi algorithm?

Please contribute some other code as Tower of Hanoi is already present


[Bug] App crash in data collection screen

Issue reported via crashlytics
Exception message:  Fatal Exception: java.util.NoSuchElementException:  List is empty
Stacktrace:
com.google.android.ground.ui.datacollection.DataCollectionViewModel.<init> (DataCollectionViewModel.kt:136)
com.google.android.ground.DaggerGroundApplication_HiltComponents_SingletonC$ViewModelCImpl$SwitchingProvider.get (DaggerGroundApplication_HiltComponents_SingletonC.java:1480)
dagger.hilt.android.internal.lifecycle.HiltViewModelFactory$2.createViewModel (HiltViewModelFactory.java:132)
dagger.hilt.android.internal.lifecycle.HiltViewModelFactory$2.create (HiltViewModelFactory.java:103)
dagger.hilt.android.internal.lifecycle.HiltViewModelFactory.create (HiltViewModelFactory.java:170)
androidx.lifecycle.ViewModelProvider.get (ViewModelProvider.kt:184)

The above stacktrace points to code below:
var currentTaskId: StateFlow<String> =
    savedStateHandle.getStateFlow(TASK_POSITION_ID, tasks.first().id)

first() expects the list to be non-empty and throws an exception. Handling that should atleast prevent the crash from happening.

We should also check whether it is possible to open the data collection fragment if the job doesn't have any tasks

Since we do check that job has tasks in MapCardAdapter for both pre-defined and adhoc jobs, it means that this error is happening due to some race condition and not because user tried opening a job with 0 tasks.


fix(comp): helm plugin 'remove' is now 'uninstall'

Fix for dynamic completion of helm plugin uninstall since it is no longer helm plugin remove
cc: @bacongobbler

Once we have the acceptance-testing repo running automatically on helm commits, we'll be able to find these small things much more easily.

Thanks. This should be cherry-picked into the next release candidate, so I've added this to the 3.0.0 milestone.

I had missed that you had created a release branch. Should I submit the cherry-pick PR?
Also what should I do if I want to submit a PR for the release?  Submit towards the release branch first or start with the mastet branch and ask if it could be cherry-picked?

Nope! master is fine. We'll cherry-pick it into the release branch as per the cherry-picking process.

IRT PRs for the release, please feel free to submit them to the target development branch. Once the commit(s) have been accepted, the release maintainer will cherry-pick the commits into the relevant branches, and we co-ordinate using the github milestones as well as the needs-pick and picked labels. This ensures commits aren't accidentally lost in release branches.
The exception to the rule only occurs for version bumps, where we bump the release version in the release branch, then cherry-pick that commit back into the development branch after the release is complete (see #6824 and #6637 for a few examples).

Yet to try helm3 completion, but just curious, will the completion only show the sub commands in the help section but no aliases? To avoid confusion (as usually there are lots of aliases)

@karuppiah7890

... will the completion only show the sub commands in the help section but no aliases? To avoid confusion? (as usually there are lots of aliases)

That's right, when completing sub commands, aliases are not shown.  This is how Cobra does it and I actually wondered why; maybe it's like you say: to avoid confusion.
But if a user types the aliases (like 'rm' instead of 'uninstall' for helm plugin) the dynamic completion will still work and pressing <TAB> will provide the user with the list of plugins that can be removed.

Awesome, thanks for the clarification :)

@bacongobbler Should this be merged in master, or should it be kept open until cherry-picked?  I'm asking because make test-acceptance-completion (and of consequently make test-acceptance is failing without this patch.


use cabal test interface

I am assuming the QuickCheck dependency is for testing. Please get rid of it by using the cabal test interface. There are a lot of example cabal test usages to help you out.
https://github.com/yesodweb/yesod/blob/master/yesod-core/yesod-core.cabal#L102

Good point, though I will likely need flags too. Will work on it.

Thanks! I use flags to export functions just for testing.
cabal
if flag(test)
    cpp-options -DTEST

module Module where(
#ifdef TEST
   export
#endif
 )

This library could be useful to the community, but it is impractical to rely on it if it has a QuickCheck dep that will eventually cause install issues.

Sure, I will fix it next time I do a release.


almost complete V1 implementation before passation

Fully documented backend and sync module, a few features are still missing (see the rodmap to V1, also available in in-code documentation).
The frontend is fully operational

Great, I'll add docker compose and merge it as a whole.

I'll branch out the docker branch from main' it's unrelated, let's keep moving :)
Can you please help with testing my PR regarding the version fix for security?


Write host bind mounts to the Manifest

This is a feature request to expand on the groundwork merged in with #2742
Following on from that work it would be beneficial for downstream deployment tool creators if host bind mounts were output to the manifest as a lot of the time local bound host mount folders contain configuration data
Examples of these (but not limited to):

Loki Config
Promtail Config
Postgres-Exporter config
Grafana Dashboards
Grafana Datasources
Mounted .net configuration files

Any static file really
Having the paths, and type (host for example) within the manifest would allow bundling these assets within init-containers that could be used in both k8s and docker-compose.

Proposed format for bind mounts in the manifest:
...
  "bindMounts": [
    {
      "source": "./some/dir/or/file",
      "target": "/mount/here/pls",
      "readOnly": false
    },
    {
      "source": "./another/path/initdb",
      "target": "/docker-entrypoint-initdb.d",
      "readOnly": true
    }
  ],
...

Source paths will always be relative to the AppHost project directory unless they're fully qualified (e.g. D:\some\path) and always in forward-slash notation
"readOnly" matches the naming of the same flag in the volumes section


[New Port Request] vulkan-hpp-headers

Library name
vulkan-hpp-headers
Library description
vulkan-hpp without Vulkan SDK
Source repository URL
https://github.com/KhronosGroup/Vulkan-Hpp
Project homepage (if different from the source repository)
No response
Anything else that is useful to know when adding (such as optional features the library may have that should be included)
Mirroring the [vulkan] vs [vulkan-headers], [vulkan-hpp] might be made not to use headers from the SDK, but just pulling them from the git repo.

Looks like vulkan-hpp is just badly implemented. Will create another issue.


Test Checkpoint.

Hi. Thank you for your great work, but can you release the config file for training trainval set and how can you choose the best checkpoint to be submitted to KITTI server?
Thank you!

Hi. Thank you for your interest in MonoDGP.
We utilize the same config for both the training and trainval sets. Since there are no labels for the test set, we select the checkpoint that performs best on the trainval set, which is among the last few checkpoints. Remember to change train_split and test_split in  configs/monodgp.yaml if you want to train on the whole trainval set.
Feel free to reach out if you have any questions!


mark all files in PR as 'viewed'

(or toggle such behavior).
Use case:
I often review large PRs by just scrolling through them, without checking the "viewed" checkbox after I review. It's an extra click for each file, which adds up. I often approve the PR without marking any files as "viewed".
The problem comes when the author adds new commits after my approval, so I have to come back and re-review. If I were to have checked all of the boxes, only the files which I hadn't reviewed would be expanded when I went to the Files tab. But I was lazy and didn't check any of them, so all of the files are expanded; it's the entire diff.
My solution is a userscript that checks all of the unchecked boxes; I trigger it when I approve the PR. It's really simple:
document.querySelectorAll(".js-reviewed-checkbox").forEach(checkbox => !checkbox.checked && checkbox.click());

I tie it to a key combo, so I can easily mark them all as reviewed.
Let me know if this is something that you think would add value to this project.

Hi @jpalmieri!
LOL sorry, I thought I responded last week. I like this idea. It might be nice to add a toggle button near the top of the page, and allow Shift + Click on a view checkbox to toggle all the checkboxes to match the selected one. I'll see what I can do this weekend.

Hi @jpalmieri!
Please test this userscript out and let me know what you think.
// ==UserScript==
// @name        GitHub Diff File Toggle
// @version     0.1.0
// @description A userscript that adds global diff file toggles
// @license     MIT
// @author      Rob Garrison
// @namespace   https://github.com/Mottie
// @include     https://github.com/*
// @run-at      document-idle
// @grant       none
// @require     https://greasyfork.org/scripts/28721-mutations/code/mutations.js?version=666427
// @require     https://greasyfork.org/scripts/398877-utils-js/code/utilsjs.js?version=785415
// @icon        https://github.githubassets.com/pinned-octocat.svg
// ==/UserScript==
/* global $ $$ on debounce make */
(() => {
	"use strict";

	let timer;
	let busy = false;

	const buildButton = () => {
		if (!$(".ghdt-toggle")) {
			const button = make({
				el: "button",
				className: "btn btn-sm ghdt-toggle tooltipped tooltipped-s float-right",
				text: "Toggle viewed",
				attrs: {
					"aria-label": "Toggle all viewed files"
				}
			});
			on(button, "click", event => {
				toggle(document, !event.target.classList.contains("selected"));
			});
			$("#files.diff-view")?.prepend(button);
		}
		// Update toggle button state after initialized; timer for progressive
		// loading
		clearTimeout(timer);
		timer = setTimeout(() => {
			if ($$(".js-reviewed-checkbox").every(el => el.checked)) {
				$(".ghdt-toggle")?.classList.add("selected");
			}
		}, 1000);
	};

	const toggle = (target, state) => {
		$$(".js-reviewed-checkbox").forEach(checkbox => {
			if (target !== checkbox && checkbox.checked !== state) {
				checkbox.click();
			}
		});
		$(".ghdt-toggle").classList.toggle("selected", state);
	};

	const handleChange = event => {
		const { target } = event;
		if (!busy && event.shiftKey && target.matches(".js-reviewed-checkbox")) {
			busy = true;
			const state = target.checked;
			toggle(target, state);
			setTimeout(() => {
				busy = false;
			});
		}
	};

	const init = () => {
		if ($("#files.diff-view") || $(".pr-toolbar")) {
			buildButton();
		}
	};

	on(document, "ghmo:container", init);
	on(document, "ghmo:diff", init);
	on(document, "click", debounce(handleChange));
	on(document, "keydown", debounce(handleChange));
	init();
})();

Refined github added it https://github.com/sindresorhus/refined-github/pull/4016

I went ahead and added this userscript - https://github.com/Mottie/GitHub-userscripts/wiki/GitHub-diff-file-toggle - because I like the button at the top 😺


Add stickers (including animated) examples

What exactly do you want to see illustrated?

uhm … okay

uhm … okay

I wanted to see something like that:
ctx.api.sendAnimation(ctx.chat.id, animatedStickerFileId)


Edit KML ground overlay implementation

Implementation for issue #1420 in common-samples.

Consider revert d116a6f4a94250df890fe9b81effe3af39044f5e and push again, or force push to overwrite these changes... 😁

Consider revert d116a6f and push again, or force push to overwrite these changes... 😁

I converted this to a draft after realizing this. I'm working on it now, please wait until I re-request your review. Thanks for your patience!

Consider revert d116a6f and push again, or force push to overwrite these changes... 😁

I converted this to a draft after realizing this. I'm working on it now, please wait until I re-request your review. Thanks for your patience!

Oops sorry I didn't refresh... sure no rush!

Also, consider setting a max width for the slider, or/and align the opacity label on the left to safe area leading space.

Also, consider setting a max width for the slider, or/and align the opacity label on the left to safe area leading space.

I've aligned the slider view with the safe area which will make the opacity label also align with the safe area. But I don't see much of a visual difference or issue in the screenshot you provided. Is there an issue with the opacity label?

@philium @yo1995 Sorry, I had to resolve merge conflicts and updated the value label, please review once more. Thanks!


Table Header Overlaps First Row

I have created a table where you can hover on a cell, and that row and column will highlight. I am also trying to implement floatThead, but my header always overlaps the first row.
I have created a fiddle of a basic table, that still shows this error. I assume it is caused by my JavaScript?
https://jsfiddle.net/7awbfq9h/4/
Does anyone have a suggestion to get this working? Thanks in advance!

do you need those empty colgroups?
The plugin uses a colgroup with col elements for cell alignment and having
multiple colgroups breaks it.
https://jsfiddle.net/cbsuwz5y/
On Fri, Sep 6, 2019 at 2:11 PM burgoyne<EMAIL_ADDRESS>wrote:

I have created a table where you can hover on a cell, and that row and
column will highlight. I am also trying to implement floatThead, but my
header always overlaps the first row.
I have created a fiddle of a basic table, that still shows this error. I
assume it is caused by my JavaScript?
https://jsfiddle.net/7awbfq9h/4/
Does anyone have a suggestion to get this working? Thanks in advance!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mkoryak/floatThead/issues/442?email_source=notifications&email_token=AAC5WSKHWNHMZXWBWGPIZJTQIKMOJA5CNFSM4IULWJW2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HJ3ZFKQ,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAC5WSNFU63CB5XQ3UOPEVTQIKMOJANCNFSM4IULWJWQ
.

I should have read your question more carefully.
You need those things, but you probably want to use a single colgroup with
col elements, that way it doesnt break the plugin:
https://jsfiddle.net/cbsuwz5y/1/
sadly, floatthead mutates the table and creates two tables. You will need
to inspect the dom and change your javascript to do something different.
On Fri, Sep 6, 2019 at 2:15 PM Misha Koryak<EMAIL_ADDRESS>wrote:

do you need those empty colgroups?
The plugin uses a colgroup with col elements for cell alignment and having
multiple colgroups breaks it.
https://jsfiddle.net/cbsuwz5y/
On Fri, Sep 6, 2019 at 2:11 PM burgoyne<EMAIL_ADDRESS>wrote:

I have created a table where you can hover on a cell, and that row and
column will highlight. I am also trying to implement floatThead, but my
header always overlaps the first row.
I have created a fiddle of a basic table, that still shows this error. I
assume it is caused by my JavaScript?
https://jsfiddle.net/7awbfq9h/4/
Does anyone have a suggestion to get this working? Thanks in advance!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mkoryak/floatThead/issues/442?email_source=notifications&email_token=AAC5WSKHWNHMZXWBWGPIZJTQIKMOJA5CNFSM4IULWJW2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HJ3ZFKQ,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAC5WSNFU63CB5XQ3UOPEVTQIKMOJANCNFSM4IULWJWQ
.

Thank you for such a quick reply. I will change up my JS to work with this plugin.

like this:
https://jsfiddle.net/cbsuwz5y/4/
On Fri, Sep 6, 2019 at 2:22 PM burgoyne<EMAIL_ADDRESS>wrote:

Thank you for such a quick reply. I will change up my JS to work with this
plugin.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mkoryak/floatThead/issues/442?email_source=notifications&email_token=AAC5WSN4XIR36ZKPJWUWUZDQIKNX7A5CNFSM4IULWJW2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6DVGAQ#issuecomment-528962306,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAC5WSJS6PJJJVUSFJ5X6FTQIKNX7ANCNFSM4IULWJWQ
.

Thank you so much! It is working great now. Your plugin is amazing.


Doesn't seem to work

Does this github repository still work? It isn't working for me. I'm not sure if it's just me or if moomoo.io's protocol changed.

Moomoo.io‘s protocol has changed several times since this was last updated.

Moomoo.io's protocol has changed very little, but the fact is that I've lost interest in this project and I no longer have interest in contributing to it. I will continue to maintain the project as long as there are people willing to contribute.


Navigation Map resolution issue

The fullscreen resolution of the mapbox is the following:
Display res: 480x800

What to do to make it fill the empty right and bottom sides?
Thank you!

Can you turn on Advanced Settings and send me the hmi.display-width and hmi.display-height information from the Car Information tab? EntryEvo infotainment lies a little bit about the screen size, and we have previously seen it lie about the 1440x540 screen being called 1280x480. It looks like yours is saying it's 800x480 but clearly it's bigger.

These?

Try this test build. I'm not sure if there are any EntryEvo systems that are actually 800x480, which won't work properly with this version  :/

Well that's beautiful!
The map application started with the Widescreen mode turned off, and the map was a left-aligned square (with the same height but little bit more than an half of the widescreen width). Once turned widescreen on, it displayed like in the photo I shared. And no, my iDrive doesn't let me splitscreen.
Before quitting, a question that doesn't concern this problem: I read from other topics that is possible to replace the mapbox with google maps, I just didn't understand how to do this. Actually that's not so important and I can stay with mapbox, but it was just better for "speedcameras" (if they could not be implemented in the mapbox app in the future).
Thank you so much for what you do!

Please try this latest branch build
It should remove the Widescreen option from the car interface and should add a note to the phone screen saying widescreen is not supported by the car. After your confirmation, I'll merge it to the main build!

I confirm that now there's no widescreen option, and the map works well fitting the screen ;)

This is merged to main as c830e48, and gradually rolling out to the Play Store beta users

Can you turn on Advanced Settings and send me the hmi.display-width and hmi.display-height information from the Car Information tab? EntryEvo infotainment lies a little bit about the screen size, and we have previously seen it lie about the 1440x540 screen being called 1280x480. It looks like yours is saying it's 800x480 but clearly it's bigger.

Thank you so much for developing and sharing this app with the public. It is a great addition to the factory-built functions. It seems I've encountered similar issues to the OP of this ticket. The map and screen mirroring don't expand to the entire screen. A similar issue occurs with split screens tool.
I have attached some photos and screenshots of my app version and BMW head unit version.
Could you shed some light on how I might fix this?


StarRocks driver will not load: superset.databases.commands.exceptions.DatabaseTestConnectionDriverError: Could not load database driver: StarRocksEngineSpec

https://github.com/apache/superset/issues/26185

you can't add the starrocks database driver to the single container superset environment.  It only works in the docker compose enviornment.
atwong@Albert-CelerData superset % touch ./docker/requirements-local.txt
atwong@Albert-CelerData superset % echo "starrocks" >> ./docker/requirements-local.txt


How to rebuild Plugin

Hi, when a i put "unity-classes.jar" inside "UnityShowAndroidStatusBar-master\src\UnityShowAndroidStatusBar\src\libs" and execute gradlew assemble its keep throwing me error.
Should I put the entire folder inside the unity project or should I run it externally? I only need change statusbar color.

Hi! If you want to change the colors only (in resources), then you can unpack the aar (it's just a zip archive), modify it and pack it back. Make sure the result has an extension of aar.
Otherwise, it should be possible to build with gradlew if you put the unity library into libs. If you still need it, please share the build log.

I think the message here is pretty clear - you need to create local.properties and set sdk.dir there (search web for samples) or set ANDROID_HOME env var.


Increment Autonumber If There's An Error and Ignore Error Parameter Is Present

Checklist

[x] I'm reporting a feature request
[x] I've verified that I'm running youtube-dl version 2<IP_ADDRESS>
[ ] I've searched the bugtracker for similar feature requests including closed ones

Description

Hey guys,
While downloading a playlist, autonumber is a great way to mark files and since downloading a playlist usually takes long, I keep my computer open during nigh-time. For ensuring that the download keeps going, I give the -i parameter. But while using autonumber, if there's an error and the program simply ignores it, the number doesn't increment/decrement which leads to the issue that after I wake up, it's a little bit of a problem to rename the downloaded files' numbers with the correct values which they should've been. So, if the autonumber was incremented/decremented when there's an error and ignore error parameter was given, it would be great.

Why not just use %(playlist_index)s?

Why not just use %(playlist_index)s?

Mostly because I usually download as batches. so I give the playlist-start and playlist-end, with that way, it doesn't work. If that playlist index was the file's playlist index then it would be a solution but it's only the index of the part of the playlist you're downloading.
So, let's say there's a playlist with 1400 videos, and I already have the first 250 downloaded. I have to set --playlist-reverse to ensure the older gets downloaded first and then --playlist-end to ensure that first 250 is not taken into action, while doing so the playlist_index does not mean anything.

Mostly because I usually download as batches. so I give the playlist-start and playlist-end, with that way, it doesn't work. If that playlist index was the file's playlist index then it would be a solution but it's only the index of the part of the playlist you're downloading.
So, let's say there's a playlist with 1400 videos, and I already have the first 250 downloaded. I have to set --playlist-reverse to ensure the older gets downloaded first and then --playlist-end to ensure that first 250 is not taken into action, while doing so the playlist_index does not mean anything.

I'm having the very same issue. Let's say you have a .txt file list of many Twitch clips, which you want to preserve the order of. Let's say you're downloading this list of clips (with an -i option because some clips may have been removed in the meantime) and your internet goes out for a couple of seconds. For this usecase, autonumber is really terrible:
Current behavior
You've downloaded clips 1-49. Then, for the duration of ten clips, your internet drops out and you lose clips which would have been 50-59 (incl.). However, you do get clips 50-59, but it's different clips than you think because the autonumber hadn't incremented.
Expected behavior
You've downloaded clips 1-49. Then, for the duration of ten clips, your internet drops out and you lose clips which would have been 50-59 (incl.). Then, internet comes back on and you download clips from 60 onwards. Clips 50-59 are missing because -i was enabled. Everything is fine though because you can re-run the script and get the missing scripts 50-59. This is what is impossible with current behavior because autonumber doesn't preserve the gap.


Telegram: Do not apply any markup to URL entities

handleEntities code uses simple modification offset which does not
allow to detect whether the offset is placed before or after
the element in already modified string.
This works fine is most cases as Telegram server always sort the
elements by offset, in ascending order.
However, this is not the case when the modification, for example bold
text, is applied to the URL. In this case, the offset of URL and
bold entity is equal, which raises the issue.
This commit introduces additional hack for this case, stripping
any entities which intersect with URL.

Complexity did not decrease :D

But linter is happy, and we have 1 nested if less :)

Thank you @ValdikSS


setImageInsets tabBarItem

I tried to change insets of every tabbaritems both programmatically and using storyboard. It doesn't work.

Code that I tried:
self.tabBarItem.imageInsets=UIEdgeInsetsMake(5, 0, -5, 0);
and also
for (RAMAnimatedTabBarItem *item in self.tabBarController.tabBar.items) {
item.imageInsets=UIEdgeInsetsMake(5, 0, -5, 0);
}
Thanks!

I have fixed the problem by editing
createConstraints(icon, container: container, size: item.image!.size, yOffset: -5)
=> createConstraints(icon, container: container, size: item.image!.size, yOffset: 2)
in RAMAnimatedTabBarController.swift:createCustomIcons.
Sorry for inconvenience!
Thanks!

Are you set the tabBarItem directly in storyboard or programmably in UITabBarController? I have the same design requirement to remove the bar item title.

Are you set the tabBarItem directly in storyboard or programmably in UITabBarController? I have the same design requirement to remove the bar item title.

I changed"createConstraints" function   In RAMAnimatedTabBarController.swift file. It worked like a charm. Although I don't like it. If there is better solution please reply.


Builds require install_name_tool after compiling

I have to patch the internal paths of my dylibs with the command install_name_tool to correctly link them. My Cargo.toml file contains the following commands:
...
[package.metadata.xcframework]
include-dir = "src"
lib-type = "cdylib"
zip = false
macOS = true
iOS = true
simulators = true
...

Commands I use to patch:
install_name_tool -id<EMAIL_ADDRESS>libmonolib_ios.dylib

The initial paths look like this: /Users/ivabus/my/lonelyradio/target/aarch64-apple-ios/release/deps/libmonolib.dylib, which is obviously not present on the iOS device
Without the patch my program crashes immediately with such log:

Is this a problem with the xcframework?

I can't tell you off hand. I'd have to experiment with it. Maybe you could try without dynamic linking? I might remove support for dynamic linking, see #11. I'm currently quite busy, but I'll see if I can make some time for looking into it in the coming weeks.

I can't tell you off hand. I'd have to experiment with it. Maybe you could try without dynamic linking? I might remove support for dynamic linking, see #11. I'm currently quite busy, but I'll see if I can make some time for looking into it in the coming weeks.

Hi, @akesson 👋 #11 describes and proposes a dynamic linking solution for iOS and other platforms, which has already been implemented and tested by #10. If you have some spare time, you may want to look into this and review the code.
The main change is not use .dylib directly, but transform and warp it into a .framework, include install_name_tool for correctly dynamic linking.
/// Reference: https://developer.apple.com/documentation/xcode/creating-a-multi-platform-binary-framework-bundle#Determine-the-architectures-a-binary-supports
///
/// Avoid using dynamic library files (.dylib files) for dynamic linking.
/// An XCFramework can include dynamic library files, but only macOS supports these libraries for dynamic linking.
/// Dynamic linking on iOS, watchOS, and tvOS requires the XCFramework to contain .framework bundles.
pub fn wrap_as_framework(
    platform: DarwinPlatform,
    crate_type: &CrateType,
    lib_path: &Utf8PathBuf,
    header_paths: Vec<Utf8PathBuf>,
    module_paths: Vec<Utf8PathBuf>,
    bundle_name: &str,
    output_dir: &Utf8PathBuf,
) -> anyhow::Result<Utf8PathBuf> {
    //...
    if let CrateType::Cdylib = crate_type {
        sh.cmd("install_name_tool")
            .args([
                "-id",
<EMAIL_ADDRESS>bundle_name, bundle_name),
                &format!("{}/{}", &output_path, bundle_name),
            ])
            .output()?;
    }
    //...

BTW, if you'd like, you could have a try by using the branch installation, and test it out. cc @ivabus

@Binlogo: I just reviewed it and it looks great. I promise that I'll be reactive and merge it quickly once you have done the changes requested and then maybe @ivabus you could test your issue again?

@ivabus I just merged. Could you test your issue again?

Everything works as it should. Thanks you for the quick fix.


Undocumented/typed "isLoadingAll" property of CustomDataStore LoadOptions

To help us process the issue more efficiently, please provide the following information:

Specify the version of the devextreme-angular and devextreme packages you are using.
devexteme version:  16.2.6
devextreme-angular version:

Specify the type of the issue (check one with "x"):
[x] bug Report -- https://plnkr.co/edit/d9ANEA81nNNlmxBNqb2l?p=preview

When using a CustomDataStore and Export on a DataGrid, the load function gets called with no skip/top properties but instead an isLoadingAll property which TypeScript doesn't like. Console logged the loadOptions object which appears as expected for load/grid manipulation, but with different properties when you click the export button.

This is a private option. If loadOptions.skip or loadOptions.take are not present, load all records.


Custom templates with ajax return the original tempaltes

I'm using the ajax to post comments. Returned json object data.html generates the markup from the original file location.

Are you able to post what template code you have so far?


C_BaseCombatWeapon::CanFire() returns wrong value

if im switching my weapon fast, and checking on CanFire, it says wrong value , im trying to do this:
	if (!(cmd->buttons & IN_ATTACK) && weapon->CanFire()) 			cmd->buttons |= IN_ATTACK;
^^ simple autofire , but it break when im switching weapons fast (e.g pressed 1 , instantly 2, and again 1), fix pls

https://www.youtube.com/watch?v=1mF8JnKIWio&feature=youtu.be
Cannot reproduce, provide more info

https://youtu.be/K0LBqwycYw4

Yes, successfully reproduced. CanShoot works fine, sending in_attack but doesnt shooting.

Will search whats wrong, strange

I was wrong, issue is that u cannot shoot in first tick after weapon switch, so CanFire should return false, but it return true; fixed. Thanks for bug reporting.

still not fixed

I've tested it a lot with
`auto activeweapon = g_LocalPlayer->m_hActiveWeapon();
	if (cmd->buttons ^ IN_ATTACK && activeweapon && activeweapon->IsWeapon() && !activeweapon->IsKnife() && activeweapon->CanFire()) cmd->buttons |= IN_ATTACK;

` and it works perfectly

me too, but  still have this bug
https://youtu.be/K0LBqwycYw4

https://www.youtube.com/watch?v=2xm3BpSh8dc&feature=youtu.be

Lol, idk; going sleep now, will try 2 fix later

I got an idea: this code brokens if called more than one time per tick. Should store inactive tick too. Will perform when get pc
Do u call CanFire many times per tick?

2 times, try use curtime instead flServerTime, that will not help but will be a bit properly

CanFire brokes with G3SG1 idk why, maybe because calling 3-4 times at tick

test it now https://github.com/anarh1st47/CSGOSimple/commit/ecef03db1596d20afcc3fc7ce74d7c493eaef2bc

semi-fixed, still show wrong value when im swap weapon, but autofire works

whats wrong value? CanFire returns true when u'r swapping weapon?

yes

it also returns false when im trying attack with knife

Knife cannot fire

but CanFire with G3SG1 or SCAR20 returns false when im shooting more then 1 bullet, with autofire you cannot see that, but if you try make if (cmd->buttons & IN_ATTACK && weapon->CanFire()) Aimbot(cmd);  and try to shoot constantly youll see what CanFire returns false, but you still can fire and you do

can u check it right now?

can u check it right now?

its fixed right now. you can close this issue

thanks


Merge Horizon v2.6.1 onto master

@2opremio I merged because need to rebase a feature branch on top of master.

@2opremio I merged because need to rebase a feature branch on top of master.

Sure! I was just waiting for tests to pass!


WSL2 access folder on windows cause 100% cpu usage

Environment
Windows build number: Win32NT             10.0.19041.0 Microsoft Windows NT 10.0.19041.0
Your Distribution version: Ubuntu 18.04
Whether the issue is on WSL 2 and/or WSL 1: WSL2

Steps to reproduce
when in wsl2, if i want to access a folder on windows through /mnt/c/path/to/the/folder, and if the folder has .git sub folder, and the .git subfolder is large, e.g., > 100M, cd /mnt/c/path/to/the/folder/has/.git becomes extremely slow and takes 100% CPU.

Expected behavior

Actual behavior

I think that is due to IO issue on wsl accesing windows folder, and i am using oh-my-zsh to get the git status in my prompt, and that takes really long time for zsh to figure out  with a large .git folder.
i think that may due to the plugin that takes too much time to go through all git index to figure out the status of git.
not sure if things like different line ending gives trouble to the plugin but this may not be WSL 's issue.  i am closing this.


Recognize  in

Thanks, @whitequark!
@homunkulus r+

:pushpin: Commit 5ee1e0a has been approved by japaric

:hourglass: Testing commit 5ee1e0a with merge 5ee1e0a...

:sunny: Test successful - status-travis
Approved by: japaric
Pushing 5ee1e0ab9eb0c63a27dee46764dca6dc6db49601 to master...

@japaric A point release, perhaps? I am nearly done with svd2rust and none of the rest of my changes involve the parser.

@whitequark v0.5.1 is out.


Update PatchOrdering.kt

Description

Early Return for DELETE Type
We immediately return an empty set if the patch type is DELETE, eliminating unnecessary nesting.
Use of flatMap
Instead of nested loops, we use flatMap to streamline the process of mapping IDs to their corresponding references. This reduces complexity and improves readability.
Avoiding Redundant Calls
The use of ?: emptyList() ensures that we handle cases where an ID might not be present in the map without additional checks.

Type
Code health
Checklist

[x] I have read and acknowledged the Code of conduct.
[x] I have read the Contributing page.
[x] I have signed the Google Individual CLA, or I am covered by my company's Corporate CLA.
[ ] I have discussed my proposed solution with code owners in the linked issue(s) and we have agreed upon the general approach.
[ ] I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the style guide of this project.
[ ] I have run ./gradlew check and ./gradlew connectedCheck to test my changes locally.
[ ] I have built and run the demo app(s) to verify my change fixes the issue and/or does not break the demo app(s).

You need to run spotless before this can be merged. See https://google.github.io/android-fhir/contrib/style/.


Deposit doesn't use configured currency

USD is hardcoded in the deposit method
https://github.com/alfonsogoberjr/gdax-lambda-buyer/blob/master/handler.js#L41
Should be process.env.FIAT_TYPE instead
Addressed in PR 5
https://github.com/alfonsogoberjr/gdax-lambda-buyer/pull/5

Just merged. Closing


3D Object instancing

Currently 3D objects aren't instanced / cached so duplicating a mesh loads it again over the network.

..and this could track loading progress as well


Angular Bug? if ng-sortable config is moved into directive link function, it doesn't initialize correctly

Faced this when looking for the missing onMove. Our sorting init has been moved from our directive's controller function into link function and it broke down.

Try dev-branch, perhaps the problem has been solved;
Use the search, maybe already have an answer;
If not found, create example on jsbin.com (draft) and describe the problem.


setgridtype,regular before or after expr in derived variables from IFS

IFS data need to be remapped (interpolated) to the regular Gauss grid, and the question is if this should happen before or after computations/manipulations are done to get derived variables. Currently this is done after the remapping, here for example for the snow depth:
-expr,'var115=1000*var141/var33' -setgridtype,regular
This will give a slightly different result if the data manipulation would be done before the interpolation, e.g.
 -setgridtype,regular -expr,'var115=1000*var141/var33'
Which one is correct? I personaly would tend to favour the 2nd line, but I acknowledge that a strong reason for the 1st line is that it produces consistent results. Consistent in the sense that if somebody takes the snow depth from the model (var141) interpolated to the regular grid and divides with the snow density interpolated to the regular grid, he or she will get the same snow depth as is saved in the CMIP6 archive which wouldn't be the case if the data would have been processed with the 2nd line.
Any opinions?

I implemented the first choice for the spectral transform by the way, so it is only a small effort to change this. The second option is faster for processing, but if both methods produce similar interpolation errors, I think the first option is preferable for consistency no?

...if both methods produce similar interpolation errors...

That's not the case, the results will be different in the two cases.  Take snow cover (snc) for example:
var119=100*(var141>0)

If you evaluate the expression first and interpolate after the result will be somwhere between  0 and 100 in each gridpoint, but if you do the spatial interpolation before evaluating the expression then the resulting field will be either 0 or 100 in each gridpoint. To me the 1st option sounds more realistic, but I don't know for sure.

There is also a consistency issue with the way how spectral and gridpoint variables are treated. Spectral variables are first interpolated to the the regular Gauss grid before evaluating any expression, there is no other way to do it. Therefore it may make sense to do the same for gridpoint variables, or?
This is important if we have derived variables that are a combination of spectral and gridpoint variables, in that case even gridpoint varialbes must be interpolated first. (Do we have any derived variables that are a combination of gridpoint and spectral variables? Humidity flux (qv and qu) in the atmosphere maybe?)
Consistent post-processing of spectral and gridpoint variables is in my opinion the most important argument here. The current way of doing the remapping before evaluating any expression is doing exactly this, therefore I suggest to leave everything as is and close the issue.
Feel free to reopen if you disagree.

FYI, we don't have humidity fluxes available, we don't support combinations of spectral and gridpoint variables (yet...).


Updated Main method adhering to best practices regarding Main method and DB initialization code

First of all great repo, I used it as a starting point instead of the very similar Angular 2 template integrated in VS2017 and very much enjoy it.
I'm still in the process of understanding AspNetCore but if I understand correctly your initialization code was still missing a very crucial step of refactoring when you migrated from AspNetCore 1.x to 2.0. You don't include EF migrations out of the box but people trying to integrate it into your starting package as is will inherently run into some trouble while trying.
I included the links that provide the necessary information in the commit message, regardless here are the most important bits:

Update Main method in Program.cs

The adoption of this new 2.0 pattern is highly recommended and is required for product features like Entity Framework (EF) Core Migrations to work.

I left the comment //context.Database.Migrate(); in there to suggest where EF migrations should now go. Let me know if it would be interesting to support migrations out of the box, I could contribute some code for that.

Move database initialization code

As of 2.0, it's bad practice to do anything in BuildWebHost except build and configure the web host. Anything that is about running the application should be handled outside of BuildWebHost — typically in the Main method of Program.cs.

I also updated the logging configuration (added appsettings.Development.json). This consists of more verbose logging configuration. The appsettings.json now is less verbose and suited for environments outside of "Development"

If you have any questions or suggestions let me know.

I messed up, I just realized I missed removing the initialization code from the Configure method. The DbInitializer.Initialize(context); and the injected `SpaDbContext context´ of course has to go.


USHIFT-377: make sure all files from assets/ are handled by rebase

Builds on top of https://github.com/openshift/microshift/pull/1347

/hold

/unhold

/lgtm


Fix possible crash or deadlock arising from calling notify() from multiple queues concurrently

Goal
Its possible that when notify() is called concurrently from multiple queues, that a crash occurs when caching/resetting crash state. This changeset solves the underlying issues by not sharing state between calls to notify() and isolating calls to suspend threads (for backtrace collection).
Reproduction case
dispatch_queue_t queue1 = dispatch_queue_create("Queue 1", DISPATCH_QUEUE_CONCURRENT);
dispatch_queue_t queue2 = dispatch_queue_create("Queue 2", DISPATCH_QUEUE_CONCURRENT);

for (int i = 0; i < 4; i++) {
    NSString *message = [NSString stringWithFormat:@"Err %ld", (long)i];
    NSError *error = [FooError<EMAIL_ADDRESS>                                          code:340
                                      userInfo:nil];
    dispatch_async(queue1, ^{
        [Bugsnag notifyError:error];
    });
    dispatch_async(queue2, ^{
        [Bugsnag notifyError:error];
    });
}

Fixes #399
Changeset
The changes can be divided into four parts:

Adding a (failing on master) test which calls notify() several times from different concurrent queues
Refactoring crash reporting internals to allow providing separate crash contexts for each invocation of notify()
Implementing separate crash contexts for notify() calls
Adding locking around suspending threads and writing crash state.

The easiest way to view the changeset is one commit at a time, since each chunk can be evaluated independently.
Tests

Tested manually on a couple different iOS/tvOS devices running iOS 11 & 12
Added automated tests replicating the failing scenario

When will a new release be ready? Thanks.

Hi @nkavian! Doing a release now, should be available soon.

Thanks, confirming the latest release fixed my issue!


Update from voxpupuli modulesync_config

Pull Request (PR) description

This Pull Request (PR) fixes the following issues
Relate to #10

I'm going to go ahead and merge this as its trivial and I want to start a release PR.


question for the "status" of a transaction receipt

Hi aion team,

I'm running:

Which Aion version? 0.2.8.ef5df39c
Which operating system?: Linux
Which distributor and version?: Ubuntu 16.04
How installed?: via binaries
Are you fully synchronized?: no
Did you try to restart the node?: yes

I noticed that in the rpc response for eth_getTransactionReceipt, there is an attribute named status (please refer to modApiServer/src/org/aion/api/server/types/TxRecpt.java line 208) which shows if the receipt has any error, or in other words, if the corresponding transaction had any error when the kernel tried to put it into a block.
I wonder if this attribute is necessary because the current implementation for eth_getTransactionReceipt returns a receipt of a transaction only if it is included in a sealed block, which means this transaction must be valid with no error. This makes the attribute status always equals to 0x1. As far as I understand, an erroneous transaction is destroyed with its receipt, so there won't be any chance for the request eth_getTransactionReceipt to get a receipt with error (status equals to 0x0)?
Did I miss something? Would you please clarify in which situation this status can be meaningful?
Thanks in advance!
Fred

Hey, good first question! The answer is that there is a differentiator between when a transaction is rejected vs. failed.
We define a failed transaction as one that has not modified any world state (if you imagine the world of Aion to be the set of accounts), but still exists on the blockchain. This is marked with 0x0 in the status field. There are indeed situations where the status can be 0x0. For example: when a transaction is not supplied with enough gas and goes OOG, its considered a failed transaction.
Take a gander here:
https://github.com/aionnetwork/aion/blob/87b660e32c7c4c7ae2031e07bb8f8baa804b1381/modVM/src/org/aion/vm/TransactionExecutor.java#L226-L247
For further details on what is considered rejected vs. failed.

Hi, qoire. Thanks for your explanation!
I close this ticket as the question is answered.


TypeError: Cannot read property 'sizes' of null

I tried to run the project locally after cloning it to my laptop, but unfortunately a number of errors occurred so I decided to create a new Gatsby site and copy the code into the new project.Packages installation worked perfectly but when I run Gatsby develop, this TypeError occurs! what could I be doing wrong?

@GwamakaCharles I think I experienced a similar error recently. Terminal message informed me that it cleared the cache and restarted the dev server. From a previous Gatsby issues, maybe try the following: "Can you try deleting the .cache and public folder and then running the dev server again?"

@GwamakaCharles After trying the above and still seeing errors, can you check what the graphql query is returning? You can try console logging the data passed as a prop in the HomePage component or use the GraphiQL IDE: http://localhost:8000/___graphql to run the query. I am still using Gatsby v1 for this project and it sounds like you are using v2? So that might be the issue where the graphql query is not returning anything and might need some modification? Keep me updated!

@GwamakaCharles If you are using Gatsby v2, then I think the issue might be that Img component for gatsby-image now takes in either fixed of fluid images as props. You might need to update the graphql query in index.js to use the GatsbyImageSharpFluid fragment instead of GatsbyImageSharpSizes and then pass the fluid object to the Img component.
https://www.gatsbyjs.org/packages/gatsby-image/#two-types-of-responsive-images

@GwamakaCharles were you able to resolve the issue?


Random errors and 403 when clearing authorizations with concurrent requests

Questions
Related question: https://groups.google.com/g/vertx/c/vTCLEQsv1N0
Version
4.2.5
Context
I have a Vert.x 4 backend managing authorizations that vary during the lifetime of users (they can have new permissions, new roles, then those roles are revoked... stuff like that).
Because my backend is likely to revoke permissions or roles, when it is the case, I need to clear user permissions and fetch them again from the database. So I'm doing something like this:
user = routingContext.user()
user.authorizations().clear(mongoAuthorization.getId())
mongoAuthorization.getAuthorizations(user)

The problem is: when my UI is issuing parallel requests, sometimes the user has no permission at all, sometimes I get ConcurrentModificationExceptions.
Do you have a reproducer?
Here it is (no Mongo inside, just plain PropertyFileAuthentication):
https://github.com/bfreuden/vertx-reproducers/tree/master/concurrent-authz-issue
Steps to reproduce
Simply run the unique unit test of the reproducer project multiple times until you get an error (happens most of the time).

The issue here is that you are iterating over the while it is being cleared by other thread. The Collection in background should be made thread safe so this can not happen.

@pendula95 thank you so much for your comment!
That's not the only issue unfortunately.
You can comment out the iteration over the authorizations (line 115 to 123) if you wish...:
                    // try to match a permission: this can throw an error sometimes (see out.txt stack traces)
                    if (PermissionBasedAuthorization.create("do:stuff").match(user)) {
//                        Authorizations authorizations = user.authorizations();
//                        // this iteration is also likely to raise ConcurrentModificationException on authorizations
//                        for (String providerId : authorizations.getProviderIds()) {
//                            Set<Authorization> authorizationSet = authorizations.get(providerId);
//                            StringBuilder builder = new StringBuilder();
//                            for (Authorization authorization : authorizationSet) {
//                                builder.append(authorization.toString());
//                            }
//                        }
                        replySuccess(routingContext, "
protected page
");
                    } else {
                        replyNotAuthorized(routingContext, "
not authorized
");
                    }

... but you still get 403 errors and and ConcurrentModificationException like this...

protected page

java.util.ConcurrentModificationException
	at java.base/java.util.HashMap$HashIterator.nextNode(HashMap.java:1493)
	at java.base/java.util.HashMap$KeyIterator.next(HashMap.java:1516)
	at io.vertx.ext.auth.authorization.impl.PermissionBasedAuthorizationImpl.match(PermissionBasedAuthorizationImpl.java:59)
	at io.vertx.ext.auth.authorization.Authorization.match(Authorization.java:67)
	at org.bfreuden.WebServer.lambda$protectedPageHandler$3(WebServer.java:114)

... on line 114:
if (PermissionBasedAuthorization.create("do:stuff").match(user))

Honestly I even added a "big static synchronized" around the iteration... it doesn't change anything.
Without the iteration over authorizations, the source code of the /protected endpoints really boils down to this:
if (!user.authorizations().getProviderIds().isEmpty()) {
    user.authorizations().clear();
}
// ...
authz.getAuthorizations(user)
// ...
if (PermissionBasedAuthorization.create("do:stuff").match(user)) {
    // 200 reply
} else {
     // 403 reply
}

That shouldn't be a problem to do so.
My first guess was that I was not using Vert.x correctly. Really. But I can't find out where I'm wrong.

Yes but in implementation there are iterations over the Collections that are cleared. https://github.com/vert-x3/vertx-auth/blob/55eba3903979772f0c6216154c69a51c30138f94/vertx-auth-common/src/main/java/io/vertx/ext/auth/authorization/impl/PermissionBasedAuthorizationImpl.java#L59
This Collections in Authorization implementations should be made thread safe. DNK if @pmlopes wants to do this himself but I can jump in do it. I would introduce synchronization mechanism. I am not sure if it is the right approach as this could be blocking?

@pendula95 , please go ahead, ATM I'm focused on Json schema and updating openapi to the latest spec release

Synchronization can be troublesome because 2 requests on 2 events loops may create a dead lock, however, it's odd that an object is being shared, we may need to figure out why or maybe use CoW structures to avoid conflicts

@pendula95 I don't get how we can solve that "magically" by adding some synchronization in vertx-auth. Doing so would require to change Vert.x documentation.  Users of vertx-auth would be required to change their integration code: put tons of "synchronized" keywords everywhere.
Consider the source code of my reproducer, there are various accesses to the authorizations set that can't be made "atomic" unless you put a big synchronized around it like this:
synchronized(authorizations) {
  Set<Authorization> authorizationSet = authorizations.get(providerId);
  StringBuilder builder = new StringBuilder();
  for (Authorization authorization : authorizationSet) {
    builder.append(authorization.toString());
  }
}

or simply (just to guarantee that no other thread messed with authorizations between the "if" and the "getAuthorizations"):
synchronized(user.authorizations()) {
  if (user.authorizations().getProviderIds().isEmpty()) {
     authz.getAuthorizations(user)
  }
}

The problem is indeed eventloop threads sharing the same UserImpl object.
It is actually actually not true by the way!
I removed that from the reproducer code for the sake of readability but, at some point, I had a static set collecting all instances of UserImpl during the test. Sometimes there were 2 instances, sometimes there were 3 instances.
Random again.
Very strange.

Looking at the session code, the only reason I can think why we're seeing duplicate references to user objects, is comming from the class UserHolder which is hold on the session, so multiple request in the same session, may see the same holder.
This was an "optimization" to reduce the amount of serialization going on the session, but clearly is defeated with the delays introduced in this test.
I might be entirely wrong here, but probably, ensuring that the holder is unique would address the issue.

@pmlopes This bug is nasty. I agree the reproducer is pushing Vert.x very hard with the delays but, believe me, in a real world scenario I get multiple errors per day (especially right after login).
I would like to be able to fix it but session and authn/authz handlers are quite obscure to me. Especially the session one (I guess it is far from trivial since it is supposed to work in clustered mode as well).
TBH, when you have a web server verticle deployed multiple times, I never know what I am supposed to do:

session handler: one instance of per web server verticle instance?
auth handler: one instance of  per verticle instance?
session store: one instance of per verticle instance? or a singleton shared with all verticles? Or does it depend on the type of session store?
authentication provider: one instance of per verticle instance? or a singleton shared with all verticles? Or does it depend on the type of provider?
authorization provider: one instance of  per verticle instance? or a singleton shared with all verticles? Or does it depend on the type of provider?

Could you please tell me how many instances of each "thing" I need to have?
With Vert.x I am generally inclined to avoid singletons and put an instance of each per verticle (and rely on the vert.x magic) but... I don't know really.
Depending on your answer I might be able to figure out a solution.
I'm realizing this bug is probably a vertx-web bug (not a vertx-auth bug I mean)?

@bfreuden I'm running your reproducer. With 4.2.5 indeed the test fails for me too, yet with the latest 4.3.0-SNAPSHOT (it always passes) so I'm thinking that the improvements we're already doing in 4.3 addresses the problem.
The issue I'm facing is that it's not trivial to pinpoint the solution and just cherry pick a commit or two. I'd like to ask you to try to test against the latest snapshot builds and see if it also works for you too.
In the meantime I'm looking at the code and see how we can be more thread safe, but I'd rather avoid adding synchronized blocks everywhere as this can become a bottleneck if not properly done.

Regarding the question about number of instances, the rule of thumb is that if the handlers are asynchronous (and all the ones you listed are), usually a single instance gives you the best performance, if blocking code is involved then it's a matter of trial and error to verify which number of instances gives the best results for your given application.

The small change above also ensures that even with blocking handlers, no ConcurrentModificationExceptions occur

Hi @pmlopes,
I still have ConcurrentModificationException errors that seem to be gone with this modification:
public class AuthorizationsImpl implements Authorizations {

    @Override
    public Authorizations add(String providerId, Set<Authorization> authorizations) {
        Objects.requireNonNull(providerId);
        Objects.requireNonNull(authorizations);
        ConcurrentHashMap.KeySetView<Authorization, Boolean> concurrentAuthorizations = ConcurrentHashMap.newKeySet();
        authorizations.forEach(v -> concurrentAuthorizations.add(v));
        getOrCreateAuthorizations(providerId).addAll(concurrentAuthorizations);
        return this;
    }

    private Set<Authorization> getOrCreateAuthorizations(String providerId) {
        return authorizations.computeIfAbsent(providerId, k -> {
            ConcurrentHashMap.KeySetView<Authorization, Boolean> concurrentSet = ConcurrentHashMap.newKeySet();
            return concurrentSet;
        });
    }
}

With your latests updates and that one, I can't seem to catch exceptions any more.
However I'm still getting 403 errors where I should have 200. I guess there is nothing we can do easily to prevent that: when a thread is clearing a collection (of permissions) before adding new ones, and when another threads is reading the collection between the clear and the add of the first thread, this is expected to happen.
I'm about to compile the vert.x 4.3 branch (because 4.3.0-SNAPSHOT jars are not accessible anywhere right?) to give a try.
I'll keep you posted.
Thanks again.

I'm realizing only the getOrCreateAuthorizations has to be modified. Sorry (panic mode...)

To prevent the 403, we need some behavior change. We should make the API return immutable objects. This way multiple views will be independent at the cost of more garbage being produced.
I think this approach would be better and we could use simpler types and avoid synchronization.

I've given vert.x 4.3.0-SNAPSHOT (fresh clones of vert.x vertx-web and vertx-auth, master branch) and I do get ConcurrentModificationException as well, in addition to 403 errors:
java.util.ConcurrentModificationException
	at java.base/java.util.HashMap$HashIterator.nextNode(HashMap.java:1493)
	at java.base/java.util.HashMap$KeyIterator.next(HashMap.java:1516)
	at org.bfreuden.WebServer.lambda$protectedPageHandler$3(WebServer.java:120)
	at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141)
	at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60)
	at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211)
	at io.vertx.core.impl.future.PromiseImpl.tryComplete(PromiseImpl.java:23)
	at io.vertx.core.Promise.tryComplete(Promise.java:121)
	at io.vertx.core.Promise.complete(Promise.java:77)
	at org.bfreuden.WebServer.lambda$protectedPageHandler$1(WebServer.java:94)
	at io.vertx.core.impl.future.FutureImpl$1.onSuccess(FutureImpl.java:91)
	at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262)
	at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60)
	at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211)
	at io.vertx.core.impl.future.PromiseImpl.tryComplete(PromiseImpl.java:23)
	at io.vertx.core.impl.future.PromiseImpl.onSuccess(PromiseImpl.java:49)
	at io.vertx.core.impl.future.PromiseImpl.handle(PromiseImpl.java:41)
	at io.vertx.core.impl.future.PromiseImpl.handle(PromiseImpl.java:23)
	at io.vertx.ext.auth.properties.impl.PropertyFileAuthenticationImpl.lambda$getAuthorizations$8(PropertyFileAuthenticationImpl.java:213)
	at io.vertx.ext.auth.properties.impl.PropertyFileAuthenticationImpl.getUser(PropertyFileAuthenticationImpl.java:161)
	at io.vertx.ext.auth.properties.impl.PropertyFileAuthenticationImpl.getAuthorizations(PropertyFileAuthenticationImpl.java:203)
	at org.bfreuden.DelayingAuthorization.lambda$getAuthorizations$0(DelayingAuthorization.java:31)

@vietj @pmlopes I have modified my reproducer to use an async lock every time the code is dealing with authorizations:

clear authorizations
write authorizations
read authorizations

The async lock is added to the attributes of the User objects by an AuthenticationProvider decorator called UserWithLockAuthenticationProvider.
The WebServer wil acquire the lock depending on the config of the verticle:
AsyncLock lock = (AsyncLock)user.attributes().getValue(UserWithLockAuthenticationProvider.LOCK_ATT_NAME);
Future<AsyncLock.LockToken> userLockAcquired;
if (lock == null) {
    userLockAcquired = Future.succeededFuture(nopLock); // NOP dynamic proxy
} else {
    userLockAcquired = Future.fromCompletionStage(lock.acquireLock());
}

You can activate the behavior by uncommenting that line in AppTest:
    @BeforeClass
    public static void startServer() throws InterruptedException {
        App.main(new String[0]);
//        App.main(new String[] {"useAsyncLock"});

    }

With such a lock, the errors disappear.
That's pretty "hardcore" though... I'm not sure if it should or how it could make its way into vert.x.
As is, it will spread a lot of boilerplate in user code.

maybe (?) by replacing this User method:
    public Authorizations authorizations();

with something like:

   class AuthorizationsHandler<T> {
       Future<T> handle(Authorizations authorizations);
   }

    public <T> Future<T> withAuthorizations(AuthorizationsHandler<T> handler);

Maybe that withAuthorizations method could internally deal with the lock?

Fixed by #635


Invoking 'dotnet restore' hangs during omnisharp startup

Environment data
dotnet --info output:
.NET Command Line Tools (1.0.0-preview2-002990)

Product Information:
 Version:            1.0.0-preview2-002990
 Commit SHA-1 hash:  54cd31b0b7

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.10586
 OS Platform: Windows
 RID:         win10-x64

VS Code version: 1.2.1
C# Extension version: 1.1.6
Steps to reproduce

Clear nuget caches.
Download and open an ASP.NET Core application (example https://github.com/aspnet/MusicStore/archive/release.zip)
Command Palette > Omnisharp: Select Project > (your project)
Omnisharp begins to auto-restore project (log shows [INFORMATION:OmniSharp.DotNet.Tools.PackagesRestoreTool] Begin restoring project)
Before this is finished, do Command Pallet > dotnet: Restore Packages

Expected  behavior
Should immediately show available projects to restore, or at least indicate a restore is currently underway.
Actual behavior
The next dialog box does not appear until OmniSharp has finished its initial restore on the project(s), which may be minutes later. Then the next command palatte option with available projects appears (dotnet restore - (your project))

This is a great bug. Thanks for reporting!

This doesn't reproduce anymore. VS Code shows an error right away if omnisharp hasn't started.


chore(phoenix-channel): reset heartbeat on reconnect

Looking through the logs of https://github.com/firezone/firezone/issues/4348, I noticed that we would instantly reconnect to the portal due to a "missed heartbeat" if the connection was reset for any other error. That happens because the timer within Heartbeat was still active and would immediately fire was soon as we are connected.
To fix this, we introduce a reset method that gets called every time we establish a connection to the portal.

Tested this with the Apple client. I'm still testing, but I think this might actually fix #4358! I'll leave my notes there if that turns out to be the case.

I wouldn't be able to explain how as data and control plane are completely decoupled.

Tested this with the Apple client. I'm still testing, but I think this might actually fix #4358! I'll leave my notes there if that turns out to be the case.

I wouldn't be able to explain how as data and control plane are completely decoupled.

Well, there is one link: Erroneously reconnecting (which we do prior to this patch) may result in us losing state on the portal and perhaps failing to send messages about new candidates to the gateway.

losing state on the portal and perhaps failing to send messages about new candidates to the gateway.

Yeah, I tested about 10 times before and after the patch, and each of those showed a marked improvement. I'll merge this now since it's a small, obvious fix and has been tested manually.


Train 146

High Level Description
https://github.com/dcos/dcos/pull/1407
https://github.com/dcos/dcos/pull/1402
Related Issues
Checklist for all PR's

[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[ ] Change log from the last version integrated (this should be a link to commits for easy verification and review): example
[ ] Test Results: [link to CI job test results for component]
[ ] Code Coverage (if available): [link to code coverage report]

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and Review Process
What is the review process and when will my changes land?
All PRs require 2 approvals using github's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner. Once a PR has 2 ship-it's, no red reviews, and all tests are green it will be included in the next train.

@mesosphere-mergebot bump-ee

The sync server changes lgtm.


--dry-run creates empty folder

OS?

Windows 7

Versions.
@angular/cli: 1.0.0-beta.30
node: 7.5.0
os: win32 x64
@angular/common: 2.4.6
@angular/compiler: 2.4.6
@angular/core: 2.4.6
@angular/forms: 2.4.6
@angular/http: 2.4.6
@angular/platform-browser: 2.4.6
@angular/platform-browser-dynamic: 2.4.6
@angular/router: 3.4.6
@angular/cli: 1.0.0-beta.30
@angular/compiler-cli: 2.4.6
Repro steps.

Was this an app that wasn't created using the CLI? What change did you do on your code? etc.

ng new proj && cd proj
ng g module settings3 --routing --dry-run

λ ng g module settings3 --routing --dry-run
installing module
You specified the dry-run flag, so no changes will be written.
  create src\app\settings3\settings3-routing.module.ts
  create src\app\settings3\settings3.module.ts
installing component
You specified the dry-run flag, so no changes will be written.
  create src\app\settings3\settings3.component.css
  create src\app\settings3\settings3.component.html
  create src\app\settings3\settings3.component.spec.ts
  create src\app\settings3\settings3.component.ts

Despite saying no changes will be written an empty folder src/app/settings3 is created.
Mention any other details that might be useful.
Without the routing flag no empty folder is generated.

I just attempted this with rc.0 and was not able to reproduce it.
test-app (master) » ng g module settings3 --routing --dry-run
installing module
You specified the dry-run flag, so no changes will be written.
  create src/app/settings3/settings3-routing.module.ts
  create src/app/settings3/settings3.module.ts

test-app (master) » ls src/app
app.component.css     app.component.html    app.component.spec.ts app.component.ts      app.module.ts

from https://github.com/angular/angular-cli/blob/master/CHANGELOG.md#breaking-changes-1

1.0.0-beta.32 (2017-02-17)
...
BREAKING CHANGES
...
@angular/cli: Generating a module with routing will no longer generate an associated component.

Thats probably why..


Sharing models between machines

Hey all,
First, great work, TabNine really boosts my everyday workflow. Still, I have a question for my use and I do not find another way to ask it.
I primarily use TabNine on my own laptop but I am also coding on remote machines. I see that the code completions on the remote machines are not as advanced and good as on my own machine (I use pro and the same settings as on my own machine). I assume that my local model is trained better over the course of the usage. Could someone clarify for me how the training and sharing between local and remote models work? And further maybe give me a hint or settings I have to change to have the same elaborated auto completions on the remote machines than on my own machine?
Some data about my settings:
Version: Pro
AI Model: Universal Model Advanced
Model Serving Mode: Hybrid
I would really appreciate some help here.
Greetings, Luis
gz#23576(related to Zendesk ticket #23576)

Hi @LDenninger
When you are working on the remote machine, are you signed in (can you see 'tabnine pro' in your status bar)?
How is the internet connection (the advanced completions are coming from our cloud, so you need a decent internet connection)?

Hey, I have Pro activated, the machine has a very good internet connection (Faster than my notebook). Everything is the same but the code completions are way worse.

@LDenninger
Can you please send us a video?

@LDenninger Can you please your remote log files?
See here how to do that.

@TzufTabnine Yes, sure. I recreated the same scenario as in the video.
tabnine_logs-44714_rCURRENT.log

@LDenninger
Can you also send us a screenshot of the Help->Toggle Developer Tools?

@LDenninger Sorry I wasn't clear, Please send a screenshot of:
Help->Toggle Developer Tools->Console

@TzufTabnine . Ah okey, that mkes more sense. I appended the screenshot. Greetings

@TzufTabnine  ?

Hi @LDenninger
Sorry for the late response.
Try to install the latest tabnine plugin for VSCode and replicate the issue. Please send us the Help->Toggle Developer Tools->Console after you do that.


gpu: move blocking pass from custom to advanced mode

Hi, what is this PR offering compared to the previous implementation? Is loop blocking expected to deliver performance by default now?


Control events in non-measured notation?

The MEI 3 model.controleventLike has changed somewhat into model.controlEventLike.cmn in MEI 4. It seems that its members are no longer available in non-measured notation (within <layer>, for instance, where they used to be allowed) except inside editorial markup. Is that intentional? Specifically, my question is: Where can I put a non-editorial fermata in square (neume) notation?

Sorry - this issue was meant to go into the schema repo, not the guidelines .


how i know WHO made this CALL on server side?

distinguish between clients/users.

oh, i know what i should do.


How to refresh connection password

Your issue may already be reported! Please search on the issue track before creating one.
What version of Go are you using (go version)?
1.13
Which database and its version are you using?
Postgres 12.2
I have a gorm connection and I'm passing an AWS authentication token that expires every 15 minutes. So, the service will be able to connect to the DB for 15 minutes, but then it won't be able to. Is there a canonical way of passing the new token to gorm?
Here's what I have so far. First this connection function that wraps around gorm.Open:
func Connect(conf *config.DbConfig) (*gorm.DB, error) {
	host, port, err := net.SplitHostPort(conf.Host)
	if err != nil {
		return nil, err
	}
	sslMode := "require"
	if conf.DisableTLS {
		sslMode = "disable"
	}
	return gorm.Open(conf.Dialect,
		fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=%s",
			host, port, conf.Username, conf.Password, conf.Name, sslMode))
}

This is called in main like so:
        //IF WE WANT TO USE AWS TOKEN, REPLACE PW IN CONFIG WITH TOKEN
	if conf.DB.UseAwsToken {
		authToken, err := field.CreateAuthToken(&conf.DB)
		if err != nil {
			logger.Fatal(err)
		}
		conf.DB.Password = authToken
	}

       //CONNECT TO DB
	db, err := field.Connect(&conf.DB)
	if err != nil {
		logger.Fatal(err)
	}
	defer db.Close()

      //INITIALIZE CRON JOB THAT RUNS IN SEPARATE THREAD TO REFRESH CONNECTION
       if conf.DB.UseAwsToken {
		processorCron := cron.New()

		cronInterval := "@every 10m"
		if conf.DB.CronInterval > 0 {
			cronInterval = fmt.Sprintf("@every %s", conf.DB.CronInterval)
		}

		processorCron.AddFunc(cronInterval, func() {
			repo.RenewDB(&conf.DB)
		})
		processorCron.Start()
	}

The part I'm stuck with the actual code for the RenewDB function, in the spot with the TODO:
type Repo struct {
	db *gorm.DB
}

// FUNCTION
func (r *Repo) RenewDB(dbConf *config.DbConfig) {
	var err error
	if dbConf.Password, err = CreateAuthToken(dbConf); err != nil {
		panic(fmt.Sprintf("failed at createAuthToken: %s\n", err.Error()))
	}

	//TODO: HOW DO I UPDATE GORM TO USE THE NEW AUTH TOKEN THAT I INSERTED
       // INTO dbConf?
}

//AUTH TOKEN GENERATOR
func CreateAuthToken(dbConf *config.DbConfig) (string, error) {
	awsSession, err := session.NewSession()
	if err != nil {
		return "", err
	}

	authToken, errToken := rdsutils.BuildAuthToken(dbConf.Host, dbConf.AwsRegion, dbConf.Username, awsSession.Config.Credentials)
	if errToken != nil {
		return "", errToken
	}

	return authToken, nil
}

Try to put your token in config server like etcd, then read it with hot loading?

@The-Phantom-Of-The-Opera thanks for your response. I updated my original post to clarify what I'm trying to do.

@Osiris1975
`// global variable
var Db *gorm.DB
func Connect(conf *config.DbConfig) error {
var err error
// ---snip---
Db, err = gorm.Open("dialect", "url")
}
func RenewDb(dbConf *config.DbConfig) {
// ---snip
Connect()
// then use Db to exec sql.
}`
Is this can work?

@song-without-words thank you for your response. I originally had that solution, or something similar. The problem with this that was pointed out to me is that it isn't thread safe, and it overwrites the entire connection pool and will leave connections open. So many people are using RDS now that it'd be nice if GORM had some built-in support for this.

Hello @Osiris1975
I am too facing now similar need where my db password rotates at regular intervals and I wonder how you solved this issue from your side to recreate DB connection on detecting this change .
Thanks in advance for the help
Rakesh

Any update @rockey5520  did you get it working?

see https://stackoverflow.com/a/77287404


Feature request: Support zooming out

I would like to use this plugin to generate a long-term overview of tasks to be done during my PhD.
I have setup an appropriate kanboard project, but the fixed-width of 20px/day is too large to see a one-year overview, with tasks spanning multiple months.
Would it be possible to add either a scale cursor, or buttons? For instance,  this visualizer supports it.
(Alternatively, a json export for that other tool could do the trick, but is likely too narrow a use-case).
I can help you testing something from a separate branch. As a matter of fact, I'd be interested in a quick and dirty solution before the end of the week if that was envisionable, as I would have liked to use it in a report. I tried tweaking the CSS myself in the resulting page, but I guess it is either automatically generated, or hardcoded in multiple places for a fixed-width.
Thanks in advance, that is something I'd use in the future in any case!
One could even imagine delegating rendering to the aforelinked library or another one, I don't know how you would feel about that?

The same applies to me
Companies work a lot by week number to plan actions throughout the year
Without having to zoom out, being able to switch between daily and weekly displays via a tick or drop down menu would be a big plus.
Otherwise, how can the data be exported to be reworked on another solution?

I ended up scrapping the field data-records from the html page. Then, I used the following script: https://gist.github.com/MayeulC/e954c16cfead59e2e41732496be710ca
Since that was a one-off, I did some steps manually, but it could be automated further.
That frappe.io gantt renderer is nice and simple to work with. It would be nice if provided as an option :)
I can contribute towards this. The current gantt visualizer doesn't work without javascript either...

Ah yes, it's much more meaningful and very aesthetic
I was thinking of modifying the kanboard code to force the display in weekly but I don't know if it's easy to do
I prefer your solution but technically the link with frappe-gantt is beyond me
What can I do to help you?

Ps : i speak french, i live in Narbonne ;-)

I was thinking of modifying the kanboard code to force the display in weekly but I don't know if it's easy to do

I am not sure either since I am not that familiar with the code.

I prefer your solution but technically the link with frappe-gantt is beyond me

Well, I am not sure why you prefer my solution then. Maybe because of the way it looks?
Frappe-gantt is a javascript project that takes json data as an input, and outputs a gantt chart in a webpage as an output. What I did is convert this gant pluggin json format to a json format understood by frappe-gantt.
So all one has to do in theory is serve the appropriate javascript file from frappe-gantt, json data in a format frappe can understand it, and an html page that makes use (loads it and calls it) of frappe-gant and feeds it the json data. So it wouldn't be much work to output the right html page, but we have to convert $tasks to a format that frappe.js accepts. This could be done in php or javascript.

What can I do to help you?

I don't have time to work on this right now unfortunately. Maybe in a few months? I can help you with a few specific things, but I just posted the code I had written some time ago in a gist.
At that point, I am not sure if this plugin is the right fit if we are to replace the rendering engine, as most of the code here seems  to already be rendering-related?

Thanks for the feedback,
It is both the rendering where you can see the globality of the tasks and the links between the tasks that is very interesting
It's already complicated to manage what everyone has to do on their own. I'm going to do a manual test based on your GIT and then I'll see what can be done to automate a little more (at my level)


Update state-management.md

making the code examples consistently use const instead of switching to var as you scroll down on https://vuejs.org/v2/guide/state-management.html#Simple-State-Management-from-Scratch

Thank you for your contribution! We're using ES5 intentionally on Vue 2 docs, this will be changed on Vue 3 docs.

oh, maybe the block in this same file:
const sourceOfTruth = {}
const vmA = new Vue({
  data: sourceOfTruth
})
const vmB = new Vue({
  data: sourceOfTruth
})

should be var then?

@adamwirth Indeed! Would you want to send a PR for it?

@adamwirth Indeed! Would you want to send a PR for it?

Ok! I made a new PR 😄


ISPN-16699 RESP blocking during get with expiration in simple cache

https://issues.redhat.com/browse/ISPN-16699

Integrated into main, thanks @jabolina !


Not showing correct image

I am using the .setImageUrl() method to set image to the layout.
But the image link that I am passing and the image that it shows on the phone are different images.
Here is the code
FlipperView view = new FlipperView(this.getActivity());
view.setImageUrl(res.getJSONObject(i)
.getString("img_link"));
view.setImageScaleType(ImageView.ScaleType.FIT_CENTER);
view.setDescription("");
view.setDescriptionBackground(Color.TRANSPARENT,1);
The image link is --> https://cdn11.bigcommerce.com/s-7uw7zc08qw/images/stencil/1296w/carousel/28/KakaoTalk_20200114_190440262.jpg?c=2
And this what I am getting -->

Why is this coming? How to solve this?

Hey @aana77 Sorry for the late reply, but the method that you're using actually just sets the image URL for the flipper view, you have to handle the loading part of it, using any method that you want,  be it okhttp, Picasso, Glide etc. The image that is visible to you is just the placeholder image, which shouldn't have been visible here ideally.
The method that you should use is:
try {
                view.setImage(res.getJSONObject(i), new Function2<ImageView, Object, Unit>() {
                    @Override
                    public Unit invoke(ImageView imageView, Object image) {
                        // Any method that you would use to load that image
                        // E.g. Picasso.get().load((String) image).into(imageView);
                        return Unit.INSTANCE;
                    }
                });
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }

Also, you'll need to have a Kotlin dependency in your project for this to work unfortunately


Fix the preview URLs

What I did
Fix the preview URLs.
It doesn't work in some URLs like:
https://github.com/open-wc/open-wc/pull/2066#issuecomment-1005795429
Slugified branch name from:
https://github.com/adobe/spectrum-web-components/blob/main/.circleci/config.yml#L152-L154

Ops!

Waiting for authorization...
Error: Timed out waiting for authorization

https://github.com/open-wc/open-wc/runs/4790732586?check_suite_focus=true#step:7:13

Superseded by #2381


How override default "text" key to custom key?

{ id: 4, text: 'wontfix' }  ->  { id: 4, name: 'wontfix' }.

The docs are pretty terrible about recommending how to correct this issue.
The preferred way is to fix change the property names at the data source, so they match the id and text that Select2 is expecting. We understand that this isn't always possible, which is why we have a few hooks where you can do the mapping on the client side.
This is covered briefly in the 4.0.0 announcement:
https://select2.github.io/announcements-4.0.html#changed-id
I'm going to mark this as a documentation issue.

May be create options for this keys?
$.fn.select2.defaults.set("pk-prop", "id");
$.fn.select2.defaults.set("text-prop", "text");


Index does not fit to RAM

Hi,
I am trying to run inference (retrieve.py)in a quite big collection and I get the following error :
RuntimeError: [enforce fail at CPUAllocator.cpp:64]. DefaultCPUAllocator: can't allocate memory:you tried to allocate<PHONE_NUMBER>24 bytes. Error code 12 (Cannot allocate memory)

To my understanding, that means that colbert requires 600+ gb of memory, which the machine does not have. Is there any way to bypass this issue?
Can I read the file from  an SSD and how much slower would the process be?
Some colleagues also suggested using huggingface.co datasets for that but I'm unsure whether this is feasible or where to start!

Might want to use batch retrieval and batch re-ranking? Brief instructions are in the README.
It does search in two steps, but doesn't have to load the full index into memory.

Alternatively, you might be interested in our binarization branch. It makes the index much smaller. It's still a work in progress; we'll improve its quality in the next 2-3 weeks. (Until then, you might lose a couple of points of quality if you use the binarization branch.)

@littlewine Is this resolved?

Yes indeed! Thanks for your help!

Might want to use batch retrieval and batch re-ranking? Brief instructions are in the README.
It does search in two steps, but doesn't have to load the full index into memory.

Can you explain why you didn't add 512 in batch_retrieval?


Add OpenWRT

Please add OpenWRT images: openwrt.org

nvm, i see that it's available here: https://images.lxd.canonical.com/


Which version of compileSdkVersion this library supports?

I am getting build errors when added this dependency in app/build.gradle file.
My compileSdkVersion version is 23.

As you can see build.gradle of the TableView library, It uses 27.0.2 support library.
compile 'com.android.support:appcompat-v7:27.0.2'
compile 'com.android.support:recyclerview-v7:27.0.2'

So, you need to up your compileSdkVersion to the 27 instead of 23.

Thanks. I cannot upgrade my app version. Can we lower the version of this library to 23? And what impact this could have?