טריקל

מי שניסה להגדיר בלינוקס מנגנון Traffic shaping יודע שלא מדובר במשימה לרכי לבב.
trickle הוא פתרון פשוט, שעובד עבור ישומים שמשתמשים בחיבור TCP בלבד.
טריקל עובד במרחב המשתמש ולא צריך מודולים בקרנל או משהו מורכב אחר.

ככה זה נראה בלי טריקל:

$ wget http://yadan.net/bulk.dat
–22:01:39– http://yadan.net/bulk.dat
=> `bulk.dat'
Resolving yadan.net… 10.0.0.2
Connecting to yadan.net|10.0.0.2|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 20,480,000 (20M) [chemical/x-mopac-input]
14% [=============> ] 6,966,584 11.07M/s

וככה עם:

$ trickle -d 50k wget http://yadan.net/bulk.dat
trickle: Could not reach trickled, working independently: No such file or directory
–22:04:33– http://yadan.net/bulk.dat
=> `bulk.dat.2'
Resolving yadan.net… 10.0.0.2
Connecting to yadan.net|10.0.0.2|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 20,480,000 (20M) [chemical/x-mopac-input]

1% [> ] 278,528 52.48K/s ETA 06:15

הגשת פרוייקט על דיסק Knoppix

במסגרת קורס הפרולוג, נתבקשתי לכתוב פרוייקט.
בחרתי במנוע שחמט, וחיברתי לו ממשק משתמש שכתוב בג'אווה (Jin).
החיבור בין פרולוג לג'אווה מתבצע באמצעות API בשם JPL.
אחרי שסיימתי לפתח, גיליתי שלמרות שכל הרכיבים של הפרוייקט (SWI-Prolog, Java) כוללים גרסאת חלונות – העסק לא עובד בחלונות, עקב בעיה בJPL שגורמת למערכת להתקע בחלונות.
במקום לנסות לפתור את הבעיה החלטתי לעקוף אותה בכך שאני אגיש את הפרוייקט על לינוקס.
מכיוון שההתקנה של הפרוייקט לא טריויאלית – צריך להתקין ג'אווה, את הגרסא המתאימה של SWI-Prolog, ואולי גם לשנות מסלולי קבצים בקובץ ההרצה בהתאם, החלטתי להשתמש בגרסא מותאמת של Live CD, שמכילה התקנה מוכנה של כל העסק.
בדקתי את DSL, אבל הוא היה בסיסי מדי ולא היו בו מספיק כלים כדי שאני ארגיש איתו בנוח.
ניסתי את KNOPPIX, שבהחלט היה עשיר מספיק, ונראה מתאים מאוד.
לKNOPPIX יש הוראות מפורטות להכנה של דיסק מותאם על בסיס הקיים (Remastering).
בגדול, התהליך הוא כזה:
מתאחלים את הCD, מעתיקים את התוכן שלו לכונן הקשיח, עושים את השינויים הדרושים, יוצרים ISO חדש, וצורבים אותו.
כמובן שזה יותר מורכב מזה, אבל ההוראות די טובות.
אפשר לקצר תהליכים על ידי שימוש במכונה וירטואלית (VMware, QEmu, Xen) שחוסכת איתחולים.
נתקלתי בבעיות מוזרות בבמהלך איתחול מהISO בהתחלה, לא ברור לי מה פתר אותן, אבל אלו השינויים שעשיתי:
1. התחלתי את התהליך כולו מחדש, הפעם על מערכת קבצים מסוג EXT3 (בהתחלה השתמשתי בReiserFS).
2. נתתי למכונה הווירטואלית ששימשה ליצירת הISO יותר זכרון.

לא ברור לי למה השינויים האלו פתרו את הבעיה, אבל עם מה שעובד לא מתווכחים.

פיתוח דרייברים ללינוקס בחינם

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

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

האתר שנדם

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

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

mtr

מיקרוב הים – Flow

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

פודקאסטים – הדרך היעילה

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

rsync -r –progress –copy-links –delete podcasts /media/dok

