## algorithms – Searching for similar character traits form different texts (Searching for similar gods in different mythologies) NLP Text classification

I am looking for some help with finding methods to implement finding similar gods in different mythologies. For example, I need to find someone like Zeus in Ancient Roman mythology. I start with analyzing Greek myths text, finding most common attributes(words) in paragraphs where Zeus is mentioned. Then I need to analyze Ancient Roman myths and find there a person, very similar by his attributes to Zeus (it should be Jupiter). Currently I am looking towards LSA, but maybe you can give some ideas of how to implement this thing? Any algorithms you could recommend?

## RSS tickler does not tick when using a collection of links rather than texts: what is wrong?

I am using a solution at: https://www.cssscript.com/rss-feed-scroller-marquee/ in order to create a tickler for my web page. All fine, but for the fact the tickler just showed the texts of the rss feed but it was impossible to click them to get to article. So I tried to tamper with it constructing a proper url and trying to animate it. Yet the item seems well constructed, but when I animate it, nothing happens. This the code of the modified js class:

/*!
*
* Licensed under MIT
* Copyright (c) 2020 (Samuel Carreira)
*/
/**
*
* @param {string()} feedURLs Feed URLs
* @param {object} elementContainer the selector of the marquee container
* @param {number} options.speed duration in ms per character. Bigger values = slow speed
* @param {number} options.maxItems specify max number of titles to show (useful to debug)
* @param {object} options.hostnameSelector The selector of the element where you want to show the URL of the news feed source (usefull for copyright atttribution)
*/
constructor(feedURLs, elementContainer, options = { speed: 110, maxItems: null, hostnameSelector: null }) {
this._feedURLs = new Array();

if (Array.isArray(feedURLs)) {
this._feedURLs = feedURLs;
} else {
this._feedURLs(0) = feedURLs;
}

const URLvalidation = this._feedURLs.every(this.validateURL);

if (!URLvalidation) {
throw new TypeError(‘Invalid URL on list’);
}

this._urlIndex = 0;

this._anim = null;

this._newsText = ”;

this._lastTime = Date.now();

if (elementContainer === null) {
throw new TypeError(‘Invalid element selector’);
}

this._elementContainer = elementContainer;
this.styleElementContainer();

this._options = {
speed: this.validateSpeed(options.speed),
maxItems: options.maxItems,
hostnameSelector: options.hostnameSelector,
// …options
};

}

validateSpeed(speed) {
if (!Number(speed) || speed < 50 || speed > 300) {
return 110; // default safe value
} else {
return speed;
}
}

/**
* Set the animation speed
* @param {number} speed value between 50-300
*/
set setSpeed(speed) {
this._options.speed = this.validateSpeed(speed);
}

get getSpeed() {
return this._options.speed;
}

/**
* Validate URL (uses URL interface)
*
* @param {string} url Url to check
* @returns {boolean} true if valid
*/
validateURL(url) {
try {
const u = new URL(url);
return true;
} catch (e) {
return false;
}
}

/**
* Get Hostname from url string
*
* returns url
*
* @param {string} url url string
* @returns {string} hostname
*/
getHostname(url) {
try {
const u = new URL(url);
return u.hostname;
} catch (e) {
return ”;
}
}

const url = this._feedURLs(this._urlIndex);

.then((xmlText) => {
this._newsText = this.parseXMLFeed(xmlText);

this.showMarquee(this._newsText);

this.showHostname(url);
})
.catch((err) => {
console.error(err);

this.handleErrors();
});

}

handleErrors() {
const diffTime = Date.now() – this._lastTime;

if (diffTime > 5000) {
console.log(‘Trying next feed URL…’);

this.nextURL();
this._lastTime = Date.now();
} else {
if (this._newsText === ”) {
console.log(‘delay…’);
setTimeout(() => {
this.nextURL();
}, 5000);
} else {
console.log(‘show again cached saved news’);
this.showMarquee(this._newsText);
}
}
}

nextURL() {
this.increaseIndex();

}

styleElementContainer() {
this._elementContainer.style.overflow = ‘hidden’;
this._elementContainer.style.whiteSpace = ‘nowrap’;
}

