storage – Why is mdadm unable to deal with an “almost failed” disk?

Multiple times in my career now I’ve come across mdadm RAID sets (RAID1+0, 5, 6 etc) in various environments (e.g. CentOS/Debian boxes, Synology/QNAP NASes) which appear to be simply unable to handle failing disk. That is a disk that is not totally dead, but has tens of thousands of bad sectors and is simply unable to handle I/O. But, it isnt totally dead, it’s still kind of working. The kernel log is typically full of UNC errors.

Sometimes, SMART will identify the disk as failing, other times there are no other symptoms other than slow I/O.

The slow I/O actually causes the entire system to freeze up. Connecting via ssh takes forever, the webGUI (if it is a NAS) stops working usually. Running commands over ssh takes forever as well. That is until I disconnect / purposely “fail” the disk out of the array, then things go back to “normal” – that is as normal as they can be with a degraded array.

I’m just wondering, if a disk is taking so long to read/write from, why not just knock it out of the array, drop a message in the log and keep going? It seems making the whole system grind to a halt because one disk is kinda screwy totally nullifies one of the main benefits of using RAID (fault tolerance – the ability to keep running if a disk fails). I can understand that in a single-disk scenario (e.g. your system has as single SATA disk connected and it is unable to execute read/writes properly) this is catastrophic, but in a RAID set (especially the fault tolerant “personalities”) it seems not only annoying but also contrary to common sense.

Is there a very good reason the default behavior of mdadm is to basically cripple the box until someone remotes in and fixes it manually?

seo – How to deal with data-sheet and product PDFs which are repeated over the web?

Disclaimer: I’ve asked a question about the same topic on reddit, but got no answers, only few upvotes.

