Convert VMs from VMware/Parallels to UTM

It would be great if there was a tool or process to convert existing VMs from VMware/Parallels format to UTM format.  This would help users migrate from these tools to UTM.

Duplicate of #3050

To convert Windows 7  hard drive from Parallels to qcow2 format follow these procedures:

Uninstall parallels tools from the machine and shut down the machine.
Extract the .hds file to a working folder. The .hds file is located in:

/Users/<user name>/Parallels/Windows 7.pvm/Windows 7-0.hdd/Windows 7-0.hdd.0.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds

Issue this command to convert the parallels hard drive to raw image. Be careful the raw image size may be 5 times bigger than parallels hdd:

qemu-img convert -f parallels /Users/<user name>/Parallels/Windows 7.pvm/Windows 7-0.hdd/Windows 7-0.hdd.0.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds -O raw image.raw

Convert the raw file to qcow2 image:

qemu-img convert -f raw -O qcow2 image.raw  Windows7.qcow2

Create a new UTM machine and select the .qcow2 drive as a machine drive. Be careful when setting up the machine. Parallels creates a legacy Windows 7 installation so uncheck UEFI boot in the new UTM machine.
After booting install the qemu guest drivers. For Windows 7 I used virtio-win-0.1.100.iso

@startergo - Thanks for these helpful details! I'm confused on the second step, "2. Extract the .hds file to a working folder." and the path in the third step being the exact same as the preexisting .hds in the second step. I'm thinking that "a working folder" would be somewhere else other than the path to the original VM. Can you help me understand better?

What does the command look like on a Mac when I want to convert from VMWare Fusion to UTM/QEMU.
Fusion stores everything in a VMBundle container and splits the virtual hard disk.
I want to convert the FreeBSD VM from VMWare Fusion to UTM
UTM and QEMU  (via homebrew) are installed on the M1 MacMini.

What does the command look like on a Mac when I want to convert from VMWare Fusion to UTM/QEMU.

That make give you partial answer:
https://annvix.com/blog/converting-a-vmware-fusion-virtual-machine-to-kvm

Windows 7 will not start. Want the repair option and then halts on "Windows is loading files". Any clue?

