ארכיון הנושא 'דברים בלינוקס עובדים'

התקנת לינוקס על דיסק-און-קי : אתגר לחכמים

Auto Date 27 באוקטובר, 2009

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

לאחרונה המחשב שלי חווה כמה בעיות חדשות: הוא ננעל פעם בכמה זמן (לאחר שאני חוזר ממצב suspend to ram). אני מפעיל יישומים, ואני מקבל segfault. בנוסף, אני חווה load average מאוד גבוה, המחשב חם ואני מרגיש אותו רועד (כי המאורר עובד). להזכירכם, זהו מחשב נייד Lenovo 3000 N100.

כדי למצוא את בעיית הקריסה הפעלתי לוגים במסוף מספר 12 באופן קבוע. גיליתי שפדורה משתמשים ב־rsyslog, ובדיעבד מסתבר שדביאן עוברים אליו. פצצות. כדי להוסיף לוגים למסוף מספר 12, הוספתי שם:

# Log all kernel messages to the console.

# Logging much else clutters up the screen.

kern.*   /dev/tty12

עכשיו, אני לא יכול להפתוח process חדש כשהמחשב במצב “תקול”, ולכן אני צריך שיהיה לי מסוף root באופן קבוע, נניח ב־tty11. בעקרון, הייתי צריך לשים את זה ב־inittab. אבל פדורה כמו אובונטו (ובקרוב גם דביאן) משתמשים ב־upstart. לאחר מחקר קצר, גיליתי שאני צריך ליצור קובץ מסויים ובו להשתמש ב־openvt (תקראו במדריך שלו, תבינו מה זה עושה) כדי לפתוח bash קבוע במסוף 11. הקובץ הועתק במקור מקובץ דומה באותה ספרייה ובגלל זה ההערות.

[elcuco@pinky ~/src/jc-kit] cat  /etc/event.d/tty11

# tty6 - getty
#
# This service maintains a getty on tty6 from the point the system is
# started until it is shut down again.

start on stopped rc2

start on stopped rc3

start on stopped rc4

start on started prefdm

stop on runlevel 0

stop on runlevel 1

stop on runlevel 6

respawn

#exec /sbin/mingetty tty6

exec openvt -c 11 -l -e /bin/bash

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

החוקים הם:

  1. אני צריך מערכת אמיתית. כי אני רוצה לעשות suspend to ram או suspend to disk.  מערכת livecd לא מספיק טובה, מה גם שהן תמיד יש להם הנחות יסוד שלא מתאימות לי.
  2. אני רוצה מהירות, לפחות באופן יחסי.
  3. אני שמוק, ויש לי זכרון של נעל. אני חייב שאיך שהוא, ההתקנה תהיה במחשב כל הזמן, בלי לשחק עם חומרה (לכן usb-disk חיצוני כמו שלולי עשה לא בא בחשבון).
  4. אני לא יכול לשנות את מבנה המחיצות של המחשב שלי (אין מקום פנוי, lvm של פדורה, XP ואני לא רוצה להקריב לגמרי את המחשב שלי לטובת התקנה מאפס).
  5. אני צריך ללמוד מזה משהו.

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

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

המצב של QHOCR

Auto Date 4 בספטמבר, 2009

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

קובי שיחרר לפני כארבע שנים את גרסה 0.8 של libhocr (אפריל 2006, גרסה ראשונה לפני כ־4 שנים), עליה אני ביניתי את הגרסה העדכנית ביותר של QHOCR. זאת הגרסה שזמינה להורדה באתר.

לפני כשנה (מרץ 2008), קובי שיחרר גרסה חדשה לגמרי של libhcor - גרסה 0.10. אני התחלתי להמיר את הקוד שלי שיעבוד מול הגרסה החדשה ודי מהר נתקלתי בבעיות: הקוד של קובי זולג זכרון בצורה משמעותית. ביישום שלו אין בעיות, הוא כותב ממשק מבוסס שורת פקודה שמבצע את ה-OCR ואז היישום נסגר, ומערכת ההפעלה משחררת את הזכרון. לא קריטי. ביישום הגרפי שלי, מתבצע ה־OCR ואז משתמש משאיר את התוכנה פתוחה, ואז מבצע עוד OCR … והתוכנה תופסת את כל הזכרון הפיזי של המחשב.

