מאמרים בנושא ‏אסטרונומיה‏.

למה אני לא מרוויח כסף מאפליקציות שאני מפתח?

ב־יום חמישי, 14 בדצמבר 2023, מאת ארתיום; פורסם תחת: תכנה חופשית, פיתוח, אסטרונומיה; ‏0 תגובות

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

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

אז בוא נעשה ניתוח עסקי קצר בדיעבד

ניתוח הכנסות פוטנציאליות

נכנסתי ל־google analytics לעקוב אחר מספר המשתמשים בשנה האחרונה, הנה המספרים:

  • סה"כ כ־24,500 מתשמשים
  • בישראל 250 משתמשים בשנה האחרונה

אז אם הייתי גובה מכל אחד נגיד $5 (שזה מחיר מוגזם) אז על הנייר זה $122500. האם זה חישוב נכון?

ניכנס לניתוח לפי מערכת ההפעלה:

  • אנדרואיד זה כ־10,500 משתמשים
  • iOS זה כ־10,000 משתמשים
  • שאר זה משתמשים של מחשבים - לא רלוונטי לתחשיב

כבר הורדני כ־1/5 משתמשים וירדנו לכ־$100K שזה מספר מכובד.

אבל אם נסתכל על משתמשים בישראל - 250. במקרה קהילה של האסטרונומיה בארץ היא קטנה ורובינו מכירים זה את זה. לכן, היא מהווה מדגם נהדר. יש לי קבוצת ווטסאפ בשם "קבוצת התמיכה ב־AstroHopper" בה 15 חברים מהקהילה ישראלית (חלקם היו מעורבים בשלבי בטא מוקדמים)... כמי שיורד לתצפיות באופן (כמעט) קבוע ונפגש עם אנשים אני יכול להגיד שמספר המשתמשים ברשימת ווטסאפ הוא די מייצג - כי אני די מכיר את רובם. אז אולי פספסתי ואני נותן הערכת חסר אז נגיד יש לא 15 אלא 50 משתמשים (ומההכרות שלי עם הקהילה זה מספר מוגזם)

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

אם נסתכל על מידע ב־google play של SkySafari Pro גרסה 6 ו־7 - יש להם כ־10 אלף הורדות. וזו אפליקציה הרבה יותר פופולרית מאסטרוהופר והרבה יותר מושקעת כי יש בה עוד המון פיצ'רים נוספים.

אז כנראה הערכה של 4000 משתמשים היא הערכת נכונה מבחינת סדר גודל. הייתי אומר אפילו הערכה אופטימית ביותר. אז לאיזה סכום הגענו (במקרה הטוב) של כ־$20K...

ניתוח הוצאות והשקעה

אני לא מחזיק ב־iOS ולא ב־Mac. לכן, כדי לתמוך בבניית אפליקציית ל־AppStore הייתי צריך לרכוש אותם. וגם להשקיע בפיתוח של אותה האפליקציה פעמיים - פעם עבור iOS ופעם לאנדרואיד. מחשב אפל הזול ביותר שאשפר למצוא היום הוא כ־3000₪ ונגיד לקנות טלפון יד שניה זה עוד 1000₪ שזה מביא למשהו כמו $1000 הוצאות עוד לפני שהרווחתי פרוטה. או להפסיד 1/2 מהכנסות או אופילו יותר.

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

פיתוח נוסף

אני משתמש במספר בסיסי נתונים זמינים:

  • OpenNGC זמין תחת CC By SA
  • בסיסי נתונים של קבוצות כוכבים שזמינות תחת GPL

שנהים דורשים פתיחת קוד המקור של האפליקציה, זאת אומרת אני צריך לעשות אחד משתיים

  • לבנות בסיסי נתונים בעצמי ע"י הצלבה של מספר רב של מקורות עם רישיונות יותר נוחים
  • לרכוש כאלה

הפיל שבחדר - אם האפליקציה לא הייתה חופשית האם היא הייתה מצליחה?

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

היום גיליתי עוד אחת ל־iOS שעושה משהו מאוד דומה (לא בחינם) ומסתבר שקיימת מ־2016! רק שלא שמעתי עליה וכמעט ואף אחד לא הזכיר אותה (וכבר שכחתי את שמה).

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

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

נגיד היא הייתה בכל זאת מצליחה האם זה רווחי?

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

אז למה בכל זאת עשיתי את זה?

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

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

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

לחבר שני תחביבים