showHostname(url) {
if (!this._options.hostnameSelector) {
return;
}

this._options.hostnameSelector.innerText = this.getHostname(url);
}

showMarquee(aCollection) {

try {
const animKeyframes = ({
transform: ‘translateX(0)’
},
{
transform: ‘translateX(-100%)’
}
);

const animOptions = {
duration: 25000, // The number of milliseconds each iteration of the animation takes to complete. Defaults to 0. Although this is technically optional, keep in mind that your animation will not run if this value is 0.
easing: ‘linear’, // The rate of the animation’s change over time. Accepts the pre-defined values “linear”, “ease”, “ease-in”, “ease-out”, and “ease-in-out”, or a custom “cubic-bezier” value like “cubic-bezier(0.42, 0, 0.58, 1)”. Defaults to “linear”.
iterations: 1, // The number of times the animation should repeat. Defaults to 1, and can also take a value of Infinity to make it repeat for as long as the element exists.
delay: 0, // The number of milliseconds to delay the start of the animation. Defaults to 0.
endDelay: 0 // The number of milliseconds to delay after the end of an animation. This is primarily of use when sequencing animations based on the end time of another animation. Defaults to 0.
};

animOptions.duration = aCollection.length * this._options.speed;

const elementChildNode = document.createElement(‘span’);
elementChildNode.style.display = ‘inline-block’;

//const textNode = document.createTextNode(text);
console.log(aCollection.lenght);
aCollection.forEach(function(item, index, array) {
elementChildNode.appendChild(item)
})
console.log(“totale:”);
console.log(elementChildNode);
//elementChildNode.appendChild(textNode);

//this._elementContainer.appendChild(elementChildNode);

this._anim = elementChildNode.animate(animKeyframes, animOptions);
console.log(‘start animation’);
this._anim.onfinish = () => {
console.log(‘end’);
while (this._elementContainer.firstChild) {
this._elementContainer.firstChild.remove();
}
delete this._anim.onfinish;

this.nextURL();
};

this._lastTime = Date.now();
} catch (err) {
console.error(err);
}
}

increaseIndex() {
this._urlIndex += 1;
if (this._urlIndex > this._feedURLs.length – 1) {
this._urlIndex = 0;
}
}

/**
* @param {string} feedURL RSS XML url
*/
return new Promise((resolve, reject) => {
console.info(`Start fetching \${feedURL}…`);

fetch(feedURL, { mode: ‘cors’, redirect: ‘follow’ })
.then((response) => {
return response.text();
})
.then((xmlTxt) => {
return resolve(xmlTxt);
})
.catch(() => {
console.error(‘Error in fetching the RSS feed’);
reject();
})
});
}

/**
* Parses RSS XML feed
*
* – Select title elementContainer
* – add dot separator between “headlines”
* – remove <!(CDATA( string
* – remove html tags
*
* @param {string} xmlText
* @returns {string} parsed feed
*/
parseXMLFeed(xmlText) {
try {
const parser = new DOMParser();
const doc = parser.parseFromString(xmlText, “text/xml”);

let news = ”;
let aCollection=();
let totals = 0;

for (let item of doc.querySelectorAll(‘item’)) {
let title = item.getElementsByTagName(“title”)(0).childNodes(0).nodeValue;
// let description = item.getElementsByTagName(“description”)(0).childNodes(0).nodeValue;
if (title) {
if (news.length) {
news += ‘xa0’ + ‘ • ‘ + ‘xa0’;
}
title = this.remoteCData(title);
title = this.stripTags(title);
news += title;
var a = document.createElement(‘a’);
var linkText = document.createTextNode(title);
a.title = title;
aCollection.push(a);
totals += 1;
}

if (this._options.maxItems !== null && totals >= this._options.maxItems) {
console.info(‘Maximum items reached!’);
break;
}
}
//console.log(aCollection);
//console.log(news);
console.info(`Parsed \${totals} title(s)`);
return aCollection;
} catch (err) {
console.error(err);
return ‘ ‘;
}
}

stripTags(textWithTags) {
return textWithTags.replace(/<(.|n)*?>/g, ”);
}

remoteCData(originalText) {
return originalText.replace(“<!(CDATA(“, “”).replace(“))>”, “”);
}
}