כדי לפתור את הבעייה יש כמה אפשרויות: או שאני מתקן את הקוד של libhocr-0.10 ואז אני לא מתעסק בממשק של QHOCR, או שאני עוקף את הבעייה. בתור פיתרון ביניים אני מנסה קצת משניהם (אבל מושך יותר לכיוון של מעקף…). שלחתי לקובי כמה תיקונים שמתקנים בעיות של זליגת זכרון, וכדי לעקוף את הבעייה אני שואף לעשות את אותו טריק שיש ב־Google Chrome. אני רוצה לעשות את ה־OCR בתהליך (process) שונה, ואז באמצעות IPC להעביר את הנתונים של ה־gui process. ככה התהליכים יכולים לזלוג כמה שהם רוצים וזה לא אמור להשפיע על התוכנה עצמה“.

אני צריך לפתור שתי בעיות כדי להגיע לתוכנה עובדת:

  1. אני צריך לכתוב יישום שורת פקודה מלא, שיודע לעשות OCR. הבעייה שאני נתקל פה היא שאני צריך ספרייה טובה לפיענוח של ארגטמנטים של שורת פקודה. פתחתי שאלה ב-StackOverflow וקיבלתי תשובות טובות. כעת רק צריך ליישום.
  2. הבעייה השנייה, היא איך לממש את ה־IPC בין שני התהליכים. אני עדיין לא משוכנע מה הדרך הכי טובה.
    1. קריאה של stdout: השיטה היוניקסים הוותיקה תעבוד די טוב פה, אבל בחיאתלא עברו 30-40? אולי אפשר יותר טוב?
    2. שימוש ב־shared memory. בשיטה זו, ה־OCR process יכתוב ישירות במרחב הזיכרון של ה־GUI process. יש מחלקות מסודרות לזה ב־Qt4, אבל זה נראה לי בעייתי (התהליך הראשי קורס, הזכרון לא יהיה ניתו לשיחרר כלל).
    3. אפשרות אחרת, כגון tcp/ip פנימי, או אחת האפשרויות האחרות שיש ב־Qt4.

אני לא אשתמש ב־D-Bus, כי זאת תלות שלא קיימת ב־win32 ואם אני מבין נכון גם ב־Mac.

למעשה זה אומר שנכון לעכשיו אין גרסה שמישה של QHOCR. נקווה שזה ישתנה בעתיד אם “מישהו” יעזור. נראה שיש המון ביקוש ליישום כזה, לא רק על לינוקס, אלא גםעל חלונות.

המשאב הכי יקר במחשב - מסך

Auto Date 10 ביולי, 2009

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

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

אני אשים פה שתי תמונות של תוכנות ואני אסביר אסביר מה עשיתי בהן.

פיירפוקס מוקטן חסכוני במקום

 בגדול, זה פיירפוקס תקני ופשוט. שמתי בו שלוש הרחבות:

  1. Fission - זה נותן פס התקדמות בסרגל הכתובות. הרעיון לקוח מסאפארי של אפל.
  2. Hide Menubar - מסתיר את התפריט של פיירפוקס. כשאתם לוחצים על alt התפריט מוצג לכמה שניות. הרעיון לקוח מ־IE7, מאז שראיתי את הדפדפן הזה פעם ראשונה אני מנסה ליישם את הרעיון בכל מקום שאפשר: konsole, konqueror. חוסך המון מקום ביישומים האלו.
  3. Speed Dial - (לא מוצג בתמונה), כאשר פותחים לשונית (או חלון חדש) יש טבלה ובה יש תמונות של כמה אתרים, אתם לוחצים על התמונה ועוברים לאתר. זה מן תחליף כזה ל”סימניות”. מצאתי שאבא שלי מסתדר עם זה יותר מאשר סימניות או כתיבת כתובות ידנית (”בוא תכניס אותי לעיתון”). הרעיון לקוח מאופרה במקור. כיום זה מיושם גם בסאפארי וכרום.

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

       dolphin-minimal.png