ב־יום חמישי, 13 באפריל 2023, מאת ארתיום; פורסם תחת: תכנה חופשית, לינוקס, פיתוח, תכנה ומחשבים, CppCMS, C++‎‏, אסטרונומיה; ‏0 תגובות

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

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

אמרנו לינוקס?

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

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

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

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

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

אז הרמתי את דגל

בניתי פתרון ל־EAA עבור לינוקס ואנדרואיד ושמו OpenLiveStacker. והוא בנוי בצורה הבאה:

  • הקוד כתוב ב־C++‎ עם שימוש ב־OpenCV לצורך עיבוד תמונה
  • הממשק בנוי כ־web interface שמדבר ב־REST עם השרת - מה שמאפשר בניית ממשק בלינוקס ואנדרואיד באותה צורה וגם מקל על גישה מרחוק במקרה והתוכנה רצה על pi. כמובן שהשרת מבוסס CppCMS. מה שמאפשר חיבור קל ונוח בין הקוד שדורש ביצועים הגובהים לממשק משתמש.
  • הדרייברים נטענים דינאמית:
    • אחד עבור מצלמה גנרית עם פרוטוקול UVC על בסיס libusb/libuvc- שתומך במצלמות רשת או במצלמות כמו SVBony sv105 - אבל הוא מוגבל לצורכים אסטרונומיים
    • דרייבר של ASI ZWO - החברה המובילה בתחום, שעובד מול SDK שלהם. לצערי הדרייבר עצמו הוא קוד סגור, אבל יש להם גרסה לאנדרואיד.
    • דרייבר גנרי שיודע לקרוא קבצים מהספרייה איך שהם מגיעים - מה שמאפשר חיבור לכל מצלמה אחרת דרך כלים קיימים כמו indi/ekos.
  • לצורך תמיכה באנדרואיד יש אפליקציה קטנה שעוטפת את השרת ומנהלת גישה ל־USB (כי באנדרואיד הכל צריך להיות מסובך)
  • לצורך הקלה על התמצאות יש חיבור לתוכנה פופולרית מאוד בתחום אסטרונומיה: ASTAP שיש לה גם גרסה (קובץ ריצה) לאנדרואיד. הדבר המעניין בתוכנה הזו שהיא כתובה בפסקל! לא חשבתי שאתקל בדבר כזה בימינו.

מה למדתי?

  • בניית אפליקציות אנדרואיד זה די סיוט וזה לא בגלל השפה אלא בגלל שצריך ללמוד פחות או יותר הכל מ־0. מזל שרוב הקוד ניתן לכתוב ב־C++‎.
  • כמעט כל דבר באנדרואיד עובד "קצת שונה". למשל: אין לך ‎/tmp, להריץ exe חיצוני זה סיפור שעלה לי בלילה לבן, להביא קבצים עם אפליקציה זה גם לא משהו טריוויאלי. בקיצור. זה לינוקס, אבל לא בדיוק.
  • אני שונא לעבוד עם קוד סגור. אומנם ASI ZWO משחררים דרייברים לאנדרואיד, אבל הם גם הכניסו באג מעצבן שגורם ל־RTTI לא לעבוד! למעשה כל תכנת החיבור ל־SDK שלהם כתבתי ב־C+-‎ בגלל אי זמינות של RTTI. וזה לא היה משהו מסובך אם הייתי יכול לקמפל את הדרייבר מחדש הבעיה הייתה פשוט נעלמת.

שורה תחתונה

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

חצי שנה אחרי פיתוח אפליקציה AstroHopper, הידוע גם בשם SkyHopper

ב־יום שני, 6 בדצמבר 2021, מאת ארתיום; פורסם תחת: תכנה חופשית, אסטרונומיה; ‏0 תגובות

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

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

