Posts

Showing posts from February, 2023

Java 18: Vector API

Vector API is a new feature introduced in Java 18 that provides a set of vectorized operations that can be used to accelerate mathematical computations. Vector API enables developers to write code that can take advantage of the latest hardware, including CPUs with vector units and GPUs. Vector API provides a set of classes and interfaces that can be used to write code that performs vectorized operations on arrays of numeric data. The API supports operations such as addition, multiplication, and division, as well as more complex operations such as dot products, norms, and reductions. The API also includes support for complex numbers and floating-point operations. Here's an example of how Vector API can be used to accelerate a simple mathematical operation: import jdk.incubator.vector.*; public class VectorExample {     public static void main(String[] args) {         float[] a = {1.0f, 2.0f, 3.0f, 4.0f};         float[] b = {5.0f, 6.0f, 7.0f, 8.0f};         float[] result = new floa

Pattern Matching for switch Statements

Pattern Matching for switch Statements is a new feature introduced in Java 18 that allows developers to use patterns as case labels in switch statements. This feature was first introduced as a preview feature in Java 14 and was further improved in Java 15 and Java 17 before being made a permanent feature in Java 18. Prior to Java 18, switch statements could only use primitive types, enums, and strings as case labels. With pattern matching, developers can now use patterns, which are more flexible and powerful than simple literals. Patterns allow developers to match against more complex conditions, such as types, values, and structures. Here's an example of how pattern matching works: public String getAnimalSound(Animal animal) {     String sound = switch (animal) {         case Cat c -> "Meow";         case Dog d -> "Woof";         case Lion l -> "Roar";         default -> throw new IllegalArgumentException("Unknown animal: " + ani

Can I install MySQL ODBC Driver 8 on Amazon Linux 2?

I'm running into an issue when connecting to a MySQL database on Amazon Linux 2 using pyodbc and the mysql-connector-odbc driver. As shown below: pyodbc.OperationalError: ('08004', "[08004] [unixODBC][MySQL][ODBC 5.2(w) Driver]Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory (2059) (SQLDriverConnect)") I tried upgrading my Amazon Linux version to 2.0.20230207.0 , but got a similar error: pyodbc.OperationalError: ('08004', "[08004] [unixODBC][MySQL][ODBC 5.2(w) Driver]Authentication plugin 'sha256_password' cannot be loaded: /usr/lib64/mysql/plugin/sha256_password.so: cannot open shared object file: No such file or directory (2059) (SQLDriverConnect)") My understanding is this is because the version of MySQL server is using a newer version than what my ODBC driver supports. I would love to upgrade the ODB

How to send two different Outlook emails from same Excel sheet when 7 days from due date

Image
I am trying to automatically notify my coworkers when their work is seven days away from being due. There are two tables on the same sheet (one sheet per coworker). How can I send an email based on two different tables on the same sheet? For example, Bill has treatment plans that will be due. He also has assessments that will be due. The treatment plans are in one table and the assessments are in another table on the same sheet (Sheet2 Bill). I want an email sent to Bill when a treatment plan is seven days away from the due date. I want a different email sent to Bill when an assessment is seven days away from the due date. I am not seeing any error messages, but I am also not receiving any emails. Client name is the B column. This is a sample line from my table: Sub email() Dim r As Range, cell As Range Dim ws As Worksheet Dim Mail_Object As Object, Mail_Single As Object Dim Email_Subject As String, Email_Send_From As String, Email_Send_To As String, _ Email_Cc As String, E

Problem with Kafka deserialization Python

I new in Kafka and Python but I should create consumer:) I created simple consumer and got result, but the data in Kafka is store in Avro that's why I need to make deserialization. I tried variant like this import os from confluent_kafka import Consumer from confluent_kafka.serialization import SerializationContext, MessageField from confluent_kafka.schema_registry import SchemaRegistryClient from confluent_kafka.schema_registry.avro import AvroDeserializer if __name__ == "__main__": class test(object): def __init__(self,test_id=None,dep=None,descr=None,stor_key=None,pos=None,time_dt=None): self.test_id = test_id self.dep = dep self.descr = descr self.stor_key = stor_key self.pos = pos self.time_dt = time_dt def dict_to_klf(obj, ctx): if obj is None: return None return test(test_id=obj['test_id'], dep=obj['dep'],

