היום למדתי: סטיב ווזניאק לא משעמם
במהלך העבודה עם דוקר אי אפשר להתעלם משמות הקונטיינרים היצירתיים שלו - elegant_ride
, nervous_jang
, relaxed_vaughan
, interesting_wiles
ועוד עשרות צירופים בסגנון זה. לא נעים להודות שלא ייחסתי חשיבות גדולה לבחירת השמות כי הייתי עסוק תמיד בלגרום לאיזה תוכנית לעבוד.
היום למדתי שהיתה דווקא הרבה מחשבה מאחורי השמות. הרשימה שלמעלה כוללת התיחסות לסאלי רייד, האמריקאית הראשונה שהגיעה לחלל, דורותי ווהן שהיתה מתמטיקאית חלוצה בנאסא, יאנג יונג-סיל שהיה מהנדס בקוריאה במאה ה 15 ואנדרו ויילס, מתמטיקאי בריטי שהוכיח את השערת טניאמה-שימורה.
קוד הגרלת השמות של דוקר כולל את רשימת כל המדענים והחוקרים שהם יכולים להציע עם הסבר קצר על כל אחד ואתם יכולים גם למצוא אותו בקישור: https://github.com/moby/moby/blob/39f7b2b6d0156811d9683c6cb0743118ae516a11/pkg/namesgenerator/names-generator.go#L852-L863
ופונקציית ההגרלה עצמה אגב פשוטה להפליא וכוללת טיפול רק במקרה קצה אחד:
func GetRandomName(retry int) string {
begin:
name := left[rand.Intn(len(left))] + "_" + right[rand.Intn(len(right))] //nolint:gosec // G404: Use of weak random number generator (math/rand instead of crypto/rand)
if name == "boring_wozniak" /* Steve Wozniak is not boring */ {
goto begin
}
if retry > 0 {
name += strconv.Itoa(rand.Intn(10)) //nolint:gosec // G404: Use of weak random number generator (math/rand instead of crypto/rand)
}
return name
}