What are the best practices for creating email addresses on a domain and its subdomains?

I want to configure multiple applications on my own server, both with their subdomain.
Until now, I had a generic email address. generic@example.com for every purpose
I think this is a bad design, so I decided to implement it in a more hierarchical way with email redirects like below:

+-- admin@example.com                     --> host administration
|   |
|   +-- webmaster@example.com             --> RFC 2142, really needed ?
|   |
|   +-- test@example.com                  --> dev & tests
|   |
|   +-- logs.server@example.com           --> server error logs
|   |
|   +-- logs.crontab@example.com          --> crontab error logs
|   |
|   -- logs.appname@example.com          --> app logs...
+-- contact@example.com                   --> contact with users
|   |
|   +-- notifications@example.com         --> automatic emails to users
|   |
|   -- notifications.appname@example.com --> or should I be more specific ?
-- username@example.com                  --> user emails...

Should I use a dedicated email address for each purpose and / or each application?

Do I need to define email addresses for subdomains? purpose.appname@example.com vs purpose@appname.example.com ?

Do you have any tips, best practices, examples?

meta tags: SEO best practices for a root page that detects language and redirects

I have a multilingual static website; The pages of each language live in specific subfolders like / en, / es, / fr, etc.

On my root idnex page, I dynamically detect the user's language (via Javascript) and then redirect to the specific language-specific folder.

What should I consider in terms of SEO for this index page?

  • Should I add the hreflang attributes that point to the index page in the language-specific subfolders?
  • What should I add as x-default? One of the language-specific index pages, or the "language detection" page itself (which has no actual content …)
  • Should I add a robots meta tag?

Python – My first code – looking for comments on best practices and things you should avoid doing in the future

After learning a little Python, I tried to code something myself. I tried to do a Blackjack game, which is far from perfect, and it still doesn't have some rules that a real game has (in my game an ace always has 11 points, whereas in reality it can also be counted as 1 point).

However, there is a problem that I am having, simply because I don't understand it: I would like to package some of my code in methods and call them, but I have a problem with some variables. I use j as a variable for the card that would be at the top of the deck. By default it is set to 4, because after the opening hands are dealt, the first card in the deck is the fourth. Every time the player receives an additional card, j increases by 1. When the user finishes playing and it is the dealer's turn, I want to keep the current value of j and not return to j being 4. How do I need to restructure my code? to keep the changes that have been made to j in the while loop, if I put that loop in its own method? Is there a way to "extract" a value from a variable from another method?

Also, I want to develop good habits from the beginning and tried to use the best practices I know of, like using formatted strings or using j += 1instead of j = j + 1. Is there a bad practice in my code? Where can I improve? Here is the game in its current state, it seems to be working properly as I have not found a way to break it. (A minor flaw is that you have to press "Y" or "y" for another card, but instead of pressing "n" or "N" to have no more cards you can press nothing)

import random

# the player plays first
# dealer goes second
# dealer hits on 16 and stands on 17

