Programming exercises: Enable static code analysis for Xcode

Checklist
General

[x] I tested all changes and their related features with all corresponding user types on a test server.
[ ] This is a small issue that I tested locally and was confirmed by another developer on a test server.
[ ] Language: I followed the guidelines for inclusive, diversity-sensitive, and appreciative language.
[x] I chose a title conforming to the naming conventions for pull requests.

Server

[x] I followed the coding and design guidelines.
[ ] I added multiple integration tests (Spring) related to the features (with a high test coverage).
[ ] I added @PreAuthorize and checked the course groups for all new REST Calls (security).
[ ] I implemented the changes with a good performance and prevented too many database calls.
[ ] I documented the Java code using JavaDoc style.

Client

[x] I followed the coding and design guidelines.
[ ] I added multiple integration tests (Jest) related to the features (with a high test coverage), while following the test guidelines.
[ ] I added authorities to all new routes and checked the course groups for displaying navigation elements (links, buttons).
[ ] I documented the TypeScript code using JSDoc style.
[x] I added multiple screenshots/screencasts of my UI changes.
[ ] I translated all newly inserted strings into English and German.

Changes affecting Programming Exercises

[x] I tested all changes and their related features with all corresponding user types on Test Server 1 (Atlassian Suite).

[ ] I tested all changes and their related features with all corresponding user types on Test Server 2 (Jenkins and Gitlab).

[ ] -> not relevant

Motivation and Context

This PR introduces Static Code Analysis for iOS programming exercises (Programming Language: Swift, Project Type: Xcode). It is done with swiftlint, like for plain Swift exercises. But in the case of iOS programming exercises fastlane is used to configure the SCA task on the build agents build plan.
It is necessary to give the instructor the possibility to configure the static code analysis in the exercise creation process. This means that there is a checkbox shown to enable the SCA and if it is ticked a text field is shown to specify the penalty, exactly as it is done for other programming languages and project types.
The build plan needs to have have a final task called for the SCA. It should contain the creation of the necessary target directory, the configuration necessary for fastlane as well as the fastlane sca command to run the static code analysis (shown in video 1).
The build plan should also specify an artifact called swiftlint with the result of the SCA (shown in video 2).
The results displayed on Artemis not only shows the amount of passed test cases but also the amount of static code analysis issues. This is shown on the exercise overview page (screenshot 1 & 2). In the online code editor (for the instructor) the SCA issue is reported in the corresponding line (screenshot 3).
Description

I adapted the UI in the exercise creation process to show the checkbox and afterwards the text field.
I adapted some internal SCA verification for Xcode.
I added a final script task to the build plan for iOS programming exercises to execute the static code analysis.
I added a new lane for executing swiftlint and saving the result in a predefined file to the existing fastlane configuration.
Steps for Testing

Prerequisites:

1 Instructor
1 Student
TS1 is required!

