ארכיון הקטגוריה: ביקורת חודשית

שעונים חכמים חופשיים

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

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

המיזם זמין בכתובת https://open-smartwatch.github.io . יש תרשימים סכימטים, קוד למערכת ההפעלה, קבצים למדפסות תלת מימד ועוד. יש גם חנות שבה אפשר לקנות את החומרה מוכנה – https://www.makerfabs.com/open-smartwatch.html . אני לא ממליץ – זאת הגרסה הראשונה שנראית מגעילה. הגרסה השקופה, בצבע שחור נראית לי הכי יפה, אבל גם הגרסה הלבנה (הדקיקה עם המסך ה”רגיל”) נראית משהו בהחלט שמיש.

רב התיעוד שמצאתי נמצא בווידאו הזה: https://www.youtube.com/watch?v=a6kkrQ26h_4 . נראה שפשוט צריך לבנות את הדבר הזה בעצמך נכון לעכשיו, זה מצריך גישה למדפסת תלת מימד בשביל המארז עצמו, להזמין כמה חלקים מדוד עלי, כלי הלחמה וסבלנות. חומרי הגלם עולים בערך 300₪. אם מישהו קונה ורוצה לבנות לי אחד – צרו קשר!

Share Button

Raspberry PI – פשוט מגניב

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

בתמונה אמנם יש דונגל של לוג’יטק אבל, זה היה לצורך ה־bringup הראשוני. מעכשיו, זה מחשב רשת לכל דבר. (אין לי מושג מה זה החיבור השני… הגיע עם המחשב…).

סתם אני מתלהב, אפשר להמשיך הלאה (יש לי עוד אחד בבית RBPI4 עם 8GB RAM שמשתמש אותי ל־retropie…

Share Button

SerenityOS – מערכת ההפעלה הבאה – שלא תהיה

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

מה שמעניין פה, זה שבנו ממשק דמוי Windows 98, 2000 על בסיס קרנל פוסיקס (כמעט) תקני – אבל הכל עם twist מודרני. למשל, כל ה־man pages כתובים ב־markdown. כל קבצי ה־sys של המערכת (כן גם שם יש sysfs) מחזירים json. מה שיותר מעניין אותי – זה שחלק גדול מהמערכת מפותח לייב- זה אומר, אנשים מצלמים את עצמם מקודדים ומוסיפים פיצ’רים או מתקנים באגים (בעיקר אנדראס עושה את זה, אבל גם לינוקס וגם פיליפ יש להם ערוצים).

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

  • ליבה חדשה, שנכתבה מאפס. לא עוד מעא מערכת הפעלה שהיא מחזור של כלי GNU מעל לינוקס, עם ממשק משתמש חדש.
  • הקוד כולו כתוב ב־C++‎ מודרני. כמה מודרני? C++17 וכמה נגיעות של 20. בגדול – משתמשים ב־toolchain שמשמתש ב־gcc הכי חדש. חלק ממערכת הבנייה של מערכת הפעלה עושה bootstrap ל־cross compiler.
  • המערכת בגדול, לא משתמשת בשום ספרייה חיצונית – 0 הכל home baked. אין 3rd parties והכל ב־mono repo.
  • מימוש מחדש של libc (מצחיק, ממומש בחלקו ב־C++‎).
  • הקרנל תומך במערכת אינטל 32ביט וגם 64, כולל תמיכה ב־SMP. התחילו לעבוד על תמיכה ב־ARM64 (כן, רספברי פאי!)
  • מימוש מודרני ל־stl – וממש מורחב. ה־core libraries כוללים תמיכה ב־json או דברים בסיסיים בימינו כמו קידוד base64. כן, וגם.. גם sockets ו־https. (זה כולל מימוש של TLS, לא כל ה־ciphers, אבל – תמיד אפשר לעשות pr ולממש את זה).
  • ספריות הפיתוח זמינות גם ללינוקס, בעזרת רכיב שנקרא lagom.
  • מסוף ומעטפת לא רעים (המעטפת גם מתקמפלת ללינוקס).
  • שרת גרפי בסיסי – תומך בקומפזיציה, אבל ללא האצת חומרה עוד. הוא מרגיש מאוד איטי…
  • toolkit שממומש ב־C++‎ שמאוד מזכיר את Qt. אבל ללא MOC (בנוי מעל AK ולא STL… אז בעצם לא שונה בהרבה מ־Qt).
  • מערכת מולטימדיה שכוללת תמיכה ב־flac, mp3 וגם התחלה של VP9 (חדש מהחודש האחרון!).
  • תוכנה למציאת זליגת זכרון דמויית valgrind.
  • תוכנת ציור שיכולה להתחרות ב־Paint.NET… ומתחילה לאט לאט להוסיף יכולות שיש ל־Photosop/Krita/GIMP.
  • סביבת פיתוח… עורך טקסט… עורך markdown
  • משחקים מקוריים (סוליטייר וכאלו… לא משהו משוגע)
  • מערכת ports ממש חזקה.
  • ובטח עוד….
  • (וגם דפדפן ומנוע JavaScript שכתובים מאפס… אליהם ארחיב בקרוב).

הינה סקירה של מערכת ההפעלה: https://www.youtube.com/watch?v=_QAsHkEKvN0

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

Share Button

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