Migrating Guest OS: Intel (x86-64) Macbook Pro 17" late-2008 running Parallels Desktop Windows XP VM to Macbook Pro 14" M1 Max (ARM architecture) running UTM (QEMU frontend) VM:
On your intel-based Macbook Pro, prepare your original VM (make a backup first just in case):
Uninstall Parallels Tools from under Windows and restart your VM (do not reinstall these tools upon restart when prompted!) ... Also remove any shared folders and network links. You can choose to re-activate Windows if asked at this stage on account of "significant hardware changes" (we will do it again as the last step). Do not forget to SHUT DOWN the VM.
Then go to the Terminal and type:
prl_disk_tool convert --hdd <disk_name> --plain
CREATES RAW IMAGE (Disk name is where your .hdd file resides; it is an OS X package under the Parallels VM folder whose contents can be viewed by selecting "Show Package Content" in Finder). This process can take some time... wait patiently.
Once the HDD file is converted, it has replaced the original file. But it still is an OS X package! Descending into this new package, either via command line "cd" or using the Finder "Show Package Content", your precious data file is finally revealed. It has the file extension HDS. Bear yet in mind that the original file name now has a "copy" suffix to it to indicate that it has changed.
Next, move this HDS file to the Silicon chip bearing (ARM-based) Macbook Pro M1 Max. Put it on your desktop or elsewhere that is accessible.
Then, install MacPorts on your new Macbook Pro as described here:
https://www.macports.org/install.php
For full functionality of MacPorts, optionally download and install the whole Xcode and x11.
Now install QEMU using MacPorts by typing the following command in the Terminal:
sudo port install qemu
After QEMU installation is finished, locate your HDS file (which is a RAW image) and type:
qemu-img convert -f raw -O qcow2 [image].hds WindowsXP.qcow2
Your username folder now contains a newly created qcow2 hardisk image that you will load under UTM, which is a great frontend for QEMU. (Optionally, you can move the qcow2 file anywhere you want.)
Go to https://mac.getutm.app/ and download UTM. Also go to the Gallery section and download the ready-made Windows XP profile. Additionally get SPICE GUEST TOOLS from:
https://github.com/utmapp/qemu/releases/download/v7.0.0-utm/spice-guest-tools-0.164.4.iso
Install and set up UTM. You will be using UTM's emulator feature, not the virtualization feature. The ready-made Windows XP profile is sufficient for this.
Before running it, edit your VM profile and prepare the IDE drives. Delete the default hardisk and select the WindowsXP.qcow2 image file as the main boot drive. Also, load Hiren's Boot CD to your CD ROM drive as an ISO after downloading it from:
https://www.hirensbootcd.org/old-versions/
You WILL require an external USB keyboard. Get one or you will be stuck for what comes next.
After loading Hiren's Boot CD ISO to the CD ROM drive of the edited VM profile, drag this IDE drive to the top so that it has boot priority.
Now start the VM. Immediately press and hold the option key on your external USB keyboard. Do not release it! Or the keyboard capture will be lost! (If you fail, you will be stuck at Hiren's boot menu...)
A second or so later, try to press and hold the down arrow immediately followed by ENTER (do NOT press them at once). You may not succeed at first. Restart the VM if that is the case. Try this a couple of times until you get it right and can select and launch the Mini Windows XP from the boot menu of Hiren's Boot CD.
When Mini Windows XP loads, make sure your external keyboard is hooked in by the VM window's USB capture button.
Now, capture your mouse and install new hardware from the desktop shortcut so that the mini OS can recognize your external keyboard.
From the Hiren menu icon in the system tray, go to Registry -> "Fix hard disk controller (fix_hdc.cmd)".
Press the T key, then enter and type in your Target Root folder. The default would be C:\Windows but might be different on multiboot systems, in which case you would need to check in Windows Explorer what the correct drive letter is.
Hit the M key on your external keyboard to select Update Mass Storage drivers and press enter.
 Also drag the hardisk IDE to the top so that it has boot priority. Remove the external keyboard if you wish, for you do not need it anymore.
Run the VM again. The OS will launch. You will not be successful to immediately activate Windows XP just yet due to the internet connection not being fully set up!
When Windows XP has done starting up, capture your mouse and install all the new found hardware one by one.
Finally, load the SPICE GUEST TOOLS iso to the CD ROM slot and install the program.
Restart and activate Windows license.
Done and Solved!

Migrating Guest OS: Intel (x86-64) Macbook Pro 17" late-2008 running Parallels Desktop Windows XP VM to Macbook Pro 14" M1 Max (ARM architecture) running UTM (QEMU frontend) VM:
On your intel-based Macbook Pro, prepare your original VM (make a backup first just in case):
...
Done and Solved!

Thanks for the helpful post! I no longer need to do this, but someone else may well benefit from your knowledge shared here.

Your instructions were great.
However, I am stuck on the Hiren's Boot CD ISO step.
I tried many time, and keep bring brought to the Shell command.
Is anything I can try to get it to boot correctly from the ISO?

Booting from the HBCD_PE_x64_v108.iso
seemed to work, but from there I don't know where to go.

You need an EXTERNAL USB keyboard to continue as I said:
You WILL require an external USB keyboard. Get one or you will be stuck for what comes next.
After loading Hiren's Boot CD ISO to the CD ROM drive of the edited VM profile, drag this IDE drive to the top so that it has boot priority.
Now start the VM. Immediately press and hold the option key on your external USB keyboard. Do not release it! Or the keyboard capture will be lost! (If you fail, you will be stuck at Hiren's boot menu...)
A second or so later, try to press and hold the down arrow immediately followed by ENTER (do NOT press them at once). You may not succeed at first. Restart the VM if that is the case. Try this a couple of times until you get it right and can select and launch the Mini Windows XP from the boot menu of Hiren's Boot CD.
When Mini Windows XP loads, make sure your external keyboard is hooked in by the VM window's USB capture button.
Now, capture your mouse and install new hardware from the desktop shortcut so that the mini OS can recognize your external keyboard.
From the Hiren menu icon in the system tray, go to Registry -> "Fix hard disk controller (fix_hdc.cmd)".
Press the T key, then enter and type in your Target Root folder. The default would be C:\Windows but might be different on multiboot systems, in which case you would need to check in Windows Explorer what the correct drive letter is.
Hit the M key on your external keyboard to select Update Mass Storage drivers and press enter.
 Also drag the hardisk IDE to the top so that it has boot priority. Remove the external keyboard if you wish, for you do not need it anymore.

Your instructions are great, until I get to the "sudo port install qemu" command. It returns the following error message:
"Cannot install qemu for the arch 'arm64' because
its dependency glib2 is only installed for the arch 'x86_64'
and the configured universal_archs 'x86_64 i386' are not sufficient.
Unable to execute port qemu: architecture mismatch"
I've re-install Macports, and that doesn't seem to help.
Suggestions? I already have UTM on my computer, and have a clean copy of Windows XP fully installed, so it seems to work on the architecture...

Your instructions are great, until I get to the "sudo port install qemu" command. It returns the following error message:
"Cannot install qemu for the arch 'arm64' because its dependency glib2 is only installed for the arch 'x86_64' and the configured universal_archs 'x86_64 i386' are not sufficient. Unable to execute port qemu: architecture mismatch"
I've re-install Macports, and that doesn't seem to help.
Suggestions? I already have UTM on my computer, and have a clean copy of Windows XP fully installed, so it seems to work on the architecture...

I think you have installed the wrong qemu version through macports. You should check the correct version for your specific architecture, unintall the problematic qemu with all its dependencies, reinstall the correct version, and try again.

I'm afraid you're now beyond my competency. I'm on an M3 macbook pro. I'm not sure how to find the existing qemu on my computer to check its version. I've downloaded the latest qemu version (8.2.4), but I'm not sure how to get Macports to find it.
As I say, UTM is working (and I believe it relies on qemu...?)
I do appreciate your help...

https://superuser.com/questions/367434/how-do-you-remove-macports-and-all-the-packages-it-has-installed
Then do a fresh install of macports and type:
sudo port install qemu

Migrating Guest OS: Intel (x86-64) Macbook Pro 17" late-2008 running Parallels Desktop Windows XP VM to Macbook Pro 14" M1 Max (ARM architecture) running UTM (QEMU frontend) VM:

Before create raw image don't forget to do a merge, like this.  prl_disk_tool convert --hdd [image].hds WindowsXP.qcow2 --merge

Migrating Guest OS: Intel (x86-64) Macbook Pro 17" late-2008 running Parallels Desktop Windows XP VM to Macbook Pro 14" M1 Max (ARM architecture) running UTM (QEMU frontend) VM:

Before create raw image don't forget to do a merge, like this. prl_disk_tool convert --hdd [image].hdd--merge

There is no need to do any merge. Your virtual hardisk will work exactly as before under the UTM once you complete all the steps I described.

Migrating Guest OS: Intel (x86-64) Macbook Pro 17" late-2008 running Parallels Desktop Windows XP VM to Macbook Pro 14" M1 Max (ARM architecture) running UTM (QEMU frontend) VM:

Before create raw image don't forget to do a merge, like this. prl_disk_tool convert --hdd [image].hdd--merge

There is no need to do any merge. Your virtual hardisk will work exactly as before under the UTM once you complete all the steps I described.

I had 20 files before merge. Now I only have one. I'm I missing something?

This part of the instruction will create only a single needed .hds file, unless you have perhaps several drives partitioned under your Windows VM:

prl_disk_tool convert --hdd <disk_name> --plain
CREATES RAW IMAGE (Disk name is where your .hdd file resides; it is an OS X package under the Parallels VM folder whose contents can be viewed by selecting "Show Package Content" in Finder). This process can take some time... wait patiently.
Once the HDD file is converted, it has replaced the original file. But it still is an OS X package! Descending into this new package, either via command line "cd" or using the Finder "Show Package Content", your precious data file is finally revealed. It has the file extension HDS. Bear yet in mind that the original file name now has a "copy" suffix to it to indicate that it has changed.
Next, move this HDS file to the Silicon chip bearing (ARM-based) Macbook Pro M1 Max. Put it on your desktop or elsewhere that is accessible.

If you end up with several .hds files at this step, you need to load them to UTM at the end one by one as separate .qcow2 virtual drives. Or, if I understand what you are trying to do, you can indeed merge these distinct .hds files into one .hds file.

You need an EXTERNAL USB keyboard to continue as I said:
You WILL require an external USB keyboard. Get one or you will be stuck for what comes next.

Thank you very much for a god description!
I actually worked for me without Hiren's Boot CD. An I could use wireless keyboard and mouse on a Mac Mini.


How to localize the column name in the Dashboard ?

the section is localized, so is the list link.. but  the column :name  keeps displaying NAME ?  did I miss anything in localizing ?
section I18n.t(:recent_activities) do
table_for Activity.order("created_at desc").limit(5) do
column :name do |activity|
link_to activity.name, [:admin, activity]
end
end
strong { link_to I18n.t(:view_all_activities), admin_activities_path }
end

thanks


Dependabot

This will assist with version updates and vulnerability scans.
Dependabot scans will need to be enabled in the repo itself under https://github.com/AmruthPillai/Reactive-Resume/settings/security_analysis

Also may be required to enable under https://github.com/AmruthPillai/Reactive-Resume/network/updates

It would also be worthwhile pairing this with Snyk (https://app.snyk.io/) for vulnerability monitoring.
Assignee can be removed if not required/wanted.
I've split the pull requests from https://github.com/AmruthPillai/Reactive-Resume/pull/760 for easier tracking, management, discussion and reverting if required.

Let's do it, anything to keep automated security high :) Thank you for this and all the other PRs! You are awesome 🔥


Sample HTTP server

I ported http-codec from luvit to seaduk and made a minimal HTTP server using this and wrap-socket.
https://github.com/nucleus-js/seaduk/blob/master/test-app/http-server.js
// Load the libraries
var httpCodec = require('deps/http-codec');
var createServer = require("deps/net").createServer;
var uv = require('uv');

// Create a TCP server using HTTP codec as the decoder/encoder
var server = createServer({
  port: 8080,
  encode: httpCodec.encoder(),
  decode: httpCodec.decoder(),
}, function (client) {
  // Read all parsed HTTP messages from the stream
  client.read(onRead);
  function onRead(err, data) {
    if (err) throw err;
    if (data) return client.read(onRead);
    // When we get an empty stream, that means a full request with body has been parsed
    if (data === "") {
      // Let's send a response head
      client.write({
        code: 200,
        headers: [
          "Server", "seaduk",
          "Date", new Date().toUTCString(),
          "Connection", "close",
          "Content-Length", "12",
          "Content-Type", "text/plain",
        ]
      });
      // And response body
      client.write("Hello World\n");
      // And shutdown the stream
      client.write(null, function (err) {
        if (err) throw err;
        print("Closing server");
        server.close();
      });
    }
  }
});

Next step is either to prototype a higher-level HTTP library or implement websockets + msgpack + super-agent-rpc.

Ideas for HTTP library API:

req.method
req.getHeader(name) -> value
req.readNext(callback) - read a single body chunk from the request
req.readAll(callback) - buffer all input from request
res.code - response code read/write
res.setHeader(name, value) - set a response header
res.addHeader(name, value) - add a response header (won't replace existing header with same key)
res.delHeader(name)
res.getHeader(name) -> value
res.write(chunk, callback) - write a chunk to response (go ahead and send head)
res.finish(callback) - finish writing response (send head if not sent already)
res.writeAll(chunk, callback) - write head and body at once


load_template now accepts **args as it feels more natural

@mirceaulinic can you review this? What do you think?
The idea is to be able to treat this method in a more natural way, passing what I want in the template as named arguments:
driver.load_template('set_ntp_peers', peers=['<IP_ADDRESS>', '<IP_ADDRESS>'])

Alternatively, I wouldn't mind passing a dict, something like:
driver.load_template('set_ntp_peers', {'peers': ['<IP_ADDRESS>', '<IP_ADDRESS>']})

So in the template you can do:
    {% for peer in peers %}
      peer {{peer}}
    {% endfor %}

Instead of:
    {% for peer in template_vars %}
      peer {{peer}}
    {% endfor %}

Thoughts?

Nice! Definitely a big improvement :+1:


Prompt interrupt not catched

Hello,
When I use the basic prompt the Ctrl-C interrupt is never catched, and the error is never throwed.
I found the origin of the bug, I will make a PR.

I am still having issues. When there's a prompt, pressing CTRL+C doesn't interrupt the application.

In case anybody wondered. When CTRL+C pressed you'll get an err. Just need to check it. It is pretty obvious but developers new to promptui and go may scratch their head for some minutes.

@richardzcode I'm a developer new to promptui and I'm scratching my head 😅 — do you have an example of how to catch Ctrl + C in promptui?


Record mode still hits network even if all requests have been recorded?

I'm having a hard time figuring out if record mode works like Sepia's cache mode or not (reuse existing playbacks, but record any new requests).
If I disable my network connection and run my tests in play mode, they all pass because the playbacks all exist. But if I run in record mode with no network, and my tests don't make any new requests (again, the playbacks all exist), it just stalls. So what is record actually doing in this situation: using the playbacks, or not? The docs make it sound like it should be using them, but then it should pass with no network if the same HTTP requests are being made…

Here's a simple test I just tried out that makes me think this behavior doesn't make sense:

In a test, make an HTTP request and use t.snapshot to snapshot the response body. Run with AVA_PLAYBACK=record ava -u. A snapshot and playback should be saved.
Now edit the playback file to have a different response body.
Running AVA_PLAYBACK=play ava fails as expected.
Strangely, AVA_PLAYBACK=record ava (note no -u) succeeds. The actual live HTTP response from the network is returned and compared with the snapshot (and they match), the playback isn't used. That might make sense but the playback also isn't updated – it still has the edited response body. I'd expect either (1) the test fails because the playback is used (no new requests were made in the tests) or (2) the test succeeds and the playback is updated (undoing our edited response body).

This is causing me issues currently – I'll write new tests, run AVA_PLAYBACK=record ava -u, and existing snapshots are updated (due to frequently-changing values in the response) but out of sync with the playbacks, which don't get updated.


refac: OutGoingMessagesClient -> OutgoingMessagesClient

Description
References

Codecov Report
Attention: 805 lines in your changes are missing coverage. Please review.

Comparison is base (21978a1) 83.07% compared to head (fc11574) 42.53%.
 Consider uploading reports for the commit 0bf961a to get more accurate results

Files
Patch %
Lines

source/B2CWebApi/Startup.cs
0.00%
66 Missing :warning:

source/Api/Program.cs
0.00%
64 Missing :warning:

...ssages.Infrastructure/ArchivedMessageRepository.cs
0.00%
60 Missing :warning:

...ce/ArchivedMessages.Infrastructure/QueryBuilder.cs
0.00%
47 Missing :warning:

source/B2CWebApi/Security/FrontendUserProvider.cs
0.00%
40 Missing :warning:

...trollers/RequestAggregatedMeasureDataController.cs
0.00%
35 Missing :warning:

...ctories/RequestAggregatedMeasureDataHttpFactory.cs
39.65%
22 Missing and 13 partials :warning:

...essages/RequestAggregatedMeasureMessageReceiver.cs
0.00%
32 Missing :warning:

.../Api/Authentication/DevMarketActorAuthenticator.cs
0.00%
29 Missing :warning:

...uration/Middleware/UnHandledExceptionMiddleware.cs
0.00%
29 Missing :warning:

... and 42 more

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #659       +/-   ##
===========================================
- Coverage   83.07%   42.53%   -40.55%
===========================================
  Files         456      370       -86
  Lines       10418     7136     -3282
===========================================
- Hits         8655     3035     -5620
- Misses       1438     4004     +2566
+ Partials      325       97      -228

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


QnA GetAnswersAsync method throwing exceptions

Github issues should be used for bugs and feature requests. Use Stack Overflow for general "how-to" questions.
Getting an exception when calling GetAnswersAsync on QnA lib.
at System.Collections.Generic.Dictionary2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)\r\n   at Microsoft.Bot.Builder.AI.QnA.QnAMaker.FillQnAEventAsync(QueryResult[] queryResults, ITurnContext turnContext, Dictionary2 telemetryProperties, Dictionary2 telemetryMetrics, CancellationToken cancellationToken)\r\n   at Microsoft.Bot.Builder.AI.QnA.QnAMaker.OnQnaResultsAsync(QueryResult[] queryResults, ITurnContext turnContext, Dictionary2 telemetryProperties, Dictionary2 telemetryMetrics, CancellationToken cancellationToken)\r\n   at Microsoft.Bot.Builder.AI.QnA.QnAMaker.GetAnswersAsync(ITurnContext turnContext, QnAMakerOptions options, Dictionary2 telemetryProperties, Dictionary`2 telemetryMetrics)\r\n
Version
What package version of the SDK are you using.
4.4.5
Describe the bug
Give a clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Write some code that calls this function with 4.4.5 and it'll throw this exception.
Expected behavior
No exception at least.
Screenshots

Additional context
Add any other context about the problem here.
[bug]

This has been fixed via #1899 against master, the wrong key was being used. QnATelemetryConstants.MatchedQuestionProperty was supposed to have been used instead of QnATelemetryConstants.QuestionProperty
master is available as a nightly build via MyGet, otherwise we'll be cutting 4.5 which will have this release in mid-July.


[WIP] Export TcpBuilder construction

This PR is the first steps in making a la carte construction of channel allocators from TCP connections easier. I expect this to be a bit of an iterative process where we learn about the next painful hunk of code that needs to be copy/paste'd and then split that open too.
cc @benesch

Pushed up a commit to https://github.com/MaterializeInc/materialize/pull/424 as proof!

I do get back with them later and remain quite ignorant. I am not sure what to do and I will not be in that vector today. Would the good fella that I saw today share some advice? I would not want to step on toes<EMAIL_ADDRESS>


llm_chain_local: FieldRequiredError on example

Running the simple example from llm-chain-local with the suggested command gives me the following error message:
Error: FieldRequiredError("model_type")

I also tried using OptionsBuilder manually and got the following error message:
Error: FieldRequiredError("Default field missing")

How can I properly use a LLaMa model with this library?

Hey thanks for reporting this seems like a bug with the new options system looking into it

Fixed in 0.12.1

Hey @williamhogman I'm still getting this on 0.12.2:
["target\\release\\chat.exe", "llama", "G:/MODELS/LLM/models/nous-4bit-32g.bin", "Explain math"]
model_type: "llama"
model_path: "G:/MODELS/LLM/models/nous-4bit-32g.bin"
prompt: "Explain math"
Error: FieldRequiredError("Default field missing")

I initially thought it might be due to the model itself, but it works fine in llm-cli
❯ llm llama infer -m "G:/MODELS/LLM/models/nous-4bit-32g.bin" -p "Rust is a cool programming language because"
✓ Loaded 363 tensors (10.2 GB) after 96ms
Rust is a cool programming language because of its focus on safety, speed and preventing data races. However the syntax can be intimidating for beginners - so here's an interactive tutorial to help you get started with Rust!

Adding .with_options(&DEFAULT_OPTIONS) here https://github.com/sobelio/llm-chain/blob/df531b14dfa68d4703a03778423598012314d5d8/crates/llm-chain-local/src/executor.rs#L58 fixed the issue for me

Okay great that you looked into it we will fix ASAP

This issue just came up again?


bump sharp version

@kerim1  Is there a reason why sharp is fixed to 0.32.5?
https://github.com/archival-IIIF/image-server-core/blob/main/package.json#L11
There is a CVE for sharp < 0.32.6.
https://github.com/advisories/GHSA-54xq-cgqr-rpm3
Wouldn't it be better to use something like ^0.32.5..

I prefer fixed versions as it is much clearer what versions are used and it causes less problems (read incompatibilities).
Concerning the CVE: the vulnerability lies with using untrusted WebP input, which is not the case for how Sharp is used within this package. However, I was already working on a dependencies update, which I just pushed to GitHub / NPM. :-)

Thanks a lot.


Method signature changed.

I noticed that the method addButton changed to this:
addButton(_ title:String, backgroundColor:UIColor? = nil, textColor:UIColor? = nil, showTimeout:SCLButton.ShowTimeoutConfiguration? = nil, target:AnyObject, selector:Selector)->SCLButton

But when doing a pod install, an older version gets pulled and the method is this:
addButton(_ title:String, backgroundColor:UIColor? = nil, textColor:UIColor? = nil, showDurationStatus:Bool=false, action:@escaping ()->Void)->SCLButton

Not sure why this happens.

Habing the same issue, any clues?

Hi guys, I got this while compiling my code:
/Users/user/Documents/GitHub/mobile-visa-mlc-ios-master/BaseApp/Views/VisaViews/VisaAlertView/VisaAlertViewController.swift:87:132: Cannot convert value of type 'Bool' to expected argument type 'SCLButton.ShowTimeoutConfiguration?'
In this method:
func addActionButton(_ title: String, buttonTapped: @escaping () -> Void) {         let textColor = ThemeManager.sharedManager.isUsingDefaultTheme ? ThemeManager.sharedManager.currentPrimaryColor : ThemeManager.sharedManager.currentTertiaryColor         _ = addButton(title, backgroundColor: ThemeManager.sharedManager.currentSecondaryColor, textColor: textColor, showTimeout: false, action: buttonTapped)     }
Could you guys help me?


k8s journey: Start AWS services rollout with Redis

As part of this journey we found a new home for our AWS services and now it's time to deploy our first new AWS service - Redis
Acceptance Criteria

[x] Make a new branch to test this code base in staging
[x] Testing of the broker in CF Staging for viability
[x] Map catalog/service to match as close as possible to legacy Redis service
[ ] Documentation

Security considerations

[ ] Review the code base, it's accounts, and AWS access with cg-compliance members to make sure this updated broker is compliant with our SSP
[ ] SCR if filed for new service

Implementation sketch

[x] Have a working branch that is vetted/tested in staging
[ ] Have developed support documentation on how CG members will support the broker going forward
[x] Have built out a concourse pipeline to deploy/upgrade the broker
[ ] Have developed documentation library for CG customers to use this new service

Will start testing initial broker changes in Dev this week.

Link to draft of customer announcement https://docs.google.com/document/d/1g8_2GKXFwWCwZaLKyxJ-9rFOvAJhY25yCmAQ65tQTvk/edit

@RonWilliams
Here are the plan details we are looking at.
Service name:  redis
Doc link: Same as current- https://cloud.gov/docs/services/redis/ - we'll need to update the website with more plan details.
Image: generic redis icon
Plans:

redis-single

single instance redis
Displayname: non-prod single redis5.0.6, persistent storage, 512Mb memory limit
Description: AWS Elasticache Redis 5.0.6 Single node non-prod use only
Free: true
Cost: 0 USD monthly

redis-3node

three node redis instance
Displayname: 3 node redis5.0.6, persistent storage, 512Mb memory limit
Description: AWS Elasticache Redis 5.0.6 Three node
Free: false
Cost: 99.99 USD monthly

redis-5node

five node redis instance
Displayname: 5 node redis5.0.6, persistent storage, 512Mb memory limit
Description: AWS Elasticache Redis 5.0.6  Five node
Free: false
Cost: 199.99 USD monthly

Not sure if you wanted to leave the single plan free or not for sandbox/testing.  The other 3/5 node amounts are place holders and I can update once you have pricing.
In all three plans we have the following enabled as offered by AWS:

nightly snapshots are enabled done between 01:30 - 02:30 UTC - going to move that forward to 4:30 - 5:30 UTC before we launch
Weekly AWS maintenance support window Sundays 23:00 - 1:00 UTC - again going to move forward to 6:30 - 7:30 UTC before we launch
Single plan gets 1 snapshot retention limit - 3/5 node get 3 snapshot retention limit

As of right now we are using cache.t3.micro instance types for all three plans since the memory space matches the legacy redis plans on k8s.
For the beta launch all instances will be created using the highest redis engine level AWS supports at the moment which is 5.0.6.  Open source Redis stopped at 5.0.8 and as of 4/30/20 6.0 is now GA.  We don't know AWS' intentions/timeframe to offer higher than 5.0.6 or even 6.X
At @spgreenberg 's  suggestion we tried to see if the AWS API would support a wildcard for the engine but it does not.  The idea behind it was we could always offer the latest 5.X version to customers once AWS releases it.  Open source 6.0 has some breaking changes so we didn't want to have the broker always give out the latest version and give customers a mixed experience if we are not tracking AWS offerings and adjust customer exceptions in a timely fashion.
We will need to have further technical discussions on how we want to handle this and future engine offerings from both the broker and plan offerings.  At this point we felt it was not worth holding up the beta while we sort this out and we can adjust the broker code and plans during the beta to try and resolve this and provide the ability to offer the latest versions of the offerings without impacting our customers.

I like the names based on replica count, but the redis-single should probably be redis-dev or similar or to clearly imply it should be used for non-production workloads.
On pricing, I'd like to move away from any $0 cost charges when a service incurs cost to the program. I'll create a separate card for determining costs. Pricing should be $0 for all tiers during the beta.

@ChrisMcGowan - @RonWilliams just shared with me that the legacy Redis and ES need to be deprecated by October 16. So that we're in compliance with our deprecation policy, we'll need need to make a deprecation announcement probably in the first couple weeks of the beta.

Announcement emailed to customers today.

@ChrisMcGowan now that the Redis beta is live, could the remaining acceptance criteria that are open be split out into new stories? It'll be easier to track and it'll better reflect all the progress that's been made. Thoughts?

@pburkholder just following up - the SCR was filed for this new version of the service and broker correct?

Opened https://github.com/cloud-gov/product/issues/1383 to track the final bits for move to prod


Added descriptions for Teams parameters

https://github.com/MicrosoftDocs/office-docs-powershell/issues/3837

Docs Build status updates of commit e6bf13d:
:clock10: Full build: the average full build time is 11 min(s) 53 sec(s), this is based on the last 857 build(s) for this repository.

Docs Build status updates of commit e6bf13d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/policy-and-compliance-retention/New-RetentionCompliancePolicy.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Add Nathanael to CODEOWNERS for Azure IoT SDK

@ngastelum-ms:  I've left this open due to the feedback.   Once you're done, if you'd like me to merge on your behalf, please let me know.

/check-enforcer override


[GenaAI orchestrator] Add TGI connection with proxy

After discussion with @morgandiverrez this PR will be closed, development are under :

https://github.com/theopenconversationkit/tock/pull/1702


User Serial Port Name

Fixes a bug where the user's serial port may not be the same as hardcoded value, allows the serial port to be set as a variable on project creation and defaults to cu.usbmodem*
Sorry to spam up your pull requests!

Sorry to spam up your pull requests!

No worries. Thanks for your contributions !
Sorry to insist, but there are still 2 commits in the pull rquest where only one is needed.
It is really easy to fix: just follow any tutorial on interactive rebasing and you'll also have aquired a valuable skill.

Any news on this ? I think this is a great fix and would very much like to get it merged !
I could do the squash in your stead if you prefer !

Whoops, sorry! I'm on my way home now so I'll get right on it as soon as I'm back.

Um, well, I've managed to merge the commits however the old ones are still there and pushing the branch from my machine seems to have caused yet another commit... Not quite sure how to sort that

Make sure your are on the correct branch.
git rebase -i HEAD~4
You'll be presented with an editor with this content:
pick 621a45f Use the absolute path as returned by 'which' for every used command. Fixes #2
pick 7d545ad Fix bug compiling with spaces in project path
pick a54ab39 Allow entry of serial port name, more likely default
pick 64871f8 Update Makefile.tpl
pick ab61c31 Sets the variable used in Makefile for serial port

# Rebase d1c6579..771d3ae onto d1c6579

Delete the first 2 line and the last 2 lines, to only keep this one:
pick a54ab39 Allow entry of serial port name, more likely default

# Rebase d1c6579..771d3ae onto d1c6579

Save and exit the editor. You just got rid of 4 unneeded commits.
You then need to push (using the -f flag) to your repo which should update this PR.
Good luck !

Hooray! That seems to have done it! The pull request is now saying "This pull request contains merge conflicts that must be resolved." so I'm not entirely sure what's happened there but I assume that's fixed from your end?

@CallumA Nice, we're almost there !
What you'll need to do next is rebase your work on top of this repo's master.
What's the output of running git remote in your clone ?

$ git remote
origin

Ensure you are on the CallumA-SerialPortName branch:
git remote add upstream git://github.com/jawher/xavr.git
git pull --rebase upstream master

If you get conflicts, fix them and re-push your branch, which should then update this pull request

Ah ha, that looks better now

@CallumA Thank you again for your contributions !


[Vulkan] Implemented do/while loops for shaders

Recreated version of https://github.com/godotengine/godot/pull/31353

Thanks!


Binder image cleaners hanging around on autoscaling node pools

Hi All,
I have a large binder deployment that I'm scaling down now.  I notice that binder-image-cleaner pods are hanging around.
mrocklin@carbon:~$ kubectl get pods -n pangeo-binder
NAME                         READY     STATUS    RESTARTS   AGE
binder-76bb88c77d-mplb6      1/1       Running   0          3d
binder-image-cleaner-26g7h   1/1       Running   0          3h
binder-image-cleaner-2nms7   1/1       Running   0          3h
binder-image-cleaner-4dvwh   1/1       Running   0          4h
binder-image-cleaner-4snqp   1/1       Running   0          3h
binder-image-cleaner-5hpn5   1/1       Running   0          3h
binder-image-cleaner-6t8k2   1/1       Running   0          3h
binder-image-cleaner-6v22h   1/1       Running   0          3h
binder-image-cleaner-6vbnl   1/1       Running   0          4h
binder-image-cleaner-7jjt7   1/1       Running   0          3h
binder-image-cleaner-7w7xt   1/1       Running   0          1h
binder-image-cleaner-92grx   1/1       Running   0          3h
binder-image-cleaner-9fw9j   1/1       Running   0          3h
binder-image-cleaner-9vnqn   1/1       Running   0          3h
binder-image-cleaner-9z7wn   1/1       Running   0          3h
binder-image-cleaner-b6whs   1/1       Running   0          2h
binder-image-cleaner-bbvzm   1/1       Running   0          3h
binder-image-cleaner-bhg5d   1/1       Running   0          2h
binder-image-cleaner-btzzs   1/1       Running   0          5h
binder-image-cleaner-c4fsb   1/1       Running   0          3h
binder-image-cleaner-d5b6k   1/1       Running   0          3h
binder-image-cleaner-d5tvn   1/1       Running   0          2h
binder-image-cleaner-dhbtg   1/1       Running   0          3h
binder-image-cleaner-fqp92   1/1       Running   0          3h
binder-image-cleaner-hk8vk   1/1       Running   0          3h
binder-image-cleaner-hqcw2   1/1       Running   0          2h
binder-image-cleaner-kcw2c   1/1       Running   0          3h
binder-image-cleaner-kz8jw   1/1       Running   0          2h
binder-image-cleaner-l9xvm   1/1       Running   0          3h
binder-image-cleaner-lt5fq   1/1       Running   0          4h
binder-image-cleaner-mg7lp   1/1       Running   1          3h
binder-image-cleaner-njf2x   1/1       Running   0          5h
binder-image-cleaner-phrmm   1/1       Running   0          3h
binder-image-cleaner-q24nw   1/1       Running   0          3h
binder-image-cleaner-q4r2c   1/1       Running   0          3h
binder-image-cleaner-q7sg6   1/1       Running   0          3h
binder-image-cleaner-ql4wg   1/1       Running   0          2h
binder-image-cleaner-r9f94   1/1       Running   0          4h
binder-image-cleaner-r9r9s   1/1       Running   0          4h
binder-image-cleaner-rtcjf   1/1       Running   0          2h
binder-image-cleaner-rvjhj   1/1       Running   0          4h
binder-image-cleaner-sw7fd   1/1       Running   0          2h
binder-image-cleaner-t2zwd   1/1       Running   0          5h
binder-image-cleaner-tcdmw   1/1       Running   0          3h
binder-image-cleaner-w8hgj   1/1       Running   0          5h
binder-image-cleaner-wnmq8   1/1       Running   0          5h
binder-image-cleaner-xffj6   1/1       Running   0          3h
binder-image-cleaner-xjppn   1/1       Running   0          5h
binder-image-cleaner-xlx4z   1/1       Running   0          3h
binder-image-cleaner-zrl9p   1/1       Running   0          3h
hub-6f598bd9f8-xn7l9         1/1       Running   0          3d
proxy-6d58d6894-fzfl9        1/1       Running   0          3d

I suspect that these are stopping some of my node pools from scaling down.  Is there any way to make these pods not stop scaling down?
(please excuse my ignorance here, I have a lot to learn in this topic)

Wow that was a large amount of image cleaner pods, hmmm, a PDB can make them reschedulable to another node at least.
https://kubernetes.io/docs/tasks/run-application/configure-pdb/


Hand refactor

Rewrote a lot of the hand tracking / hand pose emulation stuff

Tested on windows with and Index, works great


[stable/graylog] support graylog server logging in JSON

@KongZ
What this PR does / why we need it:
This PR adds support for configuring the graylog pods to log in JSON, specifically one event per line, using the log4j2 JSONLayout. This is useful for log aggregation with tools like fluent-bit and fluentd.
Special notes for your reviewer:
I know there are some other open PRs for stable/graylog, I'll re-bump the chart version if any of those get merged first. Thanks!
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

/assign @KongZ

/lgtm

/ok-to-test

/retest

/retest

Sorry for the excessive retests! I'm trying to figure out why the pull-charts-e2e job is failing. At first glance it looks like a timeout waiting for the mongodb and elasticsearch clusters to provision, but it's not clear to me why that would be. I noticed some other recent CI checks for unrelated PRs have possibly related errors, but this is my first time looking over the helm charts CI setup so I don't yet have a good sense of that.

Testing infra was fixed, so last failure shouldn't happen again

/retest

Thank you @scottrigby!


SKIPME: Remove deprecated flags

More compiler flags we don't need.
@markhamstra @davidnavas

JMWG


Review jenkins networkpolicy docs

The test failed because I didn't increase the chart version, it's really required to increase the version if I'm just changing the readme?
Error please increment the new chart version to be greater than the existing version of 0.9.0

Yes. We decided to be strict about this. Releases should be immutable.

@unguiculus could you review again?

/ok-to-test

/lgtm


adding basic tests for smartnoise_synth

Coverage report
 Click to see where and how coverage changed
FileStatementsMissingCoverageCoverage(new stmts)Lines missing

  server/lomas_server/tests
  test_api_smartnoise_synth.py

Project Total

This report was generated by python-coverage-comment-action


Set and enforce a consistent code style

Arch is currently using unconventional code styles in a lot of places. I would like to propose some more consistent styles, as well as some other things to potentially look at. Enforcing a consistent code style allows for a better overall coding and reading experience.
Major things this project needs to tackle:

Misspellings in both documentation and code.
Using one file for multiple types.
Misuse of the in modifier.
Overuse of the MethodImpl attribute.
Difficult readability because of single-line statements.

Below, I've listed some conventions this project can enforce. These are up for discussion though. I'm happy to help implementing this.
The below can also be found here as an .editorconfig file.

Naming Conventions and Accessibility Modifiers

private, protected, private protected, and protected internal fields should be _camelCase. The same applies when they're static.
internal and public properties should be PascalCase. The same applies when they're static.
const locals and fields should be PascalCase.
Parameters should be camelCase.
Methods, enums, structs and classes (and their record equivalents), and namespaces should be PascalCase.
Type parameters should be TPascalCase.
Interfaces should be IPascalCase.

Fields should never be internal or public. Properties should never be private, protected, private protected, or protected internal.
Accessibility modifiers should be required at all times.
readonly should be added whenever possible.
var Preferences

Do not use var anywhere.

.NET Conventions

System using directives should always be sorted first.
.this qualification should never be used.
Predefined types (int) should always be used over framework types (Int32).
Parentheses should be used for clarity:

In arithmetic operators: a + (b * c)
In other binary operators: a || (b && c)
In relational operators: (a < b) == (c > d)

Expressions

Should prefer index and range operators.

Should prefer simple default expression.

Should prefer object and collection initializers.

Should prefer conditional expression (?:) over if with assignments and returns.

Should prefer local function over anonymous function (lambda).

Should prefer implicit object creation when type is apparent (target-typed new).

Do not use inferred tuple element and anonymous type member names.

Do not use expression body for constructors.

Do not use expression body for local functions.

Do not use expression body for methods.

Do not use expression body for operators.

Do not use expression body for indexers.

Do not use expression body for properties.

Should prefer expression body for accessors when on single line.

Should prefer expression body for lambdas when on single line.

Pattern Matching and null Checking

Should prefer pattern matching when possible.
Do not use throw-expression (obj ?? throw new ArgumentNullException(nameof(obj));).
Should prefer conditional delegate call.
Should prefer coalesce expression.
Should prefer null propagation.
Should prefer is null over ReferenceEquals or == null.

New Line and Braces Preferences

Do not allow multiple blank lines.
Do not allow embedded statements on same line.
Do not allow blank lines between consecutive braces.
Do not allow statements immediately after block.
Do not allow blank line after colon in constructor initializer.
Should prefer opening brace after if, else, case blocks.

Fields should never be internal or public.
Except for structs!

Hey ero ! :)
Thanks for pointing this out, i could actually need every help i can get with this.
I already updated the official readme yesterday to fix some misspellings, however theres still a lot more to it.
I also havent looked at the code yet, probably my rider code settings are messed up. Thats the first think im gonna check.

Fields should never be internal or public

Thats really something i use quite frequently. I actually did that since in some cases fields are actually being faster compared to properties. Especially when the propertys get is not being marked inline. So the question here is actually what to prefer, however such cases are pretty rare.

Overuse of the MethodImpl attribute.

Understandable, how would you decide whether its necessary or not ? Unfortunately we can not test the performance effect on every single method. I think atleast query related methods should keep that since it lowers the cache miss in such cases. I already benchmarked this months ago and it was the case for such scenarios.
However the effect on other methods is still unknown, based on experience methods marked with inline always performed better which is kinda important for this lib. So probably we should just ignore the fact, you can see similar decisions in other ECS libs like "Default.ECS".

Do not use var anywhere.

Why is that ? I can understand that it might make the code harder to understand at first, however its way more convenient to use. Probably we should focus on ensuring that the code is readable so that everyone automatically understands what type the var is e.g. : var entity = world.CreateEntity(...); instead of var entity = world.Create(...);.
I agree on the rest however and could need some help here. Thanks for the editorconfig, just saw that. Im gonna use it :)

Fields should never be internal or public

[...] in some cases fields are actually being faster compared to properties. Especially when the propertys get is not being marked inline.

The big issue here is really the ref modifier for struct fields. I'm unsure of why it's used as much as it is (I just genuinely lack the knowledge), but unfortunately there's not really a way around this one at all. Properties simply can't use the ref modifier even if they're auto-properties.
Properties' getters and setters can be marked inline just like any other method:
public int Foo
{
  [MethodImpl(MethodImplOptions.AggressiveInlining)] get;
  [MethodImpl(MethodImplOptions.AggressiveInlining)] set;
}

Overuse of the MethodImpl attribute.

Understandable, how would you decide whether its necessary or not?

This is all very difficult to test.
Generally, you want to be entirely sure that the method to be inlined is either very small (properties, indexers, constructors) or on a hot path. You want to verify that inlining generally generates smaller code.
To really make sure the attribute is necessary at all, you'd want to compare the generated JIT ASM before and after inlining and make sure from there that the newly generated code is worth it at all.
Slapping the attribute on every method you feel like can actually have negative effects. Think about it this way: if you inline a method which is on a path that's hit rarely, then the code generated is going to be bloated with unnecessary instructions that don't get executed.

Do not use var anywhere.

Why is that?

All of these were merely suggestions. I like being explicit personally. If you'd like to keep using var, then you can, of course. It's just important to be consistent: either use var everywhere, or nowhere (in my opinion).

The big issue here is really the ref modifier for struct fields. I'm unsure of why it's used as much as it is (I just genuinely lack the knowledge)

Well ref fields are great for various purposes, for example to reduce copies... or to return a ref which is kinda important for the ECS since its mor efficient to write directly to a adress :
var references = entity.Get<Position, Velocity>();  // Returns public struct References{ ref Position t0, ref Velocity t1 }
references.t0.X += references.t1.X;
references.t0.Y += references.t1.Y;

It might violate several code conventions, but is extremely usefull and more performant since it basically batches operations ^^

Properties' getters and setters can be marked inline just like any other method:
In this case we should probably use this more often, there is a need for action here :D

Generally, you want to be entirely sure that the method to be inlined is either very small (properties, indexers, constructors) or on a hot path.

Thanks, im gonna take a look at that... most methods are actually being used in hotspots (e.g. all Chunk and Archetype related methods, they will end up in the game loop for iterations and are mostly branchless). However probably other methods like Create, Destroy,... could be non inlined. I think i will test this with a benchmark in the next few days ^^

Properties are just syntax sugar of: get_PropertyName() and set_PropertyName(value).
I think Arch needs some code refactor, but I suggest to do not touch structs fields

but I suggest to do not touch structs fields
I support this, structure fields should not be touched or converted to properties. However there a lot of usecases for properties inside classes.
But theres a lot of other refactoring to do... im currently fixing more misspellings in the World.cs file.

but I suggest to do not touch structs fields
I support this, structure fields should not be touched or converted to properties. However there a lot of usecases for properties inside classes.
But theres a lot of other refactoring to do... im currently fixing more misspellings in the World.cs file.

Do you have some branch you're using to work on this?

Do you have some branch you're using to work on this?

Yep, its still local however ^^ Unfortunately I'm not home today, but any other branch will also do the trick.

I've been doing some work over on just-ero/Arch#experimental-code-style. Here's a summary of what I did:
bbdb94eaddffd44e3733245a8183a5d0d306cff0:

Create src directory, move project folders there.

Rename Arch.Benchmark to Arch.Benchmarks and adjust namespaces accordingly.
Rename Arch.SourceGenerator to Arch.SourceGen and adjust namespaces accordingly.
Rename Arch.Test to Arch.Tests and adjust namespaces accordingly.

Create (slightly edited) .editorconfig file.
Clean up all .csproj files.

This could be a breaking change. I'm not really sure how much of the NuGet package information needs to be in the project file. It doesn't seem like a place where you'd want to keep that.
Change elements (where applicable):

Add <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>.
Add <Nullable>enable</Nullable>.
Remove <ImplicitUsings>true</ImplicitUsings>.

Use <ItemGroup/> with <Using/> elements instead.

914697f1299ccb43f9c7ecbeadd754a71b653b6e:

Enforce .editorconfig:

Whitespace changes (remove trailing whitespace, add spaces for operators, add final new line, etc.).
Add readonly modifier where possible.
Add nullable reference types where applicable.

Breaking?

Add braces to blocks.
Change variable names to fit naming convention.

Enforce member order:

Fields -> Constructors -> Properties -> Methods.

Use raw string literals (applies heavily to Arch.SourceGen).
Use Assert.That over other assertions, as recommended by NUint.
Use is null and is not null.

188eabee0a296eaf7f56f9dbd4faa299590f246b:

Clean up comments.
Address a lot of documentation comments:

I started to become lazy and burnt out here. At some point I just removed all the doc comments, replaced them with the empty template, and slapped // TODO: Documentation. on top. I did this because a lot of them simply didn't explain much of anything, some were just copy-pasted, and others had an incorrect order for the parameters.

I've been doing some work over on just-ero/Arch#experimental-code-style. Here's a summary of what I did:

Took a quick look at it, looks promising :) Thanks !
The next few days are quite busy for me, but i will merge it.
Just a small side note, SparseArray is intended to be non generic and I'm aware of this ^^
A lot of low-level stuff or ECS stuff is probably not valid with code convention but its actually intended and useful.
The SparseArray aswell as the Chunk are non generic since making them generic is not really possible. Well it is possible, but it would require reflection which is slow and a no go. So the easier and more efficient way is to use the current approach, its probably harder to understand, but requires no reflection, is fast and multi purpose oriented. Just a quick side note :D

I've been doing some work over on just-ero/Arch#experimental-code-style. Here's a summary of what I did:

Sooo looks great :) Thanks !
I already pulled it into the main repo and recently pushed the documentation for the chunk. You may want to look at it, hopefully its better and more streamlined now.
I also moved the properties directly behind the constructor. Somehow they were not moved.

Archetype now also received documentation... i also made some fields private and moved them above the constructor to make them follow the order :)
https://github.com/genaray/Arch/blob/feature/code-style/src/Arch/Core/Archetype.cs

Documentation is finished and was merged with 7f2b07c :)
Now I'm gonna work on the notes and other mentioned code style issues.


Added Landing Page & some Polish

This is a squashed and rebased version of this: https://github.com/nitindermohan/oak-new-docs/pull/31
Besides a new welcome/landing page this PR also adds several minor changes to the look, feel, and wording,

If I am not mistaken this PR was originally created and worked on by @Mjaethers - with a bit of Nitinder changes on top
So I see myself as a reviewer here - I checked all the changes, and they seem sound to me.

Merging. Thanks for all the work folks :)


Update mode-and-env.md

What kind of change does this PR introduce? (check at least one)

[ ] Bugfix
[ ] Feature
[ ] Code style update
[ ] Refactor
[x] Docs
[ ] Underlying tools
[ ] Other, please describe:

Does this PR introduce a breaking change? (check one)

[ ] Yes
[x] No

Other information:

非常感谢！


Add release_part_2.yml for destructive bit of build

Add the second part of the release process which does the release to Pypi and git merge process. Warning: This part of the build is destructive potentially as it merges the code, tags it and pushes it to the Git repo. Needs to be tested with an eye to fixing any issues which crop up.

This requires setting up a PYPI key and setting it as the PYPI secret in GitHub. It also requires you to set up a Personal access token in GitHub (see here: https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) and setting this as a secret named: AUTH_TOKEN. Let me know if you have any questions or queries.

Integrated into new build pipeline


Invalid reply with rpc-error: namespace issue

referring to the issue https://github.com/ncclient/ncclient/issues/165, it seems that Netopeer2 sends invalid reply in case of error:
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:71f332bd-07ac-434b-8f4a-a6983ae2ff02"><rpc-error><error-type>application</error-type><error-tag>operation-failed</error-tag><error-severity>error</error-severity><error-message xml:lang="en">Operation not authorized</error-message></rpc-error></nc:rpc-reply>

<rpc-error> and its children lacks namespace, since default namespace is not defined.

Hi,
try it now please.
Regards,
Michal


SDI-12 Transparent Mode

Does this library support the "transparent mode"? I have an Enviropro Probe that I am trying to use with this library but so far no luck in getting any response back from the probe.

Hi @AshuJoshi  - as far as I understand it, "transparent mode" just means that it looks like your computer is speaking directly to the sensor when in fact it is talking to the data logger transparently.
See examples/g_terminal_window/g_terminal_window.ino for an example of how to do this.

Thanks - tried that but basically I did not get any response back. I am basically new to SDI-12. This is the probe that I am using -EP100
Here is the SW manual for the probe.
I am using an Arduino Uno. The probe needs supply voltage in the range 6V to 15V - I am powering the probe via a separate DC power supply at 12V - connected the red and black to the power supply.
The blue - or the data wire - I have tried connecting with different data pins - 3, 8, 9, 12 but no change in behavior.

Reading what I can from the Enviropro documentation, it looks like it's the probe itself that needs to be in "transparent" mode to talk to a sensor with standard SDI-12 commands.  I found instructions in the EnviroPro Configuration Unit (EPCU) manual (http://www.enviroprosoilprobes.com/Files/EnviroPro_EPCU_User_ManualV2.pdf) on how to put the sensor into transparent mode (see page 14), but I can't find any manual for the sensor itself or any instructions on how to get into transparent mode without the EPCU device.  I suggest you contact EnviroPro directly to ask them.
I also suggest you try posting in the Envionmental Sensors form at envirodiy.com (https://envirodiy.org/forum/environmental-sensors/) to see if you can get a response from someone familiar with this particular probe.
I am going to close this issue because it's sensor specific and not actually a problem with the library itself.  If you do find that there's something about the library itself causing the problem, please reopen the issue.


Deprecate individual slice

Deprecate unused variation related code.

Coverage decreased (-0.01%) to 82.423% when pulling 1cdad75413691d880c9d5ab2afe5fc093fb71c13 on at7:deprecate_individual_slice into ae0331f6f8bb598db22614f2851e084b0f885a81 on Ensembl:master.

Thanks @at7 this is all good for me. Only thing I would add the namespace to all those deprecation warnings but I guess this is established practice.

The namespace is added by perl's deprecate . e.g.
------------------ DEPRECATED ---------------------
Deprecated method call in file test_deprecated.pl line 28.
Method Bio::EnsEMBL::Slice::get_all_somatic_VariationFeatures_with_phenotype is deprecated.
get_all_somatic_VariationFeatures_with_phenotype...

Very well, didn't know :+1:

Shouldn't
Bio::EnsEMBL::**AlignStrainSlice**::*new()* Bio::EnsEMBL::**IndividualSlice**::*new()*
be included in the deprecated list?


windows11， KeyError: 'srt_fixPP'

python3 -m pip install -U https://github.com/bindestriche/srt_fix/archive/refs/heads/master.zip
C:\Users\dengz\Downloads\0pitch>yt-dlp --write-auto-sub  --sub-lang 'en'  --convert-subs=srt  --restrict-filenames  --no-check-certificates --use-postprocessor srt_fix https://www.youtube.com/watch?
v=jdEaYV5Kq98
Traceback (most recent call last):
File "yt_dlp_main_.py", line 17, in
File "yt_dlp_init_.py", line 1072, in main
File "yt_dlp_init_.py", line 970, in real_main
File "yt_dlp\YoutubeDL.py", line 789, in init
File "yt_dlp\postprocessor_init.py", line 42, in get_postprocessor
KeyError: 'srt_fixPP'
[30484] Failed to execute script 'main' due to unhandled exception!

Thanks for your report.
The pip install does not work correctly, it seems. Please manually install the extension by placing it in one of the directories. Alternatively, use one of the utilities I provided. I need to read up on pip to fix it.


Not Working in Latest cPanel DNSONLY v78.0.12

service: cpanel
service_description: Calendar, cPanel, WebDisk, Webmail, and WHM Services
metadata:
command: install_service_ssl_certificate
reason: OK
result: 1
version: 1
cpanel: unrecognized service
20190225162313 [ERROR] acme.hooks: hook script: /usr/libexec/acme/hooks/certificate-hook.sh: exit status 1

Is this a new server or did it start happening after an upgrade to 78?

Its a newly whipped up server.
Yes, version is v78.0.12

Alright. I installed a fresh server:
# whmapi1 version
---
data:
  version: <IP_ADDRESS>

Tried installing letsencrypt-cpanel-dnsonly, which succeeded fine (visible at https://alien-spirit.bnr.la:2087/ for now, I'll remove it soon).
It's highly suspicious to me that cPanel would remove cpanel as an SSL service component with literally no warning whatsoever. It is a breaking API change and they should not do that.
I think your installation is busted in some way (partial failure maybe?).
Can you confirm the following:
# whmapi1 fetch_service_ssl_components | grep "service:"
      service: exim
      service: dovecot
      service: cpanel

I've released 0.1.1 which uses the WHM API to restart services instead of /sbin/service, which should work around whatever issue your server is having with that method.
You should be able to yum clean all and then install the newer version. LMK if it's still broken after that.


Implement new Playlist Player and Comment styles

Fixes #939, #938
To Discuss with sudara:

[ ] Rollover states on any of these new buttons
[ ] by You by Artist logic
[ ] add to favorites animation properly removed
[ ] what to do with the delete button on track edit
[ ] how to deal with groups of comments below a playlist track
[ ] checkboxes are different sizes, site wide change?
[ ] consider new placements for edit playlist and edit descriptions buttons
[ ] color themes for external links

"Ready For Review" checklist
These checklists are to help ensure the code review basics are covered. Consider removing to reduce noise.

[x] PR title accurately summarizes changes
[ ] New tests were added for isolated methods or new endpoints
[ ] I opened an issue for any logical followups
[ ] If this fixes a bug, "Fixes #XXX" is either the very first or very last line of the description.

Before code review and after additional commits during review.

[ ] Update title and description to account for additional changes
[ ] All tests green
[ ] Migrations were tested locally and do the right thing
[ ] Booted up the branch locally, exercised any new code
[ ] Percy changes are purposeful or explained
[ ] Css changes are happy on mobile (via Percy is ok)

Rollover states on any of these new buttons

Do you mean the new favorite / download button?

by You by Artist logic
Should we just keep as is for now?

what to do with the delete button on track edit
Are we changing track edit? Or you mean re: dark theme.

add to favorites animation properly removed
Hmm, not sure what this means. Did we lose the animation? We definitely want to keep it in the button and should push back if there's a size problem.

how to deal with groups of comments below a playlist track
How do you feel about keeping the style that exists now, with the arrow and I can put it on samo's list.

checkboxes are different sizes, site wide change?
My vote is we move to the new 16x16 everywhere.

consider new placements for edit playlist and edit descriptions buttons
The edit playlist has turned into "edit" right below the title. Do we need to still keep the button or can we remove it? I'm fine with temporarily hiding the "descriptions" one.

color themes for external links
In track text? They should follow "static pages" styles.

One option is if you think the branch is in a stable-ish state, we can merge and add these items to a new issue.

Do you mean the new favorite / download button?

Yeah, specifically those, but other buttons on the Playlists designs aren't using components, the orangetone background used on Edit and post comment aren't the standard orange600 default button.

by You by Artist logic

Should we just keep as is for now?

I am happy without it saying 'By You' for now!

what to do with the delete button on track edit
Are we changing track edit? Or you mean re: dark theme.

Because that section changed, it temporarily broke the layout of that Delete button. Just an opportunity to reconsider its placement. It's stable though, and sits like this:

add to favorites animation properly removed
Hmm, not sure what this means. Did we lose the animation? We definitely want to keep it in the button and should push back if there's a size problem.

I wasn't sure if the animation was gonna shrink and stay in the button, but it's back in there now.

how to deal with groups of comments below a playlist track

How do you feel about keeping the style that exists now, with the arrow and I can put it on samo's list.

I re-added that upward triangle to just the Groups of comments on a single track view.

checkboxes are different sizes, site wide change?

My vote is we move to the new 16x16 everywhere. Looks like it's mainly playlist edit and....

I made this change in forms.scss so it'll apply everywhere.

consider new placements for edit playlist and edit descriptions buttons

The edit playlist has turned into "edit" right below the title. Do we need to still keep the button or can we remove it? I'm fine with temporarily hiding the "descriptions" one.

I'm not a big fan of Edit Descriptions, so I removed it for now. That little button section no longer exists. Edit playlist happens up by the Title and Artist name.

color themes for external links

In track text? They should follow "static pages" styles.

This was in relation to the External Links on the bottom of the Sidebar or in Cover View. They didn't exist in the latest Figma dark/white Playlist, but I roughed in some readable colors.

Maybe as a few final things:

[ ] The whitespace above the single track "button bar" should be there regardless of whether a track has a description. Needs room to breathe...

[ ] We didn't schedule an artist name for the single track view. It's current position and text style has the side effect of making "metadata bar" look less clean. I think we should decide that the artist "belongs to" the title, move it a couple px closer to the h1 and use the spacing samo scheduled under the h1 for the space that's underneath the "title and author" group. Since it's already smaller text, maybe we can also make the author text color black? Basically, looking for a way to separate the title and metadata bar. Another option is to put the author as a piece of metadata like "Sudara uploaded on X" but that might deprioritize the author too much.

[ ] I think download/favorite icons are sitting a px high? They are sorta itching at my #ppsense.

I'm going to add back to artist on the single track page...

[ ] I think now is a good time to handle that "delete" debacle on edit track. I'd move the "save" button to it's expected location and "upgrade" it to the uhh.... "primary" button style (orange, bigger). And I'd move delete where "save" is now and it should be red ala the delete button on the new edit profile.

Unfortunately I think we are "not done yet" with the "edit" button on playlist. All of our other edit buttons look different, I think we may need to add one in the same style, somewhere obvious. But I'm happy shipping this without that change for now, we can see how things go.

[ ]  I think now is a good time to handle that "delete" debacle on edit track. I'd move the "save" button to it's expected location and "upgrade" it to the uhh.... "primary" button style (orange, bigger). And I'd move delete where "save" is now and it should be red ala the delete button on the new edit profile.

@sudara I've moved the delete button, but it's broken mass_edit and some travis tests, because its in a new file now, assets/_edit instead of assets/edit?

Unfortunately I think we are not done yet with the "edit" button on playlist. All of our other edit buttons look different, I think we may need to add one in the same style, somewhere obvious. But I'm happy shipping this without that change for now, we can see how things go.

Perhaps it's a little flimsy as a small text link. The saga continues!

I've moved the delete button, but it's broken mass_edit and some travis tests, because its in a new file now, assets/_edit instead of assets/edit?

I fixed the backend stuff on mass edit, except for one edge case: the case where an mp3 is missing will result in an error.
However, it looks like we lost our ajax_success feedback on mass edit in terms of frontend. All the stimulus stuff is still working.

@sudara The Ajax feedback should be showing again on Mass Edit!


lidar_to_frame still OOMs

actual issue that was happening was #72

this is fixed now, right? should it be closed

Fixed but not merged

Does the fix include "Closes #whatever" in the commit message? If so, can we amend?

The PR's desc has "Fixes #whatever"

Fixed in #71


small-user-avatars needs more spacing before a user mention

Description
The avatar starts significantly closer to the previous word than a normal letter would, which looks especially bad when the user mention is the first word of a new sentence.
Zoomed in using Windows Magnifier at 600%, with a vertical line added:

Zoomed at 110% using Firefox:

How to replicate the issue + URL
https://github.com/electron/forge/pull/3391#issue-1965984062
Extension version
23.10.5
Browser(s) used
Firefox

Great, yes! Let's try to add it via ' ' instead of CSS, because margins still apply when the mention appears at the beginning of the line

Caused by
https://github.com/refined-github/refined-github/blob/4a9e021202ceb76962d08d70ecab2ec9becab8d9/source/features/small-user-avatars.css#L3
Can be resolved by removing .rgh-small-user-avatars from user mention avatars
https://github.com/refined-github/refined-github/blob/4a9e021202ceb76962d08d70ecab2ec9becab8d9/source/features/small-user-avatars.tsx#L31

Great, yes! Let's try to add it via ' ' instead of CSS, because margins still apply when the mention appears at the beginning of the line

Margin is actually needed because the image bleeds out of the element, putting it before the start line


Option to Change Recent Uploads Design

Summary
When too many images are uploaded by the user it becomes difficult for the user to scroll till the end. We should give an Option to Change Linear Layout manager to Grid Layout Manager(2 items in a row). It will be a button on Toolbar from which user can change the view type.

Yes @ujjwalagrawal17, we can created 2 column grid for it.

Hi, thanks for the suggestion. However, this is currently already planned for the near future and the task has already been allocated to @neslihanturan (see #725 ). There are other UI improvements that are open though, please see https://github.com/commons-app/apps-android-commons/labels/UX - user experience


Support custom reservoirs

Cherry-picked the bulk of the change from https://github.com/Backline/akka-http-metrics/pull/6

Cool! Do you think it's possible to do it for the meter part of the timer as well? I see you've created a method called findandregistermeter but I don't see where it's used; plus I'm not sure that the meter takes a custom reservoir.. does it?

Ideally I would like to be able to customize the logged string so that the count= part of the logged message also is reset for each sampling. I think this is a somehow common request and I'm not sure it's solvable. Actually I used a custom reservoir for the Timer to solve this problem and it's solved it for the timings but not yet for the counts... =(

@queirozfcom Just getting back to this. Is this something you're still interested in having? I can fix up this PR if so.

Hi @adamdecaf thanks for the reply. Actually, I ended up using nl.grons.metrics-scala because I didn't think your lib was measuring the actual time takes by the actor messages to be answered. It's possible I was doing something wrong so I'll try it again in the future.
As for the reservoir, I'm using "org.mpierce.metrics.reservoir" % "hdrhistogram-metrics-reservoir" % "1.1.2" but in order to have the counts be reset after each snapshot I had to hack Sl4jReporter to report snapshot.size() rather than timer.getCount() as the number of messages received within the last snapshot.
This is more complicated than it seems I guess, there's tons of Issues and rejected PRs in Coda Hale's metrics related to this. It ended up being more trouble than it's worth actually.

@queirozfcom If you're using Future's it won't be measuring properly, however all other calls should be approximately the same as the time in the akka-http Actor/Stream.

@queirozfcom In 0.4.2 we shipped a fix for timing futures fyi.
https://github.com/Backline/akka-http-metrics/releases/tag/0.4.2


Provide a way to escape the include directive

Like
_<<[ test.md ]

Which will not be interpreted.

Done


sync w/ internal repo; update models

This PR syncs the migrated QualX code with the latest code from the internal repo.
Changes

Fix failed stages handling.
Ignore wholestagecodegen for unsupported.
Use actual gpu app duration.
Default to dMAPE metric.
Add updated model json files.

Test
Following CMDs have been tested:
Internal Usage:
python qualx_main.py preprocess
python qualx_main.py train
python qualx_main.py evaluate

Thanks @leewyang. LGTM.  Welcome to tools repo  🎉


Module not found: Error: Can't resolve 'kotlin' with Kotlin 1.2.40

After upgrade to Kotlin 1.2.40 there is an error building any project using kotlin-frontend-plugin. Sample log from frontend-only example looks like this:

ERROR in ./frontend-only.js
Module not found: Error: Can't resolve 'kotlin' in '/home/rjaros/git/github/kotlin-frontend-plugin/examples/frontend-only/build/js'
@ ./frontend-only.js 254:18-35
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':webpack-bundle'.
node webpack.js failed (exit code = 2)

Sorry, I didn't notice that examples are still using 0.0.29 version of the plugin. Version 0.0.30 works fine.


File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner

Empire Version
[Version] 2.5
OS Information (Linux flavor, Python version)
OS:               Microsoft Windows 7 Enterprise
High Integrity:   1
Process Name:     powershell
Expected behavior and description of the error, including any actions taken immediately prior to the error. The more detail the better.
Screenshot of error, embedded text output, or Pastebin link to the error
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "./DeathStar.py", line 59, in __run
self.__run_backup()
File "/usr/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "./DeathStar.py", line 616, in pwn_the_shit_out_of_everything
recon(agent_name)
File "./DeathStar.py", line 510, in recon
Traceback (most recent call last):
File "./DeathStar.py", line 835, in
for agent in get_agents()['agents']:
File "./DeathStar.py", line 118, in get_agents
return r.json()
File "/usr/lib/python3/dist-packages/requests/models.py", line 808, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/lib/python3.5/json/init.py", line 319, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.5/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Any additional information

Can you make the REST call manually and make sure it returns the expected listener information?
https://localhost:1337/api/listeners/DeathStar (including the admin token of course)


feat(gh): First implementation of Flatten Collection component

Adds a new "Flatten Collection" component to Grasshopper connector.
This component will accept a Speckle collection, and return a flat list of all speckle collections included within it (including itself).
To prevent any side-effects, the output collections are new objects that contain

The elements inside that collection (but no inner collections)
The original name of the collection and its type
A dynamic property called "fullName" that contains all the names of all the parent collections and itself in Rhino style ("::" separator)

Additionally, a new GH_Goo data type has been created called GH_SpeckleCollection, and conversions between GH_SpeckleBase and GH_SpeckleCollection have been implemented to allow for conversion casting both ways.
Also added temporary icons for both GH_SpeckleCollection and "Flatten Collection" component

This is due to the fact that Model does not currently inherit from Collection, and my logic in GH checks specifically to verify if an object is a Collection class, so this will fail and it is currently "by design".
Weirdly, your commit Model does contain all the info as if it were a collection (collectionType, name, elements list)
What I have improved is the text on the conversion error to be more understandable by a normal user.

Scratch what I said, I was missing a commit from dev and a clean rebuild


Uncaught Error: invariant expected app router to be mounted

Does anyone knows why is this issue happening?
node 16.8.0

I will try to reproduce. But so far I haven't seen this error.  But I am also on node 18.  Not sure if it makes a difference though.

Ditto from me.

I figured it out, need to actually set up the token, I thought it was just a meaningless placeholder. Thanks for your work!
https://www.youtube.com/watch?v=a23JvssqrrQ&ab_channel=Strapi

Just a suggestion, an error message/prompt might be helpful for future users.

Thanks guys for your help this actually worked for me as well not sure why in production worked normally and locally it didn't

Thank you all amazing folks.  @PrimeTimeTran if you have time, would you like to make a PR for it?

@PaulBratslavsky your wish is my command. lol =).
https://github.com/strapi/nextjs-corporate-starter/pull/96

@PrimeTimeTran you are awesome.  Thank you and merged.
https://github.com/strapi/nextjs-corporate-starter/pull/96

For me, to resolve this error I also have to set up metadata/ global properties in the admin if you are working on a brand new project. Otherwise, lacking of these data will cause rendering errors.


[spi-hdlc-adapter] add asserting C̅S̅ support

This PR adds a new argument to spi-hdlc-adapter to support asserting the
C̅S̅ pin before SPI transaction.

The code itself in this PR looks good.
I am not super familiar with the SPI related (linux) APIs but I think the CS may be already controlled by spidev.h itself through the ioctl calls from do_spi_xfer(). I know in some (internal) projects we do indeed rely/use the CS pin (on NCP side) and it's being controlled. Also we have cs-delay parameter and seems like we pass it as part of spi_ioc_transfer struct.
@bukepo what's the use-case for adding control of CS by spi-hdlc-adpater? I think (if we can) we should delegate the control of CS pin to driver. If we want to control it from spi-hdlc-adpater, then we may need to handle cases where SPI is in use (i.e., what if the SPI is in use for another peripheral when we assert the CS pin, do we need to check for that?).

We'll hold off this PR until we know better the need for this.

Closing stale PR. Feel free to reopen if/when ready to move this forward.


get_viewport().get_size_override() wrong in fullscreen Linux

Stretch mode is 2D, strtch aspect is keep_height.  Viewport dimensions are set to a wider aspect ratio than my screen's. When the game first loads (in a node's _ready), get_viewport().get_size_override() reports the correct height, and a width that would be correct if the screen was wide enough to fit it (ie, aspect ratio is maintained, disregarding what my screen will actually fit). But it's not actually that wide, so the camera's position is offcenter.  Similarly, if the viewport dimensions have a narrower aspect ratio than the screen, the camera is off center in the other direction.
The value reports this same wrong value the first time through _process.  Every time after that, it's correct.  If I put camera.make_current() in _process, the problem goes away, because it'll quickly be recalculated.  But of course repeatedly setting this is more a workaround than a proper solution.

Can you still reproduce the issue in the current master branch / nightly builds? This API has changed a bit IIRC.

Ping :)

No answer, and no other complaints on this topic from other users, so I'll assume it was fixed. Please comment if you can still experience it and want me to reopen the issue.


command line of any (or an) windows executable module

I need to produce command line data of any of several kinds of WIN 10 executable modules.  Modern C++ abstraction to hold this is vector<string_type> ... where sting_type is wide or narrow string.
Is it wide or narrow depends on the stdlib.h value __wargv . If and when it is null we use it or we use __argv.
Sound simple? But after several days (!) of cogitation the most modern C++ solution implemented in msvc I could come up with is this:
 #include <stdlib.h>
namespace {
#define _CRT_DECLARE_GLOBAL_VARIABLES_DIRECTLY

const auto  wargv_ = (__wargv);
const auto  argv_ = (__argv);
const auto  argc_ = (__argc);

#undef _CRT_DECLARE_GLOBAL_VARIABLES_DIRECTLY

namespace {

    using wvecT = std::vector<std::wstring>;
    using nvecT = std::vector<std::string >;

    // wargv_ !=  nullptr
    inline auto decide(std::true_type tt) {
        return wvecT{ wargv_, wargv_ + argc_ };
    }
    // wargv_ ==  nullptr
    inline auto decide( bool ft) {
        return nvecT{ argv_, argv_ + argc_ };
    }
}

auto cli_data = []() {
    return decide(
        wargv_ != NULL
        ? std::true_type{}
        : false
    );
};
} // nspace

usage is then simple:
auto my_cli = cli_data() ;
//
auto  this_module_file_name = my_cli[0] ;

This is the solution even after VS 15.5 update.  Can anyone offer a better one using msvc?
How is (if it is) cppWinRT obtaining the command line of executable module it is running in?
Please advise ...

This question isn't specifically about C++/WinRT usage.  I'd advise posting it to a more general forum like stackoverflow.

A C++/WinRT application obtains the command line like any other application: By calling GetCommandLine (either directly, or by using the facilities provided by the CRT), which reads out the value stored in the PEB. There's also a convenience implementation (CommandLineToArgvW) to parse the command line and decompose it into individual arguments.
If "modern" is your goal, you shouldn't be using ANSI encoding at all. Once you remove all ANSI clutter from your code, you'll see the complexity significantly go down.
Besides, if what you really want is the module name of the executing code, call GetModuleFileName (and friends). This returns the real thing, and isn't subject to someone passing you unexpected command line arguments.
At any rate, this is really a generic question about any Windows executable, not related to C++/WinRT at all, so you might want to consider taking it to another site, as suggested by Scott Jones.

@Scottj1s
cppWinRT is astonishing work. The context of my comments is that cppWinRT problem is msvc. By msvc team own admission C++17 is only 75% implemented in msvc. cppWinRT mandates C++17. But which compiler is to be used, one has to ask?
Relevance to the cppWinRT comes from the fact that the msvc (+ win10 sdk ) code I have presented has obvious utility but it is ridiculous because it is a workaround so that it is possible to compile it in msvc the latest ... whatever is the rev number after VS 15.5 update ...

Workaround done in order that msvc can compile something are leaving technical debt inside cppWinRT.

By " modern", I mean nothing else but "modern C++" , C++17 and so on
I do not want to use WIN32 API to obtain command line of the executable module
__wargv, __argv, __argc are in the stdlib.h and as a such perfectly OK to use and legal in UCRT.

cppWinRT mandates C++17. The code above is simple if using gcc/clang ... it is not of course part of cppWinRT but shows what simple lambdas msvc C++17 can not do currently, and leaves one wondering about the workarounds cppWinRT team had to do to make it compile with  msvc c++17.
Good example revolves around the modern C++ code  to obtain command line as a vector of narrow or wide strings. Core lambda for that  is still not possible in msvc but it is in gcc and clang .. This simple lambda makes simple API possible:

auto cli_data = obtain_cli () ;
// cli_data is wide or narrow strings vector, depending on the runtime situation

Assuming Compiler Explorer is using the newest 15.5 preview 4 (1912) and not 15.2 (1910) as the VS version, the argument to it must still be replaced from -std=c++1z to /std:c++latest
Lambdas arrive with C++11. Have you thought of more modern approach, like say, structured bindings?


[Feature Request] Why can only one credentials be created per type of provider

Why each type of supplier can only create one credential, for example, I have two Tencent Cloud accounts, I need to create two credentials, how should I achieve it?

We don't support authentication for AutoK3s currently, so it‘s only used for individual users to manage only one credential for each cloud for now.
We will consider seeing if other users have the same doubts, if so we can consider this feature in later versions.


Error while trying with Chrome Packaged App

I'm trying to implement protobuff in my chrome packaged app, but when I init it it says:
"Uncaught InvalidAccessError: Failed to execute 'open' on 'XMLHttpRequest': Synchronous requests are disabled for this page. "
Any Ideas to make this work?

@dcodeIO : Iam trying to do the exact same thing as caioketo and here's my code:
StageOne = ProtoBuf.loadProtoFile("xyz.proto", function(builder) {
 });
Coordinates = StageOne.build("Coordinates", function (rebuilder) {
     console.log (Coordinates);
 });

However, when I run my chrome app for whatever reason it says 'Uncaught TypeError: Cannot read property 'build' of undefined'. So, I then printed out my StageOne variable to the console and it comes out as undefined but shouldn't there be some kind of formatting value encoded? Any help would be appreciated. P.S Your API is helping me BIG TIME for my project! :)

You have to use the result from within the asynchronous callback:
ProtoBuf.loadProtoFile("xyz.proto", function(builder) {
   var Coordinates = builder.build("Coordinates");
   ...
});

With an asynchronous callback, ProtoBuf.loadProtoFile doesn't return anything.

Thank you for your quick reply (this is actually the first online question I have ever asked LOL so I am super excited!!!!). But ok I ran my code and I am getting "Uncaught TypeError: builder.build is not a function". Why is that happening?

Sorry, the API has changed meanwhile. I have updated my answer accordingly.

Thanks but my code is still not exactly doing what I want it to do. Essentially what I am trying to do is configure the Coordinates variable and say Coordinates.decode ('protobufmessage')
Here are my two approaches (both don't work as console.log(msg.text) always comes out as undefined):
Approach 1:
try {
ProtoBuf.loadProtoFile("xyz.proto", function(err, builder) {
if (err) {
console.log ("Could not configure protobuf");
}
console.log ("Protobuf Configured!");
var Coordinates = builder.build ("Coordinates");
var msg = Coordinates.decode(info.data);
console.log (msg.text);
});
Approach 2:
try {
ProtoBuf.loadProtoFile("xyz.proto", function(err, builder) {
if (err) {
console.log ("Could not configure protobuf");
}
console.log ("Protobuf Configred!");
                            builder.build("Coordinates", function (err, rebuilder) {
		        	   if (err) {
		       	       console.log ("fail of course");
		         	   }
		        	   var msg = rebuilder.decode(info.data);
		        	   console.log (msg.text);
		       });
		   });

Builder#build is synchronous and thus does not accept an asynchronous callback, so it rather is approach 1. It then depends on what kind of data info.data holds. Is it a string? An arraybuffer?
Generally speaking, your code snippets seem rather questionable to me (like not returning after handling err, using callbacks where they don't belong) and I find it a bit hard to answer your question based on it.

Sorry I am just completely new to this and really I am trying to base my code off of your example in GitHub. I am not returning after err for now ... just sending error messages.
But info.data holds an arraybuffer. I thought approach 1 would work (maybe ignore the second one for now). The line that isn't working is "var msg = Coordinates.decode(info.data);" because the console.log (msg.text) just gives me undefined. Any suggestions? I tried using an arraybuffertostring function to make sure that info.data actually carried information and it does so I am a bit lost.

What does the .proto of Coordinates look like? And what is printed to console when just doing console.log(msg);?

Ok so .proto is
message Coordinates {
required int32 x = 1;
required int32 y = 2;
required int32 z = 3;
}
and
Oh console.log(msg) gives me:
f {x: 1, y: 2, z: 3}
x: 1
y: 2
z: 3
proto: Object
Wait does that mean it decoded?

Oh wow that's amazing so it seems that msg.text gives me undefined and just msg alone gets me the whole message. That's so neat! I was using your old example using example.proto which had msg.text. I'm assuming the chrome app maybe works a little differently from just webbrowser js maybe?

A message has all the fields defined in its .proto. The sole reason that a message might have a "text" property is, if it has such a field defined.

Wow, sorry I totally thought .text was some kind of protobuf.js thing rather than the actual field of the protobuf message itself. Thanks for all the help!
I may be back again though!! :)


Samples for KinectV2 audio in UWP

API examples for the microphones on Kinect?

Currently, from UWP's point of view, the Kinect is just a simple microphone. There's no advanced audio support for Kinect in UWP.
You can take a look at the existing microphone related samples here:
https://github.com/Microsoft/Windows-universal-samples#audio-video-and-camera


Replace toothpick with koin

For someone who does not know of these modules the title sounds really funny :)

@LefterisJP yes it is, most of the dependency injection frameworks in java have funny names.


Fix duplicate unlink

This unlink causes two errors in the test suite. This is because when a file is added with no extension, the $filePath at this point is the same as the $lockFile path (as it has no extension). The attempt to unlink the $lockFile then has an error as the file does not exist anymore.
Errors from phpunit before removal of unlink:
There were 2 errors:

1) Codesleeve\Stapler\Factories\FileTest::it_should_be_able_to_build_a_stapler_uploaded_file_object_from_a_redirect_url
unlink(/tmp/stapler-6hHfIS): No such file or directory

/home/squigg/packages/stapler/src/Factories/File.php:147
/home/squigg/packages/stapler/src/Factories/File.php:40
/home/squigg/packages/stapler/tests/Codesleeve/Stapler/Factories/FileTest.php:81

2) Codesleeve\Stapler\Factories\FileTest::it_should_be_able_to_build_a_stapler_uploaded_file_object_without_following_querystring_in_basename
unlink(/tmp/stapler-sin4Nu): No such file or directory

/home/squigg/packages/stapler/src/Factories/File.php:147
/home/squigg/packages/stapler/src/Factories/File.php:40
/home/squigg/packages/stapler/tests/Codesleeve/Stapler/Factories/FileTest.php:94

Unfortunately this would still leave temporary files in the /tmp folder. I've pushed out a fix for this on master: https://github.com/CodeSleeve/stapler/commit/b93303a6b57ed6ceecd64834d581cb1a5160dd48


Do not firewall alerts

Hello.
I ran go run server.go exactly as stated in the guide, but I get a firewall notification every time I ran it. This is annoying.
So I suggest you change the guide to avoid notifications.
(I tested on Windows 10.)

Can somebody review this?
ping: @vishr

Why do you want to restrict it to just localhost?

@vishr Thank you for replying!
You can see firewall alerts at every rebooting echo server unless writing localhost(ref. https://forum.golangbridge.org/t/go-lang-firewall/11086). This seems that also occurs Max OS X(I saw on Windows).
And this is "Quick Start", this change's influence is small, I think.


Support the gcp option in cast wallet list

Motivation
To list an account from GCP KMS as with the other options.
Related to this comment in the PR.

Solution
Adds a gcp flag to the MultiWallet and to the ListArgs of the cask wallet.
NOTE: The current implementation only supports a single key, but multiple keys should be supported in the next step

@mattsse Could you take another look when you have time? 👀


Translate setup.cfg in pyproject.toml

Moved all setup options from setup.cfg into pyproject.toml. This required to increase the build version for the python wheels from 3.8 to 3.10. However, I think this will not be a problem and now we consistently use Python 3.10 in all our CI jobs.

Okay as expected this needs a higher python version for the external build to work. So we leave this for now.


Replace IncrDecr with an implementation using synthesizable adders and subractors

We should not need to build incrementers and decrementers for control logic out of basic gates. Let's just use the synthesizable versions.

I'm fine with replacing it, but I thought we decided to put it in acorn-examples because it was an instructive example of a very simple circuit, even though it's not useful as a library function?

I'm fine with replacing it, but I thought we decided to put it in acorn-examples because it was an instructive example of a very simple circuit, even though it's not useful as a library function?