header=None not working as intended in Pandas

When loading a CSV first line is being turned into the header, even when using the command header=None 1st 6 Lines of CSV "L","65496","56","17","2","1","2","2","2","1","2","2","2","2","2","202210024616","10/07/2022","11/04/2022","6401 30TH AVE S","","Seattle","98108","","6401 30TH AVE S","","Seattle","WA","98108","","7233841","206","","","24","11","3","0.00","1","","2","2","2","2","2","1","2","2","2","2","2","2","2","1805","911.00","0","0.

MediaWiki Display Historic Date/Time In User's Local Time

Presently, I've installed MediaWiki on a wiki which includes a section with a timeline of modern historic events in basically every article. It's important to display the precise time of day of these global historic events in a meaningful way and I anticipated this would be easy to accomplish. Presently, I am converting timestamps of events into my current local time and typing them as plain text in the article when I make edits. This works great for me, but most other users of the wiki will be in different timezones and I'd rather not arbitrarily declare my local timezone as the "ultimate source of global truth" and force everyone else around the world to convert all times to my local timezone. Similarly, I could convert all the times to UTC but, in fact, the majority of users I anticipate won't be from Europe. I could use Eastern time, but honestly, many of the timelines concern events that have happened in Asia, Australia, and other places globally. It

How to rename identical values in a column within R?

Say a data set: a <- c(101,101,102,102,103,103) b <- c("M","M","P","P","M","M") dt <- as.data.frame(cbind(a,b)) dt a b 1 101 M 2 101 M 3 102 P 4 102 P 5 103 M 6 103 M Column a is subject_ID , and column b is subject_name . I want to uniquely rename subject ID 101 to M1, and 103 to M2. Is there a way to do this by indexing? This does not work. dt.try1 <- gsub("M","M1",dt[1:2,c(2)]) dt.try1 [1] "M1" "M1" This is what would be ideal result: a b 1 101 M 2 101 M 3 102 P 4 102 P 5 103 M2 6 103 M2 Why does not this work?

How does preprocessor resolve the path of linux kernel' head file?

I am new to C programming language, and currently trying to add new syscall to Linux kernel by re-compiling the kernel. When I read the source code, I found it very difficult to locate the path of head file. For example: #include <linux/kernel.h> /* for printk */ #include <linux/syscalls.h> /* for SYSCALL_DEFINE1 macro */ SYSCALL_DEFINE1(printmsg, int, i) { printk(KERN_DEBUG "Hello! This is a msg %d", i); return 1; } This is one of my customized system calls. I edited the MakeFile in kernel/ folder and syscall_64.tbl . After re-compiling, it worked. No compiling error. However, my problem now is how the preprocessor resolves the path like <linux/syscalls.h> . Based on my previous understanding, the preprocessor would go to the folder /usr/include for searching. Certainly, there is no linux/syscalls.h within /usr/include . I found linux/syscalls.h is actually in linux's project include/linux/ . I was wondering what makes the pre

how can I keep the keyboard opened with @FocusState with SwiftUI without a bounce?

