ארכיון הקטגוריה: המקור

רשימת פוסטים שיוצגו בפלנטה של המקור

מטבע קריפטולוגי ידידותי לסביבה – Chia (לא) – חלק שלישי

אז הטריק ידוע עכשיו: יש לנו מחשב שמייצר חלקות מהר ובעצם ממלא דיסקים בקבצים חסרי משמעות. כשהדיסק מתמלא – מעבירים אותו למחשב שעושה את הגידול (farming) וכן הלאה. בינתיים – אפשר בעזרת nfs/samba לשתף את הדיסק לפני שהוא מתמלא למחשב שעושה את הגידול. באופן תיאורתי, ככה אנחנו ממקססים את החומרה שלנו. יש לנו זמן מת, מרגע שהדיסק התמלא ואנחנו ממעבירים אותו למחשב השני, ומכניסים דיסק חדש … אבל הוא זניח. אפשר לגרום למחשב לשלוח הודעה ב-slack או משהו, בעייה פתירה. יש פתרונות מבוססי רשת, אבל הם מצריכים ציוד רשת של מלנוקס, אז שוב – לא ניכנס לזה.

הבעייה היא: שזה כבר לא כלכלי.

חישוב כלכלי באוויר

  1. נניח שאני יכול ליצר חלקה בשעתיים.
  2. ביום זה נותן לי 10 חלקות. זה בערך טרה ליום.
  3. לפי https://chiacalculator.com/ אם יהיה לי 300 טרה (בפוסט הראשון נתתי קישור לדיסקים – כמה יעלה כל ה-setup הזה?), אני אקבל צ’יאה תוך חודש.
  4. כדי למלא 300 טרה, אני צריך בערך 10 חודשים. בוא נגיד חצי שנה, כי אני אופטימי שעיגלתי למעלה בשלב 1,2.
  5. אבל… אז הרשת תגדל באופן ליניארי – ואז כדי לקבל עוד חצי שנה צ’יאה תוך חודש, אני אצתרך 350 טרה.
  6. זה אומר שהרשת גדלה יותר מהר ממה שאני יכול לגדול.
  7. כמו כן – הגדילה שלי פירושה דיסקים. כל דיסק זה בערך 1000-2000 ש”ח. אם אני צריך 300 טרה, זה אומר בערך 15-20 דיסקים, ובערך השקעה של 30,000 ש”ח – כדי לקבל צ’יאה בודדת בחודש.
  8. המחיר של צ’יאה חודש אחרי הפרסום של המטבע היה 1600 דולר. כיום הוא מתחת ל-200.
  9. זה אומר שיש לי חומרה בשווי 30,000-50,000 ש”ח, שמניבה לי (כיום, המחיר עוד יירד, או יעלה… ) 800 ש”ח בחודש (מחשב שייצור את ה-plots יהיה בין 7000-8000 ש”ח, ואז כל דיסק 1500 ש”ח… ואז רספברי פאי ומלא מתאמי USB יקרים… שווה לשים אל פסק..). זה ללא העלות של החשמל, או הביטוח.

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

העתיד

העתיד של צ’יאה הוא עגום. בתוך חצי שנה יצירה של חלקה ירד מ-12 שעות אל דקות בודדות. לא רחוק היום שבוא אנשים ימקבלו יצירה של חלקה בעזרת GPU ואז בכל פעם שהרשת שולחת challenge אני תוך 10 שניות אצור plot מקומי שעונה על ה-challenge ואז אני אוגרל לקבל chia, ואם לא? אז אני אייצר on the fly יותר plots ובסוף אני אנצח. הפכנו את הבעייה של storage אל בעיית compute מחדש ויצרנו מחדש את הבעיות שהיו בביטקטיון, שאותן ניסינו לפתור. וזאת הסיבה שכל הפוסטים האלו מסתיימים ב”לא” – המטבע הזאת הוא פשוט כישלון.

