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

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

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

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

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

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

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

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


פברואר 14th, 2012טובים השניים מהאחד

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

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

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

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

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

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

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

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

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


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

שדרוג מאובונטו למינט בשלושה צעדים קלילים!
הוסיפו למאגרים את:
deb http://packages.linuxmint.com/ lisa main upstream import
deb-src http://packages.linuxmint.com/ lisa main upstream import
הוסיפו ל/etc/apt/apt.conf (אם הקובץ לא קיים צרו אותו) את:
APT::Default-Release "lisa";
התקינו (ותאשרו את העובדה שהKEY לא קיים, זה מה שבא להתקין אותו) את:
linuxmint-keyring
שדרגו:
sudo apt-get dist-upgrade
מזל טוב!
התקינו את אחת (או יותר) חבילות המטא:
apt-cache search meta|grep mint
mint-meta-mate – Set of packages required to run MATE
mint-meta-mgse – Set of default packages for Gnome Shell in Linux Mint
mint-meta-core – Core Linux Mint packages
mint-meta-gnome – Set of packages common to all Gnome-based editions of Linux Mint
יש עוד כמה לקודקים וערכות עיצוב נוספות.
התקינו לבחירתכם את קינמון:
cinnamon,cinnamon-session,cinnamon-settings
ויש לו עוד אוסף חבילות של וידגטים

Linuxmint 12

סקירה ותמונות מסך נוספות:

http://www.techdrivein.com/2011/12/linux-mint-12-lisa-review-magnificent.html


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

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

לעומת זאת ההפתעה הגדולה ביותר היא גנום 3, שקיבלה המון ביקורות קשות מהמשתמשים על מצבה הנוכחי אולם תחת פני השטח בניגוד לKDE התשתית שלה מברכת שפות אחרות. מפתחיה יצרו פרוטוקול שיאפשר לכל שפה להשתמש בAPI שלה בקלות בצורה דינמית וגם את הממשק הגרפי כתבו בשפות נוחות שקל לתכנת כמו Vala והכי חשוב החלקים העיקריים שבאים עם המשתמש כתובים בג'אווה סקריפט מה שמאפשר ביצוע שינויים בקלות. אז אומנם אין לה עדיין כלים טובים למשתמש לקנפג אותה, אבל הקלות ליצור אותם יאפשרו להם להופיע בקרוב. העובדה שכל כך קל לשנות ולהתאים אותה באה לידי ביטוי בסביבות שהתפתחו ממנה כמו קינמון!

קינמון

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

התמונה נלקחה מ Cinnamon 1.2 Released With Desktop Effects, Multiple Layouts, More

לינוקס מינט

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

המסקנה המתבקשת

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

עדכון:

מארק לא נשאר חייב ובגרסה הבאה של יוניטי הוא מפתח פיצ'ר מגניב:

unity


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

PERL לעומת PHP – אני מתכנת PHP כבר כמה שנים  טובות ואמנם ידעתי שבראשית דרכה היא נכתבה בפרל ובC אבל אף פעם לא באמת נכנסתי לעומק. לפני כמה שנים טובות זכיתי להתנדב בכנס OSDC שחבל שלא המשיך, ובו דיברו עד כמה פרל מנסה להיות אנושית, היא נשמעה ממש קסומה שדיברו עליה כל כך הרבה בהקשרים אילו אם כי כל מה שספגתי ממנה בכנס זה ביטויים רגולרים וצורת הIF האנושית, שנזנחו לטובת השימוש בהם בPHP. לאחרונה גאבור סאבו התחיל סדרת פוסטים ללימוד פרל, והראה לי עד כמה פרל זו שפה יפה ואנושית! שימוש בsay להדפסה שיהיה אפשר לדבר איתה , שימוש בקונטקסטים שלמשהו מסוים יש משמעויות שונות במצבים שונים ממש כמו שפה אנושית. פרל יכל לתת מענה טובהלPHP לפני שזה התחיל לצבור תאוצה כמו לערבב קוד וHTML, נתקלתי במערכות תבניות שעושות את זה ואפשר לשדרג אותם לסיומות שאפשר להתחיל ישירות מהם. גם מוד פרל לאפצ'י אם היה מתחיל בזמנו היה נותן מענה מאוד טוב מאשר CGI.

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


