מאמרים בנושא ‏תכנה חופשית‏.

שבירת API בלי סיבה מוצדקת זה פשע נגד הקהילה

ב־יום שלישי, 29 באפריל 2025, מאת ארתיום; פורסם תחת: תכנה חופשית, לינוקס, פיתוח; ‏0 תגובות

באתי לבנות את הפרויקט שלי OpenLiveStacker עם OpenCV אחרון 4.11 - הכל נופל. נעלמו אופרטורים +/- על פעולות וקטוריות. לדוגמה הקוד הבא:

cv::v_float32x4 zero = cv::v_setall_f32(0.0f);
cv::v_float32x4 one = cv::v_setall_f32(1.0f);
int limit = N/4*4;
for(;i<limit;i+=4,p+=4,d+=4,f+=4) {
    cv::v_float32x4 v=cv::v_max(zero,cv::v_load(p) - cv::v_load(d));
    v = cv::v_min(cv::v_load(f) * v,one);
    cv::v_store(p,v);
}

פשוט לא מתקמפל כי הסירו אופרטורים של חיבור/חיסור. למה? כובע!

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

טוב, נחכה ונראה

פריסת מקלדת "חדשה-ישנה"

ב־יום ראשון, 20 באפריל 2025, מאת ארתיום; פורסם תחת: תכנה חופשית, לינוקס, כתיבה, חינוך; ‏0 תגובות

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

אבל מה פריסת מקלדת בחלונות 10 באה עם התקן החדש SI-1452-2. אז התחלתי לעבוד איתו ולמען אחידות העברתי בבית את המחשב השולחני לתקן מקלדת הזה במקום LyX. מה ההבדל בגדול? במקום ללחוץ על shift לוחצים על Alt-Gr או Alt ימני. לקח מעט זמן להתרגל. אבל אני חייב להגיד שנעשתה פה עבודה מעולה! כל הכבוד לכל הפעילים ביניהם שחר שמש ועמותת המקור.

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

  1. אפשר לכתוב קיצורי דרך באנגלית בלי להחליף שפה – זה מאוד יקל על אנשים שרגילים להשתמש בזה
  2. מיקום קיצורי RLM/LRM הרבה יותר הגיוני – על מקשי סוגריים.
  3. בנוסף למקף־עליון הנמצא במקש "-/_" יש גם מקף "–" על מקש "+/=".
  4. סימן ₪ נמצא במקש של $ שזה מקל מאוד לזכור את מיקומו
  5. זה עובד גם בחלונות כך שלא צריך לשבור את הראש אם רוֹצִים לְנַקֵּד משהו או עוברים ממערכת הפעלה אחת לאחרת מידי פעם – זה כבר שם!

באיחור של יותר מעשר שנים: תודה רבה!

איך ללמוד תכנות בגיל צעיר?

ב־יום שבת, 8 בפברואר 2025, מאת ארתיום; פורסם תחת: תכנה חופשית, לינוקס, פיתוח, תכנה ומחשבים, חינוך; ‏6 תגובות

כשהייתי בן 11 הורים שלי קנו לנו מחשב קטן ZX Spectrum עם מעבד Zilog Z80 מ־48KB של זכרון. "מערכת ההפעלה" שלו הייתה BASIC פשוט, הוא התחבר לטלוויזיה, התוכנה נשמרה ונטענה מקלטות. אומנם קיבלנו את המחשב בתחילת שנות ה־90 אבל בפועל זו הייתה טכנולוגיה של שנות ה־80. כך או אחרת זה הדליק את העניין שלי ושל אחי בתוכנה התווה את הדרך המקצועית של שנינו. למדתי עליו תכנות בסיסי והאסמבלי של Z80 הוא הראשון (ובעצם היחיד) שלמדתי לעומק.

קצת נוסטלגיה

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