מה שיותר מעיק לי זה הפיתוח העסקי של החברה שמייצרת את המטבע. יש להם כלי מטורף שיכול באמת לעזור לעולם (יש להם רשת של 32 PB שזה 32*10^15 בתים, זה כבר סדרי גודל של data center). הם יכלו למנף את זה כדי להחזיק תוכן – למשל, הסרט הבא של פיקסר יוצא? אין בעיות, בוא נפזר אותו ברשת אחסון הזולה שלנו. במקום, הדיסק שלי מלא במספרים אקראיים וחסרי שימוש.

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

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

Share Button

מטבע קריפטולוגי ידידותי לסביבה – Chia (לא) – חלק שני – איך מייצרים?

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

צריך לקנות דיסק USB – מהר

נזכור, כדי לחרוש חלקת צ’יאה, צריך דיסק SSD מהיר. ככה נייצר חלקות יותר מהר, ונדביק את הפעם (מתמתיקה בהמשך). אבל הדיסקים יקרים ודי קטנים, אז הפתרון הוא: מייצר על דיסק SSD – ולטובת הגידול עצמו (farming) נעביר את החלקה אל דיסק מכאני. אם משתמש בחיבורים SATA אנחנו מוגבלים אל 3-4 דיסקים במחשב, ואם רוצים להעביר את החלקות למחשב אחר לטובת הגידול (תזכרו, זה מה מכניס את הכסף) – צריך לכבות את המחשב. אז הפתרון הוא – דיסק USB חיצוני. הם די זולים ונגישים. כל עוד להעביר את החלקה המוכנה לוקח פחות מהיצירה שלה – אפשר למקבל (אני חורש חלקה, ומייד מתחיל לחרוש אחת חדשה, את הישנה במקבל אני מעביר לדיסק החיצוני). כל עוד ה-output שלי יותר גדול מה-input לא תהיה בעייה.

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

אפשריות אחרת

יש אנשים שהתחילו ליצור את החלקות על RAM בעזרת tmpfs. זאת אפשרות מצויינת – כי לא תהרוס דיסקים כלל, והיא מאוד מהירה. נכון לכתיבת שורות אלו , מישהו הצליח לייצר חלקה ב-8 דקות ובכבר יש אנשים שמכינים חלקה בדקה. נכון, אתה צריך 120-150 ג’יגה (!) RAM… ולוח אם מתאים… או מערכת עם 250 ליבות… וזאת מערכת של כמה עשרות, או מאות אלפי שקלים. בוא לא נחזור לזה.

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

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

Share Button

חלונות 10 – עובד בצורה מפתיע לטובה

קניתי מחשב חדש (Lenovo X13)… טוב, משומש. זה מחשב לצרכים פרטיים וחוק מור כבר לא עובד… אין צורך דבר הכי חדש כדי לעבוד. המחשב הגיע עם דיסק קטן (256 ג’יגה בלבד), ולכן החלטתי לא לפצל את הדיסק, ולהמשיך לעבוד עם חלונות 10. האמת, אני מופתע שה-desktop הזה לא כזה גרוע, לאחר כמה שנים טובות (מאוד) שאני לא משתמש במערכת הזאת בתור מערכת ראשית.