Log in to Artemis as Instructor
Navigate to Course Administration
Create a new programming exercise
Select Swift and Xcode
See the SCA checkbox and tick it
See text field and enter value
Finish exercise creation
Check build plans (see videos 1 & 2)
Check results (screenshots 1-3)
Open the online code editor as instructor (click 'edit in editor'-button)
Select any .swift file and enter more than one empty line after a { and submit the code.
Wait for the build plan to run
Check that a new issue occurs in the result saying that there are too many empty lines.

If you want to test the student side regarding the results of the SCS (which will not differ from the instructors side) you need a Mac with a Xcode installation. You need to start the exercise as a student, clone the repository, open it in your local Xcode installation enter one or more SCA issues (see step 11) and push the changes. Afterwards you need to wait for the build plans execution. Last but not least you can see the results as in step 13.
Review Progress

Code Review

[ ] Review 1
[ ] Review 2

Manual Tests

[ ] Test 1
[ ] Test 2

Screenshots

Screenshot 1:

Screenshot 2:

Screenshot 3:

Video 1:
https://user-images.githubusercontent.com/82283581/151281075-4a0f7650-8c34-4e9c-ae1d-5a396d65b421.mov
Video 2:
https://user-images.githubusercontent.com/82283581/151281292-cdc17ae4-6536-4e97-bdde-cd6b887950a1.mov

I have tested the instructors' side of this PR manually on TS1 and I believe I found certain issues.

When checking the results on the exercise's page, the template result shows no code issues, even though they exist and are shown when you click on the result (look at the next 2 screenshots).

Template build plan is looking good (compared with provided videos), but there are certain problems with the builds for the solution. As you can see in the next two screenshots, the build for the solution fails after creating the exercise, but also after updating the solution with the Edit in Editor button.

I am not the expert, but I noticed that the Solution build plan is missing artifacts shown in the second video (and the Template build plain contains these), so I'm providing the next screenshot in case it helps.

What is working as expected is the SCA of the Xcode and these inline warnings when using the Online Code Editor, which can be seen in the following screenshot. ✅

I have tested the instructors' side of this PR manually on TS1 and I believe I found certain issues.

When checking the results on the exercise's page, the template result shows no code issues, even though they exist and are shown when you click on the result (look at the next 2 screenshots).

Template build plan is looking good (compared with provided videos), but there are certain problems with the builds for the solution. As you can see in the next two screenshots, the build for the solution fails after creating the exercise, but also after updating the solution with the Edit in Editor button.

I am not the expert, but I noticed that the Solution build plan is missing artifacts shown in the second video (and the Template build plain contains these), so I'm providing the next screenshot in case it helps.

What is working as expected is the SCA of the Xcode and these inline warnings when using the Online Code Editor, which can be seen in the following screenshot. ✅

Thanks for your review. 🙂
Regarding your first comment:
This should not be related to this PR, since I experienced this issue with other programming languages as well.
Regarding your second comment:
This is also not related to this PR. Since the BuildAgent went offline for some reason, the artifacts could not be there. A rerun should solve the problem.

Code changes look good, I tried following the test steps and I was able to confirm the screenshots, although I am getting an Access Denied error on Bamboo so I couldn't check the build plans. I also don't have a Mac so I couldn't test the with a student. If you know how I can get access to Bamboo I can try to check the build plans too, otherwise I can approve the parts I wrote here.

Thanks for your review. 🙂
Regarding the Build Plans:
You need to make sure to login into Bamboo with the same test user account you used to create the iOS programming exercise on Artemis. Afterwards checking the Build Plan configurations should work. 🙂
Regarding the student side:
No problem. The result does not differ from editing in the online code editor. 🙂


⚠ Bofrost.at has degraded performance

In 02ff055, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1893 ms

Resolved: Bofrost.at performance has improved in 85175d0 after 6 minutes.


[meebitsdao-delegation] New MeebitsDAO voting strategy

Changes proposed in this pull request:

New strategy to use for DAO voting for https://vote.meebitsdao.com/#/
Uses the formula:

MAX(1, # of Meebits (limit 20) * Delegate Tokens)

hey @ChaituVR i committed your suggestion

@ChaituVR I've implemented getScoresDirect(). Unfortunately its a bit messy because we use different addresses for the three strategies (two strategies use the same set, one strategy uses one set). Hope this is okay? For getScoresDirect() we can implement multiple strategies in an array, but can only input one set of addresses (same for all strategies) as its currently implemented. Please advise on any additional changes that might be necessary.

hey @ChaituVR, I have reverted the previous commits. Should be back to what we originally were trying to perform!


Keyboard shortcuts for copy / paste into console

It would be nice to have keyboard shortcut for pasting into console instead of right clicking (Or window menu -> edit -> paste).
I tend to use my keyboard as much as possible. So it would be nice to have a shortcut like git bash:

copy = ctrl + insert
paste = shift + insert

Agreed, this feedback is more general Windows cmd.exe than bash-specific.  Here's a workaround to make copying and pasting easier for you:
Launch cmd.exe
Right click title bar, click Properties
Options Tab
Enable QuickEdit mode

Now you can highlight text with your mouse cursor, right click to copy, right click again to paste.

Agreed, this feedback is more general Windows cmd.exe than bash-specific
That's not entirely true, by default the new cmd.exe accepts text pasted with CTRL + V, it's only once you're in bash mode you can't paste anything with CTRL + V (not even CTRL + Shift + V like in Ubuntu terminal).

That's just an option in the properties (Enable shortcuts with Ctrl or something like that, my interface is not in English :) )

I think using the Ubuntu Style Ctrl-Shift-C would make sense, especially as Ctrl-C is a common interrupt
I'd also like to see things like emacs mode honoured where Ctrl-A / Ctrl-K work as expected

AFAIK Ctrl+A and Ctrl+K already works as expected.

@mobluse So they do.  They didn't work for me the other day though, odd.

I think using the Ubuntu Style Ctrl-Shift-C would make sense, especially as Ctrl-C is a common interrupt

My toughs where the same with the Ctrl-C (and also Ctrl-V, not that common) interrupt signals.
That is why I suggested Ctrl + insert and Shift + insert. They work in windows now, so it is nothing new.
And they are compatible with the Linux keyboard interrupts.

I know this is issue about copy-paste into console but what's the status of copy-paste from console? I'd like to copy paste output of my terminal interactions into browser. Highlighting text and clicking right mouse button doesn't work (there is no menu shown).

I vote for Ubuntu terminal shortcuts Ctrl + Shift + C/X/V as a primary ones and maybe an alternative Ctrl/Shift + Insert. But that's only my preference because I use bash on Linux in most cases.

Why not to provide a way to configure the terminal shortcuts for this app? I'm not a win user, i'm just reviewing it
If not, @mirao proposal +1. I'm a *nix user in most cases too, and would be great maintain the default terminal shortcuts for the major distros.

I would like to have CTRL + Shift + C/X/V, although if possible my vote would be for it to be configurable.

This is a current limitation in the Windows Console.
Console currently supports two input modes: 'processed' and 'raw'. In 'processed' mode, Windows Console pre-processes all keystrokes, handling several well-known chords consistently across cmd, PowerShell and elsewhere.
To better handle *NIX behavior, however Bash requests raw, un-pre-processed keyboard input. We do have a task on our backlog to add a "mildly-pre-processed" mode wherein Console will translate copy and paste key chords into the VT sequences expected by *NIX tools, shells, etc.

You can run REG.EXE add HKCU\Console /v QuickEdit /t REG_DWORD /d 1 /f as administrator in the Windows Command Prompt to enable QuickEdit.
This would let you:

copy text by highlighting text (left clicking) and then right clicking.
paste text by right clicking

To disable QuickEdit run REG.EXE add HKCU\Console /v QuickEdit /t REG_DWORD /d 0 /f.

I just installed "Bash on Windows" and I can copy / paste by doing

CTRL + SHIFT + C
Right Click

Why not Ctrl-Ins/Shift-Ins? Windows 10 CMD honors those and those are also common for SSH.

ctrl+shift+c
ctrl+shift+v
is what is preferred

Here's another vote for Ctrl+Ins/Shift+Ins. This seems to be the standard for TTY apps, which is how I usually interact with Linux when in Windows.

+1 to Ctrl-V or some variant. Right clicking to paste works, but taking my hands off the keyboard is far from ideal.

I agree that this should be configurable.. I, for one, would like to have either CTRL+SHIFT+C/X/V or ALT+C/X/V (to simulate how things are done in Mac, the Command + C/X/V)... Also, it would be preferable to also configure the right click to paste as I'd expected to give me a menu (to copy/cut/paste.. etc).. This is especially noticeable when using VIM.. :/ )

Good
Thank you.

Suggest seeing these uservoice requests in addition to upvoting here:
https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/13341399-bash-copy-paste
https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/13373574-bring-ctrl-shift-c-v-to-copy-and-paste
https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/13389489-better-hotkey-shortcut-integration

Another vote for gnome-terminal style cut and paste.
The main problem is that it is using the Windows Console app, which, at least from a linux guy, sucks, and always has.
If you really want to cater to linux folks, you need a much better terminal emulator.

mouse right click is not better than ctrl+shift+c\v.hope ASAP to support this function.

Well, you can try this program I found. It works great! https://github.com/mintty/wsltty

There is a workaround to the WSL Bash, paste issue:
One can simply to the following steps:

open cmd.exe
bash -c "pasted command here" ( this works because you are in cmd.exe )

The bash will exit after the command, I don't know how, yet, to keep it running after the "variable assign" from the cmd console. e.g. 'bash -ic "command and remain'

So @bitcrazed this is in you guys backlog right? Any expectation on release date/time? Coming to a next major version or just simple Windows Update?
I actually "assumed" this would be solved with the Creators Update, and to my surprise it's not actually there. So wondering if we're expecting a time frame in years or in weeks lol

Agreed; @bitcrazed some sort of release timeframe would be awesome.

I was unpleasantly surprised that Bash on Windows doesn't support Shirt-Insert shortcut. This missing feature is the one that preventing me from switching from the Cygwin. Hope it will really be implemented soon.

@plagov You could use WSLTTY to get Shift+Insert now: https://github.com/mintty/wsltty

@mobluse just installing wsltty-0.7.6-install.exe and that's it?
Installed it, but still, Shift-Insert doesn't work. Or some extra configuration is required?

@plagov I think I didn't configure it, but it can be configured in Options/Keys (Alt+Space O Shift+Tab K).

Another vote for Ctrl-Shift-C and Ctrl-Shift-V copy/paste style.

This is a really critical issue. Can you prioritize please?
I already installed ConEmu to workaround this issue but ConEmu's bloated pseudo-feature set is just broken-by-design in so many other ways...

For now, I have been working around the issue with the following AutoHotkey script:
#IfWinActive, ahk_class ConsoleWindowClass
^+v::Rbutton
#ifWinActive

@sgoranson I've installed https://autohotkey.com/download/ compiled your-script.ahk and started the created your-script.exe file but still Bash keeps receiving ^V.

What actually worked for me, was:
#IfWinActive ahk_class ConsoleWindowClass
^V::
SendInput {Raw}%clipboard%
return
#IfWinActive

@loxal Good call. My version will do annoying things if the cursor is not over cmd.exe.
If anyone wants to use loxal's script with ConEmu, just change ConsoleWindowClass to VirtualConsoleClass

Please do it! I can't click right always to paste. This is not how it should be. Using Bash on Ubuntu on Windows
Isn't this something that should come out of box and without requesting.
Also I find

but heck they don't work!

@loxal for me the script didn't work. Indeed, the pasted data replaced   ` characters or dashes.
I had to change it by #IfWinActive ahk_class ConsoleWindowClass ^V::     MouseClick, right Return #IfWinActive

The community can debate ctrl+c/v variations as much as needed. But I feel that the faithful paste method of Shift+Insert should function as it does in every other terminal application.
Using Ctrl+A as an alternative to Ctrl+C is awful because it conflicts with the Bash Ctrl+A/E beginning/end of line cursor placement shortcuts which are huge timesavers when repeating/modifying long commands. Ctrl+A would break that feature.

I have the same problem ... CTRL+Insert and SHIFT+Insert will not work and also CTRL+SHIFT+c/v does not work. I need to use the mouse to paste and this is incredibly annoying. Only one way to copy paste. At the same time most of the other functions work.

wsltty is a great suggestion for enabling keyboard shortcuts for copy/paste for wsl (and it uses the sensible CTRL/SHIFT+INSERT shortcuts). It will also enable ALT-SPACE to select the window menu (and if you use it for nano or other things that depends on it you can still turn it off from a simple option panel).
However, it does not provide the nice text selection features (SHIFT-ARROW keys to select text) that the console has (and that it "loses" under wsl) 😢

Vote up
+1
Please

Vote up
+1
Please

We're very (painfully!) aware of this ask.
Sounds like it'd be the simplest feature to implement, right? I mean, how hard could adding a handler for CTRL+SHIFT+V be? Turns out there be dragons in the Console's keyboard handling stuff that has been under heavy re-architecture of late, so haven't had spare resources to work on this. YET!
We beg your continued patience - we'll get to this ASAP.
/cc @tara-raj @zadjii-msft

Glad to hear this is high on the to-do list!

Imagine - we live in the command-line, Console and WSL all day long, every day, and we still haven't gotten around to implementing paste - we feel your pain ;)

In Command Prompt, it do have an Shift + Insert keyboard shortcut to execute paste.   The same keyboard shortcut is used on common linux terminal too.  So I vote for using the same keyboard shortcuts shift + insert by default for WSL terminal.

Thank you very much @loxal, here are the scripts that worked for me (ctrl+shift+v and ctrl+v), the program(AutoHotkey) also supported the option to create .exe files, this allows to skip the installation of the complete software, there are also included in the zip, regards!
bash_paste.zip

PD: Here is a bat file to run the exe on start
@echo off
SET bashPaste=your path to exe here

rem add on start
@reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run" /t REG_SZ /v "bash paste" /d "\"%bashPaste%\"" /f
pause

@echo off

rem remove
@reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run" /v "bash paste" /f
pause

Vote up
+1
Please

Unlike other folks, I’d prefer to have Ctrl+C/Ctrl+V just like CMD and PowerShell have. I switch between PowerShell and Bash frequently, and having different copy-paste shortcuts would require me to think each time I’m trying to paste something.
Ctrl+C does have a special meaning, but we could handle it just like PowerShell does. I.e. if no text is selected, it sends SIGING; if some text is selected, it copies it (without sending SIGING) and resets the selection.

oh, and i thought i was doing something wrong... i found an not idea workaround: configure bash.exe to be a terminal inside vscode. Then i found ctrl+v to work well and it also gets better colours out of the box. Ofc it is not ideal if you don't use vscode, but might save your some time if you have it installed.

@hendrics Can you please point me in the right direction as to how to configure this?

@DarthSpock Appreciate your analysis of how difficult it is (or is not) to modify the Console and/or WSL codebase. Sorry you think we're not putting much effort into our work, but I can attest from the insanely long hours the entire team has been pouring into these products over the last 3+ years, that you couldn't be further from the truth.
Fact remains that this feature hasn't been prioritized higher because there is an acceptible work-around (right click mouse/trackpad) and because we've had a MOUNTAIN of important, stretegic and tactical work that was of MUCH higher priority for many reasons.

@bitcrazed Hey! I wanted to say you folks thank you for working on WSL and console and doing your job. Seriously, WSL is an amazing piece of work I love using every day.
It might be easy to lose enthusiasm when your job is criticized so often. I just wanted to remind that many-many more users don’t say anything because they like using your product and don’t have any issues with it. (And they like it because you did your job great.)
❤

Many thanks @iamakulov - I and the entire team appreciate your (and everyone else's) support :) We LITERALLY couldn't have made WSL & Console as good as they are today without your support, bugs, and feedback. And we've still got a lot to do yet, so please do keep the feedback coming.

upvote.

There is a way to paste into WSL console using only keyboard, procedure is as follows:
Requirement: needs to be only ONE WSL window open (at least in combined taskbar buttons)

WIN + T -- use this key shortcut until you reach to the WSL window (assuming there is at least one)
SHIFT + F10 -- bring-up context menu for this window
E + P -- Edit and Paste (context menu entries)

@n3rd4i Sadly, the Shift + F10 doesn't work in Powershell window. If there would be another binding for that, this would be a viable approach, although I am not sure you have mentioned Win+T, that's unrelated :)

@FredyC It works for me - the Win+T cycles focus through the task bar mini-windows (or whatever you call them) - those windows accept Shift+F10.  It opens the little shortcut window thingy that Alt+Space normally does (or right-clicking the top left corner of the window).
BTW, It would be a usable workaround if Alt+Space could optionally be configured to actually get processed normally.  I would guess some action had to be taken to supersede the usual Windows handling of that.  If so, seems like a registry key hack could make it skip that action.

Ah, I see now, that works indeed, but honestly, it might be just faster to grab that mouse and click instead of cycling through all windows with Win+T :)
It seems you don't even need to click on corner icon, right clicking on titlebar works and then you just hit E + P and done. Definitely easier :)

"might be faster to grab that mouse..."   Oh right!  That's a great workaround - I suggest closing the issue.   :trollface:

I found another solution. I bought a MacBook Pro. I'm not going to wait
around for months/years for Microsoft to make WSL actually useful. Basic
things like copy/paste, really?
MacOS terminal is far better than WSL. File permissions aren't all screwed
up by NTFS either.
I've been making excuses for Windows for most of my life. I'm done.
Use Gnome, or get a Mac.
On Thu, Mar 15, 2018, 10:17 AM Jesse Connell<EMAIL_ADDRESS>wrote:

"might be faster to grab that mouse..." Oh right! That's a great
workaround - I suggest closing the issue. [image: :trollface:]
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/WSL/issues/235#issuecomment-373455046, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AB4-AmaBaOXddeC0Z3NGkSOEche--EMHks5teqIxgaJpZM4IMCMC
.

Hi, three months ago I posted a zip file with scripts for a workaround on ctrl+v and ctrl+shift+v on console, they are really easy to use and honestly they are the more easy workaround I found, thanks again to @sgoranson and @loxal who share how to do this before me.

choose an exe file from the zip, ctrl or ctrl+shift
test it on bash, you will also get a tray icon to know that it is open, if everything works go to step 5
something went wrong or you are using another shell, install autohotkey and edit the files with extension ahk, above are comments about this that might be helpful
if you don't want an extra program on your system, you  can compile your code to an exe file on autohotkey and uninstall it
everything working? perfect add it to a startup program, to not have to open it every time.
here are some bat files to do so

@echo off
SET bashPaste=your path to exe here

rem add on start
@reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run" /t REG_SZ /v "bash paste" /d "\"%bashPaste%\"" /f
pause

when this is officially implemented, here is the bat to clean the startup program

@echo off

rem remove
@reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run" /v "bash paste" /f
pause

I know that is annoying to not have it natively yet, but I'm sure there is a good reason behind it, I share the sentiment of @xdfil if you are a hardcore DevOps or a Pentester, they are a lot of important things that are not implemented yet, but for others who work on back ends like rails for example or many many others fields, this is a game changer, my life has been a lot easier for the past 2 years (06-2016 I believe), when pretty much all I need it was working as expected, been able to not have to jump between OS's is priceless for me, sincerely. Nowadays, I love my console, It could be better?, sure, but every patch I found something new to take advantage and hopefully soon, everything would work and I will be able to hack my neighbor with aircrack.
My current console after some tweaks

No need for people to get salty, a little patience goes a long way:

Just checked it in. See y'all in skip-ahead.

Nice but when can we expect this feature in the Windows release? Many people got salty because this most basic feature is supported in macOS since a decade whereas Windows took "a bit" longer. Legacy should not be an excuse. I suppose that macOS had to solve similar problems and legacy implementations can be always resolved with explicit opt-in implementations.

The next full release of Windows with this enabled will be whatever comes after Spring Creator's Update (2Fall2Creators Update?).

@loxal & @all
We understand the frustration - we feel it all day too because, unsurprisingly, we all live in the Console all day long.
However, simple physics have prevented this feature from bubbling high-enough up our prioritized bug list to receive attention until recently: Console has a small team of 3 who've been working at breakneck speed to add the MANY feature improvements you've all seen over the last 2+ years, adding masses of VT support, 24-bit color, etc. while re-engineering & modernizing a complex 30+ year old code-base.
Legacy may not be an excuse in your mind, but it's a reality that's unavoidable. If we "break" the Console's existing Windows behaviors, we hear from 1000x more users than if we "break" a Linux user's workflow.

So, understand if there's an issue that appears to be "simple to fix" and it hasn't been, then it's safe to assume that there's a very good reason it's not yet been fixed, frustrating though the delays may be at times.

We greatly appreciate everyone's continued patience and continued feedback & encourage y'all to keep it coming: It helps us find & fix the issues that matter in a sane prioritized order.

"Legacy should not be an excuse"

@loxal That's actually a pretty damn good excuse in my book.  I wouldn't wish it upon my worst enemy lol
Just think of how many global enterprise users of windows there are. Breaking compatibility in something so foundational as the console framework would be an SLA nightmare.
It's a lot to ask from all of us, but patience is key here. I think we're just all glad to see bash make its way into windows in the first place; look at how far we've come in 2 years!
All that said, @bitcrazed: do you see the Console team getting more resources any time soon or are you guys at optimal stride with 3 people?

do you see the Console team getting more resources any time soon or are you guys at optimal stride with 3 people?

@kavdev I don't think resource allocation is really something any of us on the Console team are at the pay scale to discuss. I think we'd all love to have more resources, more devs, to be able to churn out more features. Obviously, though - we're all on this team because of how passionate we are about it so of course we want more resources to be able to deliver more features.
It probably doesn't help that we keep rocking it with only 3 devs - what other team has that kind of feature/dev ratio? 😝

Idea here: Open-source the console. If Microsoft doesn't want to hire more console devs, then get devs to do it for free! Pretty sure there's been enough enthusiasm gone around to get a bit of help. Of course to avoid legal hassle, they'd probably have to reduce the cost of the OS by X amount since they probably wouldn't want to compensate anyone for their service to a product that they sell that uses the work. Probably still much more complex than that but they've open-sourced Powershell and there's VS Code..plus you've got the ColorTool which is open-source. I would think it's less of a stretch to open-source the console than it is to open-source WSL or even Windows (as great as that would be) but who knows? Maybe it IS a big stretch in MS's mind.

@DarthSpock Open-sourcing the console is something we discuss regularly. While it's not on the cards in the near term, it's not entirely out of the realm of possibility. One of the biggest challenges, however, is that the Console is FARRRRR from being in a useful shape for others to rapidly comprehend and contribute to in a meaningful way. Even internally!!
As @zadjii-msft points out above - we'd love to have "some more dev resources" on the team, but at the same time, be they full-time employees or community contributors, additional resources will decrease productivity of an established team - a team who've spent the last 3 years unpicking and understanding, and mastering every corner of a large, old, messy, confusing, but utterly essential code-base.
And as @zadjii-msft points out - though it may not be apparent from the outside - the 3 devs we have keep overachieving in every release. Maybe if they struggled and complained more, we might get more resources.
We'll bear that strategy in mind for the future ;)

@kavdev - many thanks :)
We're excited to come into work to improve the Console in tiny/unmeasurable, huge/significant ways each and every day. We're all passionate command-line nerds and do this work because we believe Windows users (including us) deserve a kick-a$$ command-line experience. We'll get there - just stick with us while we wrestle this beast into shape :)