The non occurring animation is in function: showMarquee(aCollection). The original site shows how to test it.

Thanks,

## I will remove and replace backgrounds, people, objects and texts. for \$10

#### I will remove and replace backgrounds, people, objects and texts.

If you want to have something removed and/or replaced in your image just send it to me and I will take care of it for you. I will replace the background with added shadows and remove anything without leaving a mark.

.

## email – Need a “keyboard shortcut” to change selected text’s “text color” in Gmail replies

I use the GMail web interface, in Firefox, for all my email needs.

I frequently change the color of text that I quoted from the Sender in my GMail replies.

Example:

Hi,

You wrote, “. . . a;sdkfjasl;fkjasl;kfj . . . ,”

and I just want to say that I agree totally.

I’m having to select the Sender’s text and then mouse & click to change its color
and this is tedious.

I need a keyboard shortcut to change selected text to, say, black, from my default
color of blue.

Ideas?

Thanks!

## Can I rate a block of texts based on its typography for its readability or legibility?

Can I rate typography? Based on the various components which make up a block of texts like- X height, font-weight, Line space, margin, and such other values – Can I find threshold values below which readability/ legibility suffers? I have gone through several research papers but couldn’t find specific ones.

## google sheets – How to sort a column with date as impeded within Texts?

I have a list of files’ names that I would like to sort based on the date that’s impeded within the file name text (Column A folder). When sorting them, the number 10 comes after 1 instead of 1,2,3,4,5….etc. So, I came up with a new column (G) that has the number of day only being extracted from the file name (Column A) by this formula:

`=ArrayFormula(iferror(Right(REGEXEXTRACT(A2:A,"/.."),2)))`

But still I can’t sort the rows as expected… 10 comes after 1, 20 after 2 and 30 after 3.. Any idea how to solve this issue?

## 8 – How can I use one of the pre-set email texts for user registration in a custom module

At /admin/config/people/accounts, there are several stock email messages set.

How can I use one of these when I am sending emails from a custom module?

The text that’s being used in “Welcome (new user created by administrator)” is all that I need, plus there’s the bonus that our client can edit this email in the future if they want to.

I can send the message easily enough using:

``````\$params = (
'title' => "My Title",
'subject' => "An Account Has Been Created for you",
'message' => Html::escape("Some text here")
);

\$result = \$mailManager->mail(\$module, \$key, \$to, \$language_code, \$params, NULL, true);
``````

Is there a variable somewhere to get the pre-entered text?

## samsung – Messages for web not updating with new texts and statuses

I am trying to use Android Messages for web. I am able to connect to the phone using the QR code, but after the initial connection, I do not get new messages automatically or any notification – I have to reload the page to see them.

When I send the message, the “Sending…” status remains and is not updated to “Distributed” either.

I have tried in Firefox and Chromium. I am using Ubuntu. The computer and phone are on the same network, and I tried with the computer using a cable or WiFi. The phone is a Samsung Galaxy S9 and the app is allowed to run in background (no battery optimisation).

I have had the problem for quite some time now, I couldn’t say if it used to work in the past.

## Relations between many category theory structures – introductory texts

There are many kinds of category theory structures. What are some good texts and good ways to remember the relations between them? For example, can there be a web of embedding relations between these category theory structures? (where can I find those webs to read.) Like which ones contain the other ones as more general cases. (Intersections and unions between different category theory structures.)

• unitary braided fusion category = unitary premodular category

• unitary fusion category

• unitary symmetric fusion category

• unitary modular category

• monoidal category = tensor category

• spherical fusion category

• modular tensor category

Here are some facts I know of

1.

$$text{unitary braided fusion category = unitary premodular category} supset left{ begin{array}{l} text{(1) unitary symmetric fusion category}\ text{(2) unitary modular category} end{array} right.$$

1. The center construction of spherical fusion category defines a modular tensor category.

Please feel free to make comments and give a list of advices.

## MS-Word wildcards: How to find texts that match either of two strings

I wanna find `am` or `pm` in a MS-Word document. I’ve tried all these wildcard expressions, but none of them works:
(am|pm)
((am)|(pm))
(am)|(pm)