בעסקי לינוקס עסקינן

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

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

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

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

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

תשובה לחידה

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

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

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

הערך הקודם פלוס הערך הקודם ושומרת אותו ב sequence בתור הערך הבא. כל זה, כל עוד הערך הוא לא 0 או ריק, כי אז הsequence מכיל את הערך 1.

התוצאה הסופית היא סדרה כזו: 1, 2, 4, 8, 16, 32, 64, 128, 512, 1024 … (דיברתי על 10 הערכים הראשונים).

הפעולה מתבצעת כאמור על ידי פעולת חיבור ולא כפל או חזקה (דיאגו).

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

השימוש ב GEN_ID מספק את הדרך היחידה לגשת ל sequence בגלל שהsequnce חייב להיות מוגן מפני שינויים רנדומליים ורק שינויים שהתכוונו אליהם חייבים להתבצע בצורה שהיא transaction safe, כך שכל טרנזאקציה תוכל לספק ערך חד חד ערכי בלי קשר לשאר החיבורים והטרנזאקציות האחרות בנושא. זו אחת מהדרישות של מבחן ה ACID עבור מסדי נתונים, וכאמור Firebird עובר בציון של 100 את המבחן. הפונקציה ד"א מעלה את הערך של ה sequence בכמות שאנחנו מספקים לה בפרמטר השני, כך שאם הערך הוא 0, זה בסה"כ מחזיר את הערך של sequence ולא מבצע פעולת חיבור.

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

מבחני ביצועים ל MySQL, PostgreSQL ו Firebird

לאחרונה נעשו מבחני ביצועים לFirebird מול 2 מסדי הנתונים האחרים.

בשורה התחתונה, גרסה 2.5 של Firebird בלינוקס מאוד מהירה ויעילה, אבל רק אם משתמשים במערכת הקבצים XFS, בעוד שבמערכת הקבצים Ext3 הוא מאוד לא יעיל.

את המצגת עם ההסבר המלא, ניתן למצוא כאן.

עבודה עם xmlrpc ברובי

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

הבעיה שלי היתה, שיש לי spec אשר מדבר על כך שאני מעביר פרמטרים עם שם, ושום דוגמא ברשת לא הראתה לי איך לעשות את זה, עד שמצאתי דווקא בפרל איך לעשות את זה עם XMLRPC::Lite ואז ניסיתי על רובי וזה עבד.

הדוגמאות הרגילות מציגות את זה בצורה הבאה:

require 'xmlrpc/client'
server = XMLRPC::Client.new('127.0.0.1', '/', 80)
server.call('test',  'a','b')

אבל בשביל "שם" ו"ערך" אנחנו צריכים להשתמש בזה בצורה הבאה:

require 'xmlrpc/client'
server = XMLRPC::Client.new('127.0.0.1', '/', 80)
server.call('test', { 'a' => 'b'})

אני מקווה שזה יעזור לעוד אנשים.

תודה ללזרוס שהביאני עד הלום

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

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

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

למעט שורת select אחת (נשאר לי עוד ליצור שורות של update, insert ו delete), אין לי ולו שורת קוד אחת שכתבתי, ועדיין יש לי ממשק גרפי שמאפשר לי את כל זה !

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

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

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

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

תחת הקטגוריות Lazarus, firebird, קוד פתוח. 4 תגובות »

חידה: מה עושה הקוד הבא ?

יצרתי את הקוד הבא במסד נתונים שלי שעובד עם Firebird SQL, מה הקוד עושה ? למה נבחרה הגישה הזו בשביל לממש את הקוד ואילו תשובות אקבל בהזנת 10 ערכים ראשונים למסד הנתונים עם הקוד הזה ?

IF ((NEW.ID IS NULL) OR (NEW.ID = 0)) THEN
NEW.ID = GEN_ID(GEN_PERMISSIONS_ID, 1);
ELSE
NEW.ID = GEN_ID(GEN_PERMISSIONS_ID, GEN_ID(GEN_PERMISSIONS_ID, 0));

במידה ולא תפתרו את החידה כאן, אענה עליה בשבוע הבא :)

תחת הקטגוריות firebird, קוד פתוח. 2 תגובות »

טעויות מתקנים …

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

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

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

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