אבל לאחרונה יצאה מחשב "מחודש" הנקרא "The Spectrum" שמעשה מדמה את המחשב הישן נראה בדיוק כמוהו אבל עובד עם טכנולוגיה מודרנית - מאפשר לטעון טכנה מדיסק־און־קיי ומתחבר למסך עם HDMI. אחרי הרהורים קצרים הזמנתי אחד מ־Amazon צרפת ו... לא התאכזבתי. באמת, מחשב קטן וגאוני. מהר מאוד כתבתי בשבילו כמה משחקים פשוטים ב־BASIC למשל Snake. הראיתי את המחשב לבתי הגדולה. הראיתי כמה פקודות פשוטות. כתבתי לידה משחק פשוט בו תפוסים קוביה שנופלת

תמונה

  1 BORDER 1
  5 LET row=0
  6 LET score=0
 10 LET p=16
 20 LET col=15
 25 LET row=0
 30 PRINT AT row,col;"#"
 40 LET row=row+1
100 PRINT AT 20,p;"^"
105 LET psave=p
110 IF INKEY$="p" AND p<31 THEN LET p=p+1
120 IF INKEY$="q" AND p>0 THEN LET p=p-1
130 IF psave<>p THEN PRINT AT 20,psave;" "
140 PRINT AT row-1,col;" "
145 IF row>20 AND p=col THEN LET score=score+1: PRINT AT 21,0;"Score ";score;
150 IF row>20 THEN LET row=0: LET col=INT (16*RND)+7
200 GO TO 30

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

אז מה האלטרנטיבות הים?

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

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

פתחתי דיוק בנושא בקבוצת פייסבוק של משתמשי ZX Spectrum שוודאי יבינו את הכוונה שלי:

  1. שפת תכנות קלה יחסית
  2. אפשרות הפעלה של הכל דרך ide (שלא אצטרך ללמד גם שורת פקודות)
  3. קל מאוד להגיע לתוצאות מהירות

ועלו מספר אפשרויות:

  1. love2d עם Lua
  2. pygame-zero עם Python
  3. processing עפ שפת תכנות מבוססת Java
  4. כמובן אותו ה־Scratch

התחלתי לחקור ופתחתי פרוייקט שכולל קוד המקור של כולם (מלבד Scratch)

מטרה - לכתוב משחק פשוט בו כדור נופל ממקום אקראי ומנסים תפוס אותו עם המשטח שמזזים אותו בעזרת מקשים. אם תופסים הניקוד עולה ומוצג למשתמש. הנה דוגמה של המחשק שבניתי ב־pygame zero:

תמונה

המשך...

תמיכה בחצובה או סיפורי הסבת indi ו-indigo לאנדרואיד

ב־יום חמישי, 7 בנובמבר 2024, מאת ארתיום; פורסם תחת: תכנה חופשית, לינוקס, פיתוח, תכנה ומחשבים, אסטרונומיה; ‏0 תגובות

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

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

המשך...

הפצה? למי איכפת. האמת שכן

ב־יום שני, 30 בספטמבר 2024, מאת ארתיום; פורסם תחת: תכנה חופשית, לינוקס; ‏0 תגובות

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

התחלתי עם Fedora 3 - הנתנה לי הרגשה מה זה לינוקס מודרני (אז). אבל מהר מאוד התייאשתי - כי הרעיון לשדרג כל 6 חודשים להפצה חצי יציבה - כי זו מעבדתי ניסויים של Red Hat - לא קסם לי.

המשכתי ל־Debian - ה־stable אז היה ממש ישן עברתי ל־testing שאומנם עבד אבל... היה קשה וגם חיכיתי המון לגרסה "יציבה" שהייתה ישנה עם ההגעה.

כשרכשתי מחשב מחדש 64 ביט התקנתי עליו גרסת LTS הראשונה של Ubuntu 6.06 ומשם בבית אני עם גרסאות LTS - למה? כי לא בא לי להתעסק יותר מידי בלינוקס.

בעבודה עבדתי עם RHEL וגם עם CentOS וגם עם גרסאות שונות ומשונות של Ubuntu. שורה תחתונה. זה עובד וזהו. לא משנה מה.

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

העמוד הבא

דפים

נושאים