הוא מתחיל להתקרב לרמה של KDE/Gnome/OSX. לא רע.

  • השימוש ב-aero snap עם המקלדת, ממש נוח. היה חסר לי ב-GNome וזה קיים ב-KDE או חלונות 10. הרעיון הזה לא קיים ב-OSX, כי המערכת הפעלה כבר רוצה להכתיב לך לעבוד במצב טאבלט.
  • יש סוף סוף virtual desktops. כדי להפעיל את זה, צריך ללחוץ פעם ראשונה windows+tab ואז להעביר חלון עם העבר לשולחן עבודה המתאים. אחרי זה control+windows+left/right יעביר אותנו בין השולחנים עבודה.
  • אני אישית מאוד אוהב את הרעיון של WSL1, זה בדיוק anti-wine. המימוש הוא מעולה… אבל, תקועים עם ה-IO הנוראי של חלונות… אז המציאו את WSL2 שהוא בעצם סתם מכונה וירטואלית (ככה ה-io מבוצע על ידי הקרנל של לינוקס, על רצף של דיסק אמיתי). אבל! בנוסף – כל ה-rootfs של לינוקס זמין בתור “כונן רשת” בסגנון samba. ממש נוח! (עוד בהמשך).
  • סוף סוף יש מסוף נורמאלי – Windows Terminal. אני התקנתי אותו דרך החנות שלהם (איזה צעצוע חסר שימוש זה…). אחרי התקנה של WSL2 , התוכנה באופן אוטומטי הציגה לי אפשרות לפתוח מסוף “אובונטו”.
  • והינה עוד משהו על WSL2 – בעיקרון, זה מנגנון להפעלה של תוכנות מסוף… אבל הרבה פעמים צריך תוכנת GUI (למשל, אתה בונה את SerenityOS ורוצה לבדוק אותה עם QEMU) – אפשר להפעיל מתוך לינוקס את QEMU של חלונות, וכיוון שיש מיפוי של ה-rootfs – שכבת ה… נקרא לזה תרגום, אם כי זה לא בדיוק נכון כאן, תיתון לתוכנת חלונות נתיב חלנאי לקובץ “לינוקס” שביקשת. עובד בצורה שקופה! (אני אכתוב פה על SerenityOS בקרוב, מבטיח).
  • בגלל שיש הפצות חלונות אחד (?), העולם מתמודד טוב עם המערכת הזאת… וחלק גדול מהדברים עובדים בצורה חלקה למדי. למשל – התקנתי clion והוא מגיע עם mingw משלו ועם ninja/cmake וכאלו. זה אומר שמהקופסא אני יכול לקמפל לחלונות. אבל – בלחיצות קטנות, הצלחתי לשכנע את clion להשתמש ב-wsl2 כדי לקמפל את התוכנה שלי ללינוקס. יש פה קצת וודו שלא הבנתי איך הוא עובד, אבל! ואו… זה עובד חלק! (עדיין לא הצלחתי לדאבג, אני כנראה חוסם פורטים או משהו כזה).

הבעיות:

  • נו, טוב, זה חלונות. אתה חייב אנטי-וירוס, כי המערכת פגיעה. יש את Windows Defender ואני נשאר איתו לטוב ולרע. עדיף מאשר נורטון.
  • המעבר בין מקלדת עברית ואנגלית מתבצע על ידי windows+space. אני ראיתי את זה ב-OSX לראשונה, ואז התחלתי להשתמש בזה תחת GNome. האחידות בין מערכות ההפעלה נוחה.
    מה רע? בחלונות, לפעמים צריך לחכות חצי שנייה אחרי שינוי המקלדת, אבל התוכנות (בעיקר פיירפוקס) מתחילים להקליד אות ראשונה באנגלית, ורק אז בעברית.
  • אני וויתרתי על כל הפרטיות שלי. חלק גדול מההתקנות של חלונות, לא מאפשרות ליצור חשבון מקומי – ומצריכות חשבון Live בזמן ההתקנה. ראיתי את זה בהתקנה של חלונות 10 שהורדתי ללנובו ישן שיש לי בבית (T440… מחשב לא רע יחסית לגיל שלו!), אבל במחשב הזה (X13), אחרי איפוס – יכולתי לעשות חשבון מקומי. אולי זה משהו שקשור בהתקנה המקורית של לנובו, לא יודע.
  • אני בטוח שהמחשב הזה יהיה יותר ביצועיסט תחת לינוקס. הוא יתחמם פחות, והסוללה תחזיק יותר.
  • המערכת פשוט שורצת חרא שלנובו התקינה כאן. חלק מהן חובה כדי להתקין חלק מהשידרוגים (למשל ביוס, לא מגיע דרך Windows updte). מצד שני – אין מנגנון טוב בלינוקס “להתקין את עדכוני הביוס של לנובו” (יש מנגנון מעולה לשיגרוג של חומרה חיצונית שמותקנת, למשל keyboard dongle של Logitec יש להם עדכונים אוטומטים מתוך GNome, ראיתי את זה קורה).
  • המערכת פשוט שורצת חרא שמיקרופט התקינה כאן. אני לא מדבר רק על מיינקראפט או אנגרי בירדס בתפריט התחלה… אלא קורטנה שמדי פעם מופיע. אני לוחץ על איזה קיצור שמפעיל את זה… ואז אני מקליד לתוכה במקום לדפדפן… ואז הבעיות של מעבר שפות במקלדת. עדיין לא הבנתי מה קורה.