It must be a really amazing experience to be on such team, sounds like a well-oiled machine so to speak. Keep up great work!

Ohh yeahh! You are awesome!
Although I will wait patiently for this feature to arrive, I have to say
that I can not wait for it to arrive on my box :)
Until then I like to use the console from within Visual Code as a work
around for getting ctrl-v/c working.
Am 3/20/2018 um 11:42 PM schrieb Mike Griese:

No need for people to get salty, a little patience goes a long way:
image
https://user-images.githubusercontent.com/18356694/37686443-b84ab622-2c54-11e8-924b-b885748e28c1.png
Just checked it in. See y'all in skip-ahead.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/WSL/issues/235#issuecomment-374782051,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADAMVp9zy9JgEW7Pca7CaYb8yXZmmCkcks5tgYXEgaJpZM4IMCMC.

@FredyC  & @renzok  - It is genuinely humbling to work with the awesome WSL and Console engineering teams, and with so many of you in the community. I've learned SO MUCH in the last couple of years and continue to do so daily.
We're like swans - we appear calm and collected up-top, but are paddling like fury underneath 😁

Excited (relieved?) to finally be able to announce that this issue is now fixed (by @zadjii-msft)! Copy and Paste arrives for Linux/WSL Consoles
Marked as fixed in insiders build 17643. Will ship in Win10 18H2 release.
Closing since the work is now done.

That's a great news! Thanks  for all the hard work! 👍

I don't know if this is fixed. I have 1903 and in my Ubuntu bash, CTRL+SHIFT+C/V works, but within WSL for VS Code, it does not.


Question about vertical person detection

Hi, thanks for greate job! Here is a question  about  evaling vertical people 。
I use yolact_base_54_800000.pth to for vertical people detection and segmentation. For keeping the same scale of people, I write a process of resizing and padding,which generate a 550 x 550 input. The person I eval take 1/3 pixels of image whose ratio of height/weight is about 3。The model  returns low confidence(0.35) compared to ones in the Figure 6 in origin paper(0.9)。I found that the more vertical the person is , the lower detection confidence the model returns..How to explain that the confidence go down with the increasement of  ratio(height/weight) ? Can you give me some advise?

Maybe you should check the anchor boxes for your case.


The service accessed through Traefik has all response headers in lowercase

Welcome!

[x] Yes, I've searched similar issues on GitHub and didn't find any.
[x] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you do?
The service accessed through Traefik has all response headers in lowercase
What did you see instead?

What version of Traefik are you using?
3.2
What is your environment & configuration?
Install with Helm and use the default configuration

Add more configuration information here.
If applicable, please paste the log output in DEBUG level
No response

Thanks @hanxiaolong891128 for your interest in Traefik
Traefik does sometime changes the case of the Headers to always serve their canonical form. Headers are case-insensitive according to the HTTP RFC.
But Traefik will never serve lowercased headers. I suggest you try with a curl and make sure you don't have another component in between altering the case.
I'm closing this issue, feel free to open a discussion on the forum.

Thanks @hanxiaolong891128 for your interest in Traefik
Traefik does sometime changes the case of the Headers to always serve their canonical form. Headers are case-insensitive according to the HTTP RFC. But Traefik will never serve lowercased headers. I suggest you try with a curl and make sure you don't have another component in between altering the case.
I'm closing this issue, feel free to open a discussion on the forum.

OK  Thanks


why split data type into different files？

https://github.com/prometheus/client_python/blob/56a8a533d094d7c64881ec510b96a167d9da5786/prometheus_client/values.py#L60
I have a question? why we not store data that in a process into a common file? for example, process 1 store its data into a common file prom_1.db other than 4 db files(counter_1.db, histogram_1.db, summary_1.db, gauge_1.db) .

Different types of metrics need different handling.

Different types of metrics need different handling.
why we store the metrics type into a mmap file？instead we store it into mmap file name

I'm not seeing what you're getting at. Do you have a concrete suggestion?


feat: Arbitrary/Custom Modules

It would be nice if libp2p support arbitrary modules so that they can automatically be initialized with the libp2p instance so this PR adds this functionality. This is useful because there are many modules one might want to use that do not fit in the predefined categories and it allows them to add those modules alongside the standard ones.
This PR adds a configuration option to the createLibp2p method allowing you to add custom modules:
const node = await createLibp2p({
  // Normal libp2p modules
  // ...

  // Custom libp2p modules
  modules: {
    myModule: createMyModule(options)
  }
})

// Use 'myModule' later on.
node.modules.mymodule.doSomething();

I like this idea and would ideally extend it to other components that are or should be optional.
For example in helia I'm creating disposable dial-only libp2p nodes for use as an RPC client, so they don't need the protocols that are enabled by default - identify, ping etc.  Identify in particular causes loads of noise in the logs as the connection tends to get torn down before identify has completed so it'd be great to not have that enabled on the dial-only node at all.
Also I think there was interest from lodestar and others to generally have a more minimal libp2p with a smaller surface area.
Given that we have things like FetchService and PingService already and not module, I'm open to ideas but I think the API I'd like to see is something like:
const libp2p = await createLibp2p({
  transports: [
    tcp()
  ],
  connectionEncryption: [
    noise()
  ],
  streamMuxers: [
    yamux()
  ],
  services: [
    ping(),
    identify(),
    fetch(),
    nat(),
    myCustomService()
  ]
})

