RFC: Identicons for servers in inventory

Hey, I had an idea for years to have pictures for easier identification of servers in the inventory list. Had some ideas how to generate images from MAC address but recently stumbled upon identicons and I think it’s actually solved problem and we can just start using that.

An Identicon is a visual representation of a hash value, usually of an IP address (MAC address in our case), that serves to identify a user of a computer system as a form of avatar while protecting the users’ privacy (a server in an inventory in our case).

While there are some Ruby implementations which generate PNG images, I think we can easily generate this on client - input is MAC address, output is an image tag. We can put the small icon on host list and one bigger on host detail page.

Do you like it? Anyone with JavaScript skills want to send a patch? :slight_smile:

Why to implement it on client?
That is, the mac address is not something that is changing for a server that much, so generating it once and loading it as a “normal” .PNG file should be enough, no?

BTW, Ruby also have implementation for it: https://github.com/victorgama/identicon

Sure, it’s one way or another. I think that generating those PNGs is little bit too much noise, why to transfer several kilobytes per each individual host entry (users have up to 100k hosts per instance) when it can be as easy as one string. Also a rubygem will requre two dependencies but the Javascript dependency only has - hard to believe - zero deps :smiley:

Looks cool, I understand the concept but where would you put the identicon in Foreman’s UI? Host list?

Yeah I was thinking two places:

  1. Host detail page - bigger version. So your brain is “trained” and if you work with those servers you learn it.
  2. Host list - an optional column enabled by default, first column will I think look the best.

I must say I am skeptical, as I think it will add visual clutter without
a lot of benefit. I imagine if i use a handful of servers it may be
useful, but if i have more than a couple dozen the icons will all blur
together in my head. That said, I’m willing to keep an open mind about
it :slight_smile:

Justin

I think this feature would be useful to some and not others, so I’d opt for a setting to enable/disable it.

2 Likes

I really don’t see how in these two cases the Identicon would help me identify the server faster/better than the name. I get the cool factor though :slightly_smiling_face:

I think visuals like this are a better fit when there are less things to distinguish. For example, even for hostgroup, an identicon can be a “hostgroup seal” that is really distinguishable. If there are 1000s of hosts (or even 100s) I’m unlikely to recognize the identicon. Whereas for host groups there will not be as many and it’s a immediate visual clue, like the OS logo.

2 Likes

It is meant to be complementary visual information, it won’t change when server is reprovisioned while name can change. I was hoping to get some feedback from users dealing with thousands of servers, I have no idea how much useful this might be.

I’m very much focussed on hostnames and tend to organize by that anyway. I consider a servers lifecycle tied to DNS, not the mac address which IMHO isn’t relevant in a world with mostly VMs. When you recreate the VM, you typically get a new mac anyway.

Not sure this adds a lot because usually you don’t look at the host list anymore when it gets to the 100s of servers. You use search instead.

@TimoGoebel might have more insight.

1 Like

I vote putting in selectable columns and then the user coul add this :slight_smile:

– bk

Good point with the mac address, the image could be generated also from hostname.

That’s true for VMs. When it comes to actual bare metal hardware, I could see a value in being able to distinguish them by the mac address as it won’t change when you reuse your hardware (if you do that).

As I’ve said before, searching is key when you have a couple of thousand hosts. So I couldn’t agree more.

I like the idea and technology, but I’m not sure this adds a real benefit. I do think it could be helpful for users, so e.g. in an audit log it’s easier to distinguish who changes what.

The value added of this would be, if you had a stream of items, and you would like to visually group the items having something in common (imagine a chat system, where every user has unique Identicon). I don’t see we have actually this use-case in Foreman, and might be just confusing.

Therefore :-1: unless some argument/situation is described where this would actually help.

I think it actually might make more sense for smaller deployments of 10s of hosts when users can still use visual search by name. Or on other pages where host is related as Timo mentioned.

Anyway, the feedback shows this is not a good core candidate. Maybe a good winter evening plugin project. Thanks for all the comments.