ארכיון תגיות: תוכנה חופשית

ספריית ממשק לשולחן עבודה – nana pro

אני די מאסתי ב־Qt. הספרייה פותרת את כל הבעיות של שנת 2003 (ספרית STL חסרה וספריות רשת לא קיימת – למשל). ולא פותרת את הבעיות של שנות 2020 – איך אני משתמש מנהל חבילות כדי לקבל את הספרייה (לא נכון – כבר מתחיל להיפתר – גרסה 6 מתחילה לתמוך ב־cmake/conan). הפסרייה עושה פורק לחלק גדול מהדברים שב־standard c++ library – אני מבין את הצורך ההיסטוריה בפתרונות האלו – אבל כרגע אין בהם צורך. כמו כן – הספרייה מספיק גדולה וכדי להתחיל לחפש אלטרנטיבה. אז אני מחפש וכרגע אני בודק את nana-pro.

זאת ספרייה די וותיקה, והמטרה שלה היא רק לעשות ממשק משתמש – ולא להתעסק בבעיות רשת, או להמציא container חדש או string מחדש. היא משתמשת ב־C++‎17. אז אני בדקתי אותה.

הדברים הטובים:

  • הקוד אין לו תלויות נוספות (למעט libpng/libjpeg והם אופציונאלים).
  • יש דוגמאות באתר.
  • הקוד משתמש ב־cmake כדי להיבנות, אז קל להוסיף אותו בתור תת ספרייה בפרוייקט שלך.
  • אני הצלחתי להשתמש ב־FetchContent_Declare כדי למשוך את הקוד – פחות אידיאלי אבל שמיש (מתקמפל בלינוקס וחלונות). בעזרת conan הצלחתי להשתמש ב־libpng בלינוקס. היה קצת מלחמות בחלונות – אז נטשתי את הרעיון. אבל לפי דעתי פתיר.
  • הצורך להשתמש ב־C++‎ רגיל ללא תוספות … זה מרענן. אם כי ב־std::filesystem יש חוסרים (ביחס למה שאני רגיל מ־Qt). אפשר לכתוב פונצקיות עזר ולקוות שבעתיד זה ייכנס לתקן.
  • הצלחתי לכתוב תוכנית מלאה – ללא מחלקות. הכל כתוב בתוך main file. וזה קונסצפט מעניין. הצורך לבנות מחלקות עבור על פעולה במקום להשתמש ב־std::function הוא … מיושן (כן, אני יודע איך המימוש של lambda הוא בקומפילר).
  • כתיבה אל הממשק עצמו אפשרית מתוך כל thread.
  • יש להם thread manager ממש מגניב. למשל – לשים callback שירוץ ב־thread הוא רק לעטוף את הפונקציה שלך בפונקציה אחרת. ככה ה־callback שלך לא יחסום את הלולאה הראשית. (זה החלק הכי אהוב עליי בספרייה הזאת).

הדברים הרעים:

  • כשאתה מוסיף widget אל טאב למשל – הטאב לא מקבל עליו אחריות. במקרה שלי – אני עשיתי משהו בתוך callback, וכאשר ה־callback הסתיים ה־widget שלי נעלם כי יצא מה־scope. בסוף הפתרון היה לשמור את ה־widget החדש במערך גלובאלי.
  • הפקד של tab control לא ממש חביב עליי. אני לא יכול לבקש “תגיד לי מי מציג את T” (הפקד עצמו הוא מבוסס תבנית, אני השתמשתי ב־std::string בתור הבסיס שלו). בסוף חיפשתי בכל הלשוניות הזמינות. O(n) … אבל n הוא קטן לכן סתם מסריח.
  • הצורה שבה הם מנהלים את ה־layout מאוד ייחודית. לא בטוח שאני מחבב אותה – כי אין אפשרות ליצור משהו ויזואלי (זה מרגיש כמו לכתוב HTML אבל בלי שמות תגיות). יש עורך גראפי – אבל לא ממש “עובד בשבילי”. קשה לתאר.
  • הפקד טקסט הוא… איטי בצורה חסרת שימוש. אם אני גולל עם הגלגלת של העכבר – אני רואה את הפקד מגיב אחרי חצי שנייה ועוד גולל.
  • אין מספיק קוד זמין ברשת ללמוד ממנו, ולכן לעשות דברים מורכבים זה לימוד איטי.
  • הקוד בחלקו הגדול כתוב ב־headers ומשתמש ב־templates בצורה כבדה – וזה מקשה מאוד על הבנה של הקוד, וכשיש לך בעיות קומפילציה… לך תבין מה הבעיה באמת.
  • התיעוד מפוזר. יש את הפרויקט הראשי, ויש עוד חלק מצוות הפיתוח שיש לו תיעוד משלו. אתה צריך לעבור בין השנייה.

לסיכום:

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

אני שים את הקוד פה שכתבתי. אני כמעט בטוח שהקוד ייזנח. אני ממקבל pr אם מישהו רוצה.
https://github.com/elcuco/nana-ide