Share Button

Whatsup – שאלות קיומיות לקראת 20 שנה מאז עלה לאוויר

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

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

  1. האם באמת צריך את האתר הזה? כמות המשתמשים והתוכן החדש הוא זניח יחסית. הרב המוחלט של האנשים עבר לשימוש בפייסבוק או דיסקורד או טלגרם להפצה של מידע. זמנים משתנים – והצורך של הקהילה משתנה גם.
  2. מצד שני – האתר הזה מהווה שופר של פתיחות. אנשים יכולים לכתוב בו ללא רישום, וכל המידע בו נגיש – גם . זה אומר שבו תמצאו תשובות, וגם מנועי חיפוש ימצאו בו תשובות.
  3. כדי שהאתר ימשיך להתקיים במאה ה-21 הוא צריך להתקדם. צריך לאפשר לאנשים להתחבר גם עם חשבון גוגול, אפל, פייסבוק וכו. העיניין של ססמאות הוא עתיק. האתר גם מצריך ממשק סלולרי (משהו שאני התחלתי לעשות, וזה סיפור בפני עצמו, אבל לא לעכשיו). כל זה מצריך המון עבודה שחורה, ואין אפשרות ללממן אותה.
  4. תיקון של האתר לא אפשרי. האתר התחיל בתור phpbb גרסה כלשהי – אבל הוא כרגע פורק משמעותי ממנו. כדי למנוע פריצות – מאיר סיפר כמה פעמים שכל ה-fs בעצם mounted RO. כמו ה-custom modifications במערכת – היא עצומה.

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

אני גם מקבל בהבנה אם המנהלים של האתר יחליטו שאין צורך באתר הזה בשנת 2022. העולם משתנה – וגם הצורכים של הקהילה. ״מי הזיז את הגבינה שלי״ וכאלו.

Share Button

כנס Core C++

שבוע שעבר היה כנס Core C++ <Local>‎ והיה לי הכבוד להיות שם. האמת? מאוד נהנתי. האוכל היה מעולה (היי דפנה, תודה שעזרת עם הדיאטה!) פגשתי כמה אנשים נחמדים (ערן, שנים שלא התארנו… כיף לראות אותך!). היו עם עמיתים לעבודה שראו אותי לייב לראשונה (ככה זה העולם בימינו, חלקנו הגדול עובד ב-remote). אני חושב שאחת ההחלטות הכי חכמות הייתה לעשות הפסקה של 30 דקות בין ההרצאות – לא הרגשתי לחץ לרוץ בין מסלולים כמו בכנסים אחרים שהייתי בהם.