התוכנה השנייה שאני אסביר אליה היא דולפין. תוכנה פשוטה וחמודה שאצלי החליפה את mc, וזה בהחלט כבוד. כי mc החליף את WindowsCommander/TotalCommander (דרך אגב, התרגום העברי שלה גם שלי), שהחליפה את NortonCommander מימי ה־DOS. תוכנה פשוטה, אבל רק ממבט ראשון. השינויים שעשיתי הבה הם:

  1. נעלתי את סרגל הכלים (כפתור ימני, Lock toolbars). כעת הכפתר הכי שמאלי מוצמד לצד החלון מבחינתי זה אומר לזרוק את העכבר שמאלה עד הסוף. הכי חשוב מבחינתי, זה חוסך לי 10 פיקסלים של הידית הזזה (המכוערת לפי דעתי) של הזזת סרגל הכלים. גם ככה אני לא משתמש בזה.
  2. שמתי את התיאורים לצד האייקונים. ב־KDE4 החליטו לעשות כמו GNome ולהציג את הטקסט של הכפתורים מתחת לסמלים by default  (התכונה הזאת קיימת מאז KDE2 אך לא הופעלה עד שהמשתמש ביקש). המטרה היא פשוטה: לתת למשתמש איזור נגיעה יותר גדול ולהגדיל את השימושיות. ב־KUbuntu 8.10 החליטו לשנות את המיקום של הטקסט ליד הכפתורים, כדי לחסוף מקום… אנשים התלוננו שזה תופס מקום…
    אני דווקא התלהבתי מהרעיון. יש לי מספיק מקום אופקי (מסך רחב, כזה בזבוז) ואני רוצה מטרות גדולות יותר לזרוק אליהן את העכבר.
    הרעיון הזה ייושם לראשונה ב־Windows 98, או IE4, לא זוכר במדוייק. למרות זאת - היישום של Microsoft הוא יותר חכם. הם הציגו טקסטים רק עבור פעולות נבחרות (רק עבור “אחורה” ולא “קדימה”).

יש עוד מלא דברים שניתן לשנות ב־KDE4 כדי לשפר את השימוש במחשב, ורובם הם גרפים. למשל, ניתן לשנות את החלפת החלונות ב־Cover switch (המאאגניב הזה שיש ב־ITunes) או מה שמצאתי לאחרונה - להשתמש ב־Present Windows שזה בעצם מין… expose כזה… זה מציג את כל החלונות זה לצד זה. גם זה לקוח מתוך MacOsX.

פדורה 11

Auto Date 3 ביולי, 2009

אני אתחיל ואגיד שכל הפצות הלינוקס דפוקות. במיוחד אם אתה משתמש בכרטיס מסך של אינטל, כרגע יש באג בשילוב של Xorg/Linux 2.6.29 שגורם ל־X להיות איטי. אבל ממש איטי. הפתרון הוא יחסית פשוט:


[elcuco@pinky ~]$ cat /etc/X11/xorg.conf
# http://en.gentoo-wiki.com/wiki/Intel_GMA
Section “Device”
Identifier “video”
Driver “intel”
# option 1
Option “AccelMethod” “UXA”
Option “Tiling” “false”
# option 2
# Option “AccelMethod” “EXA”
# Option “MigrationHeuristic” “greedy”
EndSection

