Any tool available for free that could recover data from a hard disk in windows?

The question is pretty much self-explanatory. I’m trying to recover data in Windows 8.1 pro. I downloaded and installed Disk Drill. The software worked perfect but the issue is it only provides a maximum limit of 500 MB data to recover. Is there any tool which doesn’t have this restriction and by the help of which I could recover all of my data.

How could Chinese Communications Authority found a backdoor on my website

I host a legacy http website on my own hardwares in China. It was attacked due to the Struts file upload flaw last month. But yesterday, Communications Authority in my province alarmed me, there is still a backdoor on my website, and I need to clean it. Here is the information they gave me:
1. Backdoor script url:
2. My ip address and port:
3. Hacker’s ip address and port:

After that I confirmed they are correct, there is a backdoor script. However frankly, I am worrying more about them than some random hackers from internet due to there reputation. So I try to learn how they know that. Here is my assumption:
1. The hacker’s ip already reported, I can find it in this blacklist: for example. And they also know this list.
2. They filtered all packages to that ip address, and get the backdoor script url from the http headers in that packages.

My question is:
1. I am not sure if my assumption is currect.
2. If It is a https website, could they still get the url?

How do I add hyperlinks and images to the template(A1), to use the below could and use mail merge to send out my mails?

function getRowsData(sheet, range, columnHeadersRowIndex) {   columnHeadersRowIndex = columnHeadersRowIndex || range.getRowIndex() - 1;   var numColumns = range.getEndColumn() - range.getColumn() + 1;   var headersRange = sheet.getRange(columnHeadersRowIndex, range.getColumn(), 1, numColumns);   var headers = headersRange.getValues()[0];   return getObjects(range.getValues(), normalizeHeaders(headers)); }   function getObjects(data, keys) {   var objects = [];   for (var i = 0; i < data.length; ++i) {     var object = {};     var hasData = false;     for (var j = 0; j < data[i].length; ++j) {       var cellData = data[i][j];       if (isCellEmpty(cellData)) {         continue;       }       object[keys[j]] = cellData;       hasData = true;     }     if (hasData) {       objects.push(object);     }   }   return objects; }   function normalizeHeaders(headers) {   var keys = [];   for (var i = 0; i < headers.length; ++i) {     var key = normalizeHeader(headers[i]);     if (key.length > 0) {       keys.push(key);     }   }   return keys; }  function normalizeHeader(header) {   var key = '';   var upperCase = false;   for (var i = 0; i < header.length; ++i) {     var letter = header[i];     if (letter == ' ' && key.length > 0) {       upperCase = true;       continue;     }     if (!isAlnum(letter)) {       continue;     }     if (key.length == 0 && isDigit(letter)) {       continue; // first character must be a letter     }     if (upperCase) {       upperCase = false;       key += letter.toUpperCase();     } else {       key += letter.toLowerCase();     }   }   return key; }   function isCellEmpty(cellData) {   return typeof(cellData) == 'string' && cellData == ''; }   function isAlnum(char) {   return char >= 'A' && char <= 'Z' ||     char >= 'a' && char <= 'z' ||     isDigit(char); }   function isDigit(char) {   return char >= '0' && char <= '9'; }   function sendEmails() {   var ss = SpreadsheetApp.getActiveSpreadsheet();   var dataSheet = ss.getSheets()[0];   var dataRange = dataSheet.getRange(2, 1, dataSheet.getMaxRows() - 1, 4);    var templateSheet = ss.getSheets()[1];   var emailTemplate = templateSheet.getRange("A1").getValue();   var emailTemplate2 = templateSheet.getRange("A2").getValue();     var objects = getRowsData(dataSheet, dataRange);    // For every row object, create a personalized email from a template and send   // it to the appropriate person.   for (var i = 0; i < objects.length; ++i) {     // Get a row object     var rowData = objects[i];     var file = DriveApp.getFilesByName('2019_MA_BenefitsGuide.pdf')     var file1 = DriveApp.getFilesByName('List of Acceptable Documents.pdf')      var emailText = fillInTemplateFromObject(emailTemplate, rowData);     var emailText2 = fillInTemplateFromObject(emailTemplate2, rowData);     var emailSubject = 'Mail Merge Test';      MailApp.sendEmail(rowData.emailAddress,                       emailSubject,                        emailText,                        {attachments: [,]} );    } }  function fillInTemplateFromObject(template, data) {   var email = template;   // Search for all the variables to be replaced, for instance $  {"Column name"}   var templateVars = template.match(/$  \{\"[^\"]+\"\}/g);    // Replace variables from the template with the actual values from the data object.    for (var i = 0; i < templateVars.length; ++i) {      var variableData = data[normalizeHeader(templateVars[i])];     email = email.replace(templateVars[i], variableData || '');   }    return email; } 

How do I add hyperlinks and images to the template(A1), to use the below could and use mail merge to send out my emails?

Determine whether array could become non-decreasing by modifying at most 1 element

The task

Given an array of integers, write a function to determine whether the array could become non-decreasing by modifying at most 1 element.

For example, given the array [10, 5, 7], you should return true, since we can modify the 10 into a 1 to make the array non-decreasing.

Given the array [10, 5, 1], you should return false, since we can’t modify any one element to get a non-decreasing array.

const arr = [10, 5, 7]; 

My functional solution

const isIncreasing = arr => {   let count = 0;   return[...arr].every((n, i) => {     if (arr[i + 1] && n > arr[i + 1]) { ++count; }     return count < 2;   }); };  console.log(isIncreasing(arr)); 

My imperative solution

function isIncreasing2(arr) {   let count = 0;   for (let i = 0, len = arr.length; i < len; i++) {     if (arr[i + 1] && arr[i] > arr[i + 1]) { ++count; }     if (count > 1) { return false;}   }   return true; }  console.log(isIncreasing2(arr)); 

Could not insert ath9k_htc.ko after rebuild: Operation not permitted

I had to rebuild ath9k_htc module on Ubuntu 18.04 in order to make some modifications. But module doesn’t apear to be installed even without changes in the code (I amke rebuild only). The “Operation not permitted” error apears instead. Please, have a look:

aptitude install linux-headers-amd64 aptitude install linux-source-amd64 tar xf linux-source-4.19.tar.xz cp ../linux-headers-4.19.0-4-amd64/Module.symvers . make oldconfig # aptitude install libelf-dev vim .config # check CONFIG_ATH9K=k make prepare # aptitude install libssl-dev make modules_prepare make SUBDIRS=scripts/mod make SUBDIRS=drivers/net/wireless/ath/ath9k modules cp drivers/net/wireless/ath/ath9k/ath9k_htc.ko /lib/modules/4.19.0-4-amd64/kernel/drivers/net/wireless/ath9k depmod modprobe ath9k_htc 

could not insert ath9k_htc: Operation not permitted

Your help will be appreciated.

I need to come up with a formula that I could use and replace values

The problem is as follows:

”Let’s say a company ran a pre-launch and generated 5,000 leads on their level 1 over a period of 30 days. Meaning, all of those leads came into the company directly from their own marketing efforts.

But throughout the well-executed pre-launch, there were multiple viral components and content released that those 5,000 people shared.

That 5,000 could balloon to 6,000… then 9,000… then 13,000, then 20,000…. throughout the launch.

In this example, using the 20,000 number, that’s 15,000 extra leads that the company had zero acquisition cost.

To drill deeper, let’s say the average CPA (cost-per-acquisition) was $ 4.00 per enrollment into the pre-launch for the company.

The company spent $ 20,000.00 on marketing (5,000 X $ 4.00) to obtain those 5,000 leads.

But thanks to the viral nature of a pre-launch, they had an extra 15,000 leads that came in.

So that brings down their overall cost per lead to just $ 1.33.”

My question is… how did they come up with the result of $ 1.33 CPA.

Thanks in advance for the help!


Is there anything we could add or change to this cover letter for a UK Standard Visitor Visa?

Please see Standard Visitor Visa for US Citizen (I’ve forgotten my details!)

TL;DR U.S Girlfriend refused entry to UK in Nov 2018 due to belief she’d overstay her 6 months in the UK but have made big changes in circumstances since.

She has a biometrics appointment on April 22 for a new visa application. We wrote a cover letter (below) but we’d like to see if there’s anything we could change or remove, or if there are any points that are irrelevant?

XXX, DOB: XX/XX/XXX, American national, GWF 00000000

To the Entry Clearance Officer,

Thank you for taking the time to consider my application for a Standard Visitor Visa. I am seeking to visit the UK for a total of three weeks (XXXX – XXXX) in order to visit my boyfriend who lives in XXX, England. I was refused entry to the UK in November 2018 and my case number is #0000.

Since December 10 2018, I have been employed at XXXX as a part-time teacher and a part-time administrator with an average monthly wage of $ XX for my part-time teaching role and a monthly wage of $ XX for my administrative role. This administrative role has fixed hours of two days a week, 4 hours each day. My monthly wage from my teaching role varies depending on how many hours I am needed for, and so I have calculated an average. I have also included bank statements outlining my finances, a letter of invitation from my boyfriend and a letter of approved vacation time from my employer in the United States.

My primary purpose of travel is to visit my boyfriend after he visited me here in the United States in order to maintain our long-distance relationship. XXX (boyfriend) and I met during his time working in the United States in July 2017 and have been in a long-distance relationship since. He plans to visit me in the near future if granted leave of absence from his employer.

During my time in the UK I will not be paying any costs towards accommodation as I will be staying with my boyfriend and his parents and my estimated cost for the total trip, including flights, is approximately 1400 USD. XXX and I will be staying in XXX throughout the duration of my visit.

After my visit I shall be returning to the United States to continue working as I am saving up for an apartment in XXXX. I am currently residing with my two parents.

Thank you for considering my application.

Kind regards,


I’ve used ‘XXX’ in place of removed information (names, dates, locations).

After she was refused I visited her in the USA for one month. Would they be aware of this, and would it influence their decision in her visa?

Somebody mentioned in my last question on my other account, that I should include how we met and how often we communicate etc in my cover letter. Is this really advisable and would it be worthwhile? We have plenty of pictures together and we communicate every single day without failure but I don’t quite think it would be all that necessary to include documentation of this as I don’t believe the integrity of our relationship is even being questioned by Home Office officials.

Thanks. I hope the cover letter doesn’t come across as desperate to the ECO but I feel as if it outlines our situation. Cheers!

Could we always find a curve on the manifold whose tangent vector always belongs to a linear subspace?

Suppose we have a smooth manifold $ M$ and the tangent space of every point $ x \in M$ has non-empty intersection with a given linear subspace. Could we find a curve on $ M$ such that the tangent vector of point on thus curve always belongs to this linear subspace?

$ \textbf{My attempt:}$ If the dimension for the linear subspace is one or two, I think I can find the curve. But I don’t know if the dimension is bigger than two?

I will appreciate for any useful answers and comments

Could you please recommend an approach on converting non-unique field to a unique field?

On our prod db we have two tables:

  1. companies
  2. invoices

enter image description here

Relationship: A company has many invoices An invoice belong to a company

The invoices table contains duplicate invoice_number for each company. What is the best approach to make invoice number unique for each company. what ever approach we go with, the changes shouldn’t affect the existing references to the invoice table. It should only affect new invoice records.