// then later
const value = await libp2p.services.fetch(someKey)
const foo = await libp2p.services.myCustomService.someMethod(bar)

We'd then remove .fetch, .ping etc from the libp2p interface as you'd access them via the .services key.
I'm not sure how this would work with the types though?  As in, how to derive the type of the .services key from the configuration passed to createLibp2p?

I'm not sure how this would work with the types though? As in, how to derive the type of the .services key from the configuration passed to createLibp2p?

With your example, it's probably impossible, but with original proposal where you pass service map it could be done

I have updated the API to use a services configuration field instead of modules and I have gotten types to work for these services.
const libp2p = await createLibp2p({
  transports: [
    tcp()
  ],
  connectionEncryption: [
    noise()
  ],
  streamMuxers: [
    yamux()
  ],
  services: {
    ping: ping(),
    identify: identify(),
    fetch: fetch(),
    nat: nat(),
    myCustomService: myCustomService()
  }
})

const value = await libp2p.services.fetch(someKey)
const foo = await libp2p.services.myCustomService.someMethod(bar)

Note that I have expanded the return type of createLibp2p from Libp2p to include the services property but this should probably be added to the @libp2p/interface-libp2p interface.
@achingbrain, if it were possible to have services as an array instead of a map and still have types work, how would we reference a service from the node by name? E.g. how would the following array map to the following object:
[ ping(), fetch() ] => { ping: (service), fetch: (service) }

Would services be required to return an object with a property that identities the name of the service? If this were the case you could also require they have a type property the identifies the type of service and it might be possible to move transports, muxers, etc. to the services list.

This is a good idea and it's something we're going to do, I just shy away from it a little because it's going to be quite disruptive.  Maybe after the current round of breaking changes.

@saul-jb This PR was discussed in today's js-libp2p Triage meeting. In terms of timeline, we are thinking of including this in a js-libp2p release after IPFS Thing (April 15-19). Until then, we want to limit disruptive changes to js-libp2p and keep focus on bugfixes/hardening and general WebRTC related upkeep (new features landing soon in js-libp2p-webrtc).
Thanks for your patience!

@achingbrain, @p-shahi, What is the state of this, is there anything more I can do to help?

@saul-jb Per this comment https://github.com/libp2p/js-libp2p/pull/1707#issuecomment-1517696571 @achingbrain intends to include this in the upcoming release (0.45.0)


set_random_params

Both the VAE and RNN have a method named set_random_params, but they remain unused. Is that leftover code or did it slip through the cracks?

It turns out that TF does a good job initializing the weights. The biases in the LSTM could be all set to 1 to improve learning speed, but besides these functions are not needed.


Label Field in Forms

Almost every form begins with a Label field. Initially this was used when listing measurements, 3D structures, etc to give the user a custom way to identify each feature but now there is a set way in which features are labeled when displayed in a list. The label field is not being used now as there is a standardized way to use feature data to "label" the feature when displaying a list of features (or at least that is the intent).
Removing the label fields would mean that if anyone had data in those fields they would lose that data (or really just not be able to view it).  The labels were generated automatically in SS1 so across all databases there would be a lot of data in the label fields.
Posting this issue so we discuss this further sometime in the future. Right now the unused label fields are always at the top of forms and are just confusing. We could move the field to the bottom or just not display the field anymore.

With commit 438a5fa01d1631f6511d193b7dda42283ebddb9b the Hint for the Label field was removed. The Hint said "If a label is not specified a default label will be given." but we are not doing this in SS2.

@ellennelson10 @nicolasmroberts @panamint55 Any thoughts on this?

Ellen and I need to look this over with Jessica at some point.  We can put this on the discussion list.


Repo needs an update

Hi guys, thanks for you work.
I'm trying to add AdminBro to my nest.js app, and I'm really struggling with the implementation.
What does not help is that this repo is not up-to-date with the latest versions of your docs or libraries:

"To see example usage see the example-app or visit the Nestjs section under AdminBro project page": the second link is broken and I can't find a similar documentation page on your current website
example-app still uses beta versions of @admin-bro/express, @admin-bro/mongoose, and @admin-bro/nestjs
/src/index.ts gives outdated indications, for example:

@Module({
  imports: [
    // createAdmin options are wrong
    AdminModule.createAdmin({
        rootPath: '/admin',
        resources: [],
    }),
  ],
})

Do you have plans to update this repo soon? It would really help people setting up AdminBro.
I'm currently having a basic error after following your example-app:
/node_modules/admin-bro/lib/admin-bro.js:213
    Database,
    ^

TypeError: Cannot destructure property `Database` of 'undefined' or 'null'.
    at Function.registerAdapter

and I cannot figure out if this is because of my setup or an issue with your libs versions.

For those who have the same error trying to make AdminBro, the export from @adminBro/mongoose has changed since the docs and examples were written.
You have to replace
import AdminBroMongoose from '@admin-bro/mongoose'

by
import * as AdminBroMongoose from '@admin-bro/mongoose'


8266 dynamic enable & factory reset features

@kd0aij This is your PR rebased on master.

@pkocmoud The main concern with the current default is that this will disable wifi as people arm by default. I think we will need to change the default to always on and educate users (because folks flying with a tablet will else have a drone with no control, which seems dangerous).

@dogmaphobic I have added GPIO0 toggling - does this look right to you / workable? Can you test?

@LorenzMeier Thanks for rebasing this. I hadn't considered the ramifications of wifi-only control. Perhaps the only way to ensure safety would be to disallow arming under specific conditions. In any case, since wifi has very limited range, the system must be safe by design even with an unreliable primary control link. We should implement a means of testing failsafe actions while a reliable RC link is still available.

I have added GPIO0 toggling - does this look right to you / workable? Can you test?

Sure! Once this gets merged I'll take a look. I need to add a button within QGC to activate it.
What about the WIFI_TX_MODE param? Will it make to the main UI or stay only within the Parameters Dialog?

because folks flying with a tablet will else have a drone with no control, which seems dangerous

From the QGC side, we know if Tablet joystick mode is enabled. QGC could make sure WIFI_TX_MODE is always == 2 in those cases, though it would be safer if the flight controller would handle this.

Hmm, looking at the code (ESP8266 Firmware), the pin is active low. It has a pullup resistor setup. The code below looks like active high:
#ifdef WIFI_FACTORY_DEFAULTS
 	WIFI_FACTORY_DEFAULTS(1);
 	usleep(500);
 	WIFI_FACTORY_DEFAULTS(0);
 #endif

I can invert the logic within the ESP8266 firmware but that will require existing users to update their firmware.

Also, this looks suspicious:
#define WIFI_FACTORY_DEFAULTS(_s) px4_arch_gpiowrite(GPIO_8266_GPIO0, _s)

The proper pin is GPIO02 not GPIO0

Which schematic is that? Looks like it may be for an early beta hardware version.

Which schematic is that? Looks like it may be for an early beta hardware version.

From the bottom of this page. If that's the case, the page needs to be updated.
https://pixhawk.org/modules/pixracer
Regardless, the Reset To Factory pin is GPIO2, not GPIO0.

I was just confused, since I was looking at the serial IO page of the schematic, and missing your point about it being active low.

The "Active Low" part is on the ESP8266 side. The (ESP8266 Firmware) code currently sets up a pullup on GPIO2 and the reset is handled by an interrupt when the pin is brought to LOW.

I should go back to bed :)

@kd0aij Would you have bandwidth to rebase and fix / finish this?

I'll try rebasing and addressing Gus's comments on your reset addition.

@dogmaphobic I rebased and made the changes to GPIO2 that you called out. If the CI checks pass, would you test please?

@dogmaphobic @kd0aij Can you pick up the testing of this so we can get this into 1.4?

@dogmaphobic Would it be possible to rebase this on master and test it on hardware?

stale

Is there a replacement PR for turning WiFi off when Armed? Or is this still open?

@devbharat There isn't.


System Supply Line Temperature

Hi Guys. Tremendous work with this HA integration, its absolutely a wonderful tool, and extremely valuable.
I have a Thermia Atlas 18, registered in the custom component as Inverter Duo. Most is working fine, but the "system Supply Line Temperature" is consistently showing 200 degrees celcius. In the API it shows an accurate temperature (24 degrees). Am I using the wrong sensor parameter name or did I mess some setting up?

I have the same problem as you, havent found any solution yet, please post if you find out whats wrong

Same here(Atlas 18). Tried to set "Target sensor" in Thermostat card to external thermometer, but no success .

Found something that may solve this.
The "Condenser Out" temperature and "Condenser In Temperature" matches pretty well with "Supply Line" and "Return Line".
Im not sure if there are separate thermometers, but this is within 0,5-1 degrees of the actual supply and return line. So I'm using those for now.

Excelent find!
May I ask how you are using te sensors? I've tried to set the "Target Sensor" in the generic thermostat card, but no success.

Right...think first, ask later...
If anyone else wondering about this...to get the condenser_in_temperature to show in the generic thermostat card in HA:
edit the file ../custom_components/thermiagenesis/const.py to match the following:
"heat": {
    ATTR_LABEL: "Heat",
    # ATTR_CURRENT_TEMPERATURE: ATTR_INPUT_SYSTEM_SUPPLY_LINE_CALCULATED_SET_POINT
    # ATTR_CURRENT_TEMPERATURE: thermiaconst.ATTR_INPUT_ROOM_TEMPERATURE_SENSOR,
    **ATTR_CURRENT_TEMPERATURE: thermiaconst.ATTR_INPUT_CONDENSER_IN_TEMPERATURE,**
    ATTR_TEMPERATURE: thermiaconst.ATTR_HOLDING_COMFORT_WHEEL_SETTING,
    ATTR_MIN_TEMP: 10,
    ATTR_MAX_TEMP: 40,
    ATTR_ENABLED: thermiaconst.ATTR_COIL_ENABLE_HEAT,
    ATTR_DEFAULT_ENABLED: True,
    KEY_STATUS_VALUE: "Heat",
},

and restart HA. Häpp!

However...when boiling hot water, the condenser in temp goes WAY up, so then again...this might not be the answer after all...

Yeah I think the only way to get around is, is by installing a TP sensor and feeding it into the thermostat card or by removing the tp showing altogether.
There are no other sensors in the thermostat that provide anything meaningful.