התקנתי פדורה 11, חזרתי להפצת 64 ביט, אחרי כשנה וקצת עם מנדריבה 2008.1. בשביל הספורטיביות פרמטתי את הדיסק ב־ext4. רק בסוף העבודה התקנתי שכבת תאימות עבור 32 ביט בגלל wine ו־skype. הינה בכמה בעיות שנתקלתי בהן במהלך העבודה עם ההפצה:

  1. אני שם את המחשב במצב המתנה (sleep to ram) והוא לא חוזר. יש תיעוד בוויקי של אובונטו שמסביר איך לטפל בבעייה במחשב שלי.
  2. אני שם את המחשב במצב שינה, והוא ישר חוזר להפצה ולא נותן לי ב־grub אפשרות לבחור מערכת הפעלה כדי להיכנס לחלונות. הפתרון גם ידוע, הפעם תיקנתי את התסריט ‏‎ /usr/lib64/pm-utils/sleep.d/01grub‏‏ . פשוט הוספתי exit בתחילת התסריט והחיים טובים.
  3. כמו שכתבתי בהתחלה, יש בעיות ידועות עם כרטיסי מסך של אינטל. הפתרון נלקח מהוויקי של gentoo.
  4. הגרסה החדשה של synaptics מתנהגת ממש מוזר. לחיצה על המשטח לא יוצרת לחיצה, והאיזורים החמים בצד ימין לא מפעילים את ה”גלגלת”. במקום צריך ללחוץ על הכפתורים האמיתיים, וגלילה נעשים על גרירה של שני כפתורים. הפתרון מוסבר כאן, אבל לא רלוונטי עבור KDE4. יש הסברים בתגובות שגרמו לכך שכתבתי תסריט שמפעיל את הפקודה: synclient VertEdgeScroll=1 TapButton1=1
  5. קונקי זה דבר חמוד, אבל לא יודע להתמודד עם העולם. חייבים פיירפוקס, לפחות עד שיתחילו להטמיע את WebKit ב־KDE ויכתבו דפדפן שמבוסס עליו. עוד פרטים כאן.
  6. כנ”ל לגבי KOffice (לצערי Fedora מגיעה עם הגרסה של KDE 3). חייבים OpenOffice.

בינתיים די אני מרוצה מהשידרוג. הפעלה של המחשב היא די מהירה: כ־25 שניות מרגע שלחצתי על enter ב־grub המחשב מתחיל להפעיל את KDE (סידרתי שיכנס ללא ססמה וזה חוסך עוד כמה שניות), בין 55 שניות עד 1:05 דקות המחשב מוכן לעבודה (תלוי מה השארתי פתוח בשולחן עבודה). חזרה ממצב המתנה (suspend to ram) לוקח בשנייה או שתיים, המחשב בשוק לשנייה, ואחרי זה שתי שניות התאוששות, במנדריבה 2008.1 זה היה לוקח לי 7 שניות.כרטיס הרשת האלחוטי עובד יפה (מי זוכר מה לפני iwl3945? ומי זוכר את הגרסה הראשונה של הדרייבר הזה שלא הפעילה את הלד? השתמשתי בגרסה ההיא שנה שלמה).

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

מצד שני, היציבות של KDE4 זה לא מה שהיה פעם. בעבודה עם קובונטו 9.04 ו־KDE 4.2 מ־ppa אני צריך להפעיל את Plasma פעם ב־6 שעות כי הוא פשוט … “ננעל”. הפתרון שמצאתי הוא לפתוח konsole ושם לכתוב kquitapp plasma; plasma, לחכות כמה שניות שפלסמה תעלה ורק אז לסגור את המסוף. בינתיים פלסמה פה בפדוקה לא עושה בעיות, אבל זה מרגיש… פשוט overkill… כמו כן, kontact קורס על ימין ועל שמאל וכבר מצאתי אותו טוחן את הדיסק שלי (קורא משהו בכמויות עד ש־X קורס, לא מוסבר).

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

חיבור לאינטרנט באמצעות Nokia E71/USB

Auto Date 30 במאי, 2009