podcasts היא הספריה שמכילה את הפוקסטים, ו/media/dok היא הספריה של הדיסק-על-קי.

hpodder עצמו הוא גם די פשוט לשימוש:

hpodder add http://blah/podcast.xml

מוסיף פודקסט חדש

hpodder

בלי שום פקודה, מוריד את מה שחדש

hpodder lscommands

מציג את רשימת הפקודות המלאה

בפוסט הבא אני אפרסם רשימה קצרה של כמה פודקסטים מומלצים.

לינוקס: מודולים שאינם תחת רשיון GPL יפסיקו לעבוד בינואר 2008

גרג קרואה, אחת מהמפתחים הבולטים של הקרנל של לינוקס הודיע בבלוג שלו שהחל מינואר 2008 מודולים שאינם תחת רשיון GPL יפסיקו לעבוד.
הסיבה היא שמפתחי קרנל רבים חושבים שהמודולים האלו לא חוקיים ועוברים על תנאי הGPL.
יהיה מעניין.

עדכון, דרך סלאשדוט:
לינוס לא אהב את הרעיון והנושא נגנז.

lkml, אין רגע דל.

טיפים ללינוקס

כמה טיפים קטנים ללינוקס.

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

netstat -antp | grep LISTEN | grep 80

רצוי להריץ כroot כדי לקבל מידע מלא על כל התהליכים (אחרת יהיו חסרים השמות של תהליכים שלא הורצו על ידי המשתמש הנוכחי).

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

lsof | grep cdrom

הדוגמא הזו תחזיר את כל הקבצים שיש להם cdrom בשם ושפתוחים כרגע.

כדי לדבג בעיות http, אפשר להשתמש בשרות של web-sniffer שמציג בפירוט את הבקשה והתשובה שחוזרת משרת http שתבחרו.

עורך הקס

אני מכניס לFireStats תמיכה בזיהוי מדינה לפי כתובת IP, ומשיקולים שונים אני לא אשתמש בבסיס הנתונים כדי לאכסן את המידע על תחומי הIP, אלא בקובץ בינארי.
אז כתבתי תוכנית שממירה את קובץ הCSV שמגיע חינם מפה לקובץ בינארי דחוס ורב תחכומים, רק מה, כצפוי בהתעסקות עם דברים כאלו לא הכל עובד חלק.
בדיבוגי, הזדקקתי לHex editor חזק ונוח.
חיפוש קצר בנבכי apt-get הניב את KHexEdit, עורך ההקס של KDE
KHexEdit הוא סבבה לגמרי, עושה את העבודה טוב, ומציג את הנתונים בצורה ברורה מאוד.
הגדרתי את המקש F5 לטעון מחדש את הקובץ, וככה יכלתי לראות איך הקובץ נוצר בזמן שאני מדבג צעד צעד בתוכנית שיוצרת אותו.
מומלץ אם אתם צריכים תצוגה נוחה של קובץ בינארי.

KHexEdit

khexedit

דביאן או אובנטו?

מוקדש לאיילת קונטרול דל.

איילת קונטרול דל שאלה:

עם מה עדיף להתחיל?
דביאן או אובונטו?

עמרי=MC בריבוע ענה:

שאלון אמריקאי:

את גיקית?
1. כן.
2. לא.
3. למי אתה קורא ג'וקית?

קראת פעם תיעוד?
1. בטח.
2. לפעמים.
3. לעולם לא! אולי רק אם יאיימו שיירו בי ובבני משפחתי.

איך תעדיפי לעשות פינג על אתר:
1. משורת הפקודה, יש דרך אחרת?
2. דרך איזה GUI
3. פינג על אתר? הם משחקים גם סנוקר?

קימפלת פעם תוכנה?
1. בטח, אני מריצה את המוח על קרנל BR-5.9 עם תמיכה בריבוי אונות.
2. לא עושה דברים כאלו, זה לא מנומס.
3. לא, אבל שמעתי על זה, זה קשור למיקרוסופט, לא?

סכמי את הנקודות, ותדעי את האמת (הזכה והצרופה):

3-6
דביאן.
7-9: אובנטו.
10-12: חלונות.