On the physical side of things - the pump only has a sensor for condenser in and condenser out - after the condenser the now hot water is either routed to the system supply line or through the tap water tank. If you want the actual system supply line temperature you need an additional sensor connected which is normally only installed when combining the pump with external heat sources. Without external heat source the supply line temp more or less the same thing as the condenser out when the pump is in heating mode - while producing hot water the condenser temps say nothing about your heating systems supply line temp as the water is circulated elsewhere.


Ability to change nonce

Sometimes when I want to send transaction to network. I have unconfirmed last transaction and I don`t want to overwite it by next transaction, but I want to increase nonce and push it to the network than.
I think It can be added in advanced section.

+1 for this issue we need this feature asap @kvhnuke

@gkucmierz thanks for the request! Please direct new features here: https://github.com/MyEtherWallet/MyEtherWallet
Closing this issue.


Updated Readme

Fails

:no_entry_sign:
Something that must be changed

Warnings

:warning:
Something pretty bad, but not important enough to fail the build

Messages

:book:
Highlight something in the table

Free-form markdown that goes under the table, so you can do whatever.

  Generated by :no_entry_sign: Danger Swift against 9efb9028b4b42eb6a717a937ca83cc8b36051cad


[Fix][UI] Fix ui style problem and refactor form style

Tips

Thanks very much for contributing to Apache DolphinScheduler.
Please review https://dolphinscheduler.apache.org/en-us/community/index.html before opening a pull request.

What is the purpose of the pull request
Fix ui style problem and refactor form style in Element-UI
Brief change log
(for example:)

bb4721243: rename from-model to form-model
06543ba20: remove duplicated css style code
815ec50ba: refactor css style of form model
6d7f9f016: fix form model overflow problem in IE
d0aabd680: align each item one by one in locale
941c72b40: fix el-dialog width is too wide

Verify this pull request
This change added tests and can be verified as follows:
(example:)

Manually verified the change by testing locally.

Before fix:

After fix:

Codecov Report

Merging #4329 (941c72b) into dev (f0ada2a) will decrease coverage by 0.01%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##                dev    #4329      +/-   ##
============================================
- Coverage     43.22%   43.20%   -0.02%
+ Complexity     3183     3182       -1
============================================
  Files           471      471
  Lines         21732    21732
  Branches       2626     2626
============================================
- Hits           9393     9390       -3
- Misses        11442    11444       +2
- Partials        897      898       +1

Impacted Files
Coverage Δ
Complexity Δ

...er/master/dispatch/host/assign/RandomSelector.java
77.77% <0.00%> (-5.56%)
3.00% <0.00%> (-1.00%)

...inscheduler/service/zk/CuratorZookeeperClient.java
60.97% <0.00%> (-4.88%)
7.00% <0.00%> (-1.00%)

...he/dolphinscheduler/server/utils/ProcessUtils.java
48.34% <0.00%> (ø)
25.00% <0.00%> (ø%)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f0ada2a...941c72b. Read the comment docs.


docs(pipelines): small edits to Managing Pipelines; add info on locking/renaming.

Thanks for the update, Nora - looks good to me!


[BUG/ISSUE] Crash while searching

Before submitting the issue

[x] I have checked that the bug is not a duplicate or, if it is, it needs to be reopened
[x] I have checked that I am running the latest version of WingetUI
[x] I have tried resetting and reinstalling WingetUI and the issue persisted or happened again
[x] I have checked the FAQ section for solutions
[x] I have read the contributing guidelines and I agree with the Code of Conduct

Describe the bug
Sometimes when searching in discover packages, WingetUI crashes without any error message. And as far as I can see there is no crash report and no log file that gets written to disk.
Is there any way to create a crash report or a log file that gets written to disk?

I am aware that Qt often crashes without any traces. I has happened me sometimes during development.
Could you please provide:

The string you were searching
The exact behaviour/method do get the crash (if any)
The log of a non-crashed instance after searcing for something

Does this happen only on the discover search page or on the updates and installed as well?

I'm pretty sure it was only on the discover search page.

Hello,
I have the same problem, it's the instant search that crashes, if I uncheck it, it seems stable.
But, I have the problem only on my I7 4790 if I type very fast on my keyboard, but it's fine on my Ryzen 5700x.
PS: the enter key does not launch the search, I have to click on the magnifying glass to do it.

PS: the enter key does not launch the search, I have to click on the magnifying glass to do it.

CTRL+ENTER do the job ;)

CTRL+ENTER does the job ;)

In theory, it should be ENTER what triggers the filter command, i will try to figure out what is happening.

I am stress testing WingetUI now to see if the issue has been fixed.
I will post results back here

I had a crash today, while searching...
This is from EventLog on my Windows 11 machine:
Faulting application name: wingetui.exe, version: <IP_ADDRESS>920, time stamp: 0x63fa6511
Faulting module name: Qt6Core.dll, version: <IP_ADDRESS>, time stamp: 0x63970711
Exception code: 0xc0000005
Fault offset: 0x000000000025decc
Faulting process ID: 0x0x1FCC
Faulting application start time: 0x0x1D94A742FC92F4F
Faulting application path: C:\Users\waldo\AppData\Local\Programs\WingetUI\wingetui.exe
Faulting module path: C:\Users\waldo\AppData\Local\Programs\WingetUI\PySide6\Qt6Core.dll
Report ID: 05bbf6b0-cb15-4eb3-8d50-3074bd5516ee
Faulting package full name:
Faulting package-relative application ID:

I can reproduce it every time:

Start WingetUI
on "Discover Packages" search for "whatsapp"
click on whatsapp with right mouse button
click on "Show info"
wait to load some data into the popup window (don't wait for it to completly load everything) - timing is essential here
close popup window
go to search field
search for "winamp"
CRASH


Jolokia agent fails on Elastic Search 6

I tried to run jolokia as an agent in ElasticSearch 6 with the following command:
../bin/java ... -javaagent:/data/elasticsearch/lib/jolokia-jvm-agent.jar=config=/data/elasticsearch/conf/jolokia.properties -cp /usr/share/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch -p /data/elasticsearch/run/elasticsearch.pid --quiet

And the config file is:
host: <IP_ADDRESS>
port: 8997
protocol: http
discoveryEnabled: false
debug: true

But it fails:
curl -v http://XXXX:8997/jolokia/
*   Trying XXXXX...
* TCP_NODELAY set
* Connected to XXXXXX port 8997 (#0)
> GET /jolokia/ HTTP/1.1
> Host: <IP_ADDRESS>:8997
> User-Agent: curl/7.64.1
> Accept: */*
>
* Recv failure: Connection reset by peer
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer

And nothing is logged, on stdout, I only got:
I> No access restrictor found, access to any MBean is allowed
Jolokia: Agent started with URL https://XXX:8997/jolokia/

If I check the threads:
jstack 5160 |  grep -i jolokia
"Jolokia Agent Cleanup Thread" #18 daemon prio=5 os_prio=0 cpu=0.94ms elapsed=10200.51s tid=0x00007f48b8063800 nid=0x148f in Object.wait()  [0x00007f48bf8f0000]
	at org.jolokia.jvmagent.CleanupThread.joinThreads(CleanupThread.java:110)
	at org.jolokia.jvmagent.CleanupThread.run(CleanupThread.java:60)

So there is only one jolokia thread. I'm not sure that OK.
Any hint ?

@fbacchella is this still a problem for you?

Give me a little time to retry.

I downloaded and installed jolokia-agent-jvm-2.1.0-javaagent.jar:
sudo cksum /data/elasticsearch/lib/jolokia-jvm-agent.jar jolokia-agent-jvm-2.1.0-javaagent.jar
1310362372 636179 /data/elasticsearch/lib/jolokia-jvm-agent.jar
1310362372 636179 jolokia-agent-jvm-2.1.0-javaagent.jar

Started ES with:
-javaagent:/data/elasticsearch/lib/jolokia-jvm-agent.jar=config=/data/elasticsearch/conf/jolokia.properties

With logHandlerClass: org.jolokia.server.core.service.impl.Stdout in jolokia.properies, I got:
Could not start Jolokia agent: java.lang.NullPointerException: Cannot invoke "org.jolokia.server.core.service.api.LogHandler.info(String)" because "log" is null

Without:
Jolokia: Agent started with URL http://<IP_ADDRESS>:8998/jolokia/

But it still fails:
curl -v http://<IP_ADDRESS>:8998/jolokia/
*   Trying <IP_ADDRESS>:8998...
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 8998 (#0)
> GET /jolokia/ HTTP/1.1
> Host: <IP_ADDRESS>:8998
> User-Agent: curl/7.76.1
> Accept: */*
>
* Recv failure: Connection reset by peer
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer

I checked with status:
sudo .../java-openjdk-21_latest/bin/java  -jar jolokia-agent-jvm-2.1.0-javaagent.jar status 79901
Jolokia started for PID 79901
http://<IP_ADDRESS>:8998/jolokia/

The jolokia.properties:
port: 8998
protocol: http
discoveryEnabled: false
debug: true
executor: fixed
threadNr: 5

Thanks for quick feedback about old issue! I'll have a look.

@fbacchella I'm not an ES expert, so while I have your attention, may I ask for quick help about how to start Elastic Search as you did? (version, initial setup, ...)

Mind that the class should be org.jolokia.server.core.service.impl.StdoutLogHandler.

asciidoc/wrapping issue...

It works better with org.jolokia.server.core.service.impl.StdoutLogHandler, but it’s not really verbose. Still failing silently.

One possible source of problem is that ES insist on using a security manager even if it’s deprecated and scheduled to be removed. I was unable to setup it in a “transparent” mode that will allow everything. But I was expecting at least a complain from Jolokia about a security violation.

With simple check I couldn't start Jolokia agent within Elasticsearch:
WARNING: A Java agent has been loaded dynamically (/data/tmp/elasticsearch-8.15.1/lib/jolokia-agent-jvm-2.1.1-SNAPSHOT-javaagent.jar)
WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning
WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information
WARNING: Dynamic loading of agents will be disallowed by default in a future release
java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.instrument@22.0.1/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:560)
	at java.instrument@22.0.1/sun.instrument.InstrumentationImpl.loadClassAndCallAgentmain(InstrumentationImpl.java:582)
Caused by: java.lang.NoClassDefFoundError: com/sun/net/httpserver/Authenticator
	at jolokia.agent.jvm@2.1.1-SNAPSHOT-javaagent/org.jolokia.jvmagent.JvmAgent.agentmain(JvmAgent.java:85)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	... 3 more
Caused by: java.lang.ClassNotFoundException: com.sun.net.httpserver.Authenticator
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
	... 5 more

Works with these options in /data/tmp/elasticsearch-8.15.1/config/jvm.options:
--add-modules=jdk.httpserver
-javaagent:/data/tmp/elasticsearch-8.15.1/lib/jolokia-agent-jvm-2.1.1-SNAPSHOT-javaagent.jar=config=/data/tmp/elasticsearch-8.15.1/config/jolokia.properties

Damn JPMS !

You're right about security manager (which btw is going to be removed). I debugged ES + Jolokia and saw the exception, which then I tracked in the logs:
[2024-09-10T10:07:07,133][WARN ][stderr                   ] [everfree.forest] Could not start Jolokia agent: java.security.AccessControlException: access denied ("java.net.SocketPermission" "localhost:8998" "listen,resolve")

Hmm, I saw some other easy-to-fix SecurityManager issues - I had to add:
    permission java.net.SocketPermission "*:8998", "accept,connect,listen,resolve";
    permission java.lang.RuntimePermission "getClassLoader";
    permission java.util.PropertyPermission "*", "read,write";
    permission java.lang.RuntimePermission "shutdownHooks";

to /data/tmp/elasticsearch-8.15.1/jdk/conf/security/java.policy and under debugger I saw proper initialization of Jolokia-owned sun.net.httpserver.ServerImpl$Dispatcher and I see the thread:
"HTTP-Dispatcher@27734" tid=0x67 nid=NA runnable
  java.lang.Thread.State: RUNNABLE
	  at sun.net.httpserver.ServerImpl$Dispatcher.run(ServerImpl.java:454)
	  at java.lang.Thread.runWith(Thread.java:1583)
	  at java.lang.Thread.run(Thread.java:1570)

But I still can't connect.

Under wireshark I see RST:
No.	Time	Source	Destination	Protocol	Length	Port from	Port to	Info
114	1.632449644	<IP_ADDRESS>	<IP_ADDRESS>	TCP	74	60810	8998	60810 → 8998 [SYN] Seq=0 Win=65495 Len=0 MSS=65495 SACK_PERM TSval=1860109463 TSecr=0 WS=128
115	1.632466169	<IP_ADDRESS>	<IP_ADDRESS>	TCP	74	8998	60810	8998 → 60810 [SYN, ACK] Seq=0 Ack=1 Win=65483 Len=0 MSS=65495 SACK_PERM TSval=1860109463 TSecr=1860109463 WS=128
116	1.632478044	<IP_ADDRESS>	<IP_ADDRESS>	TCP	66	60810	8998	60810 → 8998 [ACK] Seq=1 Ack=1 Win=65536 Len=0 TSval=1860109463 TSecr=1860109463
117	1.632519396	<IP_ADDRESS>	<IP_ADDRESS>	HTTP	158	60810	8998	GET /jolokia/version HTTP/1.1
118	1.632525988	<IP_ADDRESS>	<IP_ADDRESS>	TCP	66	8998	60810	8998 → 60810 [ACK] Seq=1 Ack=93 Win=65408 Len=0 TSval=1860109463 TSecr=1860109463
119	1.633037561	<IP_ADDRESS>	<IP_ADDRESS>	TCP	66	8998	60810	8998 → 60810 [RST, ACK] Seq=1 Ack=93 Win=65536 Len=0 TSval=1860109464 TSecr=1860109463

Oh yeah. I caught SecurityException and got ("java.net.SocketPermission" "<IP_ADDRESS>:33536" "accept,resolve") this in:
"HTTP-Dispatcher@27734" tid=0x67 nid=NA runnable
  java.lang.Thread.State: RUNNABLE
	  at java.security.AccessControlContext.checkPermission(AccessControlContext.java:488)
	  at java.security.AccessController.checkPermission(AccessController.java:1085)
	  at java.lang.SecurityManager.checkPermission(SecurityManager.java:411)
	  at java.lang.SecurityManager.checkAccept(SecurityManager.java:1021)
	  at sun.nio.ch.ServerSocketChannelImpl.finishAccept(ServerSocketChannelImpl.java:504)
	  at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:415)
	  at sun.net.httpserver.ServerImpl$Dispatcher.run(ServerImpl.java:489)
	  at java.lang.Thread.runWith(Thread.java:1583)
	  at java.lang.Thread.run(Thread.java:1570)

It looks like the real good solution to have Jolokia works from inside Elastic would be to write a specific plugin for it. Plugins are allowed to handle some URL like _jolokia, and provides specific permissions. But I never wrote a plugin for Elastic.

Hmm, ES seems to read different policy file: https://github.com/elastic/elasticsearch/blob/main/server/src/main/resources/org/elasticsearch/bootstrap/security.policy

Another file read is file:/data/tmp/elasticsearch-8.15.1/modules/x-pack-watcher/plugin-security.policy

On my setup:
$ find /usr/share/elasticsearch -name '*.policy'
/usr/share/elasticsearch/jdk/conf/security/java.policy
/usr/share/elasticsearch/jdk/conf/security/policy/limited/default_US_export.policy
/usr/share/elasticsearch/jdk/conf/security/policy/limited/default_local.policy
/usr/share/elasticsearch/jdk/conf/security/policy/limited/exempt_local.policy
/usr/share/elasticsearch/jdk/conf/security/policy/unlimited/default_US_export.policy
/usr/share/elasticsearch/jdk/conf/security/policy/unlimited/default_local.policy
/usr/share/elasticsearch/jdk/lib/security/default.policy
/usr/share/elasticsearch/modules/ingest-geoip/plugin-security.policy
/usr/share/elasticsearch/modules/lang-expression/plugin-security.policy
/usr/share/elasticsearch/modules/lang-mustache/plugin-security.policy
/usr/share/elasticsearch/modules/lang-painless/plugin-security.policy
/usr/share/elasticsearch/modules/reindex/plugin-security.policy
/usr/share/elasticsearch/modules/repository-encrypted/plugin-security.policy
/usr/share/elasticsearch/modules/repository-url/plugin-security.policy
/usr/share/elasticsearch/modules/searchable-snapshots/plugin-security.policy
/usr/share/elasticsearch/modules/systemd/plugin-security.policy
/usr/share/elasticsearch/modules/transport-netty4/plugin-security.policy
/usr/share/elasticsearch/modules/x-pack-analytics/plugin-security.policy
/usr/share/elasticsearch/modules/x-pack-async/plugin-security.policy
/usr/share/elasticsearch/modules/x-pack-async-search/plugin-security.policy
/usr/share/elasticsearch/modules/x-pack-ccr/plugin-security.policy
/usr/share/elasticsearch/modules/x-pack-core/plugin-security.policy
/usr/share/elasticsearch/modules/x-pack-deprecation/plugin-security.policy
/usr/share/elasticsearch/modules/x-pack-eql/plugin-security.policy
/usr/share/elasticsearch/modules/x-pack-graph/plugin-security.policy
/usr/share/elasticsearch/modules/x-pack-identity-provider/plugin-security.policy
/usr/share/elasticsearch/modules/x-pack-logstash/plugin-security.policy
/usr/share/elasticsearch/modules/x-pack-ml/plugin-security-test.policy
/usr/share/elasticsearch/modules/x-pack-ml/plugin-security.policy
/usr/share/elasticsearch/modules/x-pack-monitoring/plugin-security.policy
/usr/share/elasticsearch/modules/x-pack-security/plugin-security.policy
/usr/share/elasticsearch/modules/x-pack-sql/plugin-security.policy
/usr/share/elasticsearch/modules/x-pack-watcher/plugin-security.policy
/usr/share/elasticsearch/plugins/search-guard-flx/plugin-security.policy

I have to give up (I'm not an expert on ES)... Or at least stop digging for now.
despite adding the permissions to ES' own JDK (jdk/conf/security/java.policy) I'm still getting e.g., java.security.AccessControlException: access denied ("java.net.SocketPermission" "<IP_ADDRESS>:45668" "accept,resolve") in:
"HTTP-Dispatcher@5429" tid=0x2c nid=NA runnable
  java.lang.Thread.State: RUNNABLE
	  at sun.nio.ch.ServerSocketChannelImpl.finishAccept(ServerSocketChannelImpl.java:510)
	  at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:415)
	  at sun.net.httpserver.ServerImpl$Dispatcher.run(ServerImpl.java:489)
	  at java.lang.Thread.runWith(Thread.java:1583)
	  at java.lang.Thread.run(Thread.java:1570)

If not the security manager, the request would be handled by Jolokia, but I'm not sure (and I can't quickly google for Java Security Manager policy config for ES) how to declare required properties...

I even added:
grant codeBase "file:/data/tmp/elasticsearch-8.15.1/lib/jolokia-agent-jvm-2.1.1-SNAPSHOT-javaagent.jar" {
    permission java.net.SocketPermission "*:8998", "accept,connect,listen,resolve";
    permission java.lang.RuntimePermission "getClassLoader";
    permission java.util.PropertyPermission "*", "read,write";
    permission java.lang.RuntimePermission "shutdownHooks";
    permission java.net.SocketPermission "<IP_ADDRESS>:*" "accept,resolve";
};

to /data/tmp/elasticsearch-8.15.1/jdk/conf/security/java.policy and still nothing.

Thanks for great cooperation - in theory we just have to find proper java.policy file and add required permissions. I just couldn't find this file and couldn't find anything in ES docs.

If someone with more time that both of US found this issue, a good start point should be https://github.com/elastic/elasticsearch/tree/main/plugins/examples/rest-handler.


Use DeviceAnchor instead of ARPose for latest VisionOS simulator beta

@warrenm thank's for this little example.
I wonder if there is a way to blend this World globe with actual user's surroundings while rendering with Metal in immersive mode?

Thanks for the contribution.
My understanding is that there is no access to camera frames and no means of performing transparent rendering in a fully immersive space (which is the only type of space that supports arbitrary Metal rendering). I'd love to hear otherwise if that's not the case.

(which is the only type of space that supports arbitrary Metal rendering). I'd love to hear otherwise if that's not the case.

Mixed immersive spaces also support arbitrary Metal rendering, BUT only into a flat 2D window.
https://x.com/shmdevelop/status/1733429626398241224?s=20
This is how Unity's Windowed Apps in visionOS works and how Unreal Engine windowed apps will work. They achieve this using the CAMetalLayer and CADisplayLink APIs which are available on visionOS (MTKView is not available).


Using the Japanese prompt window on Windows works incorrectly on Windows.

Steps to Reproduce
Enter 100 and choose "100" in the prompt window
Expected results: Enter 100 in the field
Actual results: Enter 100100100

Sample code
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            TextField(
              style: TextStyle(fontSize: 13.0),
              keyboardType: TextInputType.number,
              inputFormatters: <TextInputFormatter>[FilteringTextInputFormatter.allow(RegExp(r'(^\d*\.?\d*)'))],
            ),
          ],
        ),
      ),
    );
  }
}

Logs
Flutter (Channel stable, 3.3.5, on Microsoft Windows [Version 10.0.19044.2006], locale en-US)
• Flutter version 3.3.5 on channel stable at C:\Users\kapsh\flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision d9111f6402 (5 days ago), 2022-10-19 12:27:13 -0700
• Engine revision 3ad69d7be3
• Dart version 2.18.2
• DevTools version 2.15.0
[X] Android toolchain - develop for Android devices
X Unable to locate Android SDK.
Install Android Studio from: https://developer.android.com/studio/index.html
On first launch it will assist you in installing the Android SDK components.
(or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions).
If the Android SDK has been installed to a custom location, please use
flutter config --android-sdk to update to that location.
[√] Chrome - develop for the web
• Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe
[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.3.3)
• Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
• Visual Studio Community 2022 version 17.3.32825.248
• Windows 10 SDK version 10.0.19041.0
[!] Android Studio (not installed)
• Android Studio not found; download from https://developer.android.com/studio/index.html
(or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions).
[√] VS Code (version 1.72.2)
• VS Code at C:\Users\kapsh\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.50.0
[√] Connected device (3 available)
• Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19044.2006]
• Chrome (web)      • chrome  • web-javascript • Google Chrome 106.0.5249.119
• Edge (web)        • edge    • web-javascript • Microsoft Edge 105.0.1343.33
[√] HTTP Host Availability
• All required HTTP hosts are available

Demo

@RomanKapshuk As I can see, the issue is caused by your inputFormatters. Try removing it, the issue doesn't happen anymore.

@huycozy Sorry forgot to mention. Textfield should receive only digits in format .

@RomanKapshuk Labeling the issue for further investigation.
This issue is reproducible on the latest stable and master channels with provided sample code. It's happening when using inputFormatters for decimal number.

flutter doctor -v (stable & master)
[√] Flutter (Channel stable, 3.3.5, on Microsoft Windows [Version 10.0.19043.2006], locale en-US)
    • Flutter version 3.3.5 on channel stable at C:\WIP\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision d9111f6402 (4 days ago), 2022-10-19 12:27:13 -0700
    • Engine revision 3ad69d7be3
    • Dart version 2.18.2
    • DevTools version 2.15.0

[√] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
    • Android SDK at C:\AndroidSDK
    • Platform android-32, build-tools 32.0.0
    • ANDROID_HOME = C:\AndroidSDK
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.2.6)
    • Visual Studio at D:\DOWNLOADWORK\VS2022
    • Visual Studio Community 2022 version 17.2.32630.192
    • Windows 10 SDK version 10.0.19041.0

[√] Android Studio (version 2021.2)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)

[!] Android Studio (version 2022.1)
    • Android Studio at C:\Program Files\Android\Android Studio Electric Eel 2022.1.1
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    X Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[√] VS Code (version 1.71.2)
    • VS Code at C:\Users\ADMIN\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.50.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19043.2006]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 106.0.5249.119
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 103.0.1264.77

[√] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.5.0-10.0.pre.68, on Microsoft Windows [Version 10.0.19043.2006], locale en-US)
    • Flutter version 3.5.0-10.0.pre.68 on channel master at C:\WIP\flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 49f0061afd (2 hours ago), 2022-10-24 23:51:24 -0400
    • Engine revision b93c654bd1
    • Dart version 2.19.0 (build 2.19.0-330.0.dev)
    • DevTools version 2.18.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git"
      directly to perform update checks and upgrades.

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
    • Android SDK at C:\AndroidSDK
    • Platform android-32, build-tools 32.0.0
    • ANDROID_HOME = C:\AndroidSDK
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.2.6)
    • Visual Studio at D:\DOWNLOADWORK\VS2022
    • Visual Studio Community 2022 version 17.2.32630.192
    • Windows 10 SDK version 10.0.19041.0

[√] Android Studio (version 2021.2)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)

[!] Android Studio (version 2022.1)
    • Android Studio at C:\Program Files\Android\Android Studio Electric Eel 2022.1.1
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    X Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[√] VS Code (version 1.72.2)
    • VS Code at C:\Users\ADMIN\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.50.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19043.2006]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 106.0.5249.119
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 103.0.1264.77

[√] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 2 categories.

CC @Renzo-Olivares

add composing: newValue.composing


Curved edges

Hello, currently I'm using @react-sigma with the attempt to render parallel edges. I have managed to do that using graphology which seems to work flawlessly. Although, curved edges would be a nice-to-have for presentation's sake such that the labels aren't overlapping. It appears that you used to have that feature in v1. Do you have any plans on reviving it in v2?

There is already a ticket about parallel edges #1197

Hello @andyle13,
If your question is about rendering parallel edges, then it is a very legit question, but that is already actively discussed in ticket #1197, as @sim51 said.
Else, if you specifically want to render curves edges, you can develop your own custom renderers. It is not properly documented yet (as for most of v2's code...), but you can check the custom-rendering example. Also, there is no curved edge program in sigma v2 yet, because:

Edge events consider edges as thick straight lines (so it mostly works for arrows as well)
Rendering curves in WebGL is very expansive (like several times more expansive than rendering lines)


🖼 Make storefront illustration responsive

Resolves #1728

Done with icon positioning, latest version uploaded to https://equinor.zeroheight.com/styleguide/s/74092/p/94d101-eds-official. We now embed a subset of the font, only the letters we actually use. The subset script is included in the repo. It currently expects to find the font in the same directory as the script. This could be streamed directly from the CDN instead, but that will have to wait for a rainy day..

Can somebody take a look at this, please, so I can merge it in? 😊

Scales perfectly for me @vnys ! Really good job!

Maybe the woman could be under assets/graphics instead of just assets. I sure we will get more graphics in the future :D

I think we can change that later when we get more graphics, no need to do that now.


Added content from Bloggers, Podcasters and Twitch Streamers

…Porter, Steve Gorden, 6 Figure Dev Podcast, Bryan Hogan, Carl Franklin
Added additonal links for James Montemagno, Jeffrey T. Fritz, Julie Lerman, Scott Hanselman

I will merge the PR but remove some of the secondary links as well as creators that had no publication in 2022.


Include Storage Account Firewall limitation

Please include to this article this known limitation related to serial console when boot diagnostics is enabled with a Storage Account that has Firewall enable.
A "Forbidden" response was encountered when accessing this VM's boot diagnostic storage account.
Ensure that boot diagnostics doesn't have an account firewall. An accessible boot diagnostic storage account is necessary for the serial console to function. Serial console by design cannot work with storage account firewalls enabled on the boot diagnostics storage account.

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

ID: 691353ad-7c13-bce2-510f-b9a641cf95c4
Version Independent ID: afced714-86a0-0fb7-b885-3021839b2fe3
Content: Azure boot diagnostics - Azure Virtual Machines
Content Source: articles/virtual-machines/boot-diagnostics.md
Service: virtual-machines
GitHub Login: @mimckitt
Microsoft Alias: mimckitt

@aamorale , Thank you for your feedback. We have shared this with the content author.

@SrijitBose-MSFT any updates on this? Regarding the issue, perhaps instead of a "do not use firewall" recommendation, it would be good to know if we can still use the firewall settings on the storage account and be able to use Boot Diagnostics.
In Storage Acount's firewall settings, there's an option of "Allow Azure services on the trusted services list to access this storage account", but not sure if that works for boot diagnostics.

Can you provide more information about your firewall settings?
Did you enable them through the Security section or somewhere else?

That is about the Firewall settings in the Networking blade.

Got it. Thanks! I just looked at mine and I do have firewall enabled but I am not seeing any issues with Boot Diagnostics. Regardless, all traffic should be staying in the datacenter and not entering the public space so I don't see how a firewall would block it.
If you have any other details about your environment that I might be missing please let me know. Otherwise I don't think what you are seeing is a firewall issue.

Adding this information to the document until we have more update.
Thanks!
#please-close


zpoline can not mprotect zero page as execute-only.

When I managed to integrate zpoline into our system, it can not mprotect zero page as execute-only, even if I changed the mmap_min_addr successfully.
$ LIBZPHOOK=libzphook_basic.so LD_PRELOAD=libzpoline.so ls -l
map failed
NOTE: /proc/sys/vm/mmap_min_addr should be set 0
$ sudo sh -c "echo 0 > /proc/sys/vm/mmap_min_addr"
[sudo] password for public:
$ LIBZPHOOK=libzphook_basic.so LD_PRELOAD=libzpoline.so ls -l
ls: main.c:502: setup_trampoline: Assertion `!mprotect(0, 0x1000, PROT_EXEC)' failed.
Aborted (core dumped)
$ uname -msr
Linux 6.5.0-snp-guest-525dfdeadc3a x86_64
$