תחת הקטגוריות קוד פתוח. לכתוב תגובה »

ושוב האופיס הזה …

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

רציתי לראות את המצגות שכבר הועברו, אבל נתקלתי בבעיה. הבעיה היא שכמובן מדובר במצגות מבית Microsoft Office. למרות שיש לי OpenOffice 3.1.1, אשר יודע לעבוד די טוב עם מצגות מבית אופיס של מיקרוסופט, במידה ונועלים לי את המצגת בסיסמה מפני שינויים (באופיס 2007), אני לא יכול לפתוח אותה בכלל !

למה לא להשתמש במערכת כמו OpenOffice ולסיים עניין ?!

אני יודע, התשובה היא ש"כולם עובדים עם Microsot Office", אבל אף אחד לא מדבר שאפילו הם לא מסוגלים להתמודד עם כל גרסה חדשה שיוצאת אם הם לא משדרגים את הגרסה הישנה שלהם, כך שמשתמשי Microsoft Office נמצאים ביותר בעיות ממני בנושא.

והמקור לכותרת שלי, הוא השיר "שוב השקר הזה" של דן תורן, ואפשר להנות מהשיר כאן.

שרת סופר קלאסי

כמו שכמה מקוראי יודעים, מסד הנתונים של firebird מכיל 3 צורות גישה למסד הנתונים:

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

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

מוקו הסרבני

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

פתאום המוקו החליט שכרטיסי זיכרון הם מחוץ לתחום של מוקו, ואני שובר את הראש כל פעם להבין מה לא בסדר. העניין הוא שגם בגרסה שצרובה למכשיר, שלא לדבר על כל מנהל אתחול שקיים (בNOR ובNAND, שזה אומר שניסיתי את Qi ואת u-Boot) לא מצליח להבין שיש לו כרטיס זיכרון. זה לפחות עד ל12 בלילה היום. החלטתי לעשות ניסוי, אחרי שנשיפות מאוד חזקות לנקות את החריצי קריאה לא עזרו, ניגבתי אותם במטלית חלקה ונקייה, וזה נראה שעשה את העבודה.

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

דרוש: כבל C2T

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

שם הכבל הוא C2T. האם יש מישהו בין הקוראים שיש לו כבל כזה שהוא לא צריך (ועובד כמובן) ומוכן לעזור לי ?

תודה,

עידו

תחת הקטגוריות קהילה, קוד פתוח. 4 תגובות »

ככה מדווחים באג

בחודש שעבר נשלח באג בקשר ל flamerobin. דיווח הבאג התבצע בצורה יוצאת דופן: דרך YouTube.

הבאג מצולם בווידאו עם קריינות אשר מנסה להסביר את הבעיה, ומי יודע, אולי זו התחלה של דיווח באגים טובה יותר :)

את הבאג עצמו, אפשר למצוא כאן.

מקור: FlameRobin

לזרוס 0.9.28 יצא …

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

שינויים בLCL:

  • ברירת המחדל של הממשק בלינוקס היא (סוף כל סוף) GTK 2
  • העבודה על Windows CE מביאה איתה מימוש של עוד רכיבים
  • המימוש של רכיבים ל Windows Vista ו 7 שוכתב בשביל לתקן בעיות
  • נוסף רכיב של TFrame
  • שוכתבה התמיכה ל TPen ונוספו לה עוד אפשרויות
  • מרבית התכונות של פקדים מכילים כיום ערכים בברירת מחדל, דבר שמקטין את גודל קבצי ה lfm
  • נוספה תמיכה לעבודה עם ריבוי צגים באמצעות המחלקה TMonitor
  • שיכתוב של בסיס הרכיבים עזר להקטין את גודל התוכנה בין 15 ל 18 אחוזים (תלוי בממשק הגרפי)
  • בWindows נוספה תמיכה ב5 כפתורי עכבר

שינויים ב IDE: לקרוא את ההמשך »

תחת הקטגוריות Lazarus, קוד פתוח. 2 תגובות »

CodeTyphon

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

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

לצפייה בתמונות מסך של ההפצה לחצו כאן.

תחת הקטגוריות FPC, Lazarus, קוד פתוח. לכתוב תגובה »

בחירת framework לא מתאים ?

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

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

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

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