Share Button

ביי ביי WWW – ברוך הבא Gemini

לחלק מהאנשים נמאס מהווב, והחליטו לעשות לו ריבוט. כתבו פרוטוקול להעברת מידע חדש במקום HTTP (S) ותסדיר תצוגה חדש במקום HTML. הפרוייקט נקרא Gemini. הינה אתר הבית שלו בווב המיושנת: https://gemini.circumlunar.space/

יש שם הוראות התקנה לתוכנת “גלישה”, אני התקנתי משהו שהיה כתוב ב־go וזה נתן לי ממשק טקסטואלי. התקנה של שניות בודדת והתוכנה מגיבה מאוד מהר הפרוטוקול ממש.

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

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

אין מה לראות – תמשיכו הלאה.

Share Button

אתר נשבר – ושוחזר מגיבוי ישן

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

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

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

Share Button

העדכון הכי משמעם שיש

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

כמה שבועות אחרי – אני משתמש בדביאן ובאובונטו ב-wayland. והאמת? זה עובד בצורה שקופה ומשעממת כל כך שצריך ממש להתאמץ ולהבין שהיה שינוי מהותי במערכת. ולא רק זה – יש תמיכה מלאה לאחור תוכניות legacy (דוגמאות – AndroidStudio/IntelliJ או popcorntime שעובדות מעל X11 ולא Wayland).

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

כל הכבוד לצוות הפיתוח.

Share Button

פיירפוקס לסלולרי – מכה (וחבל)

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

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

