דואר זבל

בעקבות הפוסט הזה בזגוגיות, נזכרתי במשהו.
היום בבוקר, באופן לא מפתיע, היה לי דואר זבל בתיבת הדואר האמיתית, זו שבכניסה לבנין.
אם חושבים על זה, זה ממש דואר זבל, כי הוא באמת הולך ישר לזבל (בגלל זה יש פח זבל ממש ליד התיבות דואר, לא?).
בכל אופן, חשבתי לעצמי, שאם אני, וכל אחד שמקבל כזה דואר, יתקשר לשולח הדואר, זה יהיה מעניין.
שיחה לדוגמא:
א: שלום, מדבר עמרי.
ב: איזה עמרי?
א: עמרי. רציתי להודיע לך שקיבלתי את הדואר!
ב: איזה דואר?
א: הגעתי לפיצה חצילון?
ב: כן.
א: יופי. אז הדואר שלך הגיע.
ב: לא זוכר ששלחתי, מי אמרת שאתה?
א: עמרי. שלחת לי דואר.
ב: מה כתוב שם?
א: כתוב שיש לכם פיצה עם חצילים.
ב: אהההה, זה! זה לא דואר אישי.. רוצה להזמין?
א: לא, אני שונא חצילים.
ב: אז מה אתה רוצה?
א: בדיוק מה ששאלתי את עצמי היום בבוקר, כשקיבלתי את הזבל שלך.
< ניתוק>.

אם מספיק אנשים יעשו את זה, אולי משהו יקרה.
יערות הגשם עוד יודו לכם. לעבודה.

צב ריגול

הודעה בלמה-רשת:
מדען רוסי פיתח צב ריגול בשלט רחוק.
הצב, שמיועד בעיקר לסוכני ריגול בדימוס שהגיעו לגיל הזהב, מאפשר לסוכנים להתחרות אחד בשני במגוון משחקי ריגול, כמו:
צב חקירה : משחק מרתק שבו מנצח מי שהצב שלו הוציא ראשון מהצב השני את הקוד לטילים הגרעיניים.
אינתיפאדת צבים: משחק ראליסטי שבו צד אחד שולח צבים מתאבדים, והצב של הצד המתחרה צריך לפוצץ אותם באמצעות ניחוש של קוד האיתחול של הפצצה, ושליחתו באמצעות חלזונות חבלה אל הצבים המתאבדים.
וכמובן, מרוץ צביחים: לכל סוכן יש בסיס, צוות של ארבעה צבים, וחבילת דינמיטים בוערת. המטרה היא להעביר את הדינמיטים אל הבסיס של האוייב, בלי לאבד אף צב. הצבים מעבירים בינהם את מקלות הדינמיט, בסגנון של מרוץ שליחים.

בתמונה, צב ריגול במרוץ צביחים:

צביח בתמונה אופיינית

בקבוקומט.

אין אדם שלא מכיר את התסכול של עמידה ליד הקולר, בהמתנה למילוי הבקבוק.
שמועות אומרות שיש מי שהתאבד מייד לאחר שמילא מים בקולר, דבר מטריד במיוחד.
אז הנה הפתרון, ותזכרו שראיתם את זה פה קודם!

bakbukomat

וסלטה לאחור