לינוקס, שנחשבה שנים כמוקצת לגימרים ממשיכה להוכיח את עצמה בזירה, והתשובה לכך מעבר למשחקים שעוברים ועברו הסבה ללינוקס היא Wine! למרות שהרבה אנשים מתעקשים שמדובר באמולטור אל אף שהוא מכריז בראשי תיבות שמו שהוא לא, הוא ממוכיח את עצמו כיותר טוב מהפלטפורמה המקורית וינדוס. שמעתי פעם על כך אולם עכשיו נתקלתי בבלוג של מישהו שהשווה מספר משחקים כמו Evolution Soccer 2011 ו Black & White 2 בין וינדוס לWine והראה עדיפות רבה בFPS לטובת האחרון, ובלי לפגוע בכל חוויה אחרת במשחק.

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

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

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

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

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

ובלי קשר לWine בגרסת הלינוקס היציבה האחרונה ששוחררה נוסף הדרייבר של השלט של הWII וזה פתח למשחקים מגניבים אחרים.


אוקטובר 24th, 2011אפיון למצב tiling בKDE

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

תיאור:

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

מצב רגיל – חלונות בודדים

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

לדוגמה:

סימון חלונות ע"י לחיצה על meta + לחיצה על העכבר על החלונות הרצויים.

ניתוק חלון מקבוצה - לחיצה על meta + לחיצה על העכבר על החלון הרצוי

הגדלת חלון לכל אורך או רוחב הקבוצה – לסימון חלון לתזוזה

סימון חלון בקבוצה - מטה + כפתור אמצעי

אם סימון חלון בקבוצה ניתן:

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

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

  • מזעור של חלון יקבץ אותו לתוך הקבוצה ויראו רק את הכותרת
  • הגדלה היא הגדלה רגילה שחזרה ממנה תחזיר אותו לקבוצה

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

ACTIVITY

אפשרות להגדיר אקטיביטי שלם כtiling ושינויו לרגיל.

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

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

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


ספטמבר 22nd, 2011פרוייקט סודי.

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

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

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

לאט לאט, אני מתחבר לשפה, ומשלים בקלות עם העובדה שצריך לטפל בדברים הכי בסייסים, צורות הכתיבה השונות של פוינטרים *(struct.ptr) ל ,struct->ptr הטיפול המיוחד במחרוזות, sprintf היא לא כמו בPHP אחרת היא היתה צריכה להקצות זיכרון לכך שצריך לשחרר אח"כ ולכן לא עשו אותה כך. גם sizeof לא ייתן את גודלה וכנראה stlen עושה לולאה עד שנתקל ב\0

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

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

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

ניפגש בהמשך :D


ספטמבר 1st, 2011פרוייקט הQA הגדול

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

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

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

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


אוגוסט 31st, 2011נפלאות הנאנו

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

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

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

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

הגדרת הקיצורים לפניכם:

bind ^S writeout all

bind ^O insert all

bind ^F whereis all

bind F3 searchagain all

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

מעיון בman nanorc מסתבר שלעורך הפשוט הזה יש עוד יכולות! כמו צביעת קוד (צריך בשביל לעשות/להוריד קובץ syntax) ואף אפשר לעשות קיצורים לדברים שימושיים כמו:

findbracket – מעביר את הסמן לסוגר/פותח המתאים לסוגר/פותח שהסמן נמצא עליו.

prevbuf,nextbuf – מאפשרים לערוך מספר קבצים

spell – בודק איות

חיפוש בביטויים רגולרים וכו.

מה שיכול להפוך אותו לעורך ממש מוצלח.

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

include “/usr/share/nano/php.nanorc” לא עבד לי, קיבלתי שגיאה:

Error reading “/usr/share/nano/php.nanorc”: No such file or directory

אבל הקובץ הזה כן קיים. העתקתי את תוכנו, והפלא ופלא, יש לי צביעת קוד של PHP בנאנו!

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



© 2007 הבלוג של נדב ויניק משתמש בתבנית iKon שתרגם A.M.F הסרת שיער טבעות אירוסין