כמה ההרצאות שהייתי בהן ומאוד נהנתי:

  • The many faces of Number <–> String conversions של Dvir Yitzchaki – יא אללה… איזה סיבוך. האיש במשך במשך 30 דקות מסביר 4 שיטות להמרת מסתרים אל טקסט ולהיפך. כל אחת גרועה בצורה אחרת… מה הפלא שהשפה מפחידה אנשים. כאמור – מרתק! (האמת אני רוצה לכתוב פתרון אחר לשאלה שמרכזה הרצאה הזאת)
  • C++17 key features – של Alex Dathskovsky – הרצאה מעולה. כל שקף פיפס קטן ומועיל. כל שקופית היה כיף לקרא!
  • C++ 20 Overview: The Big Four – של Pavel Yosifovich – ההרצאה הייתה ארוכה, ובקושי הספיקה לדבר על מה שעינין אותי (אני מחפש מידע על modules). אבל הוא הסביר בצורה מעולה מה זה co-routines. הדוגמא שלו הייתה פשוט מעולה והסבירה לי סופית מה זה הפי’צר הזה. החלטתי להבין איך לממש את הדוגמא שלו בעזרת C++17… והבנתי.
  • opt-viewer: Inspecting compiler optimizations in high-level code של Ofek Shilon – המרצה מעולה. אהבתי את קצב הדיבר המאוד איטי שלו, האיש מאוד מפוקס והוא מאוד סיקרן אותי! (מה גם שהוא עשה חיקוי מעולה של לינוס!). הוא הסביר גם על מיקרו אופטימזציות שהקומפילר מפספס, והאמת, השאיר אותי עם פה פעור. כל הכבוד!

וכמובן – ההרצאה של Bjarne Stroustrup. האיש פשוט חד, מלא ביקורת ולא דופק חשבון. למשל כשנשאל על הדיאלקט של Managed C++‎ שיש ב־C#‎ הוא פשוט ענה שהדיאלקט צריך להיכשל. היו לו ירידות קשות על ג’אווה (תמיד מטרה נוחה) והוא הפתיע בדברים שהוא כן היה מעוניין שיקודמו. למשל stable abi וקצת יותר tooling כמו build system + package mangers. משום מה חשבתי שהוא יהיה נגד. הוא מודע לטעות הגורלית שנעשתה – והיא לעשות את השפה המשך של C, אבל הוא שלם איתה ולא מתכוון לחזור בו. אמרה לטעמי מאוד חזקה – לאמץ את החולשות.

אני מחכה לווידאו של ההרצאות וקישורים לשקופיות של כל המרצים. יש מלא תוכן שלא עבר (למשל מרצה עם שקופיות שכללו טקסט קטן מדי) או הרצאות שנאלצתי להפסיד,C++ Integer Promotion is Completely Broken של שחר שמש נראית מעניינת, וגם Modern Design Patterns with Modern C++‎ של Muhammad Zahalqa (אני לא הולך לנסות לכתוב את השם שלך בעברית, אני אטעה באיות… סליחה).

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

(הפוסט כנראה יעבור עריכה כשאני אנמצא את השקופיות וקישורים לאתר של האנשים… תרגישו חופשי לכתוב מה פספסתי בתגובות… או כמה שגיאות כתיב יש לי)

Share Button

מטבע קריפטולוגי ידידותי לסביבה – Chia (לא) – חלק ראשון

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

הסבר על המערכת ממבט 1000 ק”מ

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

אתה בתור לקוח של הרשת, יש לך שדות שבהם אתה מעבד/מגדל צ’יאות (farming). כל חלקה (plot) היא בגודל k=32 (בפועל 100 ג’יגה ביית, כן, הגדלים פה עצומים). אתה חורש (plotting) חרשה ובו נשמרים הרבה אתגרים. פעם בחצי שעה, אתה מקבל אתגר ומחפש אותו בשדות שלך. זה עבודה די טריויאלית שלוקחת לרספבריפאי בערך שנייה או שתיים, יש לך 30 לענות. אמלק – כל מחשב הכי ליפה בעולם מתאים לגידול (farm).

כיוון ההגרלה מתבצעת בתדירות קבועה, ואתה יודע מה הגודל היחסי שלך מהרשת – מקובל לחשוב לא על ההסתברות שלך לזכות בצ’יאה, אלא “כמה זמן עד שתקבל צ’יאה”. אני למשל נמצא על שלוש שנים, עם 65 חלקות, דיסק חיצוני מלא.

הטכניקה של החרישה