I’d like to ask for opinions on the proper way to deal with a situation whereas a company ( is selling and implementing certain kind of gadgets, and while each product has their own dedicated HTML product page on these pages deep technical information is not provided. However for the tech-savvy the website also hosts data-sheets and vendor provided PDF documentation about the products, linked from the product HTML pages for easy access. All together this is a setup that seems to be useful for real users.

Now when we go down to SEO, since these PDF-s are mostly provided by the manufacturers, they appear in other places over the web, including rival websites as well. Many of these PDFs are detected as duplicate content by Google whereas the “Google-selected canonical” is the same PDF on someone else’s website!

Question 1: Does this mean that link-juice is leaked to those other random websites, even though is linking to the PDFs under it’s own domain?

Question 2: If answer to Q1 is yes, would adding rel="nofollow" to those links pointing to the PDFs be recommended?

To make things more complicated when I check the Links section in Google Search Console, I can see that apparently have loads of External links, but when I take a closer look, many of those are pointing to identical copies of these PDFs mostly on another site. In other words Google makes it look like we have incoming external links, whereas in reality other websites has links to these duplicate PDFs on their own domain.

Question 3: Is it a bug in Google Search Console that it shows links to PDFs on other websites as incoming external links to

Also when I look further I can find some of these PDFs, where the Google Selected Canonical seems to be the one on

Question 4: Does that mean that with those PDFs is stealing link juice from other sites, even when they link to their own hosted version of the same PDFs?

Question 5: If Q4 is yes, does that mean should examine the PDFs one-by-one and add rel="nofollow" (or prevent indexing in any other way according to Q2) to those links where the canonical is on another domain, but keep normal links to those PDFs, where has the canonical versions?

PS: I’ve tried to search for this topic for many days without finding even a mention of this kind of a situation. The closest I’ve found is this article, but it is about only a slightly similar topic and it does not offer any solutions to the problem.

dnd 5e – How to deal with a captured caster (beside killing)?

I am wondering how both society in general and the player group in particular can deal with an overpowered evil or at least hostile caster. While our group kills during the fight, they don’t want to kill someone who is more or less defenceless at that moment. But just setting them free after questioning is also not a viable option.

Also, concerning the general society I don’t find the idea of a prison where a large group of high level caster cast Antimagic Field hourly plausible.
Are there any other ways to suppress or remove the ability to manipulate the Weave beside killing or severely maiming?

If you have ideas or references to official descriptions, I’d appreciate it. The setting is Forgotten Realms (Sword Coast).


Earnings Disclaimer:  All the posts published herein are merely based on individual views, and they do not expressly or by implications represent those of or its owner. It is hereby made clear that does not endorse, support, adopt or vouch any views, programs and/or business opportunities posted herein. also does not give and/or offer any investment advice to any members and/or it’s readers. All members and readers are advised to independently consult their own consultants, lawyers and/or families before making any investment and/or business decisions. This forum is merely a place for general discussions. It is hereby agreed by all members and/or readers that is in no way responsible and/or liable for any damages and/or losses suffered by anyone of you.

programming practices – How to deal with interpreter dependencies

Consumer software often has interpreter dependencies. How should a situation where the required interpreter is not by default installed on the targeted system be handled for consumer software, soft for non-technical people?

Bellow, I give an example with Node.js and macOS, but my question applies equally to other platforms.

Let’s say I release some consumer software for macOS written to be run with Node.js (via a shebang). macOS doesn’t have Node.js installed by default, so I guess there are two-ish major options here:

  • Pack Node.js into my software
  • Mention that Node.js is required to run the software on the download site
  • (Include a piece of software that can be run by default, that is run before the main program. This piece of software checks if Node.js is installed. If not, it should ask the user whether he would like to install the required dependency and help him to do so.) ~ Would work, but this doesn’t seem to be a common thing.

I’ve seen both options used extensively (although not per se with the Node.js and macOS example combo). Both have their pros and cons.

Having the user install Node.js on their system is probably quite a bit of a hassle for non-technical people.

Packing the entire Node.js runtime with an application is also not that ideal, especially for software where the interpreter takes up more space than the actual application code. If all apps on the users computer would do this, the majority of the disk would be filled up by packed Node.js-executables, though only one global one would really be required.

MEGA DEAL!! Single E5-2650v4 from 63.80€/m, DUAL E5-2650v4 from 99€/m. QUICK DELIVERY!

* Own data center*

* Read our BLOG:

* Read reviews about us:

Bacloud – premium service provider. We offering servers and components from our own warehouse, so Bacloud can deliver custom dedicated servers, ordered from a website from 2 to 8 hours*.*


*» CPU: Intel® Xeon® Processor E5-2650v4 12C/24T (30M Cache, 2.2 GHz)**


*» DISK: 2 x 2.5″ 250GB SSD 6GB SATA3

*» IPv4 Address: 1 IP address

*» IPv6 Address: 1 IPv6 address

*» Internet speed: 1Gbps (50TB traffic inc.)

Price 76.56€/month 765.60/year ( 63.80€/month ) with PROMO CODE: MEGA

Direct link to a product:


*» CPU: (Dual) Intel® Xeon® Processor E5-2650v4 12C/24T (30M Cache, 2.2 GHz)*

*» RAM: 32GB DDR4 ECC 12.00€

*» DISK: 2 x 2.5″ 250GB SSD 6GB SATA3

*» IPv4 Address: 1 IP address

*» IPv6 Address: 1 IPv6 address

*» Internet speed: 1Gbps (50TB traffic inc.)

Price 118.80€/month, 1888€/year ( 99€/month) with PROMO CODE: MEGA

Direct link to a product:

Those servers can be up to 256GB RAM and up to 6 x SSD drives. CPU’s currently available: 2650v4, 2680v3, 2678v3, 2680v4

*2 – 8 hours server delivery in business hours, when dedicated server ordered from a website. It depends on the number of orders we have. Off business hours and weekends, server delivery from 2 to 16 hours.*

Payment methods: BitCoin, Paypal, *Credit Cards, AliPay, Webmoney, *Tenpay ( WeChat ), UnionPay, CashU, SafetyPay, Perfect Money, Direct bank transfer.(/QUOTE) ( All payment methods are listed here: )

Contact us:

Skype: Andrius.Bacloud , Discord: bacloud#9122*

Tel: +37068557990

iBrave Unlimited Shared Cloud Hosting $99 Lifetime Deal – Any good? is running one of their sales campaigns at the moment which, on the face of it looks to be a no-brainer. Lifetime unlimited web hosting for just $99.00. That’s it. You never get billed again!

The special offer gets you LIFETIME access to iBrave’s top-tier UNLIMITED web hosting package for just $99 one-time.

Powerful market-leading technology & lightning-fast servers

User-friendly control panel with 80+ one-click install apps

1-Click WordPress installation

Easily migrate your existing website(s)

Secure, state-of-the-art data centers

Friendly support 7 days a week

Lowest prices for unlimited enterprise-class hosting

Premium features & services

Save money while getting more from your hosting

Premium Features

Unlimited Websites

Unlimited Subdomains

Unlimited Monthly Bandwidth

Unlimited SSD Storage

Unlimited MySQL Databases

Unlimited Custom Email Addresses

FREE 1-Click Install for WordPress, Magento, Joomla & 80+ More Popular Software & Web Apps

FREE Website Builder

FREE Wildcard SSL Certificate

FREE Content Delivery Network (CDN)

FREE Antivirus & Antispam Protection

FREE Daily Backups

FREE Website Migration

FREE 80+ One-Click Install Software

99.9% Uptime Guarantee

Now that all sounds wonderful but, I have seen a few reviews talking about really slow customer service and slow website response times.

It also looks like iBrave have given discount codes to hundreds of so-called “review” sites in order to promote the deal. This has the knock-on effect of pushing any negative reviews way down in search engines.

So has anyone here ever tried iBrave and if so, what were your experiences with them?

dnd 5e – Does the Rapier of Life Stealing deal magical damage?

Our first step in clarifying the workings here is switching the concept the right way round. Magical damage isn’t generally speaking a thing in the rules. What you run into is magical or non-magical attacks. That’s what monsters will have resistance or immunity to. And a magical attack is:

a magical attack is an attack delivered by a spell, a magic item, or another magical source

Monster Manual, p. 8

Make note of errata, as the resistance type was reworked from referring to magical weapons, which admittedly would be even clearer here.

So now the only remaining question is whether the sword is magical, which is it is. All magical weapons are magical weapons (welcome to tautology club), even if doesn’t give +1 to attack and damage roll. That’s just one property/effect magic weapons can have. See also from the SAC: Do magic weapons give you a bonus to attack and damage rolls?

Every magic weapon can bypass resistances and immunities to damage from nonmagical attacks, but only certain magic weapons are more accurate and damaging than their nonmagical counterparts. For example, a +1 longsword and a giant slayer both give you a +1 bonus to attack rolls and damage rolls, whereas neither a flame tongue nor a frost brand provides such a bonus. All four weapons, however, can bypass an earth elemental’s resistance to bludgeoning, piercing, and slashing damage from nonmagical attacks.

† There is occasionally a distinction; which is to say there are features which actually refer to “magical damage”; however this is never properly defined by the game. Most of these are player facing rules, eg. spells (and magic items). See Is there a distinction between magical damage and nonmagical damage? for more details. Monsters’ resistances doesn’t (generally) use this though, and I’d assume that’s what your friend will be stabbing with their life stealer more often than not.

matrices – How to deal with Negative and Positive eigenvalues in this diagonal matrix and what is its time complexity?

If The matrixes C and D can be written in a diagonal format. Suppose that
λ and µ are eigenvalues of matrix C and Matrix D arranged in descending and ascending order.

we will simply have for
an arbitrary and orthogonal P (not exactly permutation matrix P), the following relation (1) :

enter image description here

My Questions are :
when I do calculate the eigenvalues from positive integer matrices C and D (my case study), the results are positive and negative eigenvalues , so

  1. How can I sort λ and µ in descending and ascending to continue calculate its multiplication relation ? Are their signs considered in the order?

  2. What does the negative values mean? How to deal with their approximate numbers? Hence, the relation between λ and µ (1) is considered a lower bound for my problem which only accepts positive integer numbers.

  3. what is the time complexity of this method?

algorithms – How to deal with forward references in a compiler?

We need to separate the nature of the source language. If cyclic references are forbidden, you can use a topological sort to bring your AST into an order that can be processed without encountering forward references (that haven’t been materialized yet). So i’ll focus on cyclic references.

This should be the minimal example that illustrates the point in question:

SomeProc {

For illustration purposes, this is the AST that this should yield:

  - Name: SomeProc
      - Type: Invocation
        Procedure: SomeProc

This AST already contains a cyclic reference; its just that its a logical one, not one that you can use in the compiler source code.
If you want to turn that into an actual reference (one usable in the compiler program), you first need a place to store that reference. And since you cannot create both at the same time, some mutability is necessary. That’s just the nature of forward references.

As to practical advise: i’ve written some interpreters for DSLs, and i’ve always taken this approach:

You have one set of classes that cleanly represents the AST, and just that.
You have another set of classes that represents the semantical structure of the program (an intermediate representation/IR in compiler lingo). Instances of the IR classes created from the instances of the AST classes.
Then, once you have IR instances, you resolve all references, mutably. E.g.:

class Context {
  Map<String, Procedure> procedures;

class IRProcedure {
  List<Statement> statements;
  void resolveReferences(Context context) {
    foreach (statement in statements) {
class Statement {
  String procedureName;
  Procedure procedure;

  void resolveReferences(Context context) {
    Procedure resolved = context.procedures.get(prcedureName);
    if (resolved == null) {
      // trigger compiler error: unknown function
    this.procedure = resolved;

The main flow of the compiler would then:

  1. parse the AST
  2. create Procedure instances for every procedure it finds.
  3. Create the context where procedures are indexed by name
  4. Call resolveReferences(context) on every procedure

And voilá, references set correctly.

Unfortunately, i don’t see a way to have forward references be immutable if cyclic references are a possibility. If things get more involved (type checking, data structures, control flow, yada yada), then you can gain a lot in terms of immutability by introducing a third set of classes / another IR. But that goes beyond the scope of the question.

The number of passes

I have no clue how the number of passes are counted. I think two is reasonable if you reason like so:

  • Parsing the code into AST: Pass 1
  • Walking over the entire AST to resolve references: Pass 2

For each IR you introduce to help you deal with complexity the pass count arguably goes up by 1.
But one could also argue that one walk over the AST/IR tree doesn’t count as a pass, since you’re only modifying the existing data structures already in memory. So if you have to restrain yourself to two passes, you can maybe use another IR with that argument.