ארכיון חודשי: נובמבר 2010

fpWeb סקירה ראשונית

fpWeb הוא framework מעניין לעבודה עם אפליקציות מבוססות web כדוגמת web services (עם תמיכה ב JSON, JSONRPC1, JSNORPC2, XMLRPC ועם תוסף, גם תמיכה ב SOAP) וכן עבודה גמישה שדורשת התממשקות למסדי נתונים ויצירת מידע המבצע תצוגה כממשק web ב HTML.

הסביבה יודעת לספק לנו אפשרות לפתח אפליקציה או כCGI על שלל גווניה (ז"א cgi רגיל ו fast cgi), וכן גם כמודול לאפצ'י. בנוסף הספרייה יודעת להתממשק לLazarus ובכך לספק פיתוח קצת יותר גרפי עבור האפליקציה עם שימוש ב"חלונות" כדוגמת DataModule ו"חלון" מיוחד לצד השרת עצמו (החלון קיים רק בזמן תכנון ולא בזמן ריצה).

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

כמו כן, המיפוי של נתיבים נעשה באמצעות path info, אבל אם אתם מעוניינים לעבוד בגישה באתר של העסק שלי, אז לצערי שם יש קצת יותר עבודה, היות והוא לא תוכנן לגישה הזו במקור, וחבל. אבל אם השפה היתה בסוף במקום בהתחלה, אז היה קל מאוד בצורה הנוכחית לעשות את זה, כך שגמישות של נתיבים זה נושא שדורש חשיבה מעט שונה מאשר framework כדוגמת סינטרה, Rails ואפילו DJango.

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

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

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

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

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

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

רישיון כפול

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

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

הבעיה במודל הזה, הוא שמראש מחליטים שלא ניתן לעשות כסף ממוצר קוד פתוח. כלומר אני מראש לא יכול לגבות כסף על מוצר שאני משחרר ברישיון המוכר ב OSI כרישיון קוד פתוח. ועכשיו נשאלת השאלה, היכן ראיתם בGPL, BSD, MIT ועוד רבים אחרים איסור על גביית כסף ? לא זה בסדר אל תשקיעו אנרגיה מיותרת, אין סעיף כזה (לפחות לא שאני מכיר). כלומר אם אני רוצה, אני יכול למכור מוצר אשר הרישיון שלו הוא GPL. כן כן, למכור בכסף, ולא של משחק המונופול אלא אמיתי, כזה שאפשר לקנות במכולת השכונתית לחם וחלב, לשלם שכר דירה וכו' …

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

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

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

עידוק

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

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

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

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

הזרקת קוד

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

הרבה פעמים מערכות אשר לא נחשבות לקריטיות (כלומר ה"ציבור" לא נחשף אליהן), הן הפתח לפגיעה יותר חמורה מאשר מערכות קריטיות (חשוף בעולם האינטרנט). נגיד אם יש לי גישה ל switch מנוהל באמצעות HTTP, ואני מוצא שם XSS או SQL Injection, עד כמה מסובך להשיג את סיסמת המנהל למערכת ? ומכאן עד כמה מסובך לנחש את שאר הסיסמאות למערכות השונות ? עד כמה מסובך לקבל אח"כ "אינטרנט בחינם" או עוד הרבה דברים אחרים, כולל נזק אמיתי לארגון במטרה לעשות לו נזק ?

יותר מזה, הרבה מתכנתים אף פעם לא לומדים להבין את המשמעות של הזרקת קוד, ולא חושבים בכלל לכיוון. כבר שמעתי ממתכנת .NET שמצאתי לו SQL Injection "אבל אתה לא באמת יכול לשנות לי כלום כי יש לי Javascript שמאפשר רק לתווים מסויימים לעבור", ולקח לי 2 דקות להראות לו איך אני עוקף את ה"הגנה" הזו…

העניין הוא שהזרקת קוד זה לא רק Cross Site Scripting (כלומר XSS) או SQL Injection, אלא אני ממש רואה מקומות שמשתמשים ב eval לקוד שמגיע מהמשתמש, או ניתוח קבצי JSON למשל ב Javascript/Python במקום לנתח את הטקסט וליצור מזה מבנה אמיתי בשפה, פשוט עושים קיצורי דרך מסוכנים. תארו לכם שאני יכול להיכנס לשרת שלכם ולעשות כל העולה על רוחי אם אתם מריצים eval (או evil כמו שאני קורא לזה) ולהכניס קוד שפותח לי "שרת" לגישה ישירה ל bash ללא הזדהות וללא שהות, ולפעמים אפילו לקבל הרשאות root עליו.

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

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

חבילות התקנה – מידע כללי

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

שימו לב שגם אם אתם לא עובדים עם Arch Linux, עדיין המידע כאן מסביר איך חבילות עובדות.

בלינוקס (ובעוד מערכות, לא רק מבוססות מערכת הפעלה, כדוגמת ruby gem או fpmake), חבילה היא אוסף של מספר נושאים:

  1. תאור ומידע אודות מה אנחנו מספקים/עושים
  2. הוראות כיצד יש להתקין את החבילה, ובמידת הצורך מה צריך לבצע לאחר ההתקנה, הסרה, עדכון וכו'
  3. מידע רלוונטי עבור כל קובץ וקובץ שנמצא, כלומר המיקום שהוא צריך להיות בו במערכת.
  4. מה החבילה מספקת (כותרת גדולה, אדבר על כך בהמשך)
  5. מה התלויות האחרות שהחבילה צריכה בשביל להצליח לתפקד, כלומר אילו עוד חבילות.
  6. לאילו ארכיטקטורות היא מתאימה (או לא תלויה בכזו)

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

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

עוד פרט חשוב בחבילות תוכנה של מערכות לינוקס (לפחות החבילות שאני מכיר, RPM, deb וכמובן pacman), אפשר להגיד כי חבילה מסויימת מספקת שם כולל של חבילות (סעיף 4).

נגיד למשל, שאני רוצה ליצור חבילה שכל התפקיד שלה היא לגרום לFirefox להיות דפדפן ברירת המחדל אצלי בלינוקס, אבל אני אצור עוד אחד להגדיר כי Arora הוא כזה, וכך גם Midori, אופרה, Chromium וכו'… כולם מספקים בעצם את אותה חבילה אשר מתנגשת עם חבילה אחרת.

הבעיה היא שאי אפשר לתת ל2 חבילות את אותו השם, ולכן יש להן שמות שונים, אבל עדיין אנחנו צריכים להגיד למנהל החבילות כי מדובר בהתנגשות, אז אנחנו אומרים לו שהחבילה מספקת בעצם חבילה בשם default-browser, כך שלא משנה כמה חבילות (מטא במקרה הזה, הן לא מתקינות כלום, רק משנות הגדרות, וגוררות תלויות שעושות את ההתקנה עצמה -> קרי חבילת Firefox, Arora וכו') לכמות הדפדפנים ברשותנו, עדיין כולם יגידו שהם מספקים חבילה בשם default-browser ובכמה ממנהלי החבילות זה לא מספיק, ואנחנו מגדירים במפורש שהיא מתנגשת עם defaut-browser.

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

עוד תכונה מעניינית שיש בdeb ובpacman היא האפשרות להמליץ על חבילות. נגיד והתקנת חבילה בשם Firefox ויש בוודאות במאגרים חבילה בשם Firebug. אני יכול להמליץ לך כחלק מהמידע רשימה של "תלויות" אשר הן לא חובה להתקנה אבל מומלצות על ידי להתקנה, כלומר אני אמליץ לך להתקין גם Firebug.

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

"צריבה" מחודשת של ה N900

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

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

הצריבה נעשת על ידי הקשה על מקש ה u כאשר מדליקים את הטלפון והוא מחובר למחשב עם הכבל usb, עם תוכנת הצריבה של נוקיה. התוכנה של נוקיה מחפשת במחשב את הממשק USB כלומר הכתובת שלו בחומרה שהוא מקבל מהקרנל ומתחיל לעשות מה שביקשנו.

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

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

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

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

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

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

הקנס בשימוש במוצרים של אורנג'

בשורה התחתונה:

לפני שתקראו את השאר תפנימו אל תרכשו שירות מחברת פרטנר (אורנג') לא בצורת ההתנהלות הנוכחית של החברה.

הסיפור הוא כזה. רכשתי ביום רביעי האחרון (19/11/2010) מחברת פרטנר (מותג אורנג' הבין לאומי) מודם וSIM ללא הגבלה – לגלישה וזה עבור העסק שלי. כאשר חיברתי את המודם למחשב גיליתי שהוא לא מצליח להתחבר. ניסיתי את אותו ה SIM בטלפון הסלולרי שלי ואותה התנהגות בדיוק. התקשרתי למוקד של חברת פרטנר והועברתי למערכת הData שלהם. שם הסבירו שיש בעיה "קטנה" עם הSIM ויחזרו אלי בשעה הקרובה כאשר יפתרו את הבעיה. לאחר שראיתי אחרי שעה שלא חזרו אלי, הרמתי שוב טלפון, ושם הוסבר שיש בעיה והבעיה תיקח בין 4 ל8 שעות לפתרון, ובמקרה הרע ביותר עד שבוע. אז שאלתי לסיבת התקלה, והסבירו לי שיש תקלה בAPN (ניסו לגרום לי לרדת מהנושא).

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

ביום חמישי התקשרתי שוב לאחר ניסויים להתחבר ועברו למעלה מ16 שעות אחרי שפניתי למוקד (זוכרים פתרון בין 4 ל8 שעות). שם ענה לי אותו מוקדן מיום רביעי והסביר שעדיין יש את התקלה, אז שאלתי איך זה יתכן שכל לקוחות החברה סובלים מגישה ל Access Point שלהם, וכאשר הוא הבין שהוא לא יצא עם התירוץ הזה שוב, פתאום הוא "גילה" כי יש עוד 2 בעיות על הקו המדובר, וזה יקח בין יומיים לשבוע של עבודה לפתרון.

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

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

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

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

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

המצרכים: התקינו את התוכנה wvdial ואת pppd, וכמו כן, מומלץ מאוד לוודא שusbutils מותקן (ללא קשר) ולסיום גם התקנה של usb_modeswitch תעזור לכם.

עכשיו צריך להגדיר את wvdial.conf אשר יושב ב /etc/. חסכתי לכם עבודה והנה הדבקה שלו (אצלי הוא גם מותאם כבר לN900 בנוסף):

[Dialer mobile]
Init3 = AT+CGDCONT=1,"IP","uinternet"
Check Def Route = 1
Modem = /dev/serial/by-id/usb-Nokia_N900__PC-Suite_Mode_-if06
Password = ''
Username = ''
Phone = *99#
Dial Command = ATDT
 

[Dialer modem]
Init3 = AT+CGDCONT=1,"IP","uinternet"
Check Def Route = 1
Modem = /dev/serial/by-id/usb-USBModem_HSPA_Data_Card_1234567890ABCDEF-if05-port0
Password = ''
Username = ''
Phone = *99#
Dial Command = ATDT

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Stupid Mode = yes
Modem Type = Analog Modem
ISDN = 0
New PPPD = yes
#Modem = /dev/ttyUSB4
Baud = 9600

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

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

$ wvdial modem

כאשר ה modem הוא בעצם ההגדרות שדרכם אנחנו מנסים להתחבר.

גרסה חדשה עבור libhdate-ik ב AUR

אומנם קצת באיחור אופנתי, יצרתי חבילה חדשה עבור libhdate ב AUR (הפצת Arch Linux) לאחר השחרור האחרון של (ד"ר) קובי. תהנו 🙂

המסעדה הגדולה

מעשה במשל:

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

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

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