כשהרשת יצאה (אני תפסתי את זה חודש לאחר הפרסום הרשמי), באמצעות הקוד הרשמי על המחשב הנייד שלי, הצלחתי לחרוש חלקה אחת של k=32 בגודל 100GB במשך 9 שעות. לאחר חיבור לרשת, קיבלתי תשובה שאני אקבל צ’יאה עוד 10 שנים.

התיאוריה באותו זמן הייתה: אתה חורש אל דיסק ssd, הורס אותו תוך כדי (יצירת החלקות כותבת המון אל הדיסק ולא פעם אחת פר חלקה) – אבל ברגע שאתה חורש חלקה, אתה מעביר אותו על דיסק מכאני עמיד ואתה משתמש בדיסק המכאני כדי לגדל/לעבד (הדיסק המכאני בשימוש לקריאה בלבד, ואין לו צורך להיות מהיר למדי). בזמן האחרון יצא כלי חדש של mad max שמאפשר לחרוש במהירות. על המחשב שלי, הכלי המקורי בפייתון היה נותן תפוקה תוך 9 שעות, ואילו החדש שכתוב ב-C++ נותן תוצאות אחרי 90-120 דקות (היי ארתיום, מה נשמע? אתה מקדים את כולם). הכלי הזה גם צורך כמה MB של זכרון RAM במקום GB, דבר הפותח אפשרויות רבות.

למשל, על מחשב/שרת xeon שיש בבית שלי, הצלחתי לחרוש באמצעות mad-max ב-12 שעות (מדובר על דיסק עם חיבור sata ולא nvme והמעבד ישן). ניסיתי שוב על הפאי שלי (פאי 4, במקור חלקה ב-72 שעות, עם הזכרון מפוצץ) – וקיבלתי חלקה תוך 25 שעות, (רב הזכרון היה פנוי!). על הנייד שלי (עם חיבור nvme – תזכורת) חרשתי במקביל שתי חקלות – וקיבלתי היפר-פררללזיצה: החלקות עכשיו עבדו תוך 80 דקות כל אחת! אבל, המחשב התחמם. ממש, ההייתי צריך להרים אותו (שיקבל אוויר קר, ולא מהשולחן) העברתי אותו לחדר אחר והטמפ’ ירדה אל 80 מעלות במעבד. המקלדת של המחשב הייתה בכמה מקומות 43 מעלות (לכל אחד בימינו מד חום דיגיטאלי, לא?) – אי אפשר היה לגעת בו, והוא הוציא ריח של אלקטרוניקה חמה.

מסקנה

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

בהמשך נתחיל להבין כמה המטבע הזה כלכלי וכדאי.

Share Button

ההפצה הכי מגניבה – qubes os

החלטתי לשחק קצת עם הפצות, ומצאתי את ההפצה QUBES OS. האתר בית שלה הוא כאן: https://www.qubes-os.org/ . היא מיועדת בעיקר לאוהבי פרטיות… אבל יש בה מלא טריקים ממש מגניבים.

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

המערכת בגדול היא Fedora/RedHat (הם קוראים לזה כאן dom0) שמעליה עשו מלא תפירות כדי שכל ה-Guests יעבדו בצורה שקופה (הרב המוחלט של הדברים הוא גרפי לגמרי כאן, וזה מדהים!). הסביבת עבודה היא XFCE אבל יש אפשרות להתקין גם KDE שם… אבל, בכל אחד מה־qubes אפשר להתקין את כל התוכנות שאתם רוצים. נו, virtualized environments FTW. הכל מבודד אחד מהשני!