כל מי שקונה מכשיר חדש בשלושת הרשתות אנוס ומחוייב לרכוש מנוי לרשת דור 3 של הרשתות הסלולריות. רובינו לא עושים עם זה כלום, אבל זה יכול לשמש אותנו במצבים מסויימים. דוגמה שאני יכול לחשוב עליה היא: אתם מרצים במקום חדש ובמשום מה אתם חייבים במצגת להציג משהו קטן באינטרנט. אתם לא סומכים על הרשת האלחוטית במקום (ותמיד יש ססמאות מסובכות! וזה בדרך כלל לא עובד). תמיד אפשר להשתמש ברשת של המכשיר הסלולרי, הרי אתם משלמים עליו. תשתמשו בזה.
להלן מדריך קצר לחיבור לאינטרנט באמצעות Nokia E71, חיבור USB על רשת פלאפון. אותה תצורה בדיוק עובדת על מכשיר E-65 ברשת סלקום, לא ביצעתי שום שינוי למעט החלפה של מכשיר הטלפון.

  • יש לחבר את הטלפון למחשב
  • במכשיר הסלולרי יש לוודא ש־PC Suite נבחר
  • לאחר החיבור תראו בלוגים של המחשב תראו משהו כזה:

[root@pinky ~]# cat /var/log/messages | grep ACM
May 30 12:43:20 pinky kernel: cdc_acm 4-1:1.10: ttyACM0: USB ACM device

  • כעת נפעיל את kppp כדי ליצור את החיבור (חזרה לשנות ה־90 … )
  • יש ללחוץ על Configure (לצערי זה לא מתורגם גם בעברית)
  • בלשונית Modems יש ללחוץ “New”
  • ב־Modem device נבחר ב־‏‎/dev/ttyACM0.

kppp-device.png
יש לבחור בלשונית Accounts ולוודא שההתקן הנכון נבחר

  • כדי לוודא שההגדרות נכונות, אפשר לעבור ללשונית Modem ללחוץ על כפתור Query Modem.

kppp-query-modem.png
ניתן לוודא כי באמת המודם מדבר עם המחשב

  • יש לתת שם לחיבור ולסגור את החלון (ללחוץ על Ok ולא Cancel!)
  • כעת יש לעבור ללשונית Accounts וללחוץ על New.
  • ייפתח חלון השואל אם להשתמש באשף או תצורה ידנית, אשפים זה לנקנקים ולכן נעשה ביד - יש ללחוץ על Manual Setup
  • שם החיבור לא רלונטי (שמתי אצלי Pelephone, אבל כל שם מתאים).
  • במספר הטלפון יש לשים “כוכבית 99 סולמית”. בכוונה אני רושם את זה בעברית, כי הסדר באמת חשוב, הכוכבית ראשונה, מצד שמאל. יש לבחור גם ב־Store password.

kppp-config-dial.png
יש לכתוב את המספר הנכון כדי לחייג ולבקש לזכור ססמה

  • בלשונית Gateway נבחר ב־Static Gateway ובכתובת 10.6.6.6 (עבור פלאפון+סלקום. כשאני אקבל נתונים אחרים, אני אעדכן).

kppp-config-gateway.png
יש לקבוע שער ברירת מחדל מקובע - משום מה, ברירות המחדל לא עבדו אצלי

  • בלשונית Accounting מאוד חשוב לוודא שב־Volume accounting השדה Bytes In & out נבחר. הסיבה היא שאנחנו רוצים נלתר אחרי כמות המידע שעוברת בקו. בפלאפון בחבילת ברירת מחדל כל חריגה מ־20מ”ב עולה המון (בסלקום אני חושב שזה 50 מ”ב).

kppp-config-account.png
חשוב לסמן את התיבה הזאת ולנתר אחרי התעבורה של החשבון

  • לאשר את החלון, וחזרנו ל־KPPP confuguration, לאשר אותו גם
  • עבור משתמשים פלאפון: שם משתמש הוא ppp והססמה היא ppp
  • כעת ניתן להתחבר ולגלוש.