However, it works on another machine with the following linux version.
➜  zpoline git:(master) ✗ uname -msr
Linux 5.15.0-53-generic x86_64

It might be problematic on higher version of linux.

Thank you for your message.

It might be problematic on higher version of linux.

I tried the program with Linux version 6.8. However, I could not reproduce the reported issue. Therefore, I think the Linux version is not the problem.
I am guessing that there would be some security features preventing the program from updating the memory access permission. What do you think of this guess?

This problem has been solved by using linux-6.8.


Feature_Request

Is your feature request related to a problem? Please describe.
Some UI enhancement was required when I looked at the page
https://github.com/apu52/METAVERSE/tree/main/Projects/Career-Crafters
Describe the solution you'd like
I'd like to improve the UI look
Describe alternatives you've considered
Minor UI improvement could be done
Additional context
None

can you please assign this task to me? I'm already working on it.

@OkenHaha Welcome to Metaverse!!!!!!!!!🥳
Thanks For raising the Issue. 👍

Please follow contributing.md file for the contribution details


web instance stacking

Look, it's piled together

what does orchestrator-client -c topology ... show?

Hi, I have the same problem. There is anonymized command output you want, but for my instance:
-> orchestrator-client -c topology -i master:3306
- master:3306    [null,nonreplicating,8.0.20-11,rw,ROW,>>,GTID]
  + slave1:3306  [0s,ok,8.0.20-11,ro,nobinlog,GTID]
  + slave2:3306  [0s,ok,8.0.20-11,ro,nobinlog,GTID]
  + slaveb1:3306 [1897s,lag,8.0.20-11,ro,nobinlog,GTID]