אבל מה שאני רציתי דווקא לדבר עליו זה המשוב שקיבלתי מהמשתמשים. עד היום רוב הקוד הרציני כתבתי לטובת מתכנתים עצמם: cppcms, boost, cppdb ופה ושם היו כמו פרויקט לקהלים פחות טכניים biditex, makeahmap אבל כולם בסופו של דבר עבדו דרך "קובץ הגדרות". לעומתם AstroHopper זהו היישום קוד פתוח הראשון בו באמת השקעתי בכתיבת ממשק משתמש גרפי. יותר מזה מדובר בממשק לטלפון נייד.

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

  • לשנות צורה של בחירת נק' איפוס
  • כיצד להקל על איפוס אחרי איפוס
  • לבטל כפתורים מיותרים
  • להתאים את ממשק למסכים קטנים
  • לשפר את תיבת החיפוש וההתנהגות שלה
  • לשנות בחירת הפרמטרים לתצוגה
  • אפשר שליטה על גודל הפונטים במפה (שהסתבר מאוד קריטית לאלו שמשתמשים במשקפיים וגם לי כי בלילה בחושך פונטים כגודלים יותר עוזרים)
  • לעשות איפוס על כוכבי הלכת ולא רק כוכבים ואפילו על גרמי שמיים עמוקים אחרים
  • גם עזרו בלעשות תיקונים ל־iPhone אפילו שלא היה ברשותי

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

יש עוד דברים שאפשר לשפר כמו לעשות zoom in-out בעזרת תנועת pinch שמסתבר לא כל־כך קלה למימוש. אבל בכל הסיפור הזה הבנתי דבר פשוט - שאולי יישמע טרויוואלי למי שמפתח UI למחייתו:

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

שורה תחתונה - זה אחד הפרויקטים היותר מיוחדים שעבדתי עליו; וגם אחד הקטנים בהיקף הקוד בצורה מפתיעה - רק כ־2,500 שורות הקוד כולל התיעוד!

מקוביות לכוכבים

ב־יום ראשון, 21 במרץ 2021, מאת ארתיום; פורסם תחת: תכנה חופשית, פיתוח, תכנה ומחשבים, אסטרונומיה; ‏0 תגובות

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

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

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

אז במה מדבור?

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

כלב גדול

אם רוצים למצוא קלאסטר M41 (שמסומן בעיגול צהוב) אז אפשר למצוא את סיריוס ואת אדרה ולכיוון את הטלסקופ למיקום של 1/3 ו־2/3 ביניהם. כמובן שזה דורש: (א) שבסביבת האוביקט שאתה מחפש יהיו כוכבים בהירים וקלים לזיהוי. (ב) שנקודות ייחסו יהיו קלות להערכה בעין. שיטה זו דורשת גם הרבה מיומנות וגם שמיים חשוכים יחסית כדי להקל על הניווט מה שלא תמיד מתאפשר בתנאי העיר.

ומה לגבי אפליקציות כמו SkyMap הרי הן יודעות לכוון אותך למקום הרצוי? הבעיה שלסנסורים של טלפון יש שגיאה המגיע עד כ־5 מעלות בערך בעוד ששדה הראיה של טלסקופ טיפוסי למתחילים נע בין 1.0 ל־2.5 מעלות. אבל זו רק חצי בעיה. השגיאה של המצפן יכולה להגיע עד עשרות מעלות. מה שהופך כל תוכנות הפלנטריום לא רלונטיות לכיוון מדויק של הטלסקופ אלא רק להערכה כללית של כיוון הצפייה.

אז עלה בראשי רעיון

אומנם הסנסורים לא מדויקים אבל לטלפון יש גם סנסור gyro. אפשר לקרוא אותם בעזרת Device Orientation Event ואז אם במקום למדוד את הכיוון האובסולטי למדוד את השינוי נוכל להגיע לדיוק יותר גבוה! גם בציר גובה בגם בציר הכיוון (מצפן)

כיוון שאני מעולם לא פיתחתי אפליקציות אז בחרתי לעבור עם WebApi ולממש הכל ב־JavaScript. בצורה זו אוכל בקלות לבנות אפליקציה גם ל־Android וגם ל־iPhone (כי הרבה חובבי אסטרונומיה אוהבים iPhoneים). בסה"כ מדובר בקצת גיאומטריה חישובית וגם בבסיס הנתונים.

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

כל מה שנשאר לי זה להמיר את ה־csvים ל־JSON להמיר כמה פונקציות חישוביות מ־python ל־javascript ולהסתבך בהרבה טרנספורמציות לינאריות. וכמון לכתוב גם UI נחמד.

אז הנה התוצאה: https://artyom-beilis.github.io/skyhopper.html לטלפון חכם בלבד.

וכמבו הנה הקוד: https://github.com/artyom-beilis/skyhopper

אז איך זה עובד?

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

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

כך הצלחתי למצוא מספר לא מבוטל של גרמי שמיים בתנאי עיר שבכלל לא חלמתי למצוא אותם לפני!

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

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

העמוד הבא

דפים

נושאים