Thu. Nov 21st, 2024
Names on small chalk board

What’s in a name?

Shakespeare – Romeo and Juliet

Historically, many university professors have named their machines after famous philosophers such as Aristotle, Socrates, etc. Others have named computing devices after operas such as Tosca, LaBoheme, Figaro, etc. “IT Guys” have named their devices after characters and vessels from the worlds of Star Trek or Star Wars, for example: Spock, Picard, Kirk or DeathStar, Hoth, Skywalker, Obi-Wan, etc. 1

This article has been written so these antiquated practices can officially end today! Start assigning names in a systematic fashion. Names should be logical, parsable, fixed-width (if possible), consistent, descriptive, unique and meaningful.2 When designing a naming convention follow best practices for IT management, keeping in mind the nature of the research, scalability, scriptability, and automation.

Even if you have a small network of research computing devices, naming is important, however, it becomes increasingly important as an organization scales with technology. Research labs that build numerous rigs of data acquisition machines may want to orchestrate data pipelines and automate I/O with networked devices. It is easier to program for automation when devices are named with recognizable meaningful patterns. If a lab uses obscure names it may be difficult to remember which rig in the lab is Skywalker and which is Palpatine and what each of the rigs does. A mistake that will truly lead down to the dark side.

Naming Convention Building Blocks

Unlike network infrastructure components that usually have a fixed location within an a building street address, floor and room number, within research environments it is possible and even likely that faculty, PIs, and research labs move between floors or buildings periodically as facilities are refreshed. Keep this in mind when formulating a naming convention. For example, it would not be advisable to use a room number, floor number because the automation program code in addition the network naming would all have to be updated. There would be a break in service each time changes had to be made.

Instead, for example, name based on lab, function, and sequence.

Lab Naming

When naming, stay away from using just 2 character initials such as JW. As a matter of fact, if you Google my name, you will find the actor Jonathan Harshman Winters instead of me, Jonathan Noah Winters. Believe it or not, multiple individuals having the same two character initials happens very frequently and in my current research center we have 4/~80 different sets of researchers with the same initials. To prevent and preempt these type of problems, use 3 digits or more to differentiate.

Device Type Indicator

Some Suggested 3 character device types are:

  • wrk = workstation
  • daq = data acquisition computer
  • cam = camera
  • cpu = compute node
  • rtr = router
  • brn = brain cap
  • scn = scanner
  • sen = sensor
  • mri = Magnet Resonance Imaging
  • srv = server

Numbering

When numbering, always add leading 0s to maintain fixed-width consistency if possible. Anticipate growth, over-provision in order to leave room for growth.

  • Sometimes there needs to be a trailing indicator to indicate 2 or more of such devices within any given setup. For example if there were two video camera feeds in one experiment rig, I would name them as follows:

    • JNW-001-CAMA
    • JNW-001-CAMB
      or
    • JNW001CAMNW
    • JNW001CAMSW

      where the number indicates the rig/workstation number and the letters A or B indicate different views, or NW and SW indicate either the North West or South West viewing angle.

Length

Some systems have string length limitations:

  • Microsoft NetBIOS name length is limited to 15 characters. 3 Even though this is a legacy limitation, there are still some modern devices that adhere to the old standard.
  • The DNS system maxes out at 255 bytes per Fully Qualified Domain Name (FQDN) 4

Reserved Words & Characters

  • Avoid Special Characters
  • Some systems may have reserved words, avoid them as not to have a naming conflict or communications error.

Platform

If you would like to indicate a platform, initials are usually:

When devices are labeled methodically and sequenced, it is easy to identify the position in the lab, ie. left-to-right/top-to-bottom, and more importantly, it makes it easier to create automated scripts that loop sequentially through the systems, ie: 01, 02, 03. etc.

For example:

DAQ_rigs = {
      'sensors' : ['JNW-sen01', 'JNW-sen02', 'JNW-sen03']
    'cameras' : ['JNW-cam01', 'JNW-cam02', 'JNW-cam03']
           'daqs' : ['JNW-daq01', 'JNW-daq02', 'JNW-daq03']
  }

department_domain = "ology.uni.edu"

server_host = server01
storage_folder = "/raw_data_archive"
path  = server_host + department_domain + storage_folder

for device in (DAQ_rigs['daqs']):
    record_data(device=device, destination=path)

Note: As can easily be seen, without knowing much about the code, a programmer can immediately identify that there are similarly configured data acquisition rigs, each with a consistent pattern of a sensor, camera and data acquisition computer. A programmer can more easily identify if something is out of order if alignment is off in patterned and sequentially ordered systems, and thus more easily troubleshoot and problem-solve the code base.

Illustrating the Importance of Proper Naming

Naming devices according to a systematic and descriptive convention not only will make the coding aspect of automation easier, it will also make it easier to perform troubleshooting and analysis. Let’s illustrate this clearly. The following screenshot is from the back-end console of a research video recording system.

Take a look at the leftmost column. You would think that the numbers refer to the same camera device and that the second and third columns report that the connection was alive and well at the given times. However, this is not the case. Each of the line items in the leftmost column are distinct camera devices named with the model number of the camera. The company who deployed them, ironically had the word “intelligent” in their name, but there was nothing intelligent about this system. The first 4 items, 1365 referred to four different AXIS Communications model P1365 cameras, and so on, each in different research subject observation rooms. So tell me, how can you differentiate them? A proper naming convention would have been more descriptive and illustrative. A better approach would be to use the Device Type + Camera Model + Room Number, for example, CAM-P1365-RM201.

Let’s look at the next cameras in the list. What if I told you there were 4 observation rooms? How are there nine 5525 cameras? This means there were multiple cameras of the same type in each room. To account for this lets put in a directional indicator to indicate the viewing angle, for example, CAM-5525NW-RM201. Now that would have been a comprehensive naming convention, taking into account the location and other differentiators necessary to understand the output data.

Takeaway

Creating a naming convention and maintaining consistency will allow you more easily keep track and understand how the device relates to your research and simplify the automation of data collection, storage, and manipulation of the data devices in the research data pipeline using computer scripting languages such as Python, Matlab, BASH, BATCH, PowerShell, etc.

Footnotes

  1. Manes, Casper. (2014, September, 22). “The 24 funniest server naming conventions you’ve ever seen.” GFI, https://techtalk.gfi.com/the-24-funniest-server-naming-conventions-youve-ever-seen/
  2. Dumoulin, Pierre. (2006, November, 7). “Determining a good naming convention for your network”. TechRepublic, https://www.techrepublic.com/article/determining-a-good-naming-convention-for-your-network/
  3. Naming conventions in Active Directory for computers, domains, sites, and OUs. (2020). Retrieved from https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/naming-conventions-for-computer-domain-site-ou
  4. Naming conventions in Active Directory for computers, domains, sites, and OUs. (2020). Retrieved from https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/naming-conventions-for-computer-domain-site-ou

Leave a Reply