הסיבה שהקטנתי את מחיצת השורש היא כדי לפנות מקום ולהעביר אותו לשליטה של LVM.
LVM זה קיצור של Logical volume managment, וזה מאפשר שינוי דינמי של מחיצות (בלי איתחול), וכן יצירה של מחיצות לוגיות שפרושות על פני כמה דיסקים שרוצים.
נשמע טוב, מחיצה אחת גדולה של 350GB, שתכיל את כל הסרטים והמוסיקה שלי.
אז עשיתי את זה, הקטנתי, הגדלתי, פירמטתי, יצרתי, הזזתי, העתקתי ואז הכל עבד.
היתה לי מחיצת ענק של 350GB, שנפרשה על פני שני הדיסקים.
ואז חשבתי, מה אם אחד מהדיסקים ימות?
מסתבר שהתוצאה של דבר כזה, היא שכל המידע במחיצה, גם בחלקים שעל הדיסק שלא ניזוק, ילך קפוט.
הסיבה לזה היא שחתיכות ממערכת הקבצים יעלמו, וגם, אופציונלית, חתיכות מקבצים שעל הדיסק שלא ניזוק. כנראה אפשר לשחזר את זה, אבל ברור שהנזק יהיה גדול יותר מאשר אם המחיצה לא תשב על שני דיסקים.
אז החלטתי לבצע סלטה כמעט מלאה לאחור :
העתקתי, הזזתי, יצרתי, פירמטתי, הגדלתי והקטנתי ועכשיו המצב די דומה למה שהיה לפני כל הסיפור, כל מחיצה על דיסק בודד. אבל יש לי את הגמישות לשחק איתן כן הן תחת LVM.
אז מה יצא מכל הסיפור?
עכשיו אני מכיר את LVM יותר טוב, ובנוסף בזבזתי די הרבה זמן.
בהזדמנות אני אכתוב הסבר על איך מקטינים מחיצות על דיסק קיים בלינוקס.

והוא חזר!

קהל נכבד,
המשימה הוכתרה בהצלחה.
פיירפנג הקטין את מחיצת השורש, ולא ל30 ג'יגה, אלא ל20! (אופס).


Filesystem Size Used Avail Use% Mounted on
/dev/hde2 20G 6.0G 15G 30% /

מחר הסבר על למה זה היה טוב, ואיך זה הלך.

מעשה לולינות אימתני

קהל נכבד, קהל נכבד.
השרת שלפניכם, יבצע מהלך מסוכן מאוד, מהלך בעל השלכות פוטנציאליות קטסטרופליות.
לא רבים השרתים שיסכימו לבצע מהלך שכזה, מהלך מסוכן שעליו לא חלמתם גם בחלומותיכם האפלים ביותר!
פיירפנג האמיץ, הולך להקטין את מחיצת השורש שלו, מ180 ג'יגה בייט, טבין ותקילין (או כ200 ג'יגה בית, בלשון העם), לסך של 30 גי'גה בייט בלבד!
כל זאת, אם ירצה אלוהי השרתים, תוך ביעוט (boot) אחד בלבד.
אפילו השרתים של גוגל לא מעיזים לבצע דבר כזה, ולהם יש אחים רבים רבים שיתפסו את מקומם בלי להחסיר פעימה אם משהו ישתבש.
שימו לב, שימו לב, פיירפנג מתכונן. זה המצב לפני התרגיל המסוכן.


# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hde2 186G 6.0G 180G 4% /

את המצב אחרי תדעו אם פיירפנג יצליח לבצע את המהלך.
החזיקו אצבעות usb, הנה זה מתחיל!

פרולוג וצבים אחרים.

אני תלמיד נצחי של האוניברסיטה הפתוחה, אני לומד שם מתחילת שנת 2000, לפעמים יותר, לפעמים פחות.
לפני שני סימסטרים עברתי את קורס החובה האחרון במתמטיקה, ומאז התחלתי לשים גז עם קורסים של מדעי המחשב.
בסימסטר קיץ לקחתי בסיסי נתונים, שהיה משעמם למדי, ואלגוריתמיקה – שהיה אחלה קורס.
בסימסטר שנפתח השבוע אני לוקח את את אלגוריתמים, ואת פרולוג – היבטים לבינה מלאכותית.
בינתיים היה לי מפגש אחד של פרולוג, ומחר יהיה לי המפגש הראשון של אלגוריתמים.
פרולוג זו שפה מעניינת, תכנות בלוגיקה.
יש עובדות, יש חוקים, יש אטומים ויש משתנים.
עובדות ניראות ככה:


parent(popo, koko).
parent(mima, koko).
parent(baba,mima).
parent(bebe,mima).
female(bebe).
female(mima).
male(koko).
male(popo).
male(baba).

אחרי שהם הוגדרו, אפשר לשאול דברים כמו:


?- female(koko)
no

?- male(koko).
yes

parent(X,koko).
X = popo ? ;
X = mima ?
yes

חוקים נראים ככה:


mother(Mother,Child) :-
female(Mother),
parent(Mother,Child).

father(Father,Child) :-
male(Father),
parent(Father,Child).