האם מישהו מקוראי הנאמנים יודע איך אני יכול לזהות מה מעקב אותי בשביל להתקדם טוב יותר ?

תחת הקטגוריות פיתוח, קוד פתוח. 6 תגובות »

ליצור CSS ו HTML בהיקו

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

יש לנו 2 כלים ממש מדהימים הכתובים ברובי ליצור HTML ו CSS בצורה שלדעת המפתחים מזכירה Haiku יפני :)

הצורה ליצור html או xml בכלל נקראת HAML והיא עובדת בצורה הבאה: לקרוא את ההמשך »

תחת הקטגוריות Ruby, קוד פתוח. 2 תגובות »

I did it my way …

ביום כיפור האחרון יצא לי לעבוד פעם ראשונה עם framework לcgi שהרבה זמן רציתי לנסות בשם sinatra אשר כתוב בשפת רובי כמובן. ה framework שונה לגמרי בתפיסתו מכל framework מבוסס cgi אחר שאי פעם עבדתי איתו. הוא בנוי בגישה של DSL בשביל לתאר תכנות מבוסס web. הוא מאוד קל משקל וממש לא מזכיר את rails, אלא מצד אחד יותר את django מבחינת הגישה שלו (אני בוחר מבנה ספריות וכו'),  אבל הוא מאוד פשוט לעבודה מהצד השני. חצי יום לקח לי לשלב בינו לבין ajax. למעשה רוב ה עבודה היתה דווקא בצד ה Javascript ולא בצד הרובי. ה framework מדהים ופשוט מצד אחד, אבל מצד שני בנוי לעבוד עם אפליקציות רציניות בפני עצמו, או כMiddleware.

איך עובדים עם sinatra אתם בטח שואלים, ובכן, הנה דוגמא פשוטה:

#!/usr/bin/env ruby
require 'rubygems' # if we installed sinatra or any other modules using ruby gems
require 'sinatra'
get '/' do
'Hello World'
end

נשמור את הקובץ בשם sin.rb עכשיו בשורת הפקודה נכתוב:

$ ruby sin.rb

וזהו יש לנו מערכת cgi שכל מה שהיא עושה זה לענות לבקשה הראשית בשליחה של Hello World. בברירת מחדל לשלב הניסויים בלבד יהיה לנו שרת http משלנו, אבל sinatra צריך לדעת שהוא לא רץ בסביבת ניסוי בשביל להצליח להריץ אותו עם אפצ'י או כל שרת HTTP אחר על ידי הגדרה מאוד פשוטה שאפשר ליצור בקובץ בשם config.ru ושם נגדיר שזו סביבת ניסויים או סביבת production.

המערכת מגיעה גם עם מערכת בדיקות מובנת, וכמובן שאפשר לשלב עוד מערכות בדיקות של "כתוב בדיקה קודם, ותכתוב קוד שהיא לא תכשל אח"כ" כדוגמת rspec או cucmber.

יש עוד הרבה דברים שאפשר לעשות בשיטה הזו, כמו גילוי חלקים מסויימים בבקשה, עבודה עם regex, הגדרת פעולות לפני הניתוב, תמיכה בtemplates ו layout בהם גם תמיכה ב haml, erb וכמובן גם ב SASS. יש תמיכה במסדי נתונים עם מנועים שונים כדוגמת ActiveRecords אבל לא רק ועוד המון דברים להציע.

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

הגדרת מקשי מולטימידיה xfce

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

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

עכשיו הלכתי להגדרות המקלדת של xfce והגדרתי את שלושת המקשים: לקרוא את ההמשך »

תחת הקטגוריות לינוקס, קוד פתוח. 3 תגובות »

תתכוננו למהירות הגלישה הבאה

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

  1. בזק – מבטיחה גלישה עד 5
  2. אורנג' – מבטיחה מחשב נישא עם מודם סלולרי עד 5

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

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

עכשיו אורנג' מבטיחים אותה מהירות גם במודם סלולרי. אני מחכה עכשיו לתביעה הראשונה כאשר 2 החברות האלו לא יצליחו לספק 5 מגה בית במהירות הגלישה.

אסטריסק קהילתי – שקופיות

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

את ההרצאה אפשר גם למצוא באתר שלי ב pdf וב odp