Image
I am trying to develop a view where the user must input his name and surname. these two textfields have a FocusState. Everything is working well less a little bounce when the focus changes his goal. I do not know what is happening in my code for this issue. this is my code: struct OnboardingViewPart2: View { enum Field: Hashable{ case name case surname } @State var displayName = "" @State var showImagePicker = false @State var isSomePhotoSelected = false @State var displaySurname = "" @FocusState var focusedField : Field? // For image picker @State var imageSelected: UIImage = UIImage(systemName: "person.fill")! @State var sourceType: UIImagePickerController.SourceType = .photoLibrary var body: some View { VStack(alignment: .center, spacing: 20, content: { //other code // MARK: Textfield group Group{ TextField("Add your name here...", text: $displayName)

Annotate plot with ordered pair of cartesian coordinates via Python and MatPlotLib library

Looking for a solution to properly annotate a subplot with an ordered pair of cartesian coordinates. My figure is a bar graph of total product quantities with a line graph of the average price for the given products. For additional reference, please see the figure at the end of this article: https://medium.com/swlh/product-sales-analysis-using-python-863b29026957 Please note, I have two vertical axes where: y1 = total quantity of a given product y2 = average price of a given product y1 & y2 share an x-axis of product categories Rather than plotting labels "(x, y)", my goal is to plot labels for (y1, y2), i.e. "(qty, price)". The current error that I am running into is that the list elements in my variable, label, are not recognized as "subscriptable objects". I am under the impression that the solution is to convert each element of my list into a string, but I am not positive. df = Products Quantity Price Product1 10 100.00 P

Iterate through an Array of Objects within another Array of Objects JavaScript [closed]

I have created an Array of Objects. Within this Array of Objects, there is another Array of Objects. let firstArray = [ {element: "This is a string"}, {element: "This is a string"}, {element: "This is a string"}, {element: "This is a string"}, { element: "This is a string", secondArray: [ { otherElements: "This is a different element" userRating: 5 }, { otherElements: "This is a different element" userRating: 5 }, { otherElements: "This is a different element" userRating: 5 }, { otherElements: "This is a different element"

In ruby, optparse raises error when filename contains certain characters

I'm using optparse in a ruby program ( ruby 2.7.1p83 ) under Linux. If any of the command-line arguments are filenames with "special" characters in them, the parse! method fails with this error: invalid byte sequence in UTF-8 This is the code which fails ... parser = OptionParser.new { |opts| ... etc. ... } parser.parse! # error occurs here I know about the scrub method and other ways to do encoding in ruby. However, the place where the error occurs is in a library routine ( OptionParser#parse! ), and I have no control over how this library routine deals with strings. I could pre-process the command-line arguments and replace the special characters in these arguments with an acceptable encoding, but then, in the case where the argument is a file name, I will be unable to open that file later in the program, because the filename I have accepted into the program will have been altered from the file's original name. I could do something complicated like pre-

product validation failed error while using post api

I have created post and get request for product in node express. get request API is working fine but post request through an error: models.js file const mongoose=require("mongoose") const produdctSchema=new mongoose.Schema({ name: { type: String, required:true, trim: true, }, description:{ type:String, required:[true, "please enter product description"] }, price:{ type:Number, required:[true, "please enter product price"] }, rating:{ type:Number, default:0 }, category:{ type:String, required:true }, stock:{ type:Number, requird:true, default:1 }, numOfReview:{ type:Number, default:0, }, createdAt:{ type:Date, default:Date.now() } }) module.exports=mongoose.model("product",produdctSchema) routes.js file const express = require("expres

How to select another radio button through selenium

Image
I already try everything but could run driver.manage().window().maximize(); WebElement ab = driver.findElement(By.xpath("//div[@class='userSelectTabsLinks' ][contains(.,'Company')]/input[@name='seller_type']")); Thread.sleep(1000); ab.click();

HTTP error 403 while using role based authorization

Image
My project is using JDK 8, Spring Boot 2.7.8 (I'm stuck with Java 8). I am successfully using Google OAuth2 for authentication. Users can log into and out of my site. They even have to authenticate to get to a /secure page and that works. However, when I try to incorporate role and/or authorities, I can only get HTTP 403 errors. I have a database with groups, users, group_members, etc, just like JdbcUserDetailsManager wants, and they're filled with data, as shown below. How can I get this to work? Below are code snippets. @Configuration public class SecurityConfig { @Autowired DataSource dataSource; @Bean public UserDetailsService userDetailsService() throws Exception { JdbcUserDetailsManager jdbcUserDetailsManager = new JdbcUserDetailsManager(); jdbcUserDetailsManager.setDataSource(this.dataSource); return jdbcUserDetailsManager; } @Bean public SecurityFilterChain filterChain( HttpSecurity http) throws Exception { http .cors

Query for returning edge

MATCH (a:Person)-[l:workWith]-(b:Person) RETURN a, l, b If I execute a query and it returns three values (start node, edge, and end node), how can I modify the query to retrieve only the information about the edge

Discord.js Voice Not Playing Audio While AudioPlayerStatus is Playing

I can't seem to figure out why my bot isn't playing audio. I have installed all the necessary dependencies and below is the dependency log and code. Incase it was the audio files, I tried different paths and youtube links and nothing seems to be working. The block of code is confirmed getting ran since console logs but no audio comes through. Bot joins vc with no issue. Core Dependencies - @discordjs/voice: 0.14.0 - prism-media: 1.3.4 Opus Libraries - @discordjs/opus: 0.8.0 - opusscript: 0.0.8 Encryption Libraries - sodium-native: 4.0.1 - libsodium-wrappers: 0.7.11 - tweetnacl: not found FFmpeg - version: 5.0.1-essentials_build-www.gyan.dev - libopus: yes voiceStateUpdate.js event file below const { Events } = require('discord.js'); const { joinVoiceChannel, AudioPlayerStatus } = require('@discordjs/voice'); module.exports = { name: Events.VoiceStateUpdate, async execute(oldState, newState) { //Check if muting / unmuting //Che

How does post data work with Common Lisp?

I have a post route: (defroute admin-post ("/admin" :method :post) (&post client db email) (let ((c (write-to-string client)) (d (write-to-string db)) (res (by-email email))) (render-template* *admin.html* nil :title "Admin Area" :clientName c :dbName d :db-res res))) The value of email is processed by the by-email function successfully. But the c and d values are nil . ive also tried without write-to-string but it returns a blank value to the page. UPDATE Here is my html. The form names are the same as the defroute params: <form id="form" action="/admin" method="post"> <input type="text" name="client" placeholder="Enter Client Name"/> <input type="text" name="db" placeholder="Enter DB name"/> <input type="submit" value="Send"/> </form>

Nswag adds null check for nullable/optional parameters

I have basically same issue as this ( details here on Github ) but with C# client - [FromForm] SomeObject x on controller has some nullable (optional) parameters and generated client generated by Nswag has null checks in place like this: public virtual async System.Threading.Tasks.Task<Attachment> UploadAsync(int? idProject = null, int? idTicket = null... ... if (idProject == null) throw new System.ArgumentNullException("idProject"); else { content_.Add(new System.Net.Http.StringContent(ConvertToString(idProject, System.Globalization.CultureInfo.InvariantCulture)), "IdProject"); } ... Both original model (from API project) and generated one in client project have those fields as nullable and function call accepts nullable values. JSON schema from swagger looks like this: "/Attachment/Upload": { "post": { "tags": [ "Attachment" ], "requestBody": { "content": {

Using Mockk to mock out a singleton object to ignore Auth journey

I am using Mockk and I have the need to intercept when an API client is being created. The API client does a bunch of REST stuff that I don't want to happen inside of its constructor. I have tried a bunch of things but can't seem to find a way to not actually run the constructor and just return something. I don't want to actually run anything when the object is created. Is this possible? I've tried: Class I want to mock: class TestApi(config) { auth = Auth.authenticate(config) // Don't want this specifically to run } Caller: fun createClient() { return TestApi(ConfigObj()) } Then in the test @Test fun `sample code`() { mockkConstructor(TestApi::class) every { anyConstructed<TestApi>() } returns FakeInstance() // other test stuff always fails as TestApi() still runs the full init with the auth flow }

Set Windows shortcut arguments path relative

My goal is to create a portable PDF that will execute with the portable navigator I include in the package. The problem is that the navigator's shortcut changes and sets itself relative path correctly, but the arguments on the target field (the PDF file I want the shortcut navigator to open when clicked) remains on the old path. The challenge is to get the argument path relative to wherever the shortcut is placed (both shortcut and folder with nav and PDF are moved together). I've tried to set a relative path on the argument in the target field to the Start in field, such as shown in the following example, but it won't work: Target-> E:\DATA\GoogleChromePortable.exe" .\myPDF.pdf Start in-> E:\DATA Both myPDF and myShortcut are placed in the same folder (DATA), and the Target and Start in fields become relative according to if changed, their paths adapt to the new location.

SQL Query Optimisation for multiple table jons with millions of records

Can anyone suggest me a way to optimise the given query? It has multiple joins and if we try it with larger dataset of 10M records. The query takes much amount of time. SELECT AUDM.distributeTS AS distributionDate, ASMT.name, ACM.studentid, AUDM.users AS distributedTo, ROUND(AUM.totaluser * 100 / AUDM.users) AS participation, ROUND(AUM.score * 5 / (AUM.totaluser * AQM.qi)) AS performance FROM (SELECT name, assessmentId FROM Assessment WHERE type IN ('PSYCHOMETRIC' , 'QUANTITATIVE', '') AND removed = FALSE) ASMT LEFT JOIN (SELECT studentid, assessmentId FROM AssessmentCreatorMap) ACM ON ACM.assessmentId = ASMT.AssessmentId LEFT JOIN (SELECT assessmentId, COUNT(assessmentId) AS qi FROM AssessmentQuestionMap GROUP BY assessmentId) AQM ON AQM.assessmentId = ASMT.assessmentId LEFT JOIN (SELECT COUNT(use

compensate transactions in saga for failures

i have a "compensatable transaction" tx that is part of a choreography saga and was wondering how to deal with compensation when a bug is introduced in the system. It is clear that if there is a business requirement not fullfiled by tx an *FailedEvent must be emitted in order to start the compensation action chain, but should an event be published as a result of a failure (null pointer, out of memory, and so) ? In my opinion this should be treated as a bug, compensation is not fired and shuould be fixed with a manuall process. This forces me to add some generic error event in a global exception handler. Not sure about it.. Thanks

Scraping data from https://ift.tt/Fq2rypk in Python

I'm trying to follow along the steps from this article to scrape data from the transfermarkt website but I'm not getting the desired output. It seems some of the classes have changed since the article was written so I've had to change Players = pageSoup.find_all("a", {"class": "spielprofil_tooltip"}) to Players = pageSoup.find_all("td", {"class": "hauptlink"}) from bs4 import BeautifulSoup import requests import pandas as pd headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/Version 110.0.5481.100 Safari/537.36'} page = "https://www.transfermarkt.co.uk/transfers/transferrekorde/statistik/top/plus/0/galerie/0?saison_id=2000" pageTree = requests.get(page, headers=headers) pageSoup = BeautifulSoup(pageTree.content, 'html.parser') Players = pageSoup.find_all("td", {"class": "hauptlink"

How to calculate date difference from two columns but with different rows and a condition?

Based on the example of dataframe below, I would like to calculate difference between two datetime for certain index and its cumulative. The expected results are as in the column diff_days and cum_diff days index date_a date_b diff_days cum_diff_days 1 1/1/2023 NaT NaT - 1 NaT NaT NaT - 1 NaT 3/1/2023 2 2 2 4/1/2023 NaT NaT - 2 NaT NaT NaT - 2 NaT 6/1/2023 2 4 3 7/1/2023 NaT NaT - 3 NaT 8/1/2023 1 5 3 9/1/2023 NaT NaT - 3 NaT NaT NaT - 3 NaT 11/1/2023 2 7 I have checked the other post where it calculates the difference between two dates, unfortunately that one is when the date is in the same row. For my case, I wanted to understand how to calculate the dates if it's on different rows at different column since just subtracting it with df['diff_days'] = df['date_a'] - df['date_b'] will produce a NaT results. I really appreciate if there is someone enlighten me on t

How to generate the same random number sequence within each thread?

I have a code that converts an image with 32 output layers, from an AI segmentation model output, into a single layer where each pixel in each layer has a probability proportional to its score to make to this single layer. In order to do that, I need to generate a random float number to figure out each of the 32 layers is going to be the winner. When I run this code in a single thread, it generates the same output every single time. However, when I use it with OMP (to make it faster), it generates a different output every time, even when I make the random number generator private to each thread and initialize it with the same seed (for each row). I also tried to hardcode the seed to 0 and it did not solve the problem. It is like one thread is interfering with the sequence of the numbers in the other one. I need this code to generate consistently the same result every time in order to make it easier to test the output. Any idea? cv::Mat prediction_map(aiPanoHeight, aiPanoWidth, C

How t update sqlite3 database connected to a treeview in tkinter

I am trying to update a sqlite3 database from a tkinter treeview. It should be relatively simple, but I am stuck My program consists of two files, one with the functions for the backend, the other with just the tkinter layout and its own functions for the app. The function in the backend file works fine and I have tested it: def update_book(book_id, book_title, book_author, book_qty): db = sqlite3.connect("bookstore.db") cursor = db.cursor() cursor.execute("""UPDATE books SET title = ?, author = ?, qty = ? WHERE id = ?""", (book_title, book_author, book_qty, book_id)) db.commit() db.close() This instead is the function from tkinter layout file, responsible to update the entry. At the moment it updates just the entry on the treeview, but NOT in the database. I tried to print the backed function (update_book()) to see the results, but it return None. I do not understand what am I doing wrong... By the way, 't

Avalonia / LibVLCsharp support for iOS, Android and WASM

I'm planning to create a cross platform (Windows, Linux, macOS, Android, iOS, Wasm) audio player using latest AvaloniaUI along with LibVLCSharp. Unfortunately only support for Windows, Linux and macOS is listed for Avalonia. I think that this might be a lack of documentation only, since Avalonia pretty recently introduced Android and iOS support officially. So how is the state of this? Would it be possible to create a REAL cross platform player for all the listed platforms with LibVLCSharp? And if not, is there an alternative, that could be used with AvaloniaUI? I found these libs for C#, that are (partially) capable of playing audio: LibVLCSharp (unmanaged/wrapper, cross platform including Android + iOS) SharpAudio (mostly managed, cross platform, but poor codec support atm) cscore (unmanaged/wrapper, well designed, development stalled) libsoundio-sharp (unmanaged, pretty raw) ManagedBass (unmanaged/wrapper for BASS, awesome but only free for open source) NAudio (awesome

Cytoscape How to select a specific GPU card? Nvidia over Intel

My pc has two cards: one Intel and one NVIDIA. Although I select the NVIDIA card in the Cytoscape Desktop OpenCl preferences everything runs in the Intel one. How can I force it to use the NVIDIA one? Many thanks! I already made sure I have installed all the appropriate drivers.

how can I do parallel reduction approach to combine the partial sums in c

I have to do partial sums using parallel reduction approach in C. but I doesn't have any idea about it. So, I need guidance of Community to achieve this. What I need to achieve: for example, computational thread, then in first reduction step add two element in array, thread 4 should wait for thread 0 done, same as thread 5 has to wait for thread 1 done, thread 6 waits for thread 2 & thread 7 should waits for thread 3 done . now in second step, , thread 6 waits for thread 4 finished, and thread 7 waits for thread 5 finished. , thread 6 waits for thread 4 finished, and thread 7 waits for thread 5 finished. In the third step, thread 7 waits for thread 6 done. then need to print whole array Please help me, give me a guidance to achieve this one.

How to pass new data from one page to another page when using Angular HttpClient and InMemoryDbService?

Image
I tried adding a new position on the "Positions" page, and it appeared in the position list. But, I am not sure how to make the new position appear in the dropdown list on the "Employees" page. Here's what I've done so far. in-memory-data-service.ts ... export class InMemoryDataService implements InMemoryDbService { createDb() { const employees = [ { id: 'abc1', name: 'abc', position: 'Manager'}, { id: 'abc2', name: 'def', position: 'Manager'}, { id: 'abc3', name: 'ghi', position: 'Developer'}, { id: 'abc4', name: 'jkl', position: 'Consultant'}, { id: 'abc5', name: 'mno', position: 'Developer'}, { id: 'abc6', name: 'pqr', position: 'IT Intern'} ]; const positions = [ { position: 'Manager'}, { position: 'Developer'}, { position:

Why do I get an MobSF Error during setup?

installing (run.bat) MobSF I have this error during installation on a Win10. I have c++ insalled. Do you have any idea why this breaks? run.bat of MobSF Thanks. I have tried running "clean.bat", installing C++ and insstalling SDK Microsoft Windows [Versión 10.0.19044.2604] (c) Microsoft Corporation. Todos los derechos reservados. C:\Users\DAS>cd C:\Users\DAS\Desktop\K\Pentesting Android\Mobile-Security-Framework-MobSF C:\Users\DAS\Desktop\K\Pentesting Android\Mobile-Security-Framework-MobSF>./setup.bat "." no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable. C:\Users\DAS\Desktop\K\Pentesting Android\Mobile-Security-Framework-MobSF>setup.bat [INSTALL] Checking for Python version 3.8+ [INSTALL] Found Python 3.10.4 [INSTALL] Found pip Requirement already satisfied: pip in c:\users\das\appdata\local\programs\python\python310\lib\site-packages (23.0.1) [INSTALL] Found OpenSSL executable [INSTALL] Found Visual Studio Bu