הערות:

  1. יש להיזהר עם החיבור הזה, בטעות הפעלתי וידאו ב־youtube ואכלתי את כל המכסה החודשית של החיבור.
  2. אותן הגדרות בדיוק, עבדו עבור מכשיר Nokia E-65 ברשת סלקום.
  3. החבילות הביסיות שבאות עם המכשירים הן ממש קטנות, יש להיזהר מאוד בעת גלישה,אתר ממוצע לוקח בערך מגה של תעבורה, וזה אומר שבגדול אחריחצי שעה של גלישה אתם יכולים לגמור את התקציב שלכם וכל חריגה ממכסת התעבורה עולה המון.
  4. אני לא לקוח שום אחריות על מה שקורה בזמן שאתם גולשים באינטנרטנט. לא על המחשב, לא על הסלולרי ולא החתול שלכם.

שנים שלא קימפלתי קרנל

Auto Date 26 במאי, 2009

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

אפשרות ראשונה היא לעדכן הפצה (אני עוד משתמש במנדריבה 2008.1). אבל היא משעממת, ובינינו מפחידה. אחרי שאתה משתמש מעל לשנה באותה הפצה, יש מלא דברים שאתה מתרגל אליהם והתקנה מחדש באמת מפחידה. (ואני אבצע התקנה מחדש, על בסיס ext4 ו־64 ביט). בינתיים, בוא נשדרג.

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

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

מטלות שחודש הקרוב:

  1. להכניס הכל פנימה. מודולים זה לנקנקים.
  2. גרסאות משוחררות זה לנקנקים. גברים אמיתיים משתמש ב־git.
  3. אני משתמש ב־gcc ישן. צריך לשדרג אותו… זה יהיה מעניין.
  4. יהיה נחמד לבצע כמה benchmarks על המחשב ולברר האם השינוי של הקרנל השפיע בכלל.
  5. לא להיות נקניק, ולא לשלוח ספאם של טכנאי מחשבים לבלוגים.

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

קצת משחקים עם HOCR

Auto Date 9 במאי, 2009

אני זוכר לפני שניים, או שלושה עידנים שהיה כזה אירוע בשם אוגוסט פנגווין 2008. אני זוכר איזה אחד בשם קובי שדיבר על יישום שהוא כתב שיודע לזהות תווים עבריים, בשם hocr. הוא גם מזכיר אותי המון בתור המתחזק של היישום qhocr, וזה לצערי מה שרב האנשים שצריכים את היישום רואים - יישום חלונאי ממש מקרטע. ממש לא מגיע לי התואר של מתחזק של יישום כזה… אני באמת גורם לו עוול.

השבוע החלטתי לשחק קצת עם הקוד החדש של קובי (מבוסס על גרסה  10 של הספרייה). כרגע אני נמצא בשלב שבו יש לי מחלקה קטנה וחמודה שיודעת מצד אחד לקבל QImage ומצד שני להחזיר QString. זה מאוד נחמד… הבעייה שלי כרגע היא זליגות הזכרון הענקיות שיש לספרייה של קובי.

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

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

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

חדשות מהחזית של Qt 4.5 ו-KDE 4.2

Auto Date 6 בדצמבר, 2008

בקרוב נוקיה ישחררו את Qt 4.5. בשלבים אלו זה נמצא בשלבי בדיקה מאסיבים, ופה מגיע השלב שבאמת מבינים כמה KDE עושים טובה ל-Trolltech/Nokia שהם משתמשים במוצר שלהם. הדרך הכי טובה לבדוק האם Qt4.5 יציבה ובאמת “תומכת אחורה” היא לבדוק אותה לייב על המחשב של המפתחים - בעזרת KDE 4 מומלץ לקרא מפי המתפתחים אודות הנושא הזה