אז התקנתי מהחנות של FDroid את Fennec ולאחריו את Firefox מתוך ה-PlayStore [1]. בגדול – המוצר עובד. והאפשרות להתקין תוספים (את אותם תוספים של השולחן עבודה!!!) מאוד קסמה לי.

  1. התקנתי adblock ו־Ghostery. הדפים יותר רזים, ועולים יותר מהר. מצויין על מכשיר חלש ובעל סוללה. טוב. מצויין.
  2. אם מאפשרים את כל הטלמטריה – הדפדפן מקרטע. אז הסרתי “שירות המיקום” ו־”Telemery” התוכנה עובדת טוב. לא טוב [2].
  3. בעת גלילה בדפים יש … תקיעה לאחר שני מסכים. לא טוב.
  4. כשאני חוזר לעמוד הראשון של המכשיר, אני רואה ריענון כבד וזה לוקח הרבה זמן. לא טוב.
  5. הדפים נטענים מאוד לאט. האם פיירפוקס לא תומך ב־HTTP2? האם כרום טוען חלק מהדף מראש…? אין תשובה, אבל לוקח לי שלוש עד חמש שניות לפתוח עמודים ואילו בכרום תוך שנייה העמוד פתוח. מוזר ורע.
  6. בתצוגה של כל הלשוניות (מה פתוח) יש שתי עמודות… וכדי לסגור לשונית/טאב/כרטיסייה צריך לזרוק הצידה… אבל יש רק חצי מסך ומאוד קשה לבצע את המחווה… בהגדרות יש “כללי – לשוניות צפופות” – נא לבטל ואז אפשר להשתמש בפיצ’ר הזה כמו שצריך. בעייתי.
  7. כאשר צופים בדך אינטרנט – הטקסט לא מקוצר לרוחב הדף אלא גולל. זה קורה למשל בפורומים של ואטסאפ וגורם זה שהפורום בלתי קריא. דוגמה שנייה היא בקיראה של קבצי text ושם אין ממש אשרות לעשות זום (דוגמה https://tools.ietf.org/html/rfc4180). רע.
  8. בחיפוש בגוגל – אני מקבל עמוד שונה (הכותרת נראות שונות מאשר בכרום). זה אומר שגוגל מניאקים ושולחים תוכן שונה, למראות שהדפדפן יכול להציג. וכן – אני לא היחיד שרואה את זה   (זהו היוצר של הדפדפן אופרה). [3]
  9. בחיפוש בגוגל – הלחיצה על חיפוש במקלדת (איפה שה־enter אמור להיות, ויש עליו זכוכית מגדלת) לא מתחילה את החיפוש. נוראי. רשימת באגים שאולי מתאימה:  1344153  1163985  751238 1174348

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

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

הערות:

  1. למעשה מדובר באותו הקוד, רק בנייה שונה. זאת של FDroid יותר קפדנית ולא רשמית. אני רוצה להעלות את המספרים של הגרסה הרשמית ולכן התקנתי מה־Play Store.
  2. לבטל שליחה של נתונים למפתחים זה רע מאוד. זה אומר שכאשר תהיה בעייה – אין להם אפשרות לטפל בה.כמו כן – אין להם מושג במה אתה משתמש ומה לא, וכך הם לא ידעו במה צריך לטפל.
  3. בואו נזכור שמיקרוסופט עשו להם אם זה פעם – http://www.operasoftware.com/press/releases/desktop/opera-releases-bork-edition http://www.wiumlie.no/2003/2/msn/
Share Button

אנדרואיד חופשי – לא באמת

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

אז, אני מנסה מחדש לנסות את AOSP בלי GApps, המכשיר שלי הוא Mako4 – נקסוס4. מכשיר ישן, אבל עדיין חזק ושימושי. הינה רשימה של תוכנות שאני משתמש בהן ביום יום:

  1. אני משתמש במרקט החופשי של FDroid. נכון, כמות התוכנות השוות שם ממש נמוכה…
  2. סנכרון יומנים ואנשי קשר, אל שרת OwnCloud בעזרת DavDroid
  3. פתקים, גם בעזרת OwnCloud. יש שתי תוכנות, אני משתמש בזאת
  4. אני צופה ב־RSS feeds שנמצאים בשרת OwnCloud שלי בעזרת: OwnCloud notes
  5. צפייה ב־YouTube אפשרית בעזרת NewPipe
  6. אימייל… בעייה. אני רוצה לראות את מה שנשלח לג’ימייל שלי. אבל גוגל … זונות. אז הם המציאו מנגנון אבטחה משלהם וכדי שיישומים רגילים יכלו להיכנס דרך IMAP עם ססמה כרגיל, צריך לסמן שאנחנו רוצים אבטחה נמוכה יותר:
    https://www.google.com/settings/security/lesssecureapps ברגע שמסמנים שם – תוכנות אימייל (K9Mail או התוכנה הרגילה של AOSP).
  7. ניווט: אין מנוס, יש רק OSMDroid והוא ממש רע.
  8. עבור Reddit אני משתמש ב־RedReader (האמת תוכנה ממש לא רעה מומלצת לכולם).
  9. לטובת צ’אט – אני משתמש כרגע בגרסה מתוקנת משלי ל־Conversations שכוללת תמיכה טובה יותר בעברית. אני צריך לתקן אותה ולבקש merge. התוכנה זמינה ב־FDroid.

מה אני מחפש:

  1. האם יש ל־Instagram איזהשהוא API למתכנתים…? האם יש יישום חופשי…?
  2. האם יש אפפ חופשי עבור Facebook?
  3. אני משתמש בתוכנה SMS & Call Log Backup לגיבויים. מה זמין שהוא חינמי…?
  4. יש כמה אפליקציות לא חופשיות (אבל חינמיות) שאני צריך.  אני כרגע מוריד מהאינטרנט את ה־apk מאתר http://www.apkmirror.com/‎‏‏ אבל אני מחפש משהו יותר מסודר. השתמשתי פעם ב־http://m.aptoide.com/‎ אבל אני לא יודע אם “כרגע” זאת התוכנה להשתמש בה. חשוב לי – שהתוכנה לא תדרוש רישום.

מה הבעיות שלי:

  1. אני משתמש כרגע בבנייה שלי של Cyanogenmod, אבל מחפש משהו אחר. כמה שיותר קרוב ל־AOSP.
  2. משום מה… ה־GPS לוקח לו המון זמן לקבל מיקום. משהו כמו… 20 דקות. לא כיף, והופך את הניווט למשהו לא אפשרי. מעניין מה GApps עושים כדי לתקן את הבעייה.

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

בתור בונוס לקורא – הינה מצלמה שמוצבת בחללית ומכוונת מטה – אלינו כדור הארץ. משדר ב־HD במשך כל היום. מדהים: https://www.nasa.gov/multimedia/nasatv/index.html#iss

Share Button

Atom – חרא של עורך

אטום הוא מתיימר להיות מחליף של sublime אבל הוא חרא בריבוע. איטי… דוגמאות:

  1. הוא לא יכול לפתוח קבצים בגודל 2 מגה ומעלה. קבצי C יכולים להגיע לגדרים כאלו בקלות.
  2. הגלילה שלו לא מהירה מספיק.
  3. התמיכה שלו בכל דבר שהוא לא ווב, היא פשוט דרעק. עריכה של קבצי bash היא … לא טובה.
  4. תפתחו קובץ עם 200 שורות, תבחרו באפשרות Selection -> Split into lines, תלחצו home, ואם התחביר שלכם הוא C, אז חלק מהשורות יהיו בתחילת השורה הלוגית וחלק בעמודה 0. לחיצה פעמיים על home לא תעזור לכם. אחרי 20 פעמים, תהיה exception והעורך לא יעבוד שוב.
  5. התוכנה פשוט מאבדת את הסמן מהר מדי… לא הבנתי איך אבל יותר מדי פעמים אני בפוקוס על החלון ואין לי סמן. רק לחיצה על החלון פותרת את זה.
  6. תפתחו XML עם 500 שורות. סמנו 500 שורות. שוב Selection -> Split into lines עכשיו תנסו לשנות משהו. העורך פשוט איטי בטירוף.

עצוב. מאוד.

Share Button