Thanks for help

@freiman I see your current primary (master:3306) is still configured as replica.
when you do show slave status\G on your current primary, what's the Master_host? And is there a further connection between that host and the topology, anything circular?

yes it is configured as replica and replication is stopped. it is state from past where we manually switching master because some maintanence work.
now we newly added this replication to orchestrator because we want to improve HA for our masters. so in near future wa want to add second master and complete "co master" topology.
so it is in the process.
the strange thing is that this replication is second we added in orchestrator and we had no this problem with the first one where there was also master with non working replication. orchestrator drew replication topology fine.

Thank you for explaining. I'm not sure the specific question was addressed:

when you do show slave status\G on your current primary, what's the Master_host? And is there a further connection between that host and the topology, anything circular?

yes! problem is solved. it was because master_host had VIP address which is actually set on the master server. so replication on master was configured to replicating from itself. I changed to first slave and diagram is fine.
thank you very much for your help!

Cheers. I'm quite certain the original author of the issue has a similar circular issue.


Reset command fails

thread 'tokio-runtime-worker' panicked at src/commands/reset.rs:14:7:
Discord returned invalid command options.
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Could be an issue on my part, though.

@SimplisticGH
Thank you for opening this issue.
I unfortunately don't have the time to test my scripts often enough, so reports like these are very much appreciated!