deck_of_cards = ("Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King", "Ace")
cards = {
    "Two": 2,
    "Three": 3,
    "Four": 4,
    "Five": 5,
    "Six": 6,
    "Seven": 7,
    "Eight": 8,
    "Nine": 9,
    "Ten": 10,
    "Jack": 10,
    "Queen": 10,
    "King": 10,
    "Ace": 11,

def drawing_a_card(card_num):
    i = card_num - 1
    drawn_card = deck_of_cards(i)
    return drawn_card

players_first_card = drawing_a_card(card_num=1)
players_second_card = drawing_a_card(card_num=3)

dealers_first_card = drawing_a_card(card_num=2)
players_total = cards(players_first_card) + cards(players_second_card)

print(f"Your first card: {players_first_card}")
print(f"Your second card: {players_second_card}")
print(f"Dealer's first card: {dealers_first_card}")
decision = input(f"You are standing at {players_total}, would you like another card? (Y/N) ")
if players_total == 21 :
    print(f"You hit 21! That's Blackjack, you win!")

j = 4
while decision.lower() == "y":
    if decision.lower() == "y":
        players_next_card = drawing_a_card(card_num=j)
        print(f"Your card: {players_next_card}")
        players_total += cards(players_next_card)
        j += 1
        if players_total > 21:
            print(f"That's a Bust! Your total was {players_total}")
        elif players_total == 21:
            print(f"You hit 21! That's Blackjack, you win!")
            decision = input(f"You are now standing at {players_total}, would you like another card? (Y/N) ")

k = j+1

if players_total < 21:
    print("The Dealer will now take his turn...")
    dealers_second_card = drawing_a_card(card_num=k)
    k += 1
    print(f"Dealer's cards are {dealers_first_card} and {dealers_second_card}")
    dealers_total = cards(dealers_first_card) + cards(dealers_second_card)
    if dealers_total == 21:
        print(f"The Dealer hit 21! That's Blackjack, the Dealer wins!")
    while dealers_total <= 16:
        print(f"Dealer's total is {dealers_total}, he'll take another card.")
        dealers_next_card = drawing_a_card(card_num=k)
        print(f"The Dealer's card: {dealers_next_card}")
        dealers_total += cards(dealers_next_card)
        k += 1
    if dealers_total == 21:
        print(f"The Dealer hit 21! That's Blackjack, the Dealer wins!")
    elif dealers_total > 21:
        print(f"The Dealers total is {dealers_total}, he has bust and you win!")
    if dealers_total >= 17:
        print(f"The Dealer stands at {dealers_total}")
        if dealers_total < players_total:
            print(f"Your total is {players_total}, which is higher than the Dealer's {dealers_total}, you win!")
        elif dealers_total == players_total:
            print(f"You and the Dealer are both standing at {dealers_total}, it's a draw!")
        elif dealers_total > players_total:
            print(f"The Dealer beats your {players_total} with his {dealers_total}, you lose!")


Books on good coding practices and idioms in today's world?

From my college years, I remember some classic examples from books that teach good practice in code writing and software engineering. Examples that come to mind are:

  1. Clean code
  2. Complete code
  3. Design patterns: elements
    Reusable Object Oriented Software

However, they all come from an era that seems to be fading: POO architectures and programming languages.

What are the new kids on the block? Are there any such books on this new era of highly parallel and functionally influenced software by programming?

Best practices for filters

I have several domains that I want to filter out of my projects so they never try to publish them.

I have 2 questions

1. Is it better to create a .txt file with a list of all the domains that I want to filter and enter the URL of that .txt file in the "Options" —> "Filter" section and GSA will extract the daily list, – Or-, is it better to list each domain individually within the Filter list?

2. If I want to filter / block a domain and ALL its subdomains, what format do I use? Have I seen domain.com suggested?

For example, if I want to block all subdomains of art.blog, and put * art.blog, that would also block bestart.blog (I don't want that, I just want to blog the subdomains of art.blog).

configurations: portable input device, best practices for configuration

We are working on a mobile 3D scanning device. The device is a small portable device, about the size of a gopro camera. The device has no display or other controls. The idea is for the user to connect the device with a computer / smartphone, set the desired parameters, and then walk around the object with the scanner pointed at the object.

Technically, we have Bluetooth and WiFi interfaces available on the device. What are some best practices / examples for the process of connecting the computer / smartphone to the device?

Our ideas so far are:

  • Add a button to the device to put it in "bluetooth pairing mode", the user pairs the device using the bluetooth menu on the computer, then download and run our application for configuration. All subsequent communication is done via bluetooth. (Like most bluetooth headphones)

  • When started, the device exposes a WiFi network, the user connects to that network and then opens a website in the browser. The website is served by the device and directly allows configuration. (Like some printers)

  • The user downloads our application, which then tries to establish a direct Wi-Fi (not too familiar with that technology) with the device. (I'm not sure if something like that is used)

  • The user downloads our application, which asks them to connect the device with a cable. Once plugged in, we automatically configure bluetooth connectivity or allow the user to configure their home wifi credentials for the device. (Apple's magic keyboard does this)

I would be happy with any advice on that.

corporate policy: what are the best practices in a manufacturing / production facility for data retention?

In addition to schroeder's good response, it is helpful to work with project managers to identify why They need the data. What do they use old data for? Does it save you time? Does it provide a shortcut for returning customers? Does it produce valuable business intelligence? Allow you to rerun a job in case of error?

Once you know how they plan to use it, you can figure out what to do with it. If they save it because it saves the time of the returning customer, maybe you could create a template that would do the same. If you are looking for business intelligence, do a part of the process to summarize or anonymize the data after the project is done, then destroy the data. If adding to a data group for simulations or models, find a way to add non-personal information to the group and drop things like names and addresses.

If they are storing the data to rerun a job to potentially correct an error, ask project managers to provide information such as how often these errors occur, how much work is normally needed, whether they need the data, or if the customer can supply it, and what is the policy on the maximum time before a customer discovers the confusion and complains? This data will be vital to establish a data retention policy.

They may also store the data because it's a convenience for some of their customers, and customers like your company to store their data. Perhaps that will become part of every order / contract to specify how long you will retain your data once the job is done.

Regardless of why, it looks like you could use a Corporate Information Security Policy that defines things like requiring data retention policies, confidential data classifications, etc.

Until you have an official policy, help them understand that storing Personally Identifiable Information (PII) longer than you have to is literally dangerous for your business. Someday, a hacker may violate your organization, steal a copy of the data, and put it on the national news. When it happens, it doesn't matter if you You thought the data was confidential or not, because your customers will always see it as a breach of their trust.

modeling: how should I model standard order / payment processing? Better practices

We would like to implement payments in our system. I couldn't find good practices to model such a standard case.

We plan model as:

(Order) 1 <=> * (Transaction) 1 <=> * (TransactionItem)


  • Order entities are responsible for a separate order for the transition.
    • Name, customer, should we have items here too?
  • Transition entities are responsible for payments (payment processor, etc.)
    • Transaction: Name, type of transaction (processor, free), total amount / VAT, currency
    • TransactionItem: Name, quantity, Price / VAT per single


So even if the transaction expired we can generate one more based on the order

How do you think about this? Is it too complex and should we cover only at the transaction level?

How do you model payments in your system?

.net – Heartbeat implementation in terms of best practices

I have a web application running on the .NET Framework and using JS / JQuery on the client side. I am the owner and sole developer of this web application, and it is not fully in production. This only to say that I can change the entire architecture of this application without any problem.

I want to implement heartbeat on the client side so that I can know who is online and who is not, and also inform the user if there are live updates etc … My biggest fear is that I am not sure if I do. implement it myself which would slow down the system in the future. So I have a lot of questions in mind:

  • It's 5 seconds good as an interval between each beat

  • Can a 5 second heartbeat slow down the system?

  • How can I implement it in terms of best practices? Can I just do a setInterval and send an ajax request to the server every 5 seconds?

  • I heard that nodejs also has this option, in case I need to migrate some part to nodejs (I'm not an expert in nodejs)

PS: my application will only have between 100 and 300 clients in the future

conversion: best CTA location on landing page (best practices)

We are creating a landing page for the purchase box report where we want the user to complete the form as a priority and therefore we kept the cta in each section. click cta again goes to the top section to complete the form.

Is this a good UX? I feel it will be irritating.

so i came up with a solution to add an email field at the bottom of the page and clicking "start" returns to the form again. we don't want to add popup windows.

Let me know if you have a better solution.enter the image description here