הדברים המגניבים

  1. כשמחברים התקן – יש חלון שמציג מה התחבר. כמו ב־Windows… זה היה חסר לי האמת.
  2. כל qube הוא מנותק מהחומרה לגמרי. ואז צריך לעשות pass trough כדי לקבל גישה אליהם (למשל אני צריך USB serial להעביר לפרופיל עובדה כדי לצרוב חמורה, או להעביר את המצלמה אל הדפדפן וכו’).
  3. חלונות של כל qube יש להם מסגרת בצבע שונה, צהוב, ירוק, כחול וכו’. מאוד עוזר להבין מה שייך לאן.
  4. dom0 אין לו גישה לרשת בכלל! ככה שאם יש בעייה – המחשב ימשיך לעבוד. שהוירוסים יהרסו מכונות מדומות ולא את המערכת הראשית. גאוני.
  5. בגלל הקטע של ריבוי מערכות הפעלה – לבדוק הפצה חדשה זה … פשוט מיידי. ב־qube הפרטי יש לי Debian ובעבודה Redhat/Fedora (אני אפילו לא יודע, ולא מעניין… זה פשוט עובד!)
  6. ה־clibpboard הוא… מעניין. אתה מעתיק משהו, וזה מגיע אל dom0. ואז אתה יכול לדביק אותו אל qube מסויים והוא נמחק מ־dom0, בתוך אותו qube אתה יכול להדביק כרגיל, כמה פעמים שתרצה. (זה קצת מתסכל כי אתה צריך להדביק קודם כל אל המכונה, ואז ללחוץ שוב על קיצור מקשים שוב כדי להדביק בתוכנה). אבל – הם פתרו את הבעייה הזאת בין מכונות ויאטואלית!
  7. המערכת קבצים פה מבוססת volumes ולא מחיצות כמו שיש בעולם ה־PC . זה אומר שאם ב־qube הפרטי נגמר לי המקום (כברירת מחדל הם מקצים כמה ג’יגות בודדות לכל מערכת), תוך כדי ריצה אפשר להדגיל את ה־rootfs של המערכת. לא מצריך reboot של ה־guest/qube.
  8. בכל מקום אין ססמאות root. אין בזה צורך. המחשב יש לו ססמה כשהוא עולה (הצפנה של דיסק) ואז ססמה של משתמש. הקשת ססמת sudo עבור container פשוט מיותר.
  9. כברירת מחדל המחשב משתמש ב־XFCE וב־xscreensaver. וזה אומר שכשאני פותח אותו מיידית אני רואה את מסך הנעילה (במקום שנייה ב־GNome או KDE). כמו כן – אני מזכיר שהיו בעיות בנועלי מסך בשנים האחרונות: https://www.jwz.org/xscreensaver/toolkits.html

הבעיות

  1. הממשק של dom0 הוא XCFE, בעבר השתמשו ב־KDE אבל החליטו לעבור. אני צריך קודם כל להבין איך משתמש ב־KDE כאן (או גנום האמת, אני משתמש בה המון) – ואז להבין למה הייתה החלטה לעבור מזה.
  2. התמיכה במקלדת שהיא לא אנגלית בכל qube … בעייה. אין להם אפשרות לעבור את המקלדת של dom0 אל ה־qube.
    https://github.com/QubesOS/qubes-issues/issues/1396
  3. צריך להודות באמת…dom0 הוא מימי הביניים. ההפצה שיושבת על הברזלים עצמם, היא קצת ישנה…(Fedora 25) ואצלי היא עשתה “אופס” והייתי צריך להפעיל מחדש כדי לקבל רשת.
  4. לא יצא לי למדוד… אבל צריכת הזכרון והסוללה (!) יותר גבוהות מהפצה פשוטה.
  5. הפעלה של תוכניות בתוך qube חדש, לוקחת כמה שניות. אחרי שה־qube עלה זה מתנהג טוב.
  6. אין אפשרות להפעיל ווידאו במסך מלא. יש חוק בל יעבר במערכת הזאת, שאין חלון שתופס את כל המסך. זאת הסיבה שבגללה אי אפשר לצפות בווידאו בצורה נורמאלית במערכת הזאת. (וזאת הסיבה שמחקתי בסופו של דבר).

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

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

Share Button

ספריית ממשק לשולחן עבודה – 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