בנוסף לשיפורים בביצועים (זה יראה יותר בתחום של פלסמה), יהיו עוד כמה עדכונים:

  • שיפור התמיכה ב-WebKit (אני מנחש שבגרסה 4.3 של KDE יהיה אפשר לבחור באיזה מנוע להשתמש ב-Konqeuror: ב-KHTML הישן והטוב או ב-QtWebKit.
  • נוספו אפשרויות benchmark יותר טובות לספרייה. הפוסט הבא מציג את הנושאר ומאוד מומלץ לקריאה.
  • שיפור ענק בכל הנושא של תמיכה בתלת מימד. בפוסט הבא מציגים דמו של מנוע תחת מימדי המזכיר את Wolfenstein אבל כתוב כולו ב-Qt4. מה שמאוד מטורף פה, זה שבמבוכים, בקירות הם דוחפים widgets רגילים כולל נגן מדיה רגיל ודפדפן אינטרנט והפתיחה של הדלתות נעשה על ידי לחיצה על QPushButton פשוט. שוב, מאוד הזוי אבל מציג את הגמישות של הספרייה.

תמונת מסך

יש גם סרטון מלא ב-you tube

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

והינה גם כמה חדשות בנושא KDE 4:

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

החלטתי לחזור למתכונת המקורית של הבלוג ולפרסם פה מוסיקה שאני מוצא ב-youtube או מקומות אחרים. הרעיון שהיה מאחורי זה הוא שאפשר להנות מאומנות גם בלינוקס, וזה לא הכל תכנות או ssh/console וגם לנסות להביא אנשים בעלי אורינטציה יותר … “גרפית” … פעם קודמת שבדקתי swfdec הצליח להתמודד עם youtube ולכן גם לקנאים שמשתמשים אך ורק בתוכנה חופשית אין ממש תירוץ שלא לצרוך מוסיקה איכותית. (האמת היה עדכון של הנגן פלאש של youtube וצריך לברר האם swfdec שמגיע עם אובונטו יודע להתמודד איתו).

 

מקשי מולטימדיה בלינוקס

Auto Date 30 בנובמבר, 2008

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

כיום אני מנסה לפתור משהו פשוט: אני רוצה שכאשר אני לוחץ על Fn+F5 יקפוץ לי המרכז בקרה של מנדריבה ואני אוכל להגדיר שם רשתות (האייקון במגש המערכת לא תמיד עובד, לא מבין למה) וכאשר אני לוחץ על המקש של lenovo-care (מן חארטה כזה כתום ליד הכפתורים של השמע) “יקרה משהו”.

אחרי טיפה מחקר (שעה, אולי שעתיים̷ ;) התברר שרק צריך לערוך את הקובץ ‏‎/usr/share/hal/fdi/information/10freedesktop/30-keymap-lenovo.fdi ושם להוסיף שתי שורות (תבינו לבד איפה):

          <append key=”input.keymap.data” type=”strlist”>e034:homepage</append> <!– Lenovo care, homepage –>
          <append key=”input.keymap.data” type=”strlist”>e041:switchvideomode</append> <!– Fn+F7 video –>

שזה בגדול אומר “כשהקרנל מקבל לחיצה על מקש שמשחרר את הקוד e034, זה שקול בעצם למקש “לך הביתה” שמצידו X ממפה בתור XF86HomePage, ובתורו אנשי מנדריבה כבר תפרו במרכז הבקרה שיפעיל את Konqueror. כדי לשנות את זה ל־Firefox, פותחים את מרכז הבקרה של KDE3, הולכים ל־Regional & accesability ושם בוחרים ב־Input actions. את הפקודה המדוברת נמצא בתוך Mentor Office Wireless Keyboard תחת השם Internet browser.

input-actions.png

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

באותה הזדמנות, נשנה את הפקודה Home שתפעיל את D3lphin במקום את Konqueror. בצורה דומה, אפשר לתפור את FnF7 למה שרוצים. אצלי זה עדיין לא ממופה לכלום, כי אין לי צורך במקש הזה עדיין.

עכשיו הבעייה הקשה, המקש של FnF5 מסודר כבר בקובץ:

          <append key=”input.keymap.data” type=”strlist”>e016:wlan</append> <!– Fn+F5 wireless, wlan –>

ואני שיניתי אותו לשורה הבאה, שגורמת ל־Xorg לראות את המקש XF86Music. אני לא מבין

           <append key=”input.keymap.data” type=”strlist”>e016:config</append> <!– Fn+F5 wireless, wlan –>

כעת אפשר למפות את מקש כמו שכבר הסברתי.

סיכום קצר של המקשים שמסודרים אצלי במחשב:

  • alt+control+t: מפעיל מסוף konsole
  • windows+F10: מגדיל או מקטין חלון (זה נעשה בחלק אחר של מרכז הבקרה תחטטו ותמצאו)
  • windows+e: מפעיל את Dolphin (זה מקש שמגיע ממנדריבה, ואני התאמתי אישית)
  • FnF5: מפעיל את draknetcenter
  • FnF4: מעביר את המחשב למצב המתנה (suspend to ram) .מקש זה עובד מהקופסא בכל ההפצות שבדקתי.
  • FnF12: מעביר את המחשב למצב שינה (suspend to disk). מקש זה עובד מהקופסא בכל ההפצות שבדקתי.
  • מקשי המולטמדיה הרגילים: mute, volume up/down, play/pause, next, prev, stop ו־Amarok עובד איתם מהקופסא

כמה טריקים:

  • איך אני יודע איזה מקשי XF86 זמינים במחשב? (אני חולה על דברים כאלו ארוכים ב־bash!)
cat /usr/share/X11/xkb/symbols/inet  | grep XF86 | awk ‘{print $5 }’ | sort | uniq

תקנים בעולם התוכנה הפכו למשהו לא רלוונטי

Auto Date 13 בספטמבר, 2008

כחצי שעה אחרי שסיימתי לכתוב את הפוסט שלי אודות Moonlight, אני קורא בלינמגזין מאמר של ajaxan שמקשר למאמר של ג’ף כרוט, שבתורו הוא מקשר לראיון מול של איאן היקסון. בראיון הוא אומר שהתקן של HTML 5 צפוי לצאת רק בשנת 2022, כן, זה אלפיים עשרים ושתיים. בגדול, זה אומר “הגיל של האינטרנט? רק עוד כזה זמן צפוי שינוי מהותי בתקנים”.

למי שאבד בתיאור: בחור בשם ג’סטין גיימס, מראיין בחור אחר בשם איאן היקסון (העורך של תקן HTML5). בראיון איאן מפרט מפת שלבים שמתפרסת עד לשנת 2022, כאשר הטיוטה הסופית האחרונה היא בשנת 2020.

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

הייתי רוצה לדעת מה התגובה הרשמית של W3C. במיוחד הסניף בארץ שאותו (כנראה) יהיה לי קל לגשת אליו. איך אתם מסבירים את הביזיון הזה? צפיתי לתקן HTML5 בעוד שנה, שיצא בערך עם התקן החדש של C++‎, אבל עכשיו מה התקן הזה שווה? מה שווה התקן הנוכחי (HTML 4.01 שנכתב לפני מעל תשע שנים..?).

אבי, לפני כמה זמן כתבת ש”תקנים כן חשובים“, באמת? האם התקנים של W3C שווים משהו כיום? אם שוק הדפדפנים נשלט על ידי IE (יותר מ60% באתרים מסוימים, באחרים מעל 90%) והם אפילו לא מממשים תקן ישן מאוד (css3, svg), איך אפשר לצפות מהם לתמוך בתגיות שאמורות להיות תקן רק עוד כ־10 שנים..? ואם יש כמה מימושים סותרים בחוץ, איך ניתן לדעת מי מממש את ה”תקן” בצורה נכונה?