grandfather(Grandfather,Child) :-
make(Grandfather),
parent(Grandfather,X),
parent(X,Child).

בעצם מה שכתוב בחוק הראשון הוא שאמא היא אמא אם היא נקבה ואם היא ההורה של הילד, נשמע הגיוני, לא?
חלקים שמופרדים בפסיק צריכים שניהם להתקיים. (פסיק = וגם).
מילים שמתחילים באות גדולה הם משתנים.

אחרי שהחוקים האלו הוגדרו אפשר לשאול דברים כמו:


?- father(X,koko).
X = popo

?- mother(mima,X).
X = koko

ריקורסיה משמשת תפקיד מאוד מרכזי בפרולוג.
הנה הגדרה של אב קדמון:


predecessor(X,Y) :-
parent(X,Y).

predecessor(X,Y) :-
parent(Z,Y),
predecessor(X,Z).

הקורא המשקיע ינסה להבין מה קורה פה.
הנה דוגמאות לשאלות כאלו:

?- predecessor(baba,koko).
true

?- predecessor(baba,X).
X = mima
X = koko

בקיצור, פרולוג זו שפה לוגית, עתיקת יומין (1972), ממש חוכמת קדמונים.
לדעתי הקורס הזה יהיה מעניין, אני אעדכן בהמשך.

פיירפנג, מי זה פיירפנג?

פיירפנג הוא השרת שמריץ את הבלוג הזה.
התוכנית המקורית בשבילו היתה שהוא יהיה מחשב טלויזיה, כלומר, מחשב שיתחבא ליד הטלויזיה, ויאפשר לי לראות סרטים וסדרות שאני מוריד מהאינטרנט במסך הגדול, בנוחות של הסלון.
הוא מריץ מערכת דביאן (לינוקס), שתופסת סך הכל 1.1 ג'יגה, אם אני לא מתייחס לנתונים שמאוכסנים שם (סרטים, מוסיקה וכו').
מהר מאוד החלטתי להשתמש במחשב הזה בתור שרת, לא כי הוא כזה חזק (הוא לא, סמפרון 2000 בערך, די עגלה), אלא כי קל לי לשמור אותו פועל בלי הפסקה.
המחשב הראשי משמש אותי גם למשחקים (למרות שפחות לאחרונה), ומשחקים מחייבים בדרך כלל שאני אבצע ביעוט (Reboot) ואפעיל את החלונות. מכיון שכך, המחשב הראשי לא מתאים ממש להיות שרת.
אז הפכתי את פיירפנג לשרת, ולאט לאט האצלתי עליו יותר ויותר סמכויות:
שרת אינטרנט שמריץ את הבלוג הזה, ומאפשר גישה לסרטים ולמוסיקה שלי, לי ולכמה נבחרי/ות גורל בעלי/ות סיסמא.
בנוסף הפכתי אותו לשרת דואר לכל דבר, ועכשיו הדואר שלי מאוכסן אצלי, ואף אחד לא תוקע לי בו פרסומות כשאני קורא אותו.
באופן טבעי, צריך הרבה מקום כדי לשמור את הסרטים, אז, נכון לכרגע, יש בפיירפנג שני דיסקים של 200 ג'יגה, אחד מהם בן שבוע בערך.
נוח מאוד שמחשב כזה ישמש כשרת קבצים, כי הוא זמין תמיד, ויש לו הרבה מקום, אז הגדרתי לו גם סמבה וNFS כדי שהמחשב השני יוכל לגשת לקבצים בכל מצב (גם כשהוא בחלונות).
בנוסף, הוא משמש כשרת הCVS שלי, ככה אני יכול לגשת לקוד שלי מכל מקום, מה שיכול להיות נוח לפעמים).
פעם בלילה יש גיבוי מבוסס rsync, שמגבה למעשה את כל המערכת למחיצה בדיסק השני (ההנחה שלי היא שלא סביר ששני הדיסקים יתקלקלו בו זמנית).
כמובן, אני רואה עליו סרטים וסדרות, באמצעות תוכנה חביבה בשם פריבו (עוד על פריבו פה)
זה פיירפנג, שרת השעשועים שלי.