Build type check into toBuffer

Follow up on #81
The idea is to have a normalizer (toBuffer) that only normalized the types it understands. This way we ensure type checking and the conversion is always in sync.

v3.1.0


Add the Analytics and Crash Reports

Add the necessary SDK's to our code and activate in the Firebase Console.
Additional context
We need this to have this so we track usage for marketing. We also need Crash reports to track performance and errors.

ZenHub Information
This information is updated automatically. To modify it, please use ZenHub.

Done by @cinthyaejh on #777


Unexpected keyboard focus ring on SearchField, TextField components if they have height set

🐛 Bug Report
If you set, say minHeight, on a SearchField, when SearchField is focused via keyboard it will include focusing the div in addition to the input element.
🤔 Expected Behavior
We expect to only see the focus ring on the input element itself.

😯 Current Behavior
We are seeing two focus rings, one around input and one around the div.

🔦 Context
We have some usages of the SearchField set with a minHeight in our product so when we keyboard tab into it, we noticed the double focus ring.
💻 Code Sample
https://codesandbox.io/s/loving-sea-vr2df2?file=/src/App.js
🌍 Your Environment

Software
Version(s)

react-spectrum
3.23.0

Browser
Reproduced in Chrome, Firefox

Operating System
MacOS

🧢 Your Company/Team
Adobe Administration UIs

I wouldn't advise putting a minHeight on a textfield, it doesn't make much sense. In fact, we should probably remove that prop. This could happen in a Flex still though, so there might still be something we could do to address the odd rendering as well.
Seems like you need more control over the rendering than our form fields currently allow if you’re specifying all the extra elements
You can get this kind of control by re-composing the component like so (rough sketch) https://codesandbox.io/s/zen-feynman-9hrumk?file=/src/App.js
Might be good for us to consider making Label an official component as well as the HelpText underneath so people can compose these in situations like this where a button needs to be in line with the input


Request: Multiple colors for edges

when there are overlapping edges it is difficult to follow the flows, it is good to have multiple edge colors

Implemented in 2.3.1


Testing this algorithm

Hello, i'm super interested on this project, i wanted to know if, starting with the data in the csv format, is it possible to use this model?

Hi, and thank you for your interest in our work.
Yes it is possible. For testing HyperE2VID, you can use the codes in EVREAL repository, which is our other work focusing on the evaluation and analysis of event-based video reconstruction methods. The code should work with custom event data as long as the data is in the required "numpy memmap" format. In tools folder, we present tools to convert event data in bag or txt format to the numpy format. You can refer to those scripts to convert from csv to required format. Then, once the data is in this "numpy memmap" format, you should add a new dataset configuration (in json format) to the dataset configurations folder. In this configuration file, the path of the dataset and the sequences inside it should be described, as in the example here.
Then you can evaluate HyperE2VID with a command like python eval.py -m HyperE2VID -c t40ms -d your_dataset_name


Support user-supplied project templates for flutter create

Proposal
I stumbled upon a boilerplate project today and realized that I'd have to manually clone this and change values in different files and whatnot to get started with it.
Here I propose allowing users to specify a custom template at project creation time.
User Interface
Users creating a new project can specify a template as follows:
# from pub
$ flutter create my-project-name --template package-name-on-pub

# or from a git host
$ flutter create my-project-name --template https://somegithost.com/username/projectname

# or from the local filesystem
$ flutter create my-project-name --template /path/to/project/root

Unanswered Questions

Are substitutions (author name, project name, description, etc) limited to a know set of files?
<your questions / concerns here>

If the answer to 1 is "no" then how will the templating system know which files to modify?
Should it scan all files looking for use of template context data?
Or should the template author explicitly list the files in some form of a manifest?
Alternatives

We don't do this

The flutter CLI could grow a flutter template install (or similar) command.

This would mean creating a directory to house templates (such as ~/.flutter/templates, although ~/.flutter is already a textual file but this could be moved I imagine) and augmenting the template "discovery" code.

<your idea here!>

This is partially related to, but not a duplicate of, https://github.com/flutter/flutter/issues/14719 which is requesting more built-in templates as far as I can tell.

Why does flutter create need to be involved in this? Can't you just clone a template repo or create a separate tool for generally making template directories, independent of Flutter?

You could do that yes, but flutter already has machinery to template out projects, why build another tool that does that just for flutter instead of expanding on the existing tooling that all flutter devs will have?

I don't think the only issue is that standard installation needs more templates (e.g https://github.com/flutter/flutter/issues/14719). There should be a way to share templates with the community or within the organization.
Users could share simple "seed" projects. The templating concept has multiple names depending on the language which are practically the same thing, like cookie-cutter, scaffolding, boilerplate generation, etc..
I see many use-cases.
For example, I want to create small Dart/Flutter libraries, and there are things I always include in my packages: common links in the README, analysis options, my favorite CI tool's YAML file, tools folder, examples for server Dart and in Flutter, benchmark tests, etc....
Or just imagine someone comes up with a state management pattern that requires some boilerplate code, but it's too much of a hassle to set up every time, every time just a little bit differently as you forget some steps and conventions. People could flutter create --template github.com/hypothetical-dart-programmer/hypothetical_dart_template, and voila, everything works.
 You always start with the tools you like, you select state management, source generation, i18n, navigation, iconset, and you want your custom README to help other developers. With user-supplied templates, this could be super-easily achieved.

I like this idea because I don't want to have to keep removing the counter example from a new project but I don't want to burden the dev team with building in my personal preferences. So if we can specify a template project in the settings, then we have unlimited customization potential. What if there was a directory that housed a project we wanted to use as a template? No special syntax necessary. Just copy it to the new directory and viola

Maybe helpful: https://medium.com/flutter-community/flutter-changing-the-default-app-template-f3448386139f

@HerrNiklasRaab Thank you for the link. I find the article helpful, but I also consider it a workaround, a hack, that the developers might try until it's not supported. I really wish the Flutter or the Dart team would support custom templates for projects (see my thoughts about the why).

I just created a package to solve this issue https://pub.dev/packages/flutter_create.
you should give a try.

Yo, that's awesome. I know it's a tall order, but wouldn't this be better as a standalone, rather than something that has to be added from pub?

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/flutter/flutter/issues/15279#issuecomment-606302593, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFPYO7I46W7UAB5CBADAITTRKESN7ANCNFSM4EUILFNA.

IMHO this should be directly supported by flutter create because people  coming from other tool chains expect something like this, so it's about the first impression people get besides the obvious comfort of first having to activate or install something.

IMHO this should be directly supported by flutter create because people  coming from other tool chains expect something like this, so it's about the first impression people get besides the obvious comfort of first having to activate or install something.

Is there any work on this?

any news update?

This issue is duplicate of https://github.com/flutter/flutter/issues/77104
https://github.com/flutter/flutter/issues/77104#issuecomment-1051131631

Annoying but not a deal breaker. Definitely could be implemented without much hassle, I think, but perhaps there's a reason it hasn't.
Let's hope flutter create . --no-sample is available this year. :P


@Mock Methods

The returned mock is used.
public class CarTest {
    @Inject Car car;

    @Mock
    public Engine createFaltyEngine(@Mock Engine engine) {
        when(engine.canStart()).thenReturn(true);
        return engine;
    }

    @Test
    void testCarCanStart() {
        assertTrue(car.canStart());
    }
}

This is a bad example because I couldn't be bothered writing an actual example. This would usually come up when there is construction logic that requires stubbing.


Logging v2 - Error installing rancher logging chart in v2.5-head for RKE clusters

What kind of request is this (question/bug/enhancement/feature request):
bug
Steps to reproduce (least amount of steps as possible):

Try installing the logging chart

Result:
I think the helm chart has some formatting issues in this Rancher version.

helm upgrade --install=true --namespace=cattle-logging-system --timeout=10m0s --values=/home/shell/helm/values-rancher-logging-3.8.201.yaml --version=3.8.201 --wait=true rancher-logging /home/shell/helm/rancher-logging-3.8.201.tgz
--
Tue, Jan 12 2021 4:34:55 pm | Release "rancher-logging" does not exist. Installing it now.
Tue, Jan 12 2021 4:34:56 pm | Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: [ValidationError(DaemonSet.spec.template.spec.volumes[0]): unknown field "type" in io.k8s.api.core.v1.Volume, ValidationError(DaemonSet.spec.template.spec.volumes[1]): unknown field "type" in io.k8s.api.core.v1.Volume, ValidationError(DaemonSet.spec.template.spec.volumes[2]): unknown field "type" in io.k8s.api.core.v1.Volume, ValidationError(DaemonSet.spec.template.spec.volumes[3]): unknown field "type" in io.k8s.api.core.v1.Volume]

Other details that may be helpful:
Environment information

Rancher version: v2.5-head (01/12/2020) 65a15b9
Installation option: single/HA

Rancher version v2.5-head (01/15/2021) be9683f
Chart deployment on RKE clusters is working.
Spot checked also using GKE and k3s cluster types. Which are working too.

Rancher version v2.5-head (01/15/2021) be9683f
Chart deployment on RKE clusters is working.
Spot checked also using GKE and k3s cluster types. Which are working too.