המסע אל אנדרואיד – חודשיים עם /e/ – מה לא עובד – חלק 15

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

  • העורך החדש של וורדפרס ממש מעצבן. הוא מנסה להמציא את עצמו מחדש על ידי זה שמציג לי עמוד לבן … מה הקטע? הרי גם ככה אתם מגבילים את איזור העריכה על “פיפס קטן באמצע המסך שלי”.. אז למה לא לשים שם את סרגילי העריכה שאני אדע מה לעשות? (לא קשור, אבל הייתי חייב להוציא מהמערכת)
  • ה־Launcher שמגיע כברירת מחדל הוא bliss. הוא פשוט מאוד, ומנסה להידמות לאפל. זה לא רע, אבל לא מצאתי בו דרך איך לשנות את הרקע. אז החלפתי אל Lawnchair. התקנתי את הגרסה מה־Google Play, כי הגרסה שב־F-Droid ישנה (אולי? זה לא ממש מובן לי).
  • אני תקוע עם שלוש חנויות שונות, וזה ממש מצב דפוק:
    • החנות ברירות המחדל של /e/ שנקראת “Apps”. היא טובה כי היא system application ולכן יכולה להתקין תוכנות בשקט (וגם לשדרג ברקע). אבל, התוכן שלה הוא נוצר ידנית על ידי הצוות ולכן לא הכל מוצג שם.
    • F-Droid, כי אני באמת סומך על החבר’ה האלו.
    • Aurora (מותקן מתוך FDroid), כדי להתקין דברים אחרים. מה גם, שבחנות המקורית אין תמיד את הגרסה האחרונה.
  • היומן המקורי שמותקן הוא fork של Etar, וזה בסדר. אבל, הוא לא כולל widget לשים בעמוד הראשי (אני משתמש בזה לדעת מה הלוז שלי להיום).
  • EBay, האפליקציה, מקריסה את microG ולכן לא שמישה כלל.
  • Out of milk לא רוצה להתחבר כלל לחשבון GMail שלי. בסוף הפעלתי עם חשבון חדש – עם המייל של /e/.
  • Netflix לא מצליחה לשדר אל ה־chromecast שיש לי בבית. אבל עובדת מצויין למעט זה (בניגוד למה שכתוב ברשת). התקנתי דרך Aurora Store.
  • התוכנה לניגון מוסיקה (Music שהיא פורק של eleven) אחרי פעם אחת של השמעת שיר, היא די נתקעת ולא משמיעה מוסיקה שוב. סוגר אותה בכוח ופותח – והיא עובדת שוב.
  • התוכנה לקבלת SMS היא פורק של QKSMS (זמינה ב־F-Droid וב־PlayStore). היא עובדת. אין תלונות.
  • יש דפדפן מובנה כאן. לא טרחתי איתו. המשכתי ישירות אל פיירפוקס. הוא עובד בצורה שקופה. מעיין שהוא מציג כברירת מחדל מנוע חיפוש שלהם – לא חקרתי מה זה).
  • בפוסט קודם כתבתי על יישומי GMail צד שלישי. בסוף עברתי חזרה אל Bluemail כי הוא מתחבר גם ליומנים של גוגל (רואים אותם דרך Etar שדיברתי עליו מקודם).
  • הפתעה נעימה (מאוד!) היא אפליקציית ניווט מובנית שנקראת Magic Earth. היא משתמשת באחורי הקלעים ב־OSM וזה המימוש הכי טוב שמצאתי למנוע הזה. היא זמינה לאפל (מוזר… מעכשיו זה זמין גם למחשבים!) וגם לאנדרואיד. התוכנה היא לא תוכנה חפשית, אבל למרות זאת אני ממליץ עליה.

לגולש ברוך שכתב פה הודעה בפוסט קודם:

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

הבעייה שלי היא … המסביב. איך מגבים Whatsup. איך מוחקים/מאתרים מרחוק את המכשיר כשהוא נאבד. התמיכה ב־Chromecast היא חסרה לי. השלוש חנויות שאני נאלץ להתמודד איתן זה מעיק.

Share Button