Disable translate3D for list when scaling

Related to #13662
Check d2a5c57366f29f0366ce479e8443506dc1bfb5e1

@joaomoreno it is worth mentioning that for some reason the list widget is always grayscale-antialiasing even when not scaled (basically ever since we have it).

There is something I don't understand.
In d2a5c57366f29f0366ce479e8443506dc1bfb5e1, @alexandrudima disables translate3d for the current version only if pixelRatio isn't an integer. Seems to work fine for him.
On my machine with pixelRatio = 1, the list doesn't have sub-pixel antialiasing when using translate3d, but the editor does...
So... what more do you know, @alexandrudima ?

@joaomoreno
source: https://www.html5rocks.com/en/tutorials/internals/antialiasing-101/

make sure to use an opaque background on the dom node that becomes a new GPU layer and no fancy transparency
make sure to always position things at integer coordinates

make sure to use an opaque background on the dom node that becomes a new GPU layer and no fancy transparency

That did it, thanks @alexandrudima!

@bpasero That poses a new problem. How can the list know which background it should use? Maybe we should add that as a new theming key...

I confirm we have good subpixel-aa when monaco-list-rows (the container that uses translate3d) has a background color set. We can think about adding a background color to the theming for tree/list and thereby get the color in. It is a bit ugly though because in all cases we want this color to actually inherit the one from the layer below...

Pushed a change to no longer use transform3d under the same conditions as the editor (e.g. when zoomed or scaled) but also generally on Windows because we do not define a background color for the layer of the list widget and this causes Windows to render the list without subpixel-antialias when scrolled.


Add routing support to mobile navigation.

This PR adjusts the mobile navigation model to use routing, enabling deep-linking, usage with device back button, etc.
Navigation state is represented as a stack of pages. Previously, developers would navigate by using pushPage() and popPage() to adjust the page stack directly.
This PR takes a "route-first" approach, where the page stack is inferred from (and reacts to) the current route. Developers instead navigate by updating the route using XH.navigate(), or the provided appendRoute() & back() convenience methods.
Please also see Toolbox PR: https://github.com/exhi/toolbox/pull/152

Discussed just now with Tom.  He's going to look at handling for modal popups to get those to automatically dismiss on a routing change - so we don't e.g. leave a dimension chooser modal floating there if its entire page-level module gets routed away with a back-button press.
We also discussed:

Support for specifying routes that aren't directly routable - i.e. you can't start there - and have the app respond in a sane way by unwinding the route to a valid starting point or defaulting to a base route. This avoids us setting up an expectation that all routes must be reachable from a cold-start, which in turn gives us more options for not having to encode all required state in the route to support things like detail panels.
Support for routing tabs - similar to desktop. Can prioritize later as a follow-on feature, given that tabs are less of a top-level organizing concept on mobile.


Add to folder dict vs. Add to workspace dict?

I've been playing around with both, but I can't find a difference between pressing Add: "..." to folder dictionary and Add: "..." to folder dictionary from the IntelliSense context menu. Both options seem to add the word to the settings.json of the open folder / open workspace?

After a bit of testing I found the following behavior:
Case 1: Opened folder - Add to folder/workspace does the same thing, which is to add the word to .vscode/settings.json of the opened folder.
Case 2: Opened workspace - Add to folder/workspace does the same thing, which is to add the word to [WORKSPACE-NAME].code-workspace of the opened workspace.
But in both cases, choosing Add: "..." to folder dictionary and Add: "..." to workspace dictionary does the same thing. Unless there is a case where they are different, they should combined into one command?

It is possible that they are doing the same thing, but that is not what was intended.
But you bring up a good point, it is not obvious of the difference.
Here is the challenge, settings are applied in the following order:

Default Settings
User Settings
Workspace Settings
Folder Settings

If a setting appears in the folder level, it will overwrite the same setting from either the workspace, the user, or default settings.
If you add a word to the Workspace, then it also needs to be added to the Folder level, otherwise it will still be marked as incorrect.

So as I understand you:

"Add to folder" should be fixed so it actually adds it to the folder always.
"Add to workspace" should be unchanged IF there is no .vscode/settings.json in the folder of the currently opened file
"Add to workspace" should be renamed "Add to workspace and folder" IF there is already an existing .vscode/settings.json (that contains a "cSpell.words" attribute) AND be changed to actually do this.

What if I have cspell.json in the root of my project, and I want to add the words only to it, not to .vscode/settings.json? Is my understanding correct that the extension currently can't do this?

Thank you for all the discussion. I do not mean to be silent. I have just been busy.
This is not an easy problem to solve for the different use cases. It is made worse by the fact that the context menu is static.
I'll take another look at the logic.

Case 1: Opened folder - Add to folder/workspace does the same thing, which is to add the word to .vscode/settings.json of the opened folder.
Case 2: Opened workspace - Add to folder/workspace does the same thing, which is to add the word to [WORKSPACE-NAME].code-workspace of the opened workspace.

With the current version of VSCode (1.27.2) and the current version of the extension, when I have a code-workspace file open, neither of these options work. The words do get added to the .code-workspace file, but still show up as spelling errors even after closing VS Code and relaunching it.

What I see is that the word gets added to both cSpell.json (if one exists) AND workspace settings.
I very much need this extension to NOT add anything to the workspace file.
I have CI doing spell check against cSpell.json and what happens is that a word is marked as valid in one project of a workspace (to both files) and is not marked in other projects' cSpell files.
Then, for other project, VS Code deems the word valid, but CI does not (because relevant cSpell file is not updated).
I currently have to periodically manually clean up my workspace file.


Cannot create disabled inviews

In relation to: https://github.com/imakewebthings/waypoints/issues/355#issuecomment-81413958
It would be useful to be able to specify that we want to create inviews with disabled waypoints to deal with the behavior pinpointed in the ticket above.

Thanks, @nicbou. This will be part of the next release but no idea when that will be.

@nicbou This is part of the now released 4.0.0.


Add middleware in Next.js for redirecting to login page

:rocket:  Add middleware in Next.js for redirecting to login page
:memo: Description
Currently, there is no middleware in our Next.js application that checks the value of the login cookie variable. We need to add a middleware that will redirect the user to the login page if the login cookie is false.
:bulb: Proposed Solution
We can create a middleware function in _middleware file, that will be called on every page request. This function will check the value of the login cookie, and if it is false, it will redirect the user to the login page.
:point_right: Steps to create a middleware

Create a middleware.ts file at the same level as  pages (in the root directory)
Export a middleware function from the middleware.ts file:

You can refer this page for more information on Next.js Middleware  and for Cookies
If you need help with this issue , feel free to ask for assistance 💬.

I believe this is a solution:
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";

export function middleware(request: NextRequest) {
    const cookiesStore = request.cookies;
    const isLoggedIn = cookiesStore.get("login");
    if (!isLoggedIn) {
        return NextResponse.redirect(new URL("/login"));
    }
}

Forgive me if I am wrong.

Thankyou for your contribution @JBic9832 🙌


$previousState unaware of prevented state transition during $stateChangeStart

I have an AngularJS application, that uses ui-router and ui-router-extras, where some transitions between states are intercepted and redirected to another ones.
So basically, when a $stateChangeStart event is triggered, the app checks if that transition is allowed or needs to be blocked and then redirect the user somewhere else (eg: a login dialog, a missing step in the process, etc...). Transitions can be also cancelled.
The interception works this way:
$rootScope.$on("$stateChangeStart", function(e,to,toParams,from,fromParams){
  if( <mustBeIntercepted> || <mustBeCancelled> ){

    // this prevents the actual state change from happening
    e.preventDefault();

    if( <redirectionRequired> ){
      $state.go( <stateName>, <stateParams>);
    }
  }
});

And this works nicely so far. The problem is that when cancelling a state change, $previousState is not aware of the cancellation, and registers the current one as previous, in the same way that if you do not cancel the transition. So basically $previousState is unaware of the transition cancellation. This causes that when trying to return to the previous state programmatically, it does not move because $state == $previousState.
I created a live demo here: http://plnkr.co/edit/dXjj2iSwDU1DtPMuqW1W?p=preview
Basically, you click on Step1, and then on Confirm, the app will cancel the transition and prompt you if you want to confirm. If you confirm, then it will transit to the originally desired state. Note that in the real app this is not done with confirm but with a custom overlay that cannot block for an answer in the same way that confirm does.
As you will notice, in the top bar there are two labels that show the content of $state and $previousState. If you cancel the confirm prompt, you will see that $previousState changes to "Step1" despite of that the transition didn't happen.

Confirmed, thank you for the bug report.  This is due to relying on ui-router's event system, which is sub-par.  The event system doesn't provide any feedback for when the transition has been cancelled.
I think the issue your use case highlights could be fixed by hooking into the (somewhat untested and mostly undocumented) ui-router-extras 0.0.10 $transitionStart event.  This event is fired in response to $stateChangeStart and exposes the transition promise for the current transition.  The promise should be properly rejected when the transition is cancelled (via evt.preventDefault(), or via a superseding transition) and we can manage the $previousState code in a more readable manner.

Nice. Thanks.


A new button animation for the website

This is a(n):

[ ] Update to an existing Animated Button
[ ] Any Error
[x] Proposal to the Repository
[ ] Documentation / README.md changes

Details:
The button which I'll be adding to the website looks as below:-

Contributor: Sabhi Sharma (GSSOC'23)

@sabhisharma-ise Assigned to you
All the best.
Make sure to ⭐ the repo and follow me.
I would love to connect with you all. ❤
https://www.linkedin.com/in/om-gawande/


[flags/cmd] place common flags into a set of functions that can be called to add them.

without breaking pkg api contracts, allow for common flags to be pulled into function calls that add to a command those flags. Should remove a lot of duplication of code.

Why are we doing this? Also what are we gaining? And why can't we just use PersistentFlags?
I agree that having the S3 flags everywhere is annoying, but I am wondering if having flags for this all together is the right approach. I would prefer to keep the flags in kubicorn to a minimum.
Thoughts?

@kris-nova this is a follow up pr on a few things asked as part of the review process. In particular, here, it was asked if we could call flags to be added via functions instead of having to list the same ones over and over, therefore reduce chance of errors and simplify maintenance. In addition, you will notice that options have been organized in a cleaner manner, so we can establish a nice pattern to follow.
As to your question about having flags being the right approach, im not sure what you're thinking? Personally i would rather have the option of a config file to be used and perhaps the use environment variables. If this is something you think we should do, i think @adnxn is working on adding a config file? As for environment variables, those are there, we can then just remove flags in general. hmmm or perhaps you mean move the flags a layer above individual commands?

Personally i would rather have the option of a config file to be used and perhaps the use environment variables. If this is something you think we should do, i think @adnxn is working on adding a config file?

yes i am, and i think my config changes will cut down on the number of flags we're using here.

As for environment variables, those are there, we can then just remove flags in general.

so yea, I think we're going to move towards just environment variables and config file.

@adnxn @kris-nova feel free to close if we are not going this route. Thanks!

@alejandroEsc I'll check with @kris-nova once again. I think we can get it in, and then decide where to go next.
If you want, you can rebase the PR.


Call Log Not Restoring to Note 5 (Visible in Gmail)

I'm trying to restore my call log (which is backed up to Gmail) to my new phone, a Samsung Note 5.  I was able to restore my SMS messages to my new Note 5, but the call log is not restoring.  I tried restoring only call logs without also restoring SMS messages at the same time, and that did not work.  Any suggestions would be appreciated.

Seems to be a duplicate of https://github.com/jberkel/sms-backup-plus/issues/754
Please double-check that restore call log enabled in the restore settings.


Hec 1135 allow email list

ticket -> https://jira.tools.tax.service.gov.uk/browse/HEC-1135

@AndyHWChung @meghana-viswanath  PR comments addressed here


RemoteTaskRunner: Fix for starting an overlord before any workers ever existed.

If the NoNodeException bubbles up, it'll stop the overlord's leader lifecycle from being able to start up and the overlord will not actually be able to do things.

:+1:

a unit test for this case would be good to have.

Failed on DruidCoordinatorTest.testCoordinatorRun:353->Object.wait:502->Object.wait:-2
Agree with unit test

LGTM, an UT if possible would be nice

@drcrallen @himanshug @nishantmonu51 added a test that fails in master.

:+1:


Fix Adaptive Cards text area & bump Adaptive Cards to 1.2.0

Changelog Entry

Fix #1990. Bump Adaptive Cards & fix textarea font-family from monospace to Web Chat's primaryFont, by @corinagum in PR #2064

Description
We had customers report that <textarea> does not match the Web Chat's host config on Adaptive Cards designer. After investigating, we found that Web Chat was not applying the correct font-family in our Adaptive Card Renderer styling.
Specific Changes

Bump Adaptive Cards
Add styling to Adaptive Cards renderer that changes <textarea> fontfamily to match Web Chat's primary font
Add test

[x] Testing Added

Please update CHANGELOG.md.
It looks good to me.


Does not work on OSX

~  aws-lambda-rie
zsh: exec format error: aws-lambda-rie
✘  ~ 

Binary is compiled only for Linux: https://github.com/aws/aws-lambda-runtime-interface-emulator/blob/main/Makefile#L11, as it is meant to run inside a container on the same OS/Arch as Lambda. So this is intentionally not supported. To test locally, add our mount the binary into a container, as described in the README.

I believe that the initial table is very misleading. I also thought that using some kind of magic the executable was multiplatform. Indeed is not, at it should be, and only Linux is avutally supported. Please state that explicitely and remove the table.


Added keyboard instructions

Summary
What was changed:

Added submenu arrow key navigation instruction context to first item only.
Added selected/unselected instruction instead of checked/unchecked for menu items ( JAWS ).

Why it was changed:

keyboard arrow key navigation instruction is missing in sub menu.
User might got confusion if SR reading checked/unchecked on menu items.

Testing
This change was tested using:

[ ] WDIO
[ ] Jest
[ ] Visual testing (please attach a screenshot or recording)
[ ] Other (please describe below)
[ ] No tests are needed

Reviews
In addition to engineering reviews, this PR needs:

[ ] UX review
[ ] Accessibility review
[ ] Functional review

Additional Details
This PR resolves:
UXPLATFORM-9315
UXPLATFORM-9369

This PR has issue so no longer required


PDF version: some oddities

Looking at the PDF version generated after #12, I've found some things to improve.
I have not looked at the generation process, so I have no idea if they even can be improved at all.

Each page's header has "Introduction", not only in the "Introduction" section.
There are some spurious blank pages (3, 4, 7, 26) – one of them (page 4) is titled "Table of Contents", but is otherwise empty.
The Section titles have same size as the guideline titles.
There should be authorship and copyright mentioned somewhere (e.g. on a title page). I guess this ties in to #7. Maybe also the generation date (and/or commit date/commit ID from which it was generated?)
At some points there is a page break right after a title (e.g. page 18).

@ePaul Do we wanna close this issue because the html version is our main version and improving the pdf version seems to be a lot of effort.

:+1:

@whiskeysierra is this :+1: meant for my list of oddities or for @fmueller's proposal of closing the issue?
@fmueller I guess we decide to not support the PDF, but then we should make this clearer in the links in the README.

Ok, I will do this @ePaul


Add 02-interrupts

The log file is not generated with a known-good emulator!
It's generated by a newly written emulator, just memory, cpu, timers and interrupts are implemented. It passes all cpu_instrs blargg roms.
I know, a file from a known-good emulator would be better but I though I give it a shot, as the executed opcodes and their corresponding log-lines shouldn't be affected by anything other than order and correctness of opcode execution.
Fixes #12
PS: Thanks for this amazing project, it helped me getting everything in order so well! Feel free to close this PR if you insist on using well-known emulator for this.

Makes sense, thank you!

Hi there!
Currently working on my own emulator, so I'd like to add to the thanks here.
Running this specific test, it fails with:

Actually, I'm not sure. I was assuming the test didn't use the flags because I only see jumps conditional on the Z flag but It might be that the checksumming test the flags.

"Forcing" the tests to pass also made the test ROM pass, so... yeah 😅

This log file is missing the first instruction executed after jumping to an interrupt vector.
Example from line 151347, you can see that register A has mysteriously incremented itself and the program counter is one byte past where it jumped to ($0050, the timer interrupt handler)
my log:
A:04 F:10 B:01 C:00 D:C7 E:BA H:90 L:00 SP:DFFD PC:C2C0 PCMEM:05,C2,B9,C1
A:04 F:10 B:01 C:00 D:C7 E:BA H:90 L:00 SP:DFFB PC:0050 PCMEM:3C,C9,00,00
A:05 F:10 B:01 C:00 D:C7 E:BA H:90 L:00 SP:DFFB PC:0051 PCMEM:C9,00,00,00

doctor:
A:04 F:10 B:01 C:00 D:C7 E:BA H:90 L:00 SP:DFFD PC:C2C0 PCMEM:05,C2,B9,C1
// does not print execution of the inc_a (0x3C) instruction here?
A:05 F:10 B:01 C:00 D:C7 E:BA H:90 L:00 SP:DFFB PC:0051 PCMEM:C9,00,00,00

@percentcer The instructions say to log after an executed opcode, did you do that?
If I understand your comment correctly, you miss the opcode executed right after the timer-jump. This will not be visible when logging after opcode executions:

(some opcode is executed)
debug docter log line is printed (A:04 PC:<somewhere>)
timer interrupt happens and sets the PC to 50
cpu ticks (INC A at 50 will be executed)
PC gets increased
debug docter log line is printed (A:05 PC:0051)

One could argue that logging after execution means before the PC is incremented though. But then, all the other tests would fail if you do that (?).

@nitwhiz Sorry, you're right, I take your point (that jump-to-vec isn't really an instruction so we shouldn't print it).
On the other hand, it does seem useful to print it, in order to confirm that the interrupt jump routine is implemented correctly. Perhaps this should be a broader conversation about what gameboy-doctor does and does not print?

This log file is missing the first instruction executed after jumping to an interrupt vector.

I had this exact same symptom in my emulator. In case anyone is hitting the same issue, I fixed it by altering my execution loop to look like the following (pseudocode):
CPU.Step()
{
    PC += 1
    ExecuteInstruction

    if (InstructionWasCB)
    {
        FetchInstruction
        PC += 1
        ExecuteInstruction
    }

    LogState
    HandleInterrupts
    FetchInstruction

    UpdateTimer(elapsedTCycles)
}

The key change for me was to log the CPU state AFTER executing the instruction but BEFORE handling interrupts.
If anyone is wondering why my loop is decode-execute-fetch instead of fetch-execute-decode, it's because I'm following the guidance from this excellent document - https://gist.github.com/SonoSooS/c0055300670d678b5ae8433e20bea595#fetch-and-stuff

this is a bit offtopic, but out of curiosity: why not just let ExecuteInstruction do a fetch&execute if the opcode is 0xCB? this way, you can just PC+1 inside the fetch and keep it more DRY.


Broadcast transactions through tor

I copied your code at https://github.com/JoinMarket-Org/joinmarket/blob/master/joinmarket/peertopeer.py almost verbatim and translated to Python3, as well as https://github.com/JoinMarket-Org/joinmarket/blob/master/joinmarket/socks.py.
It takes a new tor broadcast_method in the config, and you can optionally specify tor_host and tor_port otherwise falls back to localhost:9050. The p2p network messages are different depending on network, so not sure if it'd be worth putting that in the config. Currently hardcoded mainnet and 4 attempts at connections.
Let me know what you think.
Resolves https://github.com/chris-belcher/electrum-personal-server/issues/52.

Thanks for the PR, good job. Here's some thoughts, including some inline comments.

the reject p2p message has been removed, so that part of the code should be removed. We can only depend on the testmempoolaccept RPC call https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.18.0.md#deprecated-p2p-messages
IP addresses returned by getnodeaddresses might be unreachable, so the broadcasting threads should keep trying with new addresses until they find one which works. The RPC call should be called inside the thread so it can keep looping.
The peertopeer.py code has this crash bug https://github.com/JoinMarket-Org/joinmarket/issues/736 which should be fixed. Probably what's needed is to make on_heartbeat() check the timings only after the verack message has been received.
 I think Bitcoin Core uses several minutes.
That file contains code to connect with the DNS seeds. That should be removed because it is unnecessary now that we have getnodeaddresses.
When testing we should make sure that the code works for connecting to .onion addresses.
Edit the file config.cfg_sample to add the new options and explain how to use tor broadcasting.

The peertopeer.py code has this crash bug JoinMarket-Org/joinmarket#736 which should be fixed. Probably what's needed is to make on_heartbeat() check the timings only after the verack message has been received. Edit: Also there needs to be some timeout in case the peer just hangs and never send verack.

I believe I fixed this with with a VERACK_TIMEOUT. https://github.com/chris-belcher/electrum-personal-server/pull/124/files#diff-f0790d116274424a09d45a4fc373217fR353

When testing we should make sure that the code works for connecting to .onion addresses.

I tested this already and it works. ipv6 does not work with this code, however.
Will update with all your other suggestions. Thanks.

I just realized that since Electrum uses segwit we need to set NODE_WITNESS ourselves and only connect to nodes with NODE_WITNESS services. So we should filter the results of  getnodeaddresses to only obtain addresses which implement segwit.
See also: https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki#handshake
Also, I'm in two minds about whether to really set the user agent to /ElectrumPersonalServer:0.1.8/ instead of just /Satoshi:0.18.0/. On the one hand we advertise that we're tor broadcasting which is a reason not to keep it (though that can be easily detected because of our behaviour and that the list of all tor exit nodes is public), on the other hand if lots of EPS user agents end up in the logs of adveraries then then they might lose faith in their analysis and stop doing it. On balance I think it's better to set it to /Satoshi:0.18.0/` and pretend to be Bitcoin Core, because of the steganographic principle: https://en.bitcoin.it/wiki/Privacy#Steganography. Pretending to be Core means that a spy adversary has to do more work to even tell that tor broadcasting is being used, and that can only be a good thing.

VERACK_TIMEOUT increased to 40 seconds still means that if the peer doesn't reply for 40 seconds (whether intentionally or just by being slow) then it will crash one of the threads.

I think I addressed everything with the latest commit. I can squash once you're happy with it.

Note that it takes a while to broadcast on testnet sometimes, since there aren't many listening nodes.

Thanks. I've added some comments.
How long does it normally take to broadcast? It's expected that it will be a bit slower, but ideally it will be as fast as possible. We could try raising TOR_CONNECTIONS to something like 8 or 12 so there are more threads concurrently searching for a working node. When this is merged I'll try to get some power users to try it out on master and see how it works for them and how slow/fast it is. It can also be tested by commenting out the part which actually uploads the transaction, and trying it on mainnet (for free, because your unconfirmed transaction never gets broadcast)

When I hardcoded an onion address it worked almost instantly, since it doesn't have to go through an exit node. Too bad we can't tell listening nodes from getnodeaddresses. Upping TOR_CONNECTIONS might be a good idea.

Updated with your feedback.

Thanks for sticking with it. I think it looks good, I'll try testing it soon.

Edit: maybe its worth having a log.info() message when the transaction is being uploaded, as a feedback for the user.

As soon as a transaction is uploaded it is propagated to the local node within a few seconds at most, so the feedback happens for the user like that. However, as soon as the server is done spawning all the upload threads the user gets a Payment sent information popup. I'm thinking now that maybe it would be better to refactor this to have it remain at the Broadcasting transaction... please wait popup until a successful upload works. But I'll wait for you to test and see what you think.

I tested on mainnet with your suggestion of not actually broadcasting it, and it works much better than testnet. Usually at least 1 of the first 8 tries finds a listening node.

Could you squish this into one commit

Done


Customized RegisterFailHandler

Hi,
I need to retry this command if "aaa" is not found in the scraped page:
gomega.Eventually(page.FindByLink("aaa")).Should(matchers.BeFound())
I have written my own fail handler:
func failHandler(message string, callerSkip ...int) {

}

What must I do in my own fail handler to retry the command and if successfull return to my execute the rest of my script?
I suppose I must use the parameter callerSkip, but How?
Thanks

What command are you talking about? Do you mean any arbitrary command?
With an adequate timeout,
gomega.Eventually(page.FindByLink("aaa")).Should(matchers.BeFound())

will block until the element is found, at which point you can run a command that relies on the element.
Example:
gomega.Eventually(page.FindByLink("aaa"), "10s").Should(matchers.BeFound())
gomega.Expect(page.FindByLink("aaa").Click()).To(matchers.Succeed())

I have read more carefully the documentation and I have inserted the exact command you told me.
gomega.Eventually(page.FindByLink("aaa"), "10s").Should(matchers.BeFound())
It is runnig ok but there is a long sequence of commands before and after the Eventually command. If, for some reason, the link is not found and the Eventually times out I would like to restart the whole sequence of commands.
But after my fail handler is called the execution returns to the line just after the Eventually command. How can I stop the sequence and instead of returning to the next line. How can I, from inside the fail handler, notify the function that was running that I would like to stop it.
Thanks

You could panic in your fail handler, have your method recover from the panic and then re-run your method. There a number of possible solutions to this problem.
This seems more like a general Go question -- Agouti is a small library designed to do one thing well: drive a browser using a WebDriver Wire Protocol compliant WebDriver. It plays very nicely with Ginkgo and Gomega for acceptance testing, but outside of that use case, you'll need to implement your own application flow control logic.

I am sure I could panic and recover. I was just wondering if there was in
agouti something like an error notification or something like that.
I will try a conventional Go solution. like panic/recover or use a channel.
Thank you very much
On Mon, Jun 27, 2016 at 11:50 AM, Stephen Levine<EMAIL_ADDRESS>wrote:

You could panic in your fail handler, have your method recover from the
panic and then re-run your method. There a number of possible solutions
to this problem.
This seems more like a general Go question -- Agouti is a small library
designed to do one thing well: drive a browser using a WebDriver Wire
Protocol compliant WebDriver. It plays very nicely with Ginkgo and Gomega
for acceptance testing, but outside of that use case, you'll need to
implement your own application flow control logic.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/sclevine/agouti/issues/77#issuecomment-228768888, or mute
the thread
https://github.com/notifications/unsubscribe/ABfj5tkg1MHwSnK7ew0QQ1R_L2IQyIwPks5qP-NPgaJpZM4I-Im-
.


update trim.sh script to check packages

@ryanemerson I have made the required changes .

Thanks @pminz


swing support

Adds a swing support, so we can also exposed it in Home Assistant.
Note that the change is longer because of a simple indentation inside _make_request().
The change was tested by using the following script:
import asyncio
from coolmasternet import CoolMasterNet

async def test():
    for key, unit in (await (CoolMasterNet("<IP_ADDRESS>").status())).items():
        print(f"{key}: {unit.swing}")

asyncio.run(test())

Additional explanation about the change:

An async factory function was created for CoolMasterNetUnit since the constructor can't by async.
The factory function gets the additional data requires for the swing mode.
The new flow creates a burst of requests, one per unit. However, there is a limit of 4 concurrent connections on the aserver (based on the documentation). So, we limit the amount of concurrent reads to 3 (to be on the safe side), which is done using the semaphore.

(BTW, I already made the corresponding changes in coolmaster integration at Home Assistant core, but one step at a time.)

(For reference, Home Assistant Core PR can be found here.)

Thanks @OnFreund!

Maybe we should allow forcing a no-swing mode? Deployments without swing are "taxed" both on start, and every time a unit object is instantiated

Disabled swing mode support by default (please let me know if you think it should be enabled by default).

Something feels a bit off about the way units are created with most of the information passed from the outside, and the swing mode queried inside. I'm sure there's a better alternative but I can't think of one

Changed CoolMasterNetUnit.create() to do both reads, unless we already provide the data (optimization).

Thanks @amitfin!

New release here:
https://pypi.org/project/pycoolmasternet-async/0.1.4/


Chef::Provider -> Chef::Provider::LWRPBase

In attempt to solve Chef 12 incompatibilities

I think this is a bug in Chef, not this cookbook. The most recent version of Chef has backwards-incompatible changes. Additionally, this will break the cookbook on Chef 11. Sorry!


Error building Python wrapper

While trying to build the python wrapper, I come across the following error while running ./build.sh.
Oddly though, building StarSpace (non-python) worked fine. Would any be able to direct me to how I could fix this?
In file included from /Users/eugeneyan/otms/Starspace/python/starspace_pybind.cc:1:
In file included from /Users/eugeneyan/otms/Starspace/python/../src/starspace.h:11:
/Users/eugeneyan/otms/Starspace/python/../src/dict.h:22:10: fatal error: 'boost/format.hpp' file not found
#include <boost/format.hpp>
         ^~~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [CMakeFiles/starwrap.dir/starspace_pybind.cc.o] Error 1
make[1]: *** [CMakeFiles/starwrap.dir/all] Error 2
make: *** [all] Error 2```

Nvm, found the issue.
The build process must use boost 1.63.
Had to run this snippet to fix this:
$unzip boost_1_63_0.zip
$sudo mv boost_1_63_0 /usr/local/bin```

Thanks @eugeneyan !
a quick improvement :
unzip boost_1_63_0.zip -d /usr/local/bin


Use 'vanilla' websocket components

Don't merge this PR without a thorough review!
This commit attempts to make our lives easier by removing the custom websocket implementation in Openfire, Strophe, and the clients that make use of Strophe.
Fewer customizations gives us:

less problems upgrading third party components (I got a couple of other idea's too - I'll run them by you later).
less complexity in our code. Helps to maintain stuff, especially when one is not the original author of everything. ;)

This does introduce a dependency on Openfire's Websocket plugin - but I think that's a good trade-off (perhaps something for the future: do we need websockets, or can we use BOSH and optionally use websockets when available?)
I am aware that this potentially touches a lot - hence my warning above.
Tested so far:

Jitsi Meet
Candy

Untested:

fastpath
chrome extension
remote control
... (anything I'm unaware of)

My first question without going through the code changes is how are we now implementing single authentication for webservice and XMPP connection from client?
I would like to prevent user having to enter username/password twice. The current implementation enables the web socket in strophe to use the cached browser authentication. There is a check server-side for the existence of the user authentication in the web service and reused for the websocket. As both are implemented in Jetty, this integration is simple with lots of benefit to the user. No need for XMPP user authentication speeding up the connection time.
We have to address this issue and provide such an integration from the standard openfire websocket in order not to lose this feature.

I thought I had this covered, as I didn't get a second login popup. Turns out that Jitsi Meet does not give you one that visibly. I am indeed not logged in with the XMPP client. Back to the drawing board...
(I did rebase the PR, to account for the other merge)

My last commit should resolve the authentication issue that you raised. As we discussed out-of-band, I've replaced the old implementation with one that lets Jetty register an access token for a user. The web applications then use that token to authenticate.
To authenticate, I've added a new SASL mechanism (which is the preferred authentication solution in XMPP anyway). Through the OFMeet plugin, I've added support to Openfire for that mechanism. Client support has been added by a new plugin for Strophe (which is used by Jitsi Meet as well as by Candy).

Guus, Thanks for doing this. I have however made this change a little more complicated by adding support for Azure AD for users using usernames of type user@domain on release 0.3.20. In your code, you are throwing an exception for this situation.
I will proceed to pull these change request and re-apply the Azure AD support code after I get my head around your changes.
My only misgiving about this change is that default connection behaviour of Openfire Meetings will now be BOSH and Websockets becomes an optional feature.

On 3 May 2016 at 16:15, Dele Olajide<EMAIL_ADDRESS>wrote:

Guus, Thanks for doing this. I have however made this change a little more
complicated by adding support for Azure AD for users using usernames of
type user@domain on release 0.3.20. In your code, you are throwing an
exception for this situation.
I will proceed to pull these change request and re-apply the Azure AD
support code after I get my head around your changes.
My only misgiving about this change is that default connection behaviour
of Openfire Meetings will now be BOSH and Websockets becomes an optional
feature.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/igniterealtime/community-plugins/pull/19#issuecomment-216541883


Add possibility to change blur value.

According to simpleheat docs, heat.radius(r, r2) method receives two arguments:
r - point radius
r2 - blur radius
https://github.com/mourner/simpleheat

This was added in version 1.0.2 of the project. Please upgrade to this version.


x/tools/imports: ability to customize behavior without needing to fork

Currently, the golang.org/x/tools/imports features some internal configuration options to make it possible to adjust it to run (in a limited capacity) in environments where there is no raw filesystem access (for example, App Engine):
// importPathToName returns the package name for the given import path.
var importPathToName = importPathToNameGoPath

// loadExports returns a list exports for a package.
var loadExports = loadExportsGoPath

// findImport searches for a package with the given symbols.
// If no package is found, findImport returns "".
// Declared as a variable rather than a function so goimports can be easily
// extended by adding a file with an init function.
var findImport = findImportGoPath

There's a few code generation files like mkindex.go to help pre-compute static indices of packages for such environments.
However, since those variables are unexported, the only current way to make changes there is to fork the entire golang.org/x/tools/imports package.
It's slightly more convenient in that a new file can be added with init() that overrides the internal variables, but the rest of the package will still be a fork that needs to be maintained and kept up to date.
Feature Request
What do you think about adding a means to override those internal configuration funcs (or provide your own implementations) and pre-computed indices. Perhaps via:
// Or "Context" or "Configuration" or whatever name works best.
type Config struct {
    ImportPathToName func(importPath string) (packageName string)
    LoadExports      func(dir string) map[string]bool
    FindImport       func(pkgName string, symbols map[string]bool) (string, bool, error)
    Stdlib           map[string]string
}

func (c *Config) Process(filename string, src []byte, opt *Options) ([]byte, error) { ... }

// Process formats and adjusts imports for the provided file.
// If opt is nil the defaults are used.
func Process(filename string, src []byte, opt *Options) ([]byte, error) {
    return defaultConfig.Process(filename, src, opt)
}

Or something like that, to make it possible to import golang.org/x/tools/imports and configure it to one's needs, without needing to fork it.
Additionally, it'd be great if the findImport, etc. implementations that currently rely on raw filesystem access and import low level packages like os could be moved into a separate file with a build tag like // +build !nacl to prevent them from being included on systems where those low level packages are not available.
Some context on where I'd like to use this can seen in https://github.com/gopherjs/gopherjs.github.io/commit/40f830c9d55988778ea02cfe00608dc6adf00685, where I had to fork imports and customize for the GopherJS Playground. Since the code runs in a browser, a static index is used, and unused code importing os and sync is removed.

By the way, I think this approach would be bad:
// Or "Context" or "Configuration" or whatever name works best.
type Config struct {
    ImportPathToName func(importPath string) (packageName string)
    LoadExports      func(dir string) map[string]bool
    FindImport       func(pkgName string, symbols map[string]bool) (string, bool, error)
    Stdlib           map[string]string
}

Because it makes internal implementation details a part of the API, making it harder to change.
Perhaps instead of exposing all internal details, imports could use build tags to have a fallback mode where it uses the pre-computed index of standard library for environments without raw filesystem access, and just a way of setting/adding to that pre-computed index.

I suspect the best way to resolve this issue might be to decide that "forking imports is the best way to customize its behavior", because it seems very very hard to come up with a better way.

I'm fine with some Config type, especially if it simplifies our internal Google version a bit.
I'd also want to declare the API as unstable in the package docs so we're free to evolve it as needed for a bit.

Having never seen this issue, I did most of this incidentally when I refactored to create the Resolver interface. I'm not sure that it makes sense to allow users to implement it, though.

As an update from my side, I made this feature request 4 years ago only because the GopherJS Playground needed to fork this package. I haven't had any other need for it since then, and the GopherJS Playground fork isn't costly to maintain.
My suggestion from https://github.com/golang/go/issues/12696#issuecomment-366129328 still stands. Maybe we should close this issue, since there isn't much demand for it? /cc @heschik

to create the Resolver interface

That exists in ./internal/imports, not golang.org/x/tools/imports that this issue is about. I hope it stays that way, to avoid committing to a public API that you can't change.

Yes, I don't think we want to allow users to implement Resolver. Given the lack of other traffic, let's close this.


Clarify Python 3 support

I noticed a PR for Python 3 support was merged (#8), but in 383a7d39088e32cf95411bd2ee7e0dba1809f16c the classifiers were removed. Does this library support Python 3? Or does it still need work?
I'm asking due to this library's listing on http://fedora.portingdb.xyz/pkg/python-requestbuilder/, which tracks the migration towards Python 3 in Fedora. Thanks!

debian use:
https://sources.debian.org/src/python-requestbuilder/0.5.2-2/debian/patches/add-python3-compat.patch/


Casting instance() fails

Here is what I would like to do. For reference, this is the ObjectBox API.
val databaseModule = Kodein.Module {
  bind<Box<Task>>() with provider { (instance() as BoxStore).boxFor(Task::class.java) }
  bind<BoxStore>() with provider { (instance() as App).boxStore
}

Is there any workaround for this issue?

Found a workaround using Java dependency retrieval
bind<Box<Task>>() with provider { (kodein.Instance(TT(BoxStore::class.java))).boxFor(Task::class.java) }

Ok nevermind, you can just use instance<BoxStore>. Closing!


Title attribute gives an error, change to JobTitle

Hello @skouti2, thanks for your contribution. Kindly redo this PR as you created it against the live branch instead of the master branch.

Closing this PR. The changes here have been captured in a new PR #662 .


Add insecure option to requests

I fixed the found Bug in #95 .
Now all requests have the option to skip tls verification.

ah - there was a bump to black that introduced some error. I can fix this for you.


Fix #4241, infer partially annotated function

Fix #4241, and  #6416, #9648, #10850
If a function expression has at least one parameter unannotated or has no parameter, it is contextually typed.
When a function is contextually typed, its annotated parameters are used to infer type arguments of its context. After that , for remaining parameters, they are typed contextually and make their corresponding type parameter from context fixed.
For proposed spec change, see https://github.com/Microsoft/TypeScript/issues/4241#issuecomment-252808171 .

I have encounter a test change in which this is changed in a function with no argument. But that is fixed by enabling inference on functions with no argument.
I also run a simple regular expression search, grep -Pr '\(.*\([^:]+,[^:]+:.+\)' --include='*.ts', on test cases. It seems there are only few cases which has partially contextual typed function.
compiler/fatarrowfunctions and conformance/types/typeParameters/typeArgumentLists/typeParameterAsTypeParameterConstraintTransitively2.ts are two cases.

@HerringtonDarkholme Thanks for your contribution. I like your core idea of initially considering partially annotated function expressions context sensitive and then later inferring from the parameters that actually have annotations, but the implementation has a few issues (I will call those out separately in the code). I'm going to put up a new PR that uses the same core idea, plus incorporates some additional fixes from #11600.

Thanks! Waiting for #11673 !

Great!


[Question] How/Can you use notepads on github remotely?

Hello, How/Can you you use notepads on github remotely?
So, I want to use github remotely with notepads.

I don't quite understand your point, can you provide more context?


[AutoPR datafactory/resource-manager] [DataFactory] add TriggerRuns_Rerun api

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/6342

This PR has been merged into https://github.com/Azure/azure-sdk-for-go/pull/5405


Calculation of overall score

Hi Duo, thank you for your great work.
Regarding the process for selecting the best checkpoint to save, I noticed that you calculate an overall score as follows:
def calc_overall_score(results, cfg):
    score = 0.
    for task in results:
        if task not in cfg.Multi.SOURCE:
            continue
        if task == 'R2R':
            score += results[task]['spl'] / 60
        elif task == 'REVERIE':
            score += results[task]['spl'] / 36.63
        elif task == 'CVDN':
            pass
        elif task == 'SOON':
            score += results[task]['spl'] / 26.58
        elif task == 'EQA':
            pass
        elif task == "ScanQA":
            pass
        else:
            raise NotImplementedError(f"The method for calculating the score of {task} is not Implemented.")

    return score

Could you share the reason behind the chosen normalization values for each task?

Thanks for your question! I choose some previous SoTA performance on the validation set as the normalization for comparing our method with previous SoTAs.

Thanks for your answer.


WIP: Generate tile types, site types, tilegrid, tileconn for entire part

This also verifies that tileconn.json regenerates the same nodes.
This CL failing to generate some dead nodes, but I'm starting to clean up the branch.

110 wires are still not getting including in tileconn, but this is better than it was.  I've added a mechanism to ignore wires.  Some of these wires are important, but they aren't important for MVP.

Can you post some example file outputs?

https://gist.github.com/litghost/b0288ed54f897ae67779a897d827e4fd

      "index_in_site": "4"

What is this? Why do we need it?

      "index_in_site": "4"

What is this? Why do we need it?

We probably don't.  I was trying to extract different bits of data, and that was probably a less useful extraction.

Sort dictionaries to make canonical

    "AFFMUX:F7": {
      "from_pin": "F7",
      "to_pin": "OUT"
    },
    "AFFMUX:CARRY4_MUX": {
      "from_pin": "CARRY4_MUX",
      "to_pin": "OUT"
    },

IMHO it would be much more readable to aggregate muxes

sites are represented in a specific tile type. Any concern about duplicating them across types? Ex: SLICEL in CLBLM_L vs CLBLL_R

      "index_in_site": "4"

What is this? Why do we need it?

We probably don't. I was trying to extract different bits of data, and that was probably a less useful extraction.

Lets remove it then

"src_wire": "CLBLL_LL_CMUX",
"is_directional": "1",
"dst_wire": "CLBLL_LOGIC_OUTS22",

Are there non-directional in 7 series? Suggest sorting src/dst when this occurs to make the output canonical

sites are represented in a specific tile type. Any concern about duplicating them across types? Ex: SLICEL in CLBLM_L vs CLBLL_R

I've specifically written "reduce_site_types.py" to check if sites are common between tiles.  As far as I can tell from site pips and site pins, all sites of a specific type are common across all tiles.  We make this assumption when assembling CLBLM_* vs CLBLL_* tiles, and we now have strong evidence this is true.  It is possible that future parts won't behave this way, but I think that would be suprising.

"src_wire": "CLBLL_LL_CMUX",
"is_directional": "1",
"dst_wire": "CLBLL_LOGIC_OUTS22",

Are there non-directional in 7 series? Suggest sorting src/dst when this occurs to make the output canonical

There are 66 pips that are not directional.

"src_wire": "CLBLL_LL_CMUX",
"is_directional": "1",
"dst_wire": "CLBLL_LOGIC_OUTS22",

Are there non-directional in 7 series? Suggest sorting src/dst when this occurs to make the output canonical

There are 66 pips that are not directional.

It does appear that no PIP's are invertable, but that could be specific to artix7.

    "AFFMUX:F7": {
      "from_pin": "F7",
      "to_pin": "OUT"
    },
    "AFFMUX:CARRY4_MUX": {
      "from_pin": "CARRY4_MUX",
      "to_pin": "OUT"
    },

IMHO it would be much more readable to aggregate muxes

Humans shouldn't be working with these files anyways.  I don't believe any tool (vpr, vivado, nextpnr) are aware of mux's at the database level.  I see no reason to complicate data structure parsing to add muxes to then remove them again.

Just FYI - if @mcmasterg is happy, then I'm happy. Please do merge without waiting / requiring input from me.

Sounds like index_in_site was removed. LGTM


Hotbar command palette + switching

https://user-images.githubusercontent.com/1446224/115190789-3adc2300-a0f1-11eb-9513-6bab2ab626f4.mov
Requires #2551

Added clickable index to prev/next switcher (see bottom left):

Click opens hotbar switch command palette.

While testing hotbar switcher found some issues:

@aleksfront I think most of these issues are because of hotbar-store didn't migrate properly. I'll tweak this PR to have a separate migration step that fixes existing hotbar stores... meanwhile you can just remove the json file before starting the app.

Shouldn't the "fromStore" function do validation to make sure it is in the correct state?

Shouldn't the "fromStore" function do validation to make sure it is in the correct state?

Maybe but not sure if it's good idea to generate uuids on-the-fly if those are missing.. I think it would make more sense to create proper migration that fixes the persistent data here.

Still can't add anything to newly created hotbar. In my case, items can be added to hotbar num 2.

Still can't add anything to newly created hotbar. In my case, items can be added to hotbar num 2.

@aleksfront did you remove the hotbar-store json file? It might be corrupted because initially this PR didn't have migration in place...

@jakolehm Removed hotbar store file and still can't add anything into any of hotbars.

Also I just remembered that in the catalogue, the "Remove item from hotbar" option exists. IMO this is rather confusing (since it would be better to have that on the hotbar item instead). But if we do want it, then it should only be present when the entity actually has a hotbar item.
Further complicating matters it should be possible to have the same entity have multiple hotbar items so would such a button remove all of them?

@jakolehm Removed hotbar store file and still can't add anything into any of hotbars. 🐛

@aleksfront you were right, I haven't pushed all the fixes I had locally 🤦 Should work now.

@aleksfront @nevalla PTAL

LGTM
How user will know what is currently active hotbar, do we show the name anywhere? For example when switching hotbar, the active hotbar could be highlighted or having (active)? WDYT?
In future PR we could also add keyboard shortcuts to easily activate next and previous buttons.

Good points, let's iterate on follow-up PRs 👍

Do we want to allow adding same cluster to hotbar many times?

Do we want to allow adding same cluster to hotbar many times?

I'm not sure, currently we allow. Anyway that decision/change is out-of-scope for this PR 🙂


Module members documentation isn't picked up

Looks like documentation added to module-level members isn't picked up, making them appear to use their initialization value's documentation.
For example, I have a module that documents two globals, __features__ and __version__. Running sphinx-build locally produces the correct documentation, while its Read the Docs page doesn't.

@ericholscher, ping.

I think this issue was closed prematurely as it really exists and documentation doesn't help in fixing it.
I was struggling with this recently and spend many hours digging through sphinx and RTD code and running countless builds in order to understand and find solution.
What happens?
If module has attributes documented using following syntax supported by autodoc:
#: module member FOO documentation as comment
FOO = 1

BAR = 1
"""module member BAR documentation as semi-docstring"""

It should be picked by Sphinx autodoc extension. It was indeed in my local development builds and documentation generated properly when I have used something like:

.. automodule:: mymodule
   :members:

Anyway, the documentation for module members was not generated on RTD build. I have even traced logs for autodoc-skip-member signal to see if it collects my module members. It collected them and even did not skip them.
Why does it happen?
Finally I found explanation. Problem lies in the requirement for autodoc to see sources of the module in order to generate documentation of module and class members. Packages on RTD are by default installed with:
python setup.py install --force

In this case autodoc obviously won't be able to see sources. It will not pick module and class members.
How to solve it?
Surprisingly solution is pretty straightforward: do not install package in development mode. This means disabling the "Install your project inside a virtualenv using setup.py install" option in Advanced settings. The package just needs to be in Sphinx path in order to be imported and documented. This can be achieved by simple sys.path modification in conf.py.
But there is a catch: this won't work for projects implementing extensions, but only for vanilla Python packages that have their requirements properly installed with requirements file. Projects with extensions need to be built and this requires using setup.py script. RTD FAQ entry about having setup script in place other than root already gives a clue to final fix.
Members documentation with autodoc in order to work requires installation in development mode. Fortunately pip already supports specifying filesystem locations as packages installed in "development mode". Instead of doing:
# for package in root
.
# for package in other place
src/or/maybe/even/deeper/

You need to use -e prefix
# for package in root
-e.
# for package in other place
-e./src/or/maybe/even/deeper/

What can be done about that
I think it is worth to reopen this issue in the first place because this problem exists, it in unobvious, it is undocumented, and already few programmers struggled with it without finding any solution.
The easiest thing that can be done is extending FAQ with short problem and solution description. Maybe this FAQ could link to this issue.
Obviously my fix is far from perfection, it depends on relative filesystem paths and can be easily broken if rtd runner implementation changes (e.g. change in cwd for pip command). Anyway using relative paths in requirements file was already mentioned in FAQ as a solution to other issue so I think this is not a big deal.
The best if we could install package in development mode. This could either replace default behaviour of installation command or be another option in Advanced settings. I personally do not care about UX here.
Personally I think that installing in "development mode" could be even a default behaviour. I don't see where it could break anything. Also it would not require extending the documentation/FAQ as it would fix every existing build with such autodoc problem.
Sidenotes
Proof of concept: this line in my project proves that installing the project in development mode solves the problem of undocumented module members.
Other related issues: it seems that installing the project in development mode could also solve other issues like "autodoc order by source" (see: #1162)
Project installation command: I have noticed that project dependencies are installed with pip but the project itself is installed with good old python setup.py install. I think project installation could be replaced with pip call too:
pip install .

It would also make switching do development mode easier:
pip install -e .

This problem should not be Closed.
I am having the exact same issue with both order by source #1162 and not getting class attributes Docstring not working with Read the docs.
There is no clear and working answer.
The Sphinx version is 1.6.2

If this can be solved by installing with pip, we already support that https://docs.readthedocs.io/en/latest/yaml-config.html#python-pip-install

Can someone try https://github.com/rtfd/readthedocs.org/issues/855#issuecomment-415852721? If not, we can consider using the -e option on pip.


Write unit tests for PowerBalancer class

These tests should cover requirements defined by #286.

Done.  Awaiting merge.


Forward selection to next command only if not aborted and without emitting extra output?

Category

[x] fzf binary
[ ] fzf-tmux script
[ ] Key bindings
[x] Completion
[ ] Vim
[ ] Neovim
[ ] Etc.

OS

[ ] Linux
[ ] Mac OS X
[ ] Windows
[ ] Windows Subsystem for Linux
[ ] Etc.

Shell

[ ] bash
[x] zsh
[ ] fish

I'm trying to write a fzf script for installing Ubuntu packages. I'd like to fuzzy search the list of available packages, install on return and abort on Ctrl+C. My first attempt was to implement that using fzf as a pipe:
alias install="
  apt-cache search '.*' | \
  grep -Eo '^[^ ]+' | \
  fzf --bind='ctrl-c:abort' --preview 'apt-cache show {}' | \
  xargs sudo apt-get install"

However, the pipe doesn't stop on abort and so on Ctrl+C apt is still executed. To circumvent this problem, I tried to bind apt to the return key instead of using a pipe:
alias install="
  apt-cache search '.*' | grep -Eo '^[^ ]+' | \
  fzf --bind 'return:execute(sudo apt-get install {})+abort' \
  --preview 'apt-cache show {}'"

Abort works with this, but hitting return emits some output so that the following apt prompt (Do you want to continue? [Y/n]) automatically gets answered with no and so the installation aborts. How can I forward the selection to another command only on return and without emitting extra output?

However, the pipe doesn't stop on abort and so on Ctrl+C apt is still executed

On bash, pipefail option can be used to terminate the whole pipe. I believe zsh has a similar option. Using return:execute to workaround issue doesn't seem like a good idea. You might want to write a proper shell function where you check the exit status of fzf before passing the output of it to the next command.

For all those who come here via a search engine in the future ... xargs has a --no-run-if-empty option.

If the standard input does not contain any nonblanks, do
not run the command.  Normally, the command is run once
even if there is no input.  This option is a GNU
extension.

thanks for that @albohlabs


[connector-mysql] Allow user to pass custom JDBC URL parameters used …

…by MySQL data source.
This issue is linked to https://github.com/ververica/flink-cdc-connectors/issues/674 and https://github.com/ververica/flink-cdc-connectors/issues/622 .
Added 'connection.pool.url.properties' for mysql table source in order to allow user to customize MySQL JDBC URL parameters.
Change log：
docs/content/connectors/mysql-cdc.md
flink-connector-mysql-cdc/src/main/java/com/ververica/cdc/connectors/mysql/source/MySqlSourceBuilder.java
flink-connector-mysql-cdc/src/main/java/com/ververica/cdc/connectors/mysql/source/config/MySqlSourceConfig.java
flink-connector-mysql-cdc/src/main/java/com/ververica/cdc/connectors/mysql/source/config/MySqlSourceConfigFactory.java
flink-connector-mysql-cdc/src/main/java/com/ververica/cdc/connectors/mysql/source/config/MySqlSourceOptions.java
flink-connector-mysql-cdc/src/main/java/com/ververica/cdc/connectors/mysql/source/connection/PooledDataSourceFactory.java
flink-connector-mysql-cdc/src/main/java/com/ververica/cdc/connectors/mysql/table/MySqlTableSource.java
flink-connector-mysql-cdc/src/main/java/com/ververica/cdc/connectors/mysql/table/MySqlTableSourceFactory.java
flink-connector-mysql-cdc/src/test/java/com/ververica/cdc/connectors/mysql/table/MySqlTableSourceFactoryTest.java

@paul8263 The CI failed, please have a look.

Hi @leonardBang ,
I am confused why the CI got a series of errors like Generate Splits for table xxx.xxx error.
It seems that flink-connector-mysql-cdc/src/main/java/com/ververica/cdc/connectors/mysql/source/assigners/MySqlSnapshotSplitAssigner::getNext() method encountered a NPE.

Hi @leonardBang , I am confused why the CI got a series of errors like Generate Splits for table xxx.xxx error. It seems that flink-connector-mysql-cdc/src/main/java/com/ververica/cdc/connectors/mysql/source/assigners/MySqlSnapshotSplitAssigner::getNext() method encountered a NPE.

It's wired, but we need rebase the master to resolve the conflicts

Hi @leonardBang , I am confused why the CI got a series of errors like Generate Splits for table xxx.xxx error. It seems that flink-connector-mysql-cdc/src/main/java/com/ververica/cdc/connectors/mysql/source/assigners/MySqlSnapshotSplitAssigner::getNext() method encountered a NPE.

It's wired, but we need rebase the master to resolve the conflicts

Thanks. I resolved the conflicts and I am waiting to see if the weird thing still exists.


Some parameters of openvpn_server do not appear with /metrics openvpn_exporter

Hi, I have launch docker and in the parameters, I cannot see this:
openvpn_server_client_received_bytes_total
openvpn_server_client_sent_bytes_total
openvpn_server_route_last_reference_time_seconds
openvpn_status_update_time_seconds
My openvpn-status metrics are:
https://pastebin.com/hj9kbZzK
Why don't those parameters appear? I need them for grafana's dashboard

ok, the problem is solved. I need edit the systemd unit for openvpn and add:
--status-version 2
look like this:
ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --status-version 2 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/%i.conf --writepid /run/openvpn/%i.pid
systemctl daemon-reload
systemctl restart openvpn
And now , the metrics are ok.
openvpn_openvpn_server_connected_clients{status_path="/etc/openvpn_exporter/server.status"} 2
HELP openvpn_server_client_received_bytes_total Amount of data received over a connection on the VPN server, in bytes.
TYPE openvpn_server_client_received_bytes_total counter
openvpn_server_client_received_bytes_total{common_name="maykel",connection_time="1584714006",real_address="<IP_ADDRESS>:41889",status_path="/etc/openvpn_exporter/server.status",username="maykel",virtual_address="<IP_ADDRESS>"} 2325
openvpn_server_client_received_bytes_total{common_name="maykel",connection_time="1584714032",real_address="<IP_ADDRESS>:42537",status_path="/etc/openvpn_exporter/server.status",username="maykel",virtual_address="<IP_ADDRESS>"} 10498
HELP openvpn_server_client_sent_bytes_total Amount of data sent over a connection on the VPN server, in bytes.
TYPE openvpn_server_client_sent_bytes_total counter
openvpn_server_client_sent_bytes_total{common_name="maykel",connection_time="1584714006",real_address="<IP_ADDRESS>:41889",status_path="/etc/openvpn_exporter/server.status",username="maykel",virtual_address="<IP_ADDRESS>"} 8666
openvpn_server_client_sent_bytes_total{common_name="maykel",connection_time="1584714032",real_address="<IP_ADDRESS>:42537",status_path="/etc/openvpn_exporter/server.status",username="maykel",virtual_address="<IP_ADDRESS>"} 15937
HELP openvpn_server_route_last_reference_time_seconds Time at which a route was last referenced, in seconds.
TYPE openvpn_server_route_last_reference_time_seconds gauge
openvpn_server_route_last_reference_time_seconds{common_name="maykel",real_address="<IP_ADDRESS>:41889",status_path="/etc/openvpn_exporter/server.status",virtual_address="<IP_ADDRESS>"} 1.584714014e+09
openvpn_server_route_last_reference_time_seconds{common_name="maykel",real_address="<IP_ADDRESS>:42537",status_path="/etc/openvpn_exporter/server.status",virtual_address="<IP_ADDRESS>"} 1.584714096e+09


Use appveyor to test on windows

http://www.appveyor.com/

Neat service, would like to investigate it further :+1:
Concerns:
sensu-build on windows requires a suite of tools be installed, such as WiX etc.

Perhaps this issue would best belong in https://github.com/sensu/sensu-build?

Could be.  I didn't see that :)
B mobile phone

On Oct 19, 2015, at 4:20 PM, Sean Porter<EMAIL_ADDRESS>wrote:
Perhaps this issue would best belong in https://github.com/sensu/sensu-build?
—
Reply to this email directly or view it on GitHub.

Closing due to inactivity. Please feel free to create a new issue in sensu/sensu-build if this matter is not resolved. #monitoringlove

@calebhailey Thanks.  I actually don't use windows myself, but IIRC was just looking at other issues :)


Chore/authMiddleware

Added Auth Middleware to all routes.
Resolves issue #15
https://trello.com/c/W7et2dpH/86-transaction-routes-should-be-authenticated

 Transaction Routes should be Authenticated

So the auth was commented out that's why I was getting the error. Somebody must have commented it out because with auth not commented out the transaction tests weren't passing. But all that needed to be done was to mock the middleware in the test.


node-motoko causes syntax error

For some reason there is a syntax error when trying to incorporate node-motoko: https://github.com/dfinity/node-motoko.
Azle code like the following will create the error:
import { Query, Update, nat64, blob } from 'azle';
import { Motoko } from 'motoko/versions/latest/moc.min.js';
// import Motoko from 'motoko';

let count: nat64 = 0n;

export function readCount(): Query<nat64> {
    return count;
}

export function incrementCount(): Update<nat64> {
    count = count + 1n;

    return count;
}

export function compile_motoko(): Query<blob> {
    const source =
        'actor { public query func example() : async Text { "Hello" } }';

    Motoko.saveFile('Main.mo', source);
    const result = Motoko.compileWasm('ic', 'Main.mo');

    console.log(result.code.wasm); // Uint8Array(...)

    return result;
}

Error:
expected token 'identifier', got 'of' in binding identifier at line 612, col 27628

Also Azle needs to use r##"## or some other sequence of ##, because node-motoko has a "# in a case statement. I fixed this locally in Azle 0.7.0, but Azle 0.8.0 will need the fix as well since we changed that mechanism.

We probably also need the Wasm binary limit to be lifted in order to get this to work, considering the size of the  Motoko JS code is rather large


Exploring Local Execution Without API Keys: A Query into Alternatives for addphoto.py

@parthgupta1208 @abhijeet-shankar @Sounacc
I intend to run this locally without relying on API keys for both the Google Image Search API and the Google Cloud Vision API. Could you elaborate on the substitute for the addphoto.py file?

Use bing-image-downloader or google_images_download, that downloads from Bing,Google search engine.
Steps:(for Bing)
Step 1: Install the library by using: pip install bing-image-downloader
Step 2:
(Sample)
from bing_image_downloader.downloader import download
query_string = 'AddQuery'
download(query_string, limit=1000,  output_dir='dataset', adult_filter_off=True, force_replace=False, timeout=60, verbose=True)

That's it! All you would need to do is to add your image topic to the query_string and modify the functions as needed.
Note: API method is recommended for accurate results.

@abhijeet-shankar @parthgupta1208 @Sounacc
also I'd like to integrate a local language model (LLM) into this file instead of the gpt.py file. Could you please provide the Python file and instructions for incorporating it into the prompt for summarization?

@Versha111 You can simply install ollama and run a local llama-70b, call it directly in a python file using langchain and recieve its output where you are retrieving the gpt output as of now
from langchain_community.llms import Ollama

llm = Ollama(model="llama2")

def gpt_call(user_prompt):
    return llm.invoke(user_prompt)

This thread might help you
Feel free to contact for relevant info ...


Maintain multiple configurations in localStorage

Currently, localStorage can only contain one RP configuration, but this configuration is specific to the IDP and the redirect URI. If any of these are different, a new RP is created (which was introduced to fix #54). This potentially creates a lot of RP entries on the server.

Much needed.  I think I've been running into this alot today.
Will create reproducible steps if I can nail them down.

@melvincarvalho You will not run into any visible problems anymore after #54. But the consequence of that fix is that many RPs are created under the hood. It will work—it's just not efficient.


[FEATURE]: STORED PROCEDURES/FUNCTIONS support in schema, migrations, introspection.

Describe what you want
There are other requests for calling stored procedures, but we're also missing the ability to declare them in schema.
"Good" solution
How about custom SQL migration blobs?
Something like:
// schema.ts
import { migrationSql } from "drizzle-orm/pg-core";

export const myFunction = migrationSql(
  // an UP migration statement
  sql`CREATE OR REPLACE FUNCTION my_function()
  RETURNS NUMERIC AS $$
  BEGIN
      RETURN 1;
  END;
  $$ LANGUAGE plpgsql;
  `,
  // DOWN migration statement
  sql`DROP FUNCTION my_fuction`
);

"Better" solution
// schema.ts
import { pgFunction, text } from "drizzle-orm/pg-core";

export const myFunction = pgFunction<number>(
  "my_function", // name
  { someArg: text('some_arg') },  // arguments
  // function body
  sql`
    RETURNS NUMERIC AS $$
    BEGIN
        RETURN 1;
    END;
  `,
  { // options
    language: 'plpgsql',
    parallel: 'safe'
  }
);

"Best" solution
Same as above, but with builder pattern for the implementation. Probably an overkill...

Duplicate of #168. Please repost your suggestions there, it's easier to track everything related under the same issue.


Updating nip06 privateKeyFromSeedWords function

This pull request updates the nip06 function privateKeyFromSeedWords().
Previously, you were only allowed to get one private key from a seed phrase. I added the optional parameters "account", "change" and "index" which allows you to derive many private keys from one seed phrase.
The parameters are optional, and this change should be backward compatible.

NIP-06 only specifies account, the other parameters are hardcoded to 0.


Release Google.Cloud.Monitoring.V3 version 2.2.0

Changes in this release:

Commit 0790924: fix: Add gRPC compatibility constructors
Commit 0ca05f5: chore: Regenerate all APIs using protoc 3.13 and Grpc.Tools 2.31
Commit 6bde7a3: docs: Regenerate all APIs with service comments in client documentation
Commit f83bdf1: fix: Apply timeouts to RPCs without retry

Created release for Google.Cloud.Monitoring.V3-2.2.0


Make lts themes forward compatible

Recently in Gscan, the {{image}} errors were changed from non-fatal errors to fatal errors
To enable a smoother transition to 1.0 we want to make it possible to use {{feature_image}}, {{cover_image}} and {{profile_image}} on lts blogs
This involves registering the helpers in lts as an alias of {{image}} and adding fake attrs to the various post, tag and author model to enable conditionals checks to function correctly.

@cobbspur is there a reason why this issue is not closed yet?

@AileenCGN No, this happens sometimes.
Closed via https://github.com/cobbspur/Ghost/commit/2fc0ba42afce56d34df96c436dfe61d207accceb.


when I listen to music it doesn't create a playlist

it only just plays one track, is there ways to play whole playlist?

I'm not sure, CLIFlix just passes the torrent to WebTorrent, you want to look at what option it supports here: https://github.com/webtorrent/webtorrent-cli#usage.


how do we utilize multiple GPUs?

Multiple GPU training is not supported in this implementation. For model parallelism, you can consult the Google NMT model official site for details; for data parallelism, you might need to use Estimator or something similar to reach the goal.

Is there support for data

Thank you


Scrolling from bottom to top

Hello,
We’re trying to develop an order book for trading, and we are using two tables. One for buy orders and another for sell orders.
Here is a screenshot of an example:
https://puu.sh/AUM2i/4976cd00aa.png
The buy table scrolls down as normal, as it starts from lowest price down to the highest price.
The sell table should scroll from bottom (low price) to the top (high price).
Can anyone suggest a method of making the scroll being opposite, instead of scrolling down, for it to start at the bottom and allow scrolling up?
Thanks

Are you merely asking how to programmatically set the scroll position to an arbitrary position?

Not just to set at an arbitrary position, but rather make that the default position. So let’s say it’s set at the very bottom of the table, if a new item is added to the very bottom, the scroll bar should not move up, but rather stay at the very bottom.

to set scroll to bottom after setting up grid data:
grid.setData(....); // or however you're setting up your grid data
grid.setVScrollValue(Infinity);

after doing your add row (however you're doing it):
// add row here
grid.synchronizeScrollingBoundaries();
grid.setVScrollValue(Infinity);

Hello joneit,
We have been trying to implement your solution but we can't get it to work:
grid.setVScrollValue(Infinity);
Here is the code we're using:
grid.setData(data); grid.setScrollingNow(true); grid.setVScrollValue(Infinity); grid.setVScrollbarValues(Infinity);
It doesn't seem to do anything on our end, and it doesn't throw an error either.
We had no luck using absolute values either.

I played with this some more and confirmed that grid.setVScrollValue(Infinity) is not reliable. Use the following alternative (at least until the other solution is fixed):
grid.sbVScroller.index = g.sbVScroller.range.max

I will keep this ticket open.


Combine efforts?

Hi; have been watching your space to see when you'll start supporting Skoda (would be really cool!).  In the meantime other developers have created this project that mimics the new myskoda API, so you might want to leverage their work:  https://github.com/skodaconnect/myskoda
Good luck with your project!

Thank you, I was not aware of this. I figured it out now on my own :) anyway good to see more people are developing.


MS Graph Groups and Users (Independent Publisher)

When submitting a connector, please make sure that you follow the requirements below, otherwise your PR might be rejected. We want to make you have a well-built connector, a smooth certification experience, and your users are happy :)
If this is your first time submitting to GitHub and you need some help, please sign up for this session.

[X] I attest that the connector doesn't exist on the Power Platform today. I've verified by checking the pull requests in GitHub and by searching for the connector on the platform or in the documentation.
[X] I attest that the connector works and I verified by deploying and testing all the operations.
[X] I attest that I have added detailed descriptions for all operations and parameters in the swagger file.
[X] I attest that I have added response schemas to my actions, unless the response schema is dynamic.
[X] I validated the swagger file, apiDefinition.swagger.json, by running paconn validate command.
[X] If this is a certified connector, I confirm that apiProperties.json has a valid brand color and doesn't use an invalid brand color, #007ee5 or #ffffff. If this is an independent publisher connector, I confirm that I am not submitting a connector icon.

If you are an Independent Publisher, you must also attest to the following to ensure a smooth publishing process:

[X] I have named this PR after the pattern of "Connector Name (Independent Publisher)" ex: HubSpot Marketing (Independent Publisher)

[X] Within this PR markdown file, I have pasted screenshots that show: 3 unique operations (actions/triggers) working within a Flow. This can be in one flow or part of multiple flows. For each one of those flows, I have pasted in screenshots of the Flow succeeding.

[X] Within this PR markdown file, I have pasted in a screenshot from the Test operations section within the Custom Connector UI.

[X] If the connector uses OAuth, I have provided detailed steps on how to create an app in the readme.md.

Hi @jagjani03,
Congratulations on your new submission!
You need to sign the CLA before we can start the review process.
After this step is done our Certification Engineers will review your submission within 1-2 weeks.
Please let us know if you have any questions.
Thank you very much for working with us.

[[certify-connector]]

Hello @jagjani03,
I hope you are doing well.
Congratulations, your connector is approved. We will move forward with the certification process. We are preparing your connector for production deployment and will queue up for the next deployment schedule. Once your connector onboards the next deployment schedule, it starts to deploy your connector in our production environments that typically takes 3-4 weeks.
Please let us know if you have any questions.
Thank you very much for working with us.

@jagjani03 We are preparing your connector for production deployment and will queue up for the next deployment schedule. Once your connector onboards the next deployment schedule, it starts to deploy your connector in our production environments which typically takes 3-4 weeks. Please note that the documentation for your connector will not be generated until the deployment process is in the final steps. Thanks.

@sriyen-msft Thank you!

Hello @jagjani03,
I hope you are doing well.
Congratulations, the deployment of your connector and documentation page was already completed, We have a short survey on the connector certification process that we would like for you to complete. Your feedback is appreciated and will help us improve the program.
Thank you very much for working with us.


Request for loser field in knockout match objects

Hey there,
Thanks a lot for this great data source!
I've got a request for the knockout matches objects, example:
"round_16": {
    "name": "Round of 16",
    "matches": [
    {
        "name": 49,
        "type": "qualified",
        "home_team": "winner_a",
        "away_team": "runner_b",
        "home_result": null,
        "away_result": null,
        "home_penalty": null,
        "away_penalty": null,
        "winner": null,
        "date": "2018-06-30T17:00:00+03:00",
        "stadium": 11,
        "channels": [
            4,
            13,
            15
        ],
        "finished": false,
        "matchday": 4
    },
    ...
}

It's nice that the winning team's id will be set as the winner field. However, if one wants to determine the loser, they need to recursively go back through other matches and group winners/runner ups in order to find who the losing team was.
I would propose adding a loser field that gets populated with the losing team's id to avoid having to do all this recursion back through the data.
Example:
{
    "name": 49,
    "type": "qualified",
    "home_team": "winner_a",
    "away_team": "runner_b",
    "home_result":  5,
    "away_result":  3,
    "home_penalty": 0,
    "away_penalty": 0,
    "winner":  1,
    "loser":  7,
    "date": "2018-06-30T17:00:00+03:00",
    "stadium": 11,
    "channels": [
        4,
        13,
        15
    ],
    "finished": true,
    "matchday": 4
}

Thanks!

There are only 1 game where the loser is actually needed. So I cant see why this should be part of it.

In the very least, I think this field should be on the semi finals matches. It would really help.


Implement parallel?

Go test suites offer built in parallelization - we should do our best to use.

make test implicitly uses parallelism, see the "BUT" part of this answer: https://stackoverflow.com/a/58987438
make integration-test has -p 1 for now still, since I've seen flakiness with parallelised integration tests

Remember that Go offers two types of parallel when running tests --p for running multiple test packages at the same time and -parallel for running multiple tests at the same time. I presume this is about using the -p flag?


Added typescript support and type declarations

Motivation: use this library in typescript projects

Thank you for your PR! It will be merged and released to new version. However, before merging, can you fix code-styles to fit standard?

Yes, of course. Thank you for your fast feedback.

No problem! Thank you for doing my favor. Now it will be merged right now.


⚠ Bofrost.lu has degraded performance

In 6d83b17, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 913 ms

Resolved: Bofrost.lu performance has improved in 4c43f16 after 10 minutes.


Always getting "not adding command *" message, after customizing ddev default commands

Every time I start a ddev  command I get this message on first line:
not adding command typo3 (/Volumes/Development/TYPO3SRC/...) because it was already added to project t3-project not adding command typo3 because it was already added to project
I need to add my customized typo3 command to command/web folder, because there is a not default path to the typo3 command in my project.
Is there a way to remove this message?

Hi @robiasto -

The easiest way to solve this is to make your changes to the global ~/.ddev/commands/web/typo3 script instead of adding it to the project. (Don't forget to remove the "#ddev-generated" line at the top of the script). ddev v1.16+ has a built-in typo3 command, as you already know.
You might consider just adding to the in-web-container $PATH instead of changing the typo3 command. It's not hard.

You can add to the $PATH using a docker-compose.path.yaml, see https://ddev.readthedocs.io/en/stable/users/extend/custom-compose-files/#docker-compose42yaml-examples
You can add to the path using a .bashrc added in .homeadditons (global or project)
Starting v1.17.0-alpha3, you can set environment variables like $PATH in the config.yaml

On a side note - where does your project put the typo3 command in the web container? Should we be adding more to the default PATH?

Hi @robiasto -

The easiest way to solve this is to make your changes to the global ~/.ddev/commands/web/typo3 script instead of adding it to the project. (Don't forget to remove the "#ddev-generated" line at the top of the script). ddev v1.16+ has a built-in typo3 command, as you already know.
You might consider just adding to the in-web-container $PATH instead of changing the typo3 command. It's not hard.

You can add to the $PATH using a docker-compose.path.yaml, see https://ddev.readthedocs.io/en/stable/users/extend/custom-compose-files/#docker-compose42yaml-examples
You can add to the path using a .bashrc added in .homeadditons (global or project)
Starting v1.17.0-alpha3, you can set environment variables like $PATH in the config.yaml

On a side note - where does your project put the typo3 command in the web container? Should we be adding more to the default PATH?

Thanks, that works.

Thanks, that works.


Certificate expired (letsencrypt script probably broken)

Just a heads up, the website certificate has expired: https://www.controlplaneapp.com/

Valid as of 2018-06-20. https://www.ssllabs.com/ssltest/analyze.html?d=www.controlplaneapp.com&latest
@dustinrue you can close this.

yes, works now


Repo root is not detected in archetype 19

With the change in [1] to the aem-maven-archetype the repo root is not detect anymore in the plugin.

[1] https://github.com/adobe/aem-project-archetype/commit/20cf62ba0e8ad466f31973d8cc2c45df37c15c87

I've noticed it works from version 17 and lower. I am getting the same issue with version 18 where it only recognizes "src/main/resources" instead of "src/main/content".

This should be fixed by https://issues.apache.org/jira/browse/SLING-9117.


Commented code missing commas

Challenge http://freecodecamp.com/challenges/waypoint-build-javascript-objects has an issue.
The commented code sample at the top of the challenge is missing commas between properties.

And on this challenge, too.
http://freecodecamp.com/challenges/waypoint-manipulate-javascript-objects


Upgrading to latest version 8.5.1 doesn't add the references in the project

I wanted to upgrade from 7.5.0 to 8.5.0 (and also tried 8.5.1) using Nuget. However, after I do so, the references are not added to the project. The package is however listed in my packages.config.

checking

Package 8.5.0 had a problem. This is the reason why is not any more present. However, package 8.5.1 is ok. It contains the needed dll:

Can you try to remove SqlTableDependency from your project and than add again?

I removed 7.5.0 from the project and installed 8.5.1. Only TableDependency.SqlClient.dll is added to the references. TableDependency is missing.

This is what you need. Starting from version 8.x only one DLL.
Of course, your old project will not compile any more, because you must adjust using directive.
I suggest you to remove all using TableDependency.xxx statement, and follow Visual Studio suggestion to add new using statements.

Problem solved.


Regent: Image returns unexpected result for subregions with sparse index spaces

import "regent"

local c = regentlib.c

fspace Entry {
  idx:int2d,
  val:double
}

task main()

  var entries = region(ispace(int2d, {4, 1}), Entry)

  entries[{0, 0}].idx = {1, 0}
  entries[{0, 0}].val = 1

  entries[{1, 0}].idx = {2, 0}
  entries[{1, 0}].val = 1

  entries[{2, 0}].idx = {3, 3}
  entries[{2, 0}].val = 4

  entries[{3, 0}].idx = {12, 4}
  entries[{3, 0}].val = 5

  var epart = partition(equal, entries, ispace(int2d, {1, 1}))
  var part = image(entries, epart, entries.idx)

  for color in part.colors do
    var r = part[color]
    for i in r.ispace do
      c.printf("Color: %d %d I: %d %d\n", color.x, color.y, i.x, i.y)
    end
  end

end

regentlib.start(main)

The above example prints the following:
Color: 0 0 I: 1 0
Color: 0 0 I: 2 0

I expected the subregion {0, 0} to contain all the points from the original region. However, it appears the points {3, 3} and {12, 4} are missing and are not contained in the partition at all.

This is not a bug. The runtime automatically prunes points that fall outside the destination index space being partitioned for image. (3,3) and (12,4) are points that are not contained in the 'entries' index space which ranges from (0,0) to (4,1) and so they are automatically pruned.

It's worth noting that the same pruning also occurs for preimage and partition by field dependent partitioning operations also.

I see what to do. Thanks!


Point scaladoc source links to the master branch

This is also broken, in the opposite direction, on release-0.16.x...which was master before cats took it over.   But this fixes master, so LGTM.

Do we want this, or is this going to be obsoleted by the ongoing sbt-git discussion?

I will update this PR if it's ok.


Video dynamic height issue

How I can set dynamic video height, please help. Don't want fixed height.

I want to resize the video height in recyclerview, how is it possible?

the controller height  or the videoImage height?

no I mean to say JZVideoPlayerStandard height, which is fixed 200dp

yes its in xml height 200dp, but I want to set wrap content, and height will be set as per video height.

screenshort show me the effect.

Right now the video height is 250dp, 1st video is in landscape, so its showing black strip top and bottom. 2nd video is in portrait, so its showing black strip on left and right side. but I want to show the as per the video height, no black strip no fixed height, no crop or fill parent screen, like as facebook, so is it possible?

You can calculate the controller height and set the height in the code.

You should try , Demo do not have the feature.

@koushik16github @lipangit -
I also want to set the height of the video height dynamically instead of hardcoding to 250dp in xml. Did you find a solution for this?

In XML height=wrapcontent. set the height  in your code.------------------ 原始邮件 ------------------
发件人<EMAIL_ADDRESS>发送时间: 2019年5月14日(星期二) 晚上10:29
收件人<EMAIL_ADDRESS>抄送: "Nathen"1066666651<EMAIL_ADDRESS>主题: Re: [lipangit/JiaoZiVideoPlayer] Video dynamic height issue (#1987)
@koushik16github @lipangit -
I also want to set the height of the video height dynamically instead of hardcoding to 250dp in xml. Did you find a solution for this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@lipangit - The video player (and thumbnail) heights and widths cannot be reassigned in code. Only the height/width ratios can be edited.
Can you please give me an example of how to do this?
thank you for your response.

@lipangit - The video player (and thumbnail) heights and widths cannot be reassigned in code. Only the height/width ratios can be edited.
Can you please give me an example of how to do this?
thank you for your response

@lipangit - thank you so much.
This solution assumes that I have the height of the video. Since the video is not downloaded, I do not know the height.
Is there anything I can do if I do not know the height of the video in advance?

Server get the video height, and give you.

ok, thank you so much for your help.


common-spectrum could also provide basic getAnnotations

something basic as
export function getAnnotations(peaks, options = {}) {
  const { fillColor = 'green', strokeColor = 'red', creationFct } = options;

  if (!peaks) return [];
  let annotations = peaks.map((peak) => {
    let annotation = {
      line: 1,
      type: 'rect',
      strokeColor: strokeColor,
      strokeWidth: 0,
      fillColor: fillColor,
    };
    if (creationFct) {
      creationFct(annotation, peak);
    }
    createAnnotation(annotation, peak, options);
    return annotation;
  });

  return annotations;
}

function createAnnotation(annotation, peak, options = {}) {
  const { showAssignment = true, assignmentAngle = -45 } = options;
  let labels = [];
  let line = 0;

  if (showAssignment) {
    labels.push({
      text: peak.assignment,
      size: '18px',
      angle: assignmentAngle,
      anchor: 'left',
      color: 'darkred',
      position: {
        x: peak.x,
        y: peak.y,
        dy: `${-15 - line * 14}px`,
      },
    });
    line++;
  }

  annotation.labels = labels;

  annotation.position = [
    {
      x: peak.x,
      y: peak.y,
      dy: '-10px',
      dx: '-1px',
    },
    {
      x: peak.x,
      y: peak.y,
      dy: '-5px',
      dx: '1px',
    },
  ];
}

For the uv-spectrum and ir-spectrum packages this is already in place but only in js.
Can you please integrate - this is really useful staff.
Many thanks!


Inspect pdf output files

There should be an option to open the pdf file of a recipe regardless of the current OS. And a button for it.

It works on Windows just fine.


how can i set maxDate and minDate

How can i enable  maxDate and minDate

There are no this functionalities.. @manojbhardwaj


feat: added Python 3.10 support

Added a dev container for testing, if it is running with Python 3.10.X

Container is only used for running library_test.py
git and local tests are not configured and usable

Updated poetry.lock
Added Python 3.10 in github CI
Allowed Python 3.10 in pyproject.toml

Dev Container Python 3.12 is used for git and running local tests.

Hi @sven-ruess , while I agreed on re-adding 3.11, I think that 3.10 is not worth.

I agree to you. I do not want to add it. But two customers found the information, that I doing some coding here and they asked why? I told them, that this library will be the base for monitoring Vodafone Stations. With that information, they requested me to support it for them, too.
The problem is, that they were running old software versions. The plan is to do the upgrade in autumn next year. Until this I need support for Python 3.10.
Changes for Python 3.10 are very small. They can be reverted at the end of next year. I can set a reminder for me to drop Python 3.10 support until software is updated.


SP4 Text: Expose LastRenderRectangleCoordinates

Issue 2994. Make Text.LastRenderRectangleCoordinates public

This pull request looks great @DaveMartel, thanks so much!
I'm going to merge this now and this change will be in the next release 🚀


cmovie.py yields TypeError for NoneType

fts is apparently type None.

cmovie fixed to exit when there aren't enough images to make a time-lapse


react app basic setup created.

In this pull request:

React app basic setup created.
Linters added.

STATUS: INVALID CODE REVIEW REQUEST 🛑 🛑
Hi @DilsherB,
While you made a great effort in this project, unfortunately, I cannot proceed to review your code.
Invalid Code Review Request
Kindly format your README using the Microverse template. Ensure you remove the logo and descriptive hints. All main headers should be present, only FAQ section is optional,
Your Code Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear. And please, remember to tag me in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

Invalid Code Review Request does not count into the code reviews limit.

HI, @TedLivist
I think readme supposed to be updated after doing some development.
At this point of time no need to update readme
But definitely I'll update it later on.


Fix Tokenscript Persistence

Initiate asset map reload if OS has scavenged it. This happens if user pages out, performs a memory intensive task like looking at a map or playing a game then paging back in. Previously, if OS scavenged the asset map the user would now be looking at a blank token instead of the tokenscript view or iconified.

Refactor mapping to use the more efficient SparseArray (as recommended practice).

@JamesSmartCell will this cache values which may have updated in the meantime?

@James-Sangalli that's not the purpose of this PR, this is only to refresh the file map so any TS enabled token that's being used will be displayed correctly; RE cached values, currently any cached values will be updated if any transactions have been written to the contract. This is in lieu of an event listener and parser.