For the full article visit Resources for learning Spanish
I’ve made available in my personal repository amd64 builds of Hugin 2018.0.0 for Debian Stretch.
Enjoy!
If you do not know the password but know how to use the password to gain access to something that was secured using this password, then this is security by obscurity.
On the other hand, if you know the password but do not know how to use the password, then this is obscurity by security.
(Sources of inspiration: The Butterfly Dream, Category Theory’s reversal of rows.)
After a recent upgrade to Debian Stretch, my OpenVPN server stopped working. Checking the relevant log file, /var/log/openvpn.log, I found the following not very helpful error message.
Fri Nov 23 16:46:37 2018 OpenVPN 2.4.0 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Jul 18 2017 Fri Nov 23 16:46:37 2018 library versions: OpenSSL 1.0.2l 25 May 2017, LZO 2.08 Fri Nov 23 16:46:37 2018 daemon() failed or unsupported: Resource temporarily unavailable (errno=11) Fri Nov 23 16:46:37 2018 Exiting due to fatal error
Fortunately, someone already reported this error to debian and found out that the error is caused by the
LimitNPROC=10
in the /lib/systemd/system/[email protected]. The LimintNPROC directive in systemd is used to limit the number of forks a service is allowed to make. Removing this limit, might not be the best idea. So, I would suggest that instead of commenting it out, to find out the minimal value that allows OpenVPN to start and work. After some testing, I found that the minimal value that worked for me is
LimitNPROC=27
After editing the /lib/systemd/system/[email protected], you need to reload the systemd service files and restart the OpenVPN server process.
$ sudo systemctl daemon-reload $ sudo systemctl status openvpn@server
כנס GopherCon Israel הראשון יוצא לדרך, בשיתוף עמותת המקור.
אנחנו מחפשים מרצים מעניינים בכל התחומים הקשורים לGo.
הכנס יהיה ב 11 לפברואר, 2019 במרכז הירידים בתל אביב.
להגשת הרצאה: https://papercall.io/cfps/1422/submissions/new
אתר הכנס: https://www.gophercon.org.il/
נתראה שם,
צוות GopherCon Israel
בסיום כנס אוגוסט פינגווין שנערך ביום ששי האחרון בבית ציוני אמריקה בתל אביב, קיימנו גם אסיפה כללית של עמותת המקור. במסגרת האסיפה דיווחנו על המתרחש בעמותה בשנה האחרונה, דנו על דרכה בעתיד וגם ערכנו בחירות למוסדות העמותה — ועד וועדת ביקורת.
את פרוטוקול האסיפה נפרסם בקרוב, וגם סיכום של הכנס כולו, אבל בתור מתאבן אנחנו שמחים להודיע שהועד החדש שנבחר כולל את כל חברי הועד הקודם — משה נחמיאס, תומר בריסקר ושי ברגר — וכן חבר ועד חדש, דור דנקנר. הרכב ועדת הביקורת נותר כשהיה: מאיר מאור, אבי אברהם ועמית אהרונוביץ׳.
אנחנו מאחלים הצלחה לכל ממלאי התפקידים, ובמיוחד לדור — ברוך הבא!
לפני מספר ימים ראיתי הודעה בקבוצת טלגרהם של פיתון עם שאלה איך למצוא פורטים פתוחים.
כולם הציעו לבחור "לרכב" על nmap, ואילו אני הצעתי משהו מעט שונה, אשר זכה להתייחסות.
אני מדבר כרגע על TCP. ובשביל להבין כמה זה לא מסובך, צריך להבין כיצד בקשת TCP עובדת בעצם.
ישנם מספר פעולות אשר נמצאות ברמה נמוכה יותר (בתוך מימוש TCP), אשר מבצעות עבורינו לחיצת יד. פעולות אלו מסוגלות לעשות זאת רק כאשר יש תשובה בצד השני, ומקבלים ack.
אם לא מקבלים אישור, יכולים להיות שני גורמים:
פעולה זו של SYNchronize היא הדרך עבורינו לגלות האם TCP פתוח.
ההצעה הפשוטה ביותר להתמודד עם זה, זה לנסות לפתוח חיבור TCP בפורט המבוקש לכתובת, במידה ונפתח, החיבור פתוח. במידה והחיבור נכשל (אם קיבלנו timeout או connection refused), אנחנו יודעים שהוא לא פתוח. כאשר האחרון אומר כי הוא מפולטר.
זו לא הדרך היחידה לעשות את זה, אבל זו הדרך הפשוטה ביותר.
יצרתי מימוש לזה בצורה מאוד נאיבית ברובי וגו, בתקוה שאולי תעזור גם לאחרים להבין שאין הרבה קסמים, ולפעמים השקעה של חצי שעה במקום "לרכב" על תוכנה קיימת יכולה להיות נחמדה 
רובי:
גו:
שנים רבות לא היתה טלויזיה בביתי. לא היה לי צורך באחת מכיוון שאת כל התכנים שאני צורך – אני צופה בהם דרך האינטרנט (זרימה או הורדה) על הצגים של המחשב שלי. לאחרונה, עקב התעניינות של לקוח פוטנציאלי מסוים לגבי אפליקציות מאובטחות שירוצו על SMART TV (ללא אינטרנט), החלטתי לחקור את העניין קצת יותר ולרכוש טלויזיה כזו כדי שאוכל לבצע עליה ניסויים (כולל הרכבת לוח קטן לתוך הטלויזיה).
מבחינת מחירים – רוב מחירי הטלויזיות החכמות בארץ הם די נמוכים, אם כי עדיין גבוהים ב-20 עד 40% (ואלו שמעל 65 אינטש – ביותר מ-50%) בהשוואה לחו"ל, ומכיוון שבישראל (תודות ליאיר לפיד) משרד האוצר בטוח שאתה מיליונר – אם אתה קונה טלויזיה מעל 55 אינטש (למרות שבד"כ אתה יכול להשיג טלויזיה כזו באיכות לא רעה בכלל במחיר של 3000 שקל – לפני המכס) – אז התמחור עצמו די מעוות בקצה העליון.
אחד הדברים המצחיקים שקורים הוא שמחירי אותם טלויזיות יותר זולים מ-צגים למחשב. קחו לדוגמא את הטלויזיה שרכשתי – 49 אינטש של סמסונג, דגם Samsung UE49NU7172 4K שאפשר לראות אותו כאן ב-ZAP. כל הסוחרים מציגים את מחירי המסך במחירים של 3000 שקל ומעלה. אני רכשתי את המסך מחברת י. שלום במחיר של .. 2190 שקל כולל מע"מ. קניתי את זה כאדם פרטי, לא כסוחר, לא ביקשתי הנחות. זה המחיר שהוא ביקש ששאלתי מה המחיר, זה המחיר שקיבל. (מדוע יש פער מחירים כזה? תיכף אסביר). במחיר הזה אם תחפש צגים עם רזולוציה גבוהה (לא 4K, נניח 2560X1440) – תוכל למצוא אולי מסכים בגודל 27 אינטש (למעט הדגמים של לנובו שעולים בערך 1000 שקל, אבל אם זכרוני אינו מטעני, יש לא מעט מתלוננים באתרים שונים על הדגמים הללו). מה שאני קניתי מציג רזולוציה של 4K ב-60 הרץ. נכון, אני לא ממליץ לאף אחד לערוך וידאו עם מסך כמו שרכשתי או כל צג טלויזיה (הצבעים "חדים" מלאכותית, מסך כזה נותן מספרים מביכים ב-sRGB, Adobe RGB, DCI P3 וכו') וגם יש צורך במרחק יותר גדול מהמסך למשתמש (כל מיני מספרים רצים בחוץ, אבל מצאתי ש-1.5 מטר בין המסך למשתמש זה מרחק די טוב), אבל החוויה שונה לגמרי בהשוואה לשימוש בצג 27 אינטש ומטה עם רזולוציה גבוהה (יש כמובן גם מסכי מחשב עם רזולוציות 4K בגדלים עד 27 אינטש, אבל אז צריך לבצע DPI Scaling – כלומר הגדלת האותיות, ואז האפליקציות נראות כמו עם רזולוציה של Full HD בערך). זה לא שאני ממליץ לזרוק צגי מחשב לטובת מסכי טלויזיה (אירוניה: בשנות ה-80 רק לבעלי כיס עמוק היה מחשב עם צג יעודי, שלא לדבר על צג צבע!, השאר היו מחברים את המחשב ל…טלויזיה) – אבל מה שאני כן יכול לאמר הוא שהחוויה בהחלט שונה ושווה (וכן, את העריכת וידאו שלי אני יבצע על מסך הטלויזיה אבל בדיקת הצבעים, חדות וכו' – אני אעשה על המסך השני, ה-27" של Dell, שעולה בסביבות ה-4000 שקל).
נחזור לעניין המחיר: סוחרים רבים מוכרים בארץ לדוגמא את הטלויזיות של סמסונג עם כיתוב "יבואן רשמי". לך בכרטיס אשראי זה עולה 20-30% יותר בהשוואה לטלויזיות סמסונג מיבואנים מקבילים כמו י. שלום, תמוז ואחרים. האם שווה לשלם עוד 20-30%? טכנאי התקנות ואותם סוחרים שמוכרים מיבואן ראשי בהחלט יאמרו "כן". אני יאמר "לא" מהסיבה הפשוטה: בין אם אתה קונה טלויזיה SMART בגודל 32 אינטש ומעלה (כולל 75, 80 אינטש) – הטלויזיה פנימית היא אותה טלויזיה, כלומר יש פאנל (ששונה בין הדגמים כמובן), יש ספק כח שטוח, ויש לוח אם. כשיש תקלות, הטכנאי מגיע ומחליף את הלוח אם. כבר חלפו להם הימים שהטכנאי היה צריך לבדוק מתחים ולשבת שעה כדי לבדוק דברים. היום הטכנאי מגיע, פותח, מחליף לוח, בודק שזה עובד, סוגר את הטלויזיה, שם אותה על המתקן בקיר – והולך. כל התהליך לוקח 20-30 דקות (ברוטו). לכן, כשאתה בודק אם לרכוש טלויזיה SMART, בדוק אם יש לך שרות טכנאי עד הבית בתקופת האחריות. כמדומני שכולם נותנים אחריות 3 שנים, אך יש כאלו שנותנים טכנאי עד הבית בחינם שנה ראשונה ו-200 שקלים לביקור בשנתיים לאחר מכן. לכן כדאי לבדוק אם זה שווה לכם לשלם 30% בהשוואה ליבואן מקביל.
ועוד עניין חשוב: אל תחברו את מסך הטלויזיה לאינטרנט! לא חשוב מי יצרן הטלויזיה, ברוב המקרים אבטחת המידע היא ברמה של בדיחה ובקושי מגיעים עדכונים. רוצים לראות נטפליקס, סרטים/סדרות שהורדתם וכו'? קנו לכם סטרימר כמו Amazon Fire TV, nVidia Shield TV, Roku, Apple TV או מכשירים של ספקים כמו יס, הוט, פרטנר. כל המכשירים שהזכרתי מקבלים עדכוני אבטחה ואבטחת המידע שלהם סבירה ומעלה (רק אל תנסו לבצע root למכשיר כמו FIre TV, אחרת המכשיר באותו רגע שובק חיים, יש בתוכו דבר שנקרא eFuse).
לסיכום: מסכי טלויזיה כיום הינם זולים בהרבה מבעבר. הם כמובן מתאימים לסלון בבית, אולם אם יש צורך במסך גדול למחשב כמסך נוסף (לצפיה בוידאו), פתרון מסך טלויזיה הוא פתרון לא רע בכלל. בתור "צג" עיקרי – מצריך שינוי בחדר כך שהמשתמש ישב מעט יותר רחוק (ותשכחו מכל מיני "נוסחאות" של מינימום 4 מטר, או גודל המסך באינצ'ים כפול 3 – המסכים בנויים באותה שיטה שצגי מחשב בנויים: פחות או יותר אותה טכנולוגיה, רק ש"הפיקסלים" יותר גדולים. אנשים יושבים מול צמד מסכי מחשב בגודל 32 אינטש או צגים בגודל 42-49 אינטש ובמרחק של מטר ולא קורה כלום), כך שמסך טלויזיה כזה יכול להיחשב כפתרון לא רע. מבחינת אבטחה לעומת זאת, מסך הטלויזיה מגיע עם אבטחת מידע גרועה מאוד, ולכן לא מומלץ לחבר אותו לאינטרנט.
פתאום קם אדם בבוקר, רוצה לכתוב תוכנה ומתחיל לקבל הודעות שגיאה.
בהתחלה נראה כאילו הבעיה היא בהגדרות שגויות של התמיכה הכפולה שלו ב vim ו neovim, אך למרות שהיתה שם בעיה, כאשר אותו אדם חזר לנסות ולעבוד בצורה שוטפת עם Golang, חזרו הבעיות.
כמובן שהאדם הזה הוא אני.
כרגע פתרתי את הבעיה, אך בגישה שאינני אוהב אותה.
לפני שאסביר את הפתרון ומדוע אינני אוהב אותו, אסביר קצת יותר לעומק על המטרות שלי עם vim.
לאט לאט אני בונה הפצת vim, אשר אמורה לתת לי את היכולת לעבוד בריבוי שפות תכנות, בצורה מהירה, עם היכולות של vim המותאמות לצורת העבודה שלי.
אני לא היחיד שעושה את זה. ישנן הפצות שונות של vim, כאשר אחת המפורסמות בהן היא Space-VIM.
היא בנויה להיות גנרית ובעלת יכולת התאמה אישית.
ההתמקדות שלי היא בראש ובראשונה בצרכים שלי, ובכך אני תומך בשפות תכנות עיקריות שבהן יוצא לי לגעת או שאני מעוניין לגעת (למשל כבר תקופה ארוכה שאני רוצה ללמוד Elm ו Rust), אז הוספתי גם אליהם תמיכה למשל.
לפעמים יוצא לי לגעת תוך כדי גם בטכנולוגיות שונות "על הדרך", אז יש לי תוסף כמו Polyglot אשר מספק תמיכה בטכנולוגיות שונות בלי להתקין אותם במיוחד.
וכאן מתחילה הבעיה – יש איתו race condition מול תוספים שכן מותקנים אצלי וזו היתה הבעיה.
לגלות את הבעיה לא היה כזה פשוט, היות ויש אצלי למעלה מ140 תוספים שונים (חלקם מכוונים שפה או טכנולוגיה מסוימים) וחלקם כללים יותר, למשל ניהול פרויקטים ב vim, ושימוש בפקודות של vim לשם כך (כן יש גם את זה בvim).
או הוספת תמיכה ל Text Objects (בקרוב פוסטים בנושא) שונים, ובכך אני יכול לכוון את vim שיתמוך בפסקאות על ידי תחביר מסוים במקום הגדרת "טקסט" פשוטה, והרשימה עוד ארוכה.
לאט לאט, תוספים יחסית פשוטים מוסרים על ידי ואני יוצר בכוחות עצמי תמיכה עבור ההתנהגות שלהם, אך זה לא משהו שאני עושה בצורה קבועה.
כאשר יש הרבה תוספים, קשה להבין האם הגדרה מסוימת שלך גורמת לבעיה, או האם זה תוסף.
לאחר הרבה סבלנות של ביטול תוספים מצאתי כי יש התנגשות בין Polyglot לבין vim-go.
הפתרון הזמני שלי רק בשביל לגרום לgo לחזור ולתפקד, היה להסיר את vim-go ולהשתמש בגרסה ישנה יותר שלו אשר נמצאת ב Polyglot.
בקרוב אשחק יותר ואבין כיצד לגרום לסדר טעינה שונה של תוספים, אשר vim-go יקח פיקוד, ורק אז Polyglot אשר יקבל הוראה לא לטעון את vim-go.
Collection of links to emails, articles and posts about Linux Kernel CoC situation arranged by date.
Examples of several wrong ways to make your app secure
Duplicity backup utility is the old workhorse in all recent Ubuntu versions. I use the GUI called Deja-Dup for quite a while now. But until now I never bothered to check how to restore my files. I did decide to check how to restore file, because backup is only half the job! It turns out, that the GUI does a disservice for duplicity users. Restoring an encrypted backup turned out to not work. I didn't bother to research why, and turned to the CLI. This is a reminder on how to restore the files. continue reading...
RealtimePi logo
Hey all,
So it started as a curiosity, and it looks like its working. I made a Raspbian-based distro that ships with a realtime kernel called RealtimePi. You can download the latest here. It’s open source, sources are here.
A realtime system means its deterministic, it means you should know how long things take to run. They way to do is is to apply a patch to the linux kernel that makes it non-preemptible. To explain – Preemption is the act of temporarily interrupting a task being carried out by a computer system, without requiring its cooperation, and with the intention of resuming the task later.
This is useful for building hardware and robotics, low latency audio and other gpio because there are no surprises when it comes to timing. It seems like something good to try out with the RaspberryPi, because of the GPIO and IOT capabilities.
Bundled with CustomPiOS you can build your customized realtime-kernel device.

You can test the realtime kernel is enabled, by running in the commandline
uname -a
You should see something like this, note PREEMPT RT which indicates its realtime:
Linux realtimepi 4.9.52-rt37 #1 PREEMPT RT Fri Oct 6 22:29:28 UTC 2017 armv6l GNU/Linux
The line should look a little different for armv7
I am not an expert with actually building realtime systems, so input on how it preforms, and examples would be appreciated!
Hey all,
So I’ve been cooking sous vide a few months now, with a sous vide I built myself. Its connected to a RaspberryPi and can be controlled via the web or telegram.
No soldering required!
Flash a ready made image to the Pi!

Relay in its case and power sockets in place, transparent sticky tape protects case
I have built a distro called CraftBeerPiOS based on CraftBeerPi 2.2. Why 2.2 and not 3? Because there is an issue with the license. I would have picked something else, but Manuel the developer clearly writes in the README that CraftBeerPi is open source. Its dodge I know, I would welcome someone rewriting something like this. I would help build a distribution.
I found that telegram was much faster and handy while I am in the kitchen, or if I want to turn the sous vide on before I come home. So I warmly recommend it over CraftBeerPi’s interface. I will mark all its step as optimal in case you don’t want it.
Anyway,

Set wifi setting you need to change

Hardware setting in craftbeerpi
Thats it, enjoy! Share recipes!
ישנם לא מעט מקרים שצריך להחליף בבית מחשב. רבים מנסים לדחות את הקץ בכך שמוסיפים SSD – שזה עוזר, עד גבול מסוים, אבל לפעמים המערכת פשוט "עייפה" – המעבד איטי, כמות הזכרון קטנה (וקשה למצוא זכרון נוסף, שלא לדבר על מקרים שצריך להחליף את כל הזכרון כי התושבות מלאות בזכרון קטן יותר), הדיסק הקשיח זוחל/נגמר – ובקיצור, אחת ל-3-5 שנים – מומלץ להחליף מחשב.
לאלו שלא מבינים בהרכבת מחשב בעצמם, אני אמליץ ללכת לחנות מחשבים ולרכוש, במקום לקנות חלקים ולעשות נזקים לציוד. העניין אינו כה מסובך אבל יש כאלו שאין להם את החוש הטכני לכך, שזה בסדר גמור (גם לי אין חושים בהרבה דברים אחרים). לעומת זאת, אלו שהרכיבו מחשב או 2 בחייהם – פוסט זה הוא בשבילם, מכיוון שהפוסט מזכיר דברים טכניים רבים.
גילוי נאות: רוב הקישורים שאביא כאן הם קישורי Affiliate באמזון, כלומר אם אתם קונים, אני אקבל איזה סנט שחוק לכיווני.
את רוב החלקים המוזכרים כאן אני ממליץ לקנות באמזון ולא בישראל, לא בגלל קישורי ה-Affiliate אלא בגלל סיבה אחרת: בארץ, בכל הקשור להחלפת ציוד (במיוחד ברשתתות חנויות מחשבים), מהרגע שפתחת את הצלופן או קרעת את המדבקה ואתה רוצה להחליף, יוצאים מתוך הנחה שפירקת את הציוד, שפכת 2 בקבוקי קולה משפחתית, סגרת ואתה רוצה להחליף. כל ציוד שנפתח ואתה רוצה להחליף – עובר ל"בדיקה" באיזו מעבדה כלשהי, ורק אם המעבדה מאשרת, תקבל ציוד זהה בלבד. מה קורה אם לדוגמא החלטת לקנות דיסק קשיח ורק כשהוא הגיע, פתחת את האריזה וראית שמהירות הדיסק קטנה מדי ואין לך בעיה להשלים את הסכום, רק שיחליפו לדיסק אחר? תשכח מזה! בקיצור – בכל הקשור לשרות לקוחות לגבי ציודי מחשב בארץ למשתמשים פרטיים – אנחנו עדיין תקועים בשנות ה-90.
באמזון לעומת זאת, רוצה להחליף? אין שום בעיה. תארוז, תשלח, תקבל חדש כמו שאתה צריך. אף אחד לא מפעיל יחידת שב"כ לבדוק אם אתה מרמה אותם, והאמון בלקוח – מלא. בגלל זה הם מקבלים ציונים בשרות לקוחות שוב ושוב. הלוואי עלינו בישראל.
בעקרון המפרט הטכני שאתן כאן הוא למחשב מהקצה הנמוך, עם 2 גרסאות מעבדים (המעבדים שאני ממליץ הם של AMD, המעבדים של אינטל עלו באחרונה ב-10-25% עקב חוסר מלאי ובעיות יצור של אינטל שהחלו לפני חודשיים). האחד מתאים לאלו שמשתמשים באופיס, גלישה באינטרנט ומשחקים בדפדפן, והשני יותר מתאים לאלו שרוצים לשחק משחקי מחשב רגילים. כל הציוד שאזכיר כאן ניתן לשדרוג כך שאפשר לשדרג את המחשב בהמשך ולהגיע גם לביצועים של תחנת עבודה בינונית.
אגב, הקישורים שאתן כאן מתאימים כמובן גם לאלו שיש להם מחשב והם רוצים אולי לשדרג חלק כלשהו ואולי המחיר יתאים להם. כל המחירים כאן הם בדולרים ותצטרכו להוסיף משלוח לארץ ומע"מ.
בואו נתחיל.
מעבדים
בעקרון, אני ממליץ על 2 סוגי מעבדים:
זכרונות
אחת הבעיות הגדולות ביותר במחשבים שמורכבים בארץ, היא שמי שמרכיב את המחשב לא מבין אפילו מה זה זכרון DDR. לאלו שלא מכירים – כשמדובר בזכרון DDR, אז כל זכרון שמוכנס, צריך להיות ב-2, כלומר אם אנחנו רוצים 8 ג'יגהבייט, אנחנו צריכים להכניס 2 מקלות של 4. אפשר להכניס מקל אחד של 8 אבל אז המהירות יורדת כדי למעבד אין אפשרות לחלק את העבודה של הזכרון ל-2.
שימו לב: הזכרונות שאני מציע הם במהירות 2400 מגהרץ, כלומר מהירות בסיסית. יש הרבה יותר מהירים אבל המחיר מטפס.
במקרה הזה ההצעה שאני ממליץ עליה היא זכרון של Corsair Vengeance LPX 8G– אלו 2 מקלות של 4 ג'יגהבייט זכרון המחיר: 80$ (סתם שתדעו, המחיר הכי זול למקל יחיד של זכרון 4 ג'יגה בארץ הוא 200 שקל, ופה אתם מקבלים KIT של 2, אז תעשו חשבון כמה אתם חוסכים). אם אתם רוצים 16 ג'יגהבייט זכרון, אז ה-KIT הזה של Patrior עולה 140$. לדעתי – שווה.
לוח אם:
מכיוון שמדובר במחשב לילדים, ניקח לוח אם פשוט מבוסס Chipset מסידרה A320 של AMD. הלוח שאני ממליץ עליו הוא GIGABYTE GA-A320M-S2H. הלוח הזה כולל כל מה שתרצו למחשב: יש כניסות VGA/DVI/HDMI, יש כניסת רשת 1 ג'יגהביט, יש תושבת M.2 להכנסת מקל אחסון, יש 4 כניסות SATA-3, יש תושבת PCIe X16 להכנסת כרטיס גרפי בהמשך, וגם 2 תושבות PCIe X1 להכנסת ציודים אחרים (כרטיס רשת יותר טוב?) – בקיצור, כל מה שצריך מלוח אם למשתמש ביתי. המחיר: 50$.
הערה: המאוורר מגיע בתוך הקופסא של ה-CPU. יש מאווררים שונים ל-Ryzen ול-Athlon, והחומר הטרמי נמצא בקופסא.
SSD
אם יש משהו שצריך כיום בכל מחשב, גם בסיסי, זה SSD. זה גם יוריד את התחושה שהמחשב "עגלה" (במקרה של דיסק מכני עמוס נתונים), וגם יאיץ את ה-Boot ועליית משחקים ואפליקציות. ה-SSD שבחרתי הוא של ADATA. הוא לא מתחרה בביצועים של סמסונג ואחרים, והוא נמצא אי שם באמצע מבחינת ביצועים.
על מנת שלא להעביר כבלים של SATA ואחר כך להתבלבל מה הדיסק הראשוני ומה השני ב-BIOS, בחרתי בגירסת המקלון M.2, כך שכל מה שצריך זה להכניס לתושבת, להבריג – וזהו. 2 ההצעות הם M.2 SATA, לא NVME.
דיסק קשיח
במקרה של דיסק קשיח, לפעמים 500 ג'יגהבייט של SSD יכול בהחלט להספיק, אולם לפעמים עדיף לרכוש גם דיסק קשיח מכני. המחירים זולים ואפשר לאכסן יותר מידע, ואם משתמשים בתוכנת Macrium Reflect החינמית ב-Windows – אפשר לגבות אחת לשבוע את ה-SSD לתוך הדיסק הקשיח, גיבוי זה תמיד טוב.
לגבי דיסק קשיח, ההמלצה שלי היא על דיסק 2 טרהבייט של Seagate 2TB BarraCuda – הוא גם מהיר (7200 RPM), והוא גם זול: 60$.
ספק כח:
אחד הדברים החשובים במחשב הוא ספק כח טוב. אני ממליץ על EVGA 500 W1. אני משער שרבים יאמרו ש-500W זה מוגזם, אבל לעניות דעתי כדאי לחשוב קדימה, למצבים שבהם יהיה צורך להוסיף GPU למשחקים רציניים (כי הילד רוצה). המחיר, בכל מקרה, זול: 33$.
מארז למחשב
בסופו של דבר, צריך להכניס את את למארז, וכאן אני דווקא פחות ממליץ על אמזון. מבדיקה שעשיתי, גם אם תבחרו מארז זול, המשלוח יהיה יותר יקר מרכישה בארץ. אם מדובר במחשב לילד עם Athlon שאתם לא הולכים להוסיף לו GPU בקרוב, אז KSP מוכרים בארץ גנרי ב-159 שקל שכולל ספק כח צנוע גנרי. לעומת זאת, אם המחשב יורחב בעתיד, כדאי או לקנות מארז ללא ספק ולרכוש את הספק באמזון, או לחפש עיסקת חבילה שכוללת ספק 500W ומארז טוב, ומכיוון שיש הרבה סוגי מארזים, אז זה עניין של טעם ותקציב.
מאווררים:
בד"כ כל מארז מגיע עם 2 מאווררים (אחד מקדימה למטה ואחד מאחור למעלה), ויש מקרים שלא מגיעים מאווררים. איוורור במחשב הוא חשוב מכיוון שמחשב מוציא חום וצריך לשאוב אויר מבחוץ ולהוציא את האוויר החם. אפשר לרכוש מחנות המחשבים (אם אין במארז מאווררים) 2 מאווררים למחשב, אולם אם רוצים שקט אז אני יכול להמליץ על המאווררים ARCTIC F12 Silent שעולים $9 לחתיכה או Noctua 120mm שעולים אמנם כפול (כמעט $20), אבל הם הכי שקטים והכי אמינים שיש כיום בשוק. כלל אצבע: עדיף שיהיו 2 מאווררים מקדימה (בתצורת PULL) ואחד מאחור (בתצורת PUSH). למי שלא מכיר מה הכוונה PUSH/PULL, הוידאו הזה יסביר מה הכוונה.
סך הכל מחירים:
הערות:
After a long development hiatus I am releasing a new version of blogit continue reading...
… kind of.
Declarative has its advantages which are hyped all over the internet so I’ll skip that part. The painful downside of declarative approach is often the expressivity. Sample proofs:
Now you can have Python embedded in your CloudFormation file. That is part of the CloudFormation Macros which were introduced on 2018-09-06.
Happy coding, everyone!
I’m curious about programming languages. Not because I’m creating one right now. I always was. This post is about ideas and features that I have seen in Perl 6 and found interesting. If you are curious about programming languages in general, you should take a look at these.
There are various reasons for not stealing the interesting ideas from Perl 6:
Here are the interesting Perl 6 features, in no particular order (except the first one). There are also my comments whether I would like the feature in NGS or why not.
$ and friends in the room:for @list -> @element . NGS already has several syntaxes for Lambdas.[1, 2, *myitems, 3, 4] which I think is cleaner. You know you can’t pass it because it’s syntax.inspect method.As a special note, I have seen a welcome change from $arr[0] to @arr[0] . I think it removes confusion. (That was Perl 5 vs Perl 6).
Please don’t be offended if you are a Perl 6 hacker and you see that there is amazing feature that I have not mentioned. It could be that I’ve seen this in several other languages already or maybe I did not find it interesting or … maybe I just missed it. Don’t hesitate to leave a comment anyway.
Happy coding, in whatever language rocks your boat! Except for bash. Coding in bash will never be happy.
אנחנו שמחים להכריז על פתיחת סדנאות ל-QGIS, אחת מהתוכנות המובילות בעולם ה-GIS בקוד פתוח.
השתתפות בסדנא אינה דורשת ידע מוקדם, ומיועדת לאנשים שרוצים לעבוד עם מפות ולבצע ניתוחים מרחביים במסגרת תחומי העיסוק שלהם: מהנדסים, אדריכלים, מתכננות ערים, אקולוגים, ארכיאולוגיות, גיאולוגים, כלכלנים ועוד. כמו כן, אנשי GIS עם ניסיון בתוכנות קנייניות מוזמנים להכיר את החלופה החופשית והחינמית.
אורך הסדנא הוא כ-4 שעות בשעות הבוקר. מועדי הסדנא הקרובים באזור תל אביב:
12.10.18
26.10.18
30.11.18
28.12.18
התעניינות ורישום בטופס: https://goo.gl/forms/2T7kE7T7zDZpGPLZ2

When developing an Android application using Cordova 8.0.0 with Vue and Vuetify, I noticed that the beautiful material design icons do not show as expected.
There were two problems.
Ligature transformations did not work in Android’s WebView, so instead of icons one sees text strings.
To fix it, I had to substitute '' for 'keyboard_arrow_up' and similar substitutions for other icons. This list of icon names and the corresponding codepoints can help.
After getting rid of the text strings, instead of beautiful icons I got missing glyph indicators.
Turns out that the css file generated by the build process (npm run build followed by cordova build android) expects the font files containing the icon glyphs to be found in android_asset/www/dist/static/css/static/fonts, but they were actually located in android_asset/www/dist/static/fonts.
The fix is to use a Cordova hook script to transform the relevant links in the css file.
There are two possible locations for the hook script.
./hooks/before_build/ subdirectory../config.xml.I am not very experienced with the platform, so I chose the first location.
Due to a similar reason (inexperience with node scripts), I wrote it quickly as a /bin/bash shell script.
Here it is in its full glory:
#/bin/bash
echo ============================================
echo Fix paths to font files in Android css files.
echo ============================================
CSSFILES=$1/www/dist/static/css/*.css
echo The relevant css files are: ${CSSFILES}
mkdir -p /tmp/fixcssfiles
rm -v /tmp/fixcssfiles/*
for cssfname in ${CSSFILES} ; do
#cp ${cssfname} /tmp/fixcssfiles/`basename ${cssfname}`
# # (Save a backup css file)
sed 's=url(static/fonts/=url(../fonts/=g' < ${cssfname} \
> /tmp/fixcssfiles/tmpcssfname
mv /tmp/fixcssfiles/tmpcssfname ${cssfname}
echo Procssed ${cssfname}
done
echo ============================================
After adding the script, I got to see the material design icons when running the Android application.
We’re all familiar with the idea of recycling as a means of reducing the waste stream. Most of us are in the habit of separating our paper, plastic, glass and metal trash from other garbage. What you may not know is that recycling is a major trend in the hacker community, too. Many of the data breaches that have struck in recent years were accomplished using software that has been around for a long time -- today’s hack, yesterday’s technique.
Tools that have been proven effective at fooling users and sneaking past network defenses are regularly reused by hackers. Whether the software was developed specifically for hacking or as a tool with a legitimate purpose that has been adapted for a less savory one, the hacker community has become expert at extracting value from what already exists. As with commercial software development, it takes time and money for hackers to write and test their code, and in order to maximize their profits, it makes sense to recycle what works. Often, these tried-and-true products are packaged and sold to others, furthering their potential to do harm.
Read the full article at Forbes here
קודם כל, מסתבר שלחיפאים יש קבוצה שנפגשת פעם בחודש, ומדברים על C++. החודש העברתי הרצאה אודות Qt5. מי שנמצא באיזור מוזמן למפגשים שלהם: https://www.meetup.com/Haifa-CPP/
השקפים (וקוד לדוגמה) זמין כאן:
https://github.com/elcuco/qt-lecture-2018-08/
אני רוצה להודות לכל מי שבא, במיוחד לערן על הארגון וליאהו על הפיצות:
רשום:
בדיו על דף נייר, שחור על גבי לבן.
בכתב ידו של רופא, בעט נובע.
בפוספור זרחני של מסך מחשב.
סיבת מותו של הגווע -
לידה.
ובינתיים, אני כאן.
ואיזה יופי שפגשתי אותך.
כמו שכתבתי בפוסט קודם, המחשב למעט גלישה חסר שימור. הדרך להשמיש אותו לעבוד אחרת – היא לעבור למצב מפתח. במצב הזה אנחנו מקבלים מסוף ובוא יש לנו root. אפשר להתקין ב־chroot מערכת לינוקס נורמאלית. אני אתעלם ממצב זה. במקום זה – אני אסביר איך מתקינים לינוקס מלא.
שלב ראשון – צריך להבין את המערכת הזאת. היא מגיעה עם firmware שמאפשרות לעשות boot אך ורק למערכת שחתומה על ידי גוגל. אז צריך להיפטר מהזה. יש בפועל שתי אפשרויות (1): או עושים patch שחלק מה־firmware או שמחליפים את כולה. החלפה מלאה תמנע הפעלת chromeos, ואילו הטלאה של תגרום לזה שבכל אתחול המחשב יזהו שהוא במצב מפתח ואז תשאל האם להפעיל מצב מוגן מחדש. הסבר מלא כאן.
אני החלטתי להמשיך עם הטלאה.
cd; curl -LO
https://mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.shcd ; curl -Os https://chrx.org/go && sh goלגבי בחירת מערכת ההפעלה:
לגבי GalliumOS. היא מצליחה להפעיל את החומרה בצורה מלאה. התוכנה לא התאימה לצריכים שלי. באונובטו שמותקן על ידי התסריט – כרטיס הרשת לא עובד, אז חזרתי אל GalliumOS ואז התקנתי גנום מעל זה… ואז גיליתי שמה שמותקן הוא מערכת הפעלה מלפני שנתיים… הסרתי את כל המאגרים של GalliumOS ועדכנתי אל המאגרים הרשמיים של אובונטו מאתר המקור…
apt dist-upgrade
וקיבלתי מערכת חדשה.
ו… שוב כרטיס הקול לא עובד. הוא עובד אך ורק עם הקרנל של GalliumOS. כמו כן… גיליתי שאם אני משאיר את ה-SDCard המערכת מנסה לעשות boot ממנו… ולא הצלחתי לשכנע את המערכת לעלות ישירות אל אובונטו. אז ה-ritual שלי בעת הפעלת המחשב: תלחץ control+l (כדי לא להעלות ChromeOS) ואז תבחר ב-2 (כדי שיעשה boot מהדיסק הפנימי) ואז ב-grub לבחור את הקרנל המתאים (את זה דווקא אני יודע לפתור).
בסופו של דבר, החלטתי שהמחשב הזה לא מתאים לי (כמו שכבר אמרו לי בתגובות לפוסט קודם). המחשב למכירה ביד2. לא אומר שהוא רע (המסך והרמקולים הם ברמה של לנובו טוב – וזה רע ללנובו האמת, אבל ממש טובים לשימוש יום יומי). המחשב הוא לא כזה רע, פשוט צריך להילחם איתו עוד טיפה כדי להפוך אותו לשמיש. הוא מאוד קל, ויש לו מלא חיבורים (hdmi, usb, שקע אוזניות). לא יצא לי לבדוק כמה המעבד שלו חזק (הוא לא חזק מדי), אבל לפיתוח קליל הוא יהיה די טוב, הסוללה שלו חזרה (מעל 10 שעות) והמסך שלו ממש חזק ומצופה כיסוי מאט (לא מבריק).
את היום הראשון של הכנס פתחתי כרגיל בדוכן הרשמה (front desk) והייתי שם עד הצהרים כדי שהצוות ירשום את הגל אנשים שהגיעו.
לצערי הכנסים של דביאן נפתחים מאוד בעצלתיים מבחינת תוכן – יש הרצאת/טקס פתיחת ואחרי אין ישר רצף גדול של הרצאות אלא טפטוף קטן של נושאים והרצאות. קצת מאכזב מבחינתי. ומצד שני, אפשר לי להתחיל לעבוד על החבילות של עברית בדביאן בלי לדאוג לפספס תוכן כלשהו. אבל לפני שאפשר לעבוד על החבילות, צריך לייצר סביבה מתאימה. לקח לי זמן להוריד חלודה לגבי מה צריך, ואיך לייצר משהו שיודע לבנות בתוך chroot (גם כדי שהבניה תהיה נקייה, וגם כי אני משתמש ב-testing בעוד שהבניה נעשית ב-unstable). בעזרת כמה תזכורות מ-Bálint הכל הסתדר, ויש סביבה עובדת עם sbuild.
השלב השני היה להתחיל להמיר את ההיסטוריה של הצוות מ-SVN ל-GIT ואז לדחוף את זה לשרת ה-GitLab החדש של דביאן. עשיתי את זה בנפרד עבור כל חבילה, כאשר הראשונה בתור היא Hspell כי צפריר הספיק להכין את הרוב מראש. ואחר כך עבדתי על המרת Culmus כי לא הייתי רוצה שהגרסה הבאה תצא בלי פונטים בעברית (על הדרך כבר הועלתה גרסה 0.132). כל המאגרים זמינים תחת Debian Hebrew Packagers בכתובת https://salsa.debian.org/hebrew-team . למי שצריך לעשות משהו דומה, הכלי להמרה היא git svn clone ואפשר להשתמש בהוראות שיש באתר git-scm.com בכתובת https://git-scm.com/book/en/v2/Git-and-Other-Systems-Migrating-to-Git . על בסיס הפקודות שלהם עוד עשיתי כמה שינויים קלים, אבל החלקים החשובים נמצאים שם.
בין לבין שמעתי את הדיווח השנתי של Chris Lamb במסגרת תפקידו כ-Debian Project Leader. בין השאר גיליתי שם כי דביאן תחגוג השנה יום הולדת 25 באמצע אוגוסט, וישר החלטתי לפתוח event כדי לחגוג עם עוד אנשים. נתראה שם בקרוב (: בנוסף, גיליתי כי המעבר של דביאן ל-GitLab נובע בין השאר גם מהשינוי שלהם בנושא ה-Content License Agreement ושינוי ל-Developer Certificate of Origin מה שמאפשר ליותר אנשים לתרום קוד בלי לוותר על הזכויות שלהם או לקרוא מסמך משפטי כבד. שאפו ל-GitLab, ואיזה כיף לעבור לעבוד במערכת מתקדמת.
I shall walk the path of the warrior,
my arms bare, all defenses down.
I shall take refuge in pestilence,
my weakness shall be my guide.
Like a great spy I shall set out to steal a secret,
so well known it is forgotten.
This Dharma will self destruct in 3 2 1…
<<silence>>
הכנס השנתי של דביאן, Debconf, מתקיים השנה בפעם הראשונה באסיה (Hsinchu, Taiwan). הישג מכובד לאחר שנים של אירופה / ארה"ב ולפעמים דרום אמריקה. וגיוון מבורך בהמשך לכנס בדרום אפריקה לפני שנתיים. כלומר הפעם טסים לכנס מזרחה ולכן גם כולם סובלים מג'ט לג חמור יותר. לצערי זה גם גרם לי לתרום הרבה פחות בדוכן הרשמה (front desk) למרות שזה אחת ההתנדבויות הקבועות שלי.
היום הפתוח התנהל בחלקו בסינית, כך שאפילו לא ניסיתי ללכת להרצאות (גם לבודדות שהיו באנגלית), ובמקום זה התמקדתי בקצת שיחות עם אנשים (למרות העייפות). הספקתי לדבר עם Bálint Réczey שעובד עבור Canonical בצוות Ubuntu Foundation שאחראי על הסנכרון עם דביאן והתרומה של שינויים לקהילה. גם ניצלתי את ההזדמנות כדי לשמוע באיזה כלים הם משתמשים בפעילות, כדי לתזכר את עצמי. אחרי כמעט שנה שלא נגעתי בחבילות, אני בהחלט חלוד (וגם צריך לסדר את סביבת העבודה על המחשב). אגב, קנוניקל מחפשים אנשים עובדים, אם מישהו מתעניין, צרו קשר בפרטי (יש אפשרות לעבוד מרחוק, ואוכל לעזור בסידורים הנדרשים).
בהמשך הערב ישבתי על באג שדיווח לקוח על פיצ'ר של PHP שלא עובד לו מול OpenSSL. תפסתי את Kurt Roeckx שאחראי על החבילה בדביאן וגם עושה עבודת upstream בכמה שנים האחרונות כדי לבדוק את הנושא. אחרי קצת שאלות מולו ובדיקות שלי הסתבר שהבעיה היא לא ב-OpenSSL אלא ב-PHP, ואחרי מספיק חיטוטים בקוד נפתח באג #76676.
לאורך היום יצא לי להכיר את הלן (Helen Koike), בחורה נחמדה שסיפרה שהיא לא מעורבת מאוד בדביאן, ובאה ללמוד קצת כי היא הולכת לעזור לצוות המארגן של שנה הבאה. תייגתי אותה כעוד מישהי שעושה עבודה כללית ולא משהו טכני (הקהילה מורכבת גם מכאלה) והמשכתי הלאה. יותר מאוחר בערב, בשיחה רנדומלית גיליתי שהיא עשתה פעילות על הקרנל במסגרת Outreachy, תרמה דריברים, עובדת ב-Collabora בצוות שמתעסק עם הקרנל וכו'. היא פשוט צנועה לאללה. ניסיתי לדחוף אותה לתרומה בצוות קרנל של דביאן והיא אמרה שהיא לא יודעת לארוז חבילות. הסברתי לה שהיא יודעת לתקן באגים בקרנל, וזה תרומה משמעותית לצוות. בנתיים מישהו אחר יכול לארוז. ויותר חשוב לתקן באגים.
במקביל, למדתי כמה מהר אנחנו מתייגים אנשים לפי המקום שנוח לנו לתייג אותם. ומצד שני, שיש אנשים (ויתכן שבעיקר נשים) שהם סופר צנועים ולא מספרים על כל הפעילות והיכולות שלהם וכך דברים מתפספסים (ברושם הראשוני ומעבר).
לסיום הערב, עשיתי תיאום עם צפריר לגבי החבילות של עברית בדביאן שדורשות תשומת לב בעקבות מהעבר מ-Alioth ל-Salsa שעל הדרך סגר את רשימות התפוצה הצוותיות וגם מכריח את כולם לעבור ל-GIT. כאשר המטרה היא לעשות את המיגרציה, לתקן את הבאגים שדווחו מולן כתוצאה מכך, שגם מונעים מהן להכנס ל-testing (ולכן לגרסה הבאה של דביאן). והדבר משמעותי, כי תהליכי ה-freeze מתחילים בספטמבר. בסופו של דבר, אני הולך להקדיש את הזמן לחבילות, בעוד שצפריר יתעסק בדברים אחרים שלו. שזה סה"כ הוגן, כי במהלך השנה לא יצא לי לתרום כלום לתחזוקת החבילות האלה.
מי שרוצה לעקוב אחרי הכנס מרחוק, אז הלוח זמנים נמצא בכתובת https://debconf18.debconf.org/schedule, רק לא לשכוח שהכנס מתקיים באזור זמן +8, כלומר 5 שעות לפני ישראל (ריאלית, אפשר לצפות בהרצאות של אחרי ארוחת הצהריים כאן, שזה 9 בבוקר בישראל).
I love using a dark theme on my system, currently I’m running the Adapta theme. But not all applications looks great in dark themes, some need tweaking, this is a quick hack to overwrite the default theme used for a specific application.
In this example I’ll be overwriting the theme for virt-manager.
First we’ll copy the default launcher/desktop file to the local dir, and then we will change that file,
sudo cp /usr/share/applications/virt-manager.desktop /usr/local/share/applications/virt-manager.desktop sudo vim /usr/local/share/applications/virt-manager.desktop
And do this small change, prefix the application
Execcommand with
env GTK_THEME=theme_name
--- /usr/share/applications/virt-manager.desktop 2018-02-28 22:48:50.000000000 +0200 +++ /usr/local/share/applications/virt-manager.desktop 2018-07-09 11:00:40.000000000 +0300 @@ -55,7 +55,7 @@ Comment[sv]=Hantera virtuella maskiner Comment[uk]=Керування віртуальними машинами Icon=virt-manager -Exec=virt-manager +Exec=env GTK_THEME=Adapta virt-manager Type=Application Terminal=false Categories=System;
לפני 3 חודשים סימנתי לעצמי יעד והוא נושא ה-GIS בקוד פתוח. בעיקר כי זה תחום בו מצד אחד השוק משתמש בעיקר בתוכנות קנייניות ברישיונות שימוש יקרים וחונקים ומצד שני יש שפע חלופות מעולם הקוד הפתוח (כולל כאלה שפותחו במימון ממשלתי).
עם קביעת מועד הכנס והוצאת הקול הקורא להרצאות, ראיתי את הרצון של הקהילה לשמוע ולהשמיע על קוד פתוח. למרות שהנושא הוזכר בכנסים מקצועיים אחרים, זאת הפעם הראשונה בתחום שהכנס כולו מוקדש לקוד פתוח.
לשמחתי, היתה הענות מצויינת של מרצים ושל מתעניינים בכנס. מה שהוביל למגוון גדול של הרצאות. תודה רבה לעומר, בן ציון, אילן, מיכה, יהודה, ראובן, הראל, עידן, יובל, איתן, דרור, אליאב ואנה על ההרצאות.
בסופו של דבר, אתגרנו את מגבלות האולם הגדול של Google Campus כי הגיעו 150 איש לכנס, ממגוון גדול של גופים – החל מסטרטאפים ועד גופי ממשלה ושלטון מקומי. תוך כדי גם גילינו שקוד פתוח אינו רק תיאוריה, אלא כבר נמצא בשימוש בגופים שונים בתחום.
למי שרוצה להציץ שוב, ולמי שפספס – המצגות זמינות באתר הכנס. שם גם תוכלו למצוא את טופס המשוב. מעבר לכך שנשמח לקבל פידבק ולהשתפר, הוא מאפשר לקבל מאיתנו עדכונים על ארועי GIS וקוד פתוח עתידיים שצפויים אחרי החגים.
לסיום אזכיר כי אנחנו פתוחים ליוזמות ושותפויות. מוזמנים לדבר איתנו על כל רעיון או צורך שיש לכם בעולם ה-GIS והקוד הפתוח. ועד שנתראה בכנס הבא, מוזמנים להצטרף לקבוצת הפייסבוק שלנו למפתחי GIS בקוד פתוח, זה המקום לשאול שאלות טכניות ולקבל תמיכה.
בשבוע שעבר כתבתי על AppImage. הפעם אכתוב על Flatpak. מהי טכנולוגיית Flatpak ומה היא מאפשרת?
ל- Flatpak יש Repository רשמי בשם Flathub שמאפשר להתקין ולהריץ מאות אפליקציות (302 חבילות בזמן כתיבת המאמר) כאמור ללא תלות בסוג מערכת ההפעלה או בגרסה הספציפית שלה. בלינוקס מינט בחרו בטכנולוגיית Flatpak (ולא ב- Snap) ככלי להשלמת מאגרי התוכנה של ההפצה.

אם נחפש במנהל התוכנות של לינוקס מינט את החבילה KeePassXC נקבל שתי תוצאות: אחת מקורה ב- Repository הרשמי ואחת מקורה ממאגר Flathub. כפי שניתן לראות בלינוקס מינט שילבו בצורה מאוד יפה ושקופה את טכנולוגיית Flatpak. אך כמובן שניתן לבצע את כל הפקודות מה- Console:
$ flatpak remotes
Name Options
flathub system
הפקודה flatpak remote מציגה את כל ה- Repositoties מסוג Flatpak שמותקנים בהפצה. כאן קיבלתי רק את Flathub כתשובה, וזה מה שמתקבל בברירת המחדל בלינוקס מינט, אך כמובן שניתן להוסיף עוד מאגרים מסוג Flatpak.
כדי לחפש תוכנה במאגרי Flatpak נריץ את הפקודה:
$ flatpak search Application_Name
וכדי להתקין את התוכנה נריץ את הפקודה:
$ sudo flatpak install Application_Name
כדי לעדכן את כל חבילות Flatpak המותקנות במערכת נריץ את הפקודה:
$ sudo flatpak update
רשימה מלאה של פעולות שניתן לבצע באמצעות פקודת flatpak ניתן למצוא כאן.
מאמרים נוספים שכתבתי בנושא:

בהמשך למאמר הקודם, הפעם אכתוב על AppImage:
AppImage הוא Container שמכיל בתוכו את כל הקבצים והתלויות שהתוכנה זקוקה להם בשביל לרוץ. הרעיון בבסיס התוכנה הוא שהמשתמש יוריד ישירות את התוכנה ממפתח התוכנה, יתן לה הרשאות ריצה ויריץ אותה (ללא תלות בהפצה בה הוא משתמש). במובן זה זה מזכיר את אופן העבודה הנהוג במערכת ההפעלה חלונות (Windows).
דוגמא: אם תורידו את תוכנת Etcher מאתר המפתח תיווכחו שאתם מורידים קובץ דחוס (zip). חילוץ הקבצים יחלץ קובץ בודד: etcher-electron-1.4.4-x86_64.AppImage (שימו לב לסיומת AppImage). מתן הרשאות ריצה (במקרה הזה לא צריך) מאפשר הרצה מיידית של התוכנה.
מהיכן ניתן להוריד עוד קבצי AppImage? באתר של AppImage יש רשימה ארוכה של תוכנות שארוזות בפורמט AppImage.
כיצד אורזים חבילות AppImage? באתר AppImage יש הסבר מקיף כיצד לארוז תוכנות בפורמט זה.
מהן החסרונות של AppImage? היא מכניסה חולאים של מערכת ההפעלה Windows לתוך Linux. אם מישהו יצליח לפרוץ לאתר המפתח ולשנות את קובץ התוכנה הוא יוכל בקלות לשתול וירוסים/סוסים טרויאנים. יתכן בכלל שהמפתח, משיקולים שלו, יחליט לתת לתוכנה "יכולות נוספות" ובעצם לפגוע במה שבלינוקס מאוד מתגאים וזה תחום אבטחת המידע.
לכן אם משתמשים ב- AppImage חשוב מאוד לבדוק את חתימת הקובץ (זה כאמור לא תמיד יעזור). במקרה של Etcher אפילו לא מצאתי היכן נמצאת חתימת הקובץ…
לסיכום: אולי רעיון נוח אבל אני לא אוהב אותו (בעיקר בגלל נושא אבטחת המידע).

You almost have to admire the hackers. Almost. Technology research firm Gartner (via Forbes) estimates that companies will spend $93 billion on cybersecurity technologies in 2018. Yet, according to a recent study by security firm Norton (via MIT Technology Review), the relentless efforts of the global hacking community still netted $172 billion in ill-gotten gains. There’s no indication that things will be any different this year. Why do the hackers continue to succeed? What must industry do to make hacking a less profitable venture for the adversary?
To better understand and answer these questions, it’s useful to examine the hackers’ successes and look for consistencies. But first, let’s define a word that is often misused or misunderstood in cybersecurity discussions: vulnerability.
$ openssl x509 -outform der -in certificate.pem -out certificate.crt
$ openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes
$ openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
This is the fifth in a series of posts reviewing methods for MySQL master discovery: the means by which an application connects to the master of a replication tree. Moreover, the means by which, upon master failover, it identifies and connects to the newly promoted master.
These posts are not concerned with the manner by which the replication failure detection and recovery take place. I will share orchestrator specific configuration/advice, and point out where cross DC orchestrator/raft setup plays part in discovery itself, but for the most part any recovery tool such as MHA, replication-manager, severalnines or other, is applicable.
We discuss asynchronous (or semi-synchronous) replication, a classic single-master-multiple-replicas setup. A later post will briefly discuss synchronous replication (Galera/XtraDB Cluster/InnoDB Cluster).
Part 4 presented with an anti-pattern setup, where a proxy would infer the identify of the master by drawing conclusions from backend server checks. This led to split brains and undesired scenarios. The problem was the loss of context.
We re-introduce a service discovery component (illustrated in part 3), such that:
In a failover/service discovery/proxy setup, there is clear ownership of duties:
Depending on the technologies used, we can further achieve:
M.We explain the setup using the following assumptions and scenarios:
cluster1-writer.example.net, which resolves to a proxy box.M to promoted replica R.
Master M has died, the box had a power failure. R gets promoted in its place. Our recovery tool:
R is the new master for cluster1.The proxy:
R is the new master, rewires all writes to go to R.M.The app:
M fail, it reconnects and gets through to R.Master M gets network isolated for 10 seconds, during which time we failover. R gets promoted.
Everything is as before.
If the proxy kills existing connections to M, then the fact M is back alive turns meaningless. No one gets through to M. Clients were never aware of its identity anyhow, just as they are unaware of R's identity.
We wish to replace the master, for maintenance reasons. We successfully and gracefully promote R.
M turned read-only.R.This is a setup we use at GitHub in production. Our components are:
orchestrator for failover tool.haproxy.cfg configuration filereload haproxyAs mentioned earlier, the apps need not change anything. They connect to a name that is always resolved to proxy boxes. There is never a DNS change.
At the time of failover, the service discovery component must be up and available, to catch the change. Otherwise we do not strictly require it to be up at all times.
For high availability we will have multiple proxies. Each of whom must listen on changes to K/V. Ideally the name (cluster1-writer.example.net in our example) resolves to any available proxy box.
See also:
An orchestrator configuration would look like this:
"ApplyMySQLPromotionAfterMasterFailover": true,
"KVClusterMasterPrefix": "mysql/master",
"ConsulAddress": "127.0.0.1:8500",
"ZkAddress": "srv-a,srv-b:12181,srv-c",
"PostMasterFailoverProcesses": [
“/just/let/me/know about failover on {failureCluster}“,
],
In the above:
ConsulAddress is specified, orchestrator will update given Consul setup with K/V changes.3.0.10, ZooKeeper, via ZkAddress, is still not supported by orchestrator.PostMasterFailoverProcesses is here just to point out hooks are not strictly required for the operation to run.See orchestrator configuration documentation.
This is the first in a series of posts reviewing methods for MySQL master discovery: the means by which an application connects to the master of a replication tree. Moreover, the means by which, upon master failover, it identifies and connects to the newly promoted master.
These posts are not concerned with the manner by which the replication failure detection and recovery take place. I will share orchestrator specific configuration/advice, and point out where cross DC orchestrator/raft setup plays part in discovery itself, but for the most part any recovery tool such as MHA, replication-manager, severalnines or other, is applicable.
We discuss asynchronous (or semi-synchronous) replication, a classic single-master-multiple-replicas setup. A later post will briefly discuss synchronous replication (Galera/XtraDB Cluster/InnoDB Cluster).
In DNS master discovery applications connect to the master via a name that gets resolved to the master's box. By way of example, apps would target the masters of different clusters by connecting to cluster1-writer.example.net, cluster2-writer.example.net, etc. It is up for the DNS to resolve those names to IPs.
Issues for concern are:
TTL (Time To Live) such that clients can cache the IP associated with a name for a given number of seconds. What is that TTL?As long as things are stable and going well, discovery via DNS makes sense. Trouble begins when the master fails over. Assume M used to be the master, but got demoted. Assume R used to be a replica, that got promoted and is now effectively the master of the topology.
Our failover solution has promoted R, and now needs to somehow apply the change, such that the apps connect to R instead of M. Some notes:
cluster1-writer.example.net, cluster2-writer.example.net, etc.TTL.Master M dies. R gets promoted. Our tool instructs all DNS servers on all DCs to update the IP address.
Say TTL is 60 seconds. Say update to all DNS servers takes 10 seconds. We will have between 10 and 70 seconds until all clients connect to the new master R.
During that time they will continue to attempt connecting to M. Since M is dead, those attempts will fail (thankfully).
Master M gets network isolated for 30 seconds, during which time we failover. R gets promoted. Our tool instructs all DNS servers on all DCs to update the IP address.
Again, assume TTL is 60 seconds. As before, it will take between 10 and 70 seconds for clients to learn of the new IP.
Clients who will require between 40 and 70 seconds to learn of the new IP will, however, hit an unfortunate scenario: the old master M reappears on the grid. Those clients will successfully reconnect to M and issue writes, leading to data loss (writes to M no longer replicate anywhere).
We wish to replace the master, for maintenance reasons. We successfully and gracefully promote R. We need to change DNS records. Since this is a planned failover, we set the old master to read_only=1, or even better, we network isolated it.
And still our clients take 10 to 70 seconds to recognize the new master.
The above numbers are just illustrative. Perhaps DNS deployment is quicker than 10 seconds. You should do your own math.
TTL is a compromise which you can tune. Setting lower TTL will mitigate the problem, but will cause more hits on the DNS servers.
For planned takeover we can first deploy a change to the TTL, to, say, 2sec, wait 60sec, then deploy the IP change, then restore TTL to 60.
You may choose to restart apps upon DNS deployment. This emulates apps' awareness of the change.
orchestrator configuration would look like this:
"ApplyMySQLPromotionAfterMasterFailover": true,
"PostMasterFailoverProcesses": [
"/do/what/you/gotta/do to apply dns change for {failureClusterAlias}-writer.example.net to {successorHost}"
],
In the above:
ApplyMySQLPromotionAfterMasterFailover instructs orchestrator to set read_only=0; reset slave all on promoted server.PostMasterFailoverProcesses really depends on your setup. But orchestrator will supply with hints to your scripts: identity of cluster, identity of successor.See orchestrator configuration documentation.

למרות כותרת ההרצאה הפרובוקטיבית, ההרצאה שלי ב־PyWeb-IL 75 עוסקת במקרים בהם עלינו לעזוב את מחוזות ה-ORM/ODM.
מצגת ההרצאה NoORM זמינה בעמוד הרצאות ומצגות.
With huge USB flash drives of today it is sad that one can't easily put several bootable ISO images on it and have nice on-boot selection menu.
GRUB to the rescue!
Historically GRUB is being used for hard disks and syslinux for floppies and flash drives. But nothing prevents using GRUB for flash drives as well. Here are instructions for creating bootable GRUB-based USB flash drive (disk on key):
Recently I had to install adaptec CLI management tool on an ubuntu 8.10 amd64 server. Despite the fact that aacraid driver is present in kernel, it took me a lot of time to find the management tools that allow to see the RAID status and manipulate it from command line. There are several names for the tools: afacli, aaccli, afaapps, afa-apps-snmp, arcconf, hrconf... oh my!
After I found the necessary tools (64bit arch), I packaged them into a tiny deb package adaptec-utils_0.0.1_amd64.deb, which can be downloaded from here: DELETED_AS_REDISTRIBUTION OF BINARIES_IS_PROHIBITED_BY_ADAPTEC
Also, I wrote a simple monitoring script (included in the deb package) that checks the state of the Adaptec RAID system and sends out an email if any of the published indicators is wrong (battery, failed disks, etc). The script can be downloaded from here:
http://skliarie.meshanet.com/skliarie_blog/adaptec-utils/adaptec_check.sh
Note that the script requires proprietary binary files to be installed. See the beginning of the script for the details.
There was some progress made this week, especially with fine tuning the letters and revising those letters I’m not so sure about.
The one letter I’m struggling with is Aleph (א), I can’t seem to find the right balance.
I got a lot of feedback and many good tips, thank you everybody 
I’m doing my best to take them all into account.
I was trying to add some Hebrew glyphs to a font file, but the free font creation programs I tried (FontForge and the Demo of TypeTool) are not so friendly, it will take some more time to do.
Links to v0.8:
PDF file
Illustrator CS4 File
I opened an issue on launchpad and it was added to the Ubuntu Font Family Wishlist queue.
As an added bonus Mark Shuttleworth himself gave his blessing to this design effort (!)
It was a fun mail to start the day with 
I want to quote one thing he wrote:
It *would* be useful if you could start building up a Hebrew community that can provide early and accurate feedback to DM when they start the Hebrew design process.
And later, Paul Sladen wrote:
developing a typeface takes a very long-time (months and months), and although
work on Hebrew won’t be incorporated until the Ubuntu 11.04 development cycle,
it is very useful to start working on it now!
So, I really want to start working on it seriously (too bad I didn’t start this before August Penguin…)
This week I guess I’ll finish the initial design with the good tips I got from Paul Sladen and from Maxim Ioresh, but this is only the beginning:
A real OpenType font must be created and refined, people need to test it, to find where it breaks.
And there are more variants – we have to do the Bold font, the Italic and Bold Italic, and by the time these will be finished there most likely be some Condensed variants too… so I need designers, typographers and testers to pitch in, we have a bit more than 6 months, it’s enough, but not a lot of time for a community project.
Original post: http://tombigel.com/2010/08/26/hebrew-for-the-ubuntu-font/
This is fun! I love Open Source.
Twitter sometimes offers machine translation for tweets that are not written in the language that I chose in my preferences. Usually I have Hebrew chosen, but for writing this post I temporarily switched to English.
Here’s an example where it works pretty well. I see a tweet written in French, and a little “Translate from French” link:

The translation is not perfect English, but it’s good enough; I never expect machine translation to have perfect grammar, vocabulary, and word order.
Now, out of curiosity I happen to follow a lot of people and organizations who tweet in the Belarusian language. It’s the official language of the country of Belarus, and it’s very closely related to Russian and Ukrainian. All three languages have similar grammar and share a lot of basic vocabulary, and all are written in the Cyrillic alphabet. However, the actual spelling rules are very different in each of them, and they use slightly different variants of Cyrillic: only Russian uses the letter ⟨ъ⟩; only Belarusian uses ⟨ў⟩; only Ukrainian uses ⟨є⟩.
Despite this, Bing gets totally confused when it sees tweets in the Belarusian language. Here’s an example form the Euroradio account:
Both tweets are written in Belarusian. Both of them have the letter ⟨ў⟩, which is used only in Belarusian, and never in Ukrainian and Russian. The letter ⟨ў⟩ is also used in Uzbek, but Uzbek never uses the letter ⟨і⟩. If a text uses both ⟨ў⟩ and ⟨і⟩, you can be certain that it’s written in Belarusian.
And yet, Twitter’s machine translation suggests to translate the top tweet from Ukrainian, and the bottom one from Russian!
An even stranger thing happens when you actually try to translate it:
Notice two weird things here:
Something similar happens with the Igbo language, spoken by more than 20 million people in Nigeria and other places in Western Africa:

This is written in Igbo by Blossom Ozurumba, a Nigerian Wikipedia editor, whom I have the pleasure of knowing in real life. Twitter identifies this as Vietnamese—a language of South-East Asia.
The reason for this might be that both Vietnamese and Igbo happen to be written in the Latin alphabet with addition of diacritical marks, one of the most common of which is the dot below, such as in the words ibụọla in this Igbo tweet, and the word chọn lọc in Vietnamese. However, other than this incidental and superficial similarity, the languages are completely unrelated. Identifying that a text is written in a certain language only by this feature is really not great.
If I paste the text of the tweet, “Nwoke ọma, ibụọla chi?”, into translate.bing.com, it is auto-identified as Italian, probably because it includes the word chi, and a word that is written identically happens to be very common in Italian. Of course, Bing fails to translate everything else in the Tweet, but this does show a curious thing: Even though the same translation engine is used on both sites, the language of the same text is identified differently.
How could this be resolved?
Neither Belarusian nor Igbo languages are supported by Bing. If Bing is the only machine translation engine that Twitter can use, it would be better to just skip it completely and not to offer any translation, than to offer this strange and meaningless thing. Of course, Bing could start supporting Belarusian; it has a smaller online presence than Russian and Ukrainian, but their grammar is so similar, that it shouldn’t be that hard. But what to do until that happens?
In Wikipedia’s Content Translation, we don’t give exclusivity to any machine translation backend, and we provide whatever we can, legally and technically. At the moment we have Apertium, Yandex, and YouDao, in languages that support them, and we may connect to more machine translation services in the future. In theory, Twitter could do the same and use another machine translation service that does support the Belarusian language, such as Yandex, Google, or Apertium, which started supporting Belarusian recently. This may be more a matter of legal and business decisions than a matter of engineering.
Another thing for Twitter to try is to let users specify in which languages do they write. Currently, Twitter’s preferences only allow selecting one language, and that is the language in which Twitter’s own user interface will appear. It could also let the user say explicitly in which languages do they write. This would make language identification easier for machine translation engines. It would also make some business sense, because it would be useful for researchers and marketers. Of course, it must not be mandatory, because people may want to avoid providing too much identifying information.
If Twitter or Bing Translation were free software projects with a public bug tracking system, I’d post this as a bug report. Given that they aren’t, I can only hope that somebody from Twitter or Microsoft will read it and fix these issues some day. Machine translation can be useful, and in fact Bing often surprises me with the quality of its translation, but it has silly bugs, too.
After serving in the board of a few technological Israeli associations, I decided to run as an individual candidate in the OSI board elections which starts today. Hoping to add representation outside of North America and Europe. While my main interest is the licensing work, another goal I wish to achieve is to make OSI more relevant for Open Source people on a daily basis, making it more central for communities.
This year there are 12 candidates from 2 individual seats and 5 candidate for 2 affiliate seats (full list at OSI elections wiki page). Wish me luck (:
The Wikimedia Foundation is leading a process to write a strategy for the Wikimedia movement. This process takes over a year. A few months ago, the conclusion of Phase 1 of this process was published: The strategic direction.
Some central concepts in this document are “knowledge as a service” and “knowledge equity”. Some people said that it’s too vague and high-level, and that it can be interpreted in a lot of ways. This is true, especially in a movement that is as culturally and linguistically diverse as Wikimedia. Perhaps this is intentional, so that people will be able to interpret this in any way that feels right for them.
Recently I was filling a registration form for Wikimedia Conference 2018. This form was very long, and it asked what do the concepts that appear in the strategic direction document mean to me. My answers were longish, and since there’s nothing secret about them, and they may (or may not) interest some people, I copied them from the form to this blog post. I edited them slightly for publishing here so that the context will be clearer, but the essence is the same as what I submitted.
Knowledge as a service
The knowledge that Wikimedia projects already contain is available through all common channels of communication: in addition to being available on the website, it must be findable on all search engines in all languages and countries, browsable on devices of all operating systems whether open or not, browsable as much as possible through social networks and chat applications, embeddable in other apps, etc.
It must be easy for all people, whether they are knowledgeable about computers or not, to contribute their knowledge to Wikimedia sites, and humanity in general should know that Wikimedia sites is the place where they contribute their knowledge and not only learn it.
Knowledge equity
What it means to me is:
- That all people, of all ages and all kinds of identities, of all countries, who speak all languages, must be able to read and write in their language.
- That we will fight whenever it’s reasonable against censorship and against all kinds of chilling effects that deter potential contributors or threaten their well-being.
- That we remain independent of commercial and political entities by strictly refusing to carry political and commercial advertising and to accept unreasonable limited grants.
- That all the software that is useful for reading and writing on our sites must be easily usable in all languages, whether it’s core software, extensions, templates, or gadgets.
- That we don’t depend on any non-Free or otherwise unethical software, even if it appears to make consuming and contributing knowledge easier.
- That we set a goal of having good coverage for core content in all languages and actively pursue it and not leave it only to the community’s “invisible hand”.
- That we set a goal that the most popular Wikimedia projects in each country are in that country’s most spoken languages and not in a foreign language.
What kind of conditions do you need to realize these activities?
Describe what you think would be good conditions for you to move forward in this direction. Think of conditions in the broadest sense; e.g., capacity, skills, partnerships, clarification, structures and processes, room for development or experimentation, financial resources, people, access to other means of support etc.
We need to partner with academic institutions that work on topics that are not currently covered by our projects because of systemic bias.
We need to partner more with organizations that have expertise in developing minorized and under-resourced languages, working on the ground in the countries where these languages are spoken.
We need easy access to data about the social and political situations in poorer countries, and if such data doesn’t exist at all, we need to lead research that creates such data ourselves.
We need a new attitude to developing software for our sites: we need to understand what do our communities actually do on the sites with gadgets and templates rather than just developing new extensions that may be shiny, but are hard to integrate into the sites, each of which is heavily customized.
What I wrote in that form is a good description of my current attitude to what the priorities of Wikimedia movement should be, at least in terms of ideology and values. You can clearly see my interests: remembering that language support is important and that most people don’t speak English; remembering that we are not supposed to be an American non-profit organization, but an international movement that happens to have an office in the U.S.; remembering that we are also a part of the Free Software movement; remembering that good software engineering are important, even if engineering alone can’t solve all the problems.
For people who have doubts: This post represents my own opinions, and doesn’t express the opinion of the Wikimedia Foundation or any of its employees or managers.
האם אתם רוצים מערכת כזו? התשובה מורכבת.
כן, זה נחמד לשבת בעצלנות על הספה ולהגיד "הי גוגל, תדליק לי דוד", או אפילו להדליק אוטומטית את הדוד ברגע שיצאתי מהעבודה ע"י נתינת קואורדינטות של המשרד ליישומון IFTTT ולתת לו להקשיב לGPS.
לא, זה לא נחמד שכל מילה שנאמרת בבית מוקלטת ונשלחת לשרתים של גוגל או אמאזון (אלקסה) או מוקרוסופט (קורטנה) וכולי. זה גם לא חכם להשקיע בציוד שמייקר את החיים בבית והופך אותך תלוי ביצרן או משהו. למשל זו הסיבה שלא אקנה נורת פיליפס HUE בעשרות דולרים כי כשהיא נשרפת אני צריך למעשה לקנות נורה ומחשב קטן. אני מעדיף לחבר ממסרי SONOFF ולשלוט בהם בעצמי. כמו כן, אני לא אחבר בקרוב את מנעול הדלת למערכת ממוחשבת. אני לא ממליץ לסמוך עליה בנקודות אבטחה, אבל אפשר להסתפק במגע בנקודות הנוחיות.
אני לוקח רגע ומפרק מערכת ממוצעת כדי לסבר את האוזן למי שלא מכיר את הטכנולוגיה שמאחורה. בגדול יש כאן כמה רכיבי תוכנה תפורים ביחד כדי לגרום לקסם לקרות:
התכוונתי (וויתרתי בגלל סיבות) לשחק עם עוזרים חכמים פתוחים. נתקלתי באינדיגוגו של מייקרופט (גיבוי עסקי לא יכול להזיק). כמו כן גיליתי שיש פרויקט בשם Jasper שכבר לא זז שנה ועוד אחת מליסה, כנראה גם אחרים.
מה דרוש? כרגע סבלנות וחוש טכני. כמו שלא לכולם מתאים לפרמט את האנדרואיד ולהתקין LineageOS, או ללמוד לקנפג קודי, וכולי. זה פרויקט לסקרנים, עקשנים, שאין להם בעיה לבנות ולהלחים כמה דברים לבד. הנה המידע שאספתי והפרמטרים שהייתי בוחר להתחיל איתם אם הייתי הולך על הפרויקט.
קריאה לעומק של תשובות מייקרופט לתומכי הקיקסטארטר ושל תנאי הפרטיות שלהם שכנעה אותי שהם לא עומדים בדרישות הפרטיות שלי בתצורה הנוכחית שלהם. בגדול הם "מתכננים" גרסא מקומית של רכיב ה־STT (דיבור לטקסט) שתרוץ על מחשב לינוקס או חלונות אבל זה עוד לא שם, ובתלות ברכיב שיבחרו, יכול להיות שזה ידרוש GPU חזק כדי לבצע את הניתוח בצורה מהירה ככל הניתן. מנתח ה־STT הנוכחי שלהם לא מספיק טוב והחדש שיכנס בסוף החודש צריך הרבה יותר כוח מחשוב. אז כדאי לחכות. בעתיד זו תהיה אפליקציה או תמונת Docker מוכנה שנוכל להריץ על שרת PC כעזר לרספברי בלי להסתמך על שרתי החברה.
כאמור, בפוסט המקורי כתבתי שאני בודק את המערכת לביתי אבל הוטל ווטו משפחתי. אני עדיין אנסה לראות איך זה להתקין עוזר AI שכזה על הלאפטופ או הדסקטופ, ואוסיף דיווחים כשיהיו.
היום עדכנתי רישיון של CppCMS ל-MIT. הגרסה הקרובה 1.2 תשוחרר עם רישיון מעודכן
ההחלטה נובעת ממספר סיבות:
אני יכול להגיד בביטחון מוחלט שכ - 60% מהמשתמשים ברשת האינטרנט, מחוברים אליה דרך רשת אלחוטית כזאת או אחרת. זה כמובן מקל מאוד על תוקפים פוטנציאלים, כמעט בכל מקום היום יש רשתות WiFI פתוחות שמאפשרות גלישה חופשית ברשת, בישראל אין אוטובוס ציבורי שלא מתהדר ב - WiFi, זה נהפך להיות סטנדרט - ופה מגיעה החולשה הכי גדולה. התוקף היום יכול לשבת בנוח ולתקוף את הרשת, אף אחד לא יחשוד בבחור (או בחורה) שמשחק במכשיר האנדרואיד שלו.
Data.gov.il was created in 2011 after the Israeli social justice protests as part of the the public participation initiative and started to offer data held by the government. Back then the website was based on Drupal. In 2016 it was changed to CKAN, a designated system for releasing data. This system is licensed under the AGPLv3 requiring source code availability for anyone who can access the the system over a network, de facto for every user.
Since the change to CKAN, open source people asked the state to release the code according to the license but didn’t get a clear answer. All this time when it’s clear it’s violation. This led Gai Zomer to file a formal complaint in March 2017 with the Israeli State Comptroller. Absurdly, that same month the ICT authority mentioned a policy to release source code it owns, while failing to release code it has taken from others and adapted.
With the end of the summer break and Jew holidays, and after I wasn’t able to get the source, I decided to switch to legal channels, and with the help of Jonathan Klinger and my company, Kaplan Open Source Consulting, we notified they should provide the source code or we’ll address the court.
Well, it worked. In 3 days time the CKAN extensions where available on the website, but in a problematic way, so users weren’t able to download easily. This is why we decided not to publish this code release and let them fix it first. In addition we made it clear all the source code should be available, not only the extensions. Further more, if they already release it’s recommended to use git format instead of just “dumping” a tarball. So we told them if they aren’t going to make a git repository we’ll do that ourselves, but in any case, would prefer them to do that .
While this issue is still pending, the ICT authority had a conference called “the citizen 360” about e-gov and open government in which they reaffirmed their open source plans.

A slide about open source from the Israeli ICT authority presentation
Now, a month later, after our second letter to them, the about page in data.gov.il was updated with links to the ICT authority GitHub account which has the sources for the website and the extensions. A big improvement, and an important mark point as the commit to the repository was done by an official (gov.il) email address.
Beyond congratulating the Israeli ICT authority for their steps forward and the satisfaction of our insisting on them became fruitful, we would like to see the repository get updated on a regular basis, the code being given back to the various CKAN extensions (e.g. Hebrew translation). In general, we hope they would to get inspired by how the how data.gov.uk is doing technical transparency. If we allow ourselves to dream, we would like to see Israel becoming a dominate member in the CKAN community and among the other governments who use it.
We’re happy to be the catalyst for open source in the Israeli government, and we promise to keep insisted where needed. We know that due to other requests and notifications more organizations are on their way to release code.
(This post is a translation from Hebrew of a post in Kaplan Open Source Consulting at https://kaplanopensource.co.il/2017/11/20/data-gov-il-code-release/)
הפוסט הבא נכתב כתשובה למישהו שאמר לי “הטרמינל קורא את השורה הראשונה בקובץ (*sh), ומחליט כיצד להריץ אותו”. והאמת היא שזה לא נכון, כי הקרנל בכבודו ובעצמו מטפל בזה.
זה היה לפני 12 שנים, פעם ראשונה שהתקנתי אובנטו על המחשב שלי. אובנטו 0505. מאז עברו הרבה מאוד ביטים באינטרנטים, למדתי הרבה, אבל תמיד שמרתי חסד נעורים להפצה הלינוקס ששמה לה למטרה להנגיש את שולחן העבודה של מערכת ההפעלה הנפלאה הזו. תחילת המיליניום, היתה תקופה קשה למשתמשי לינוקס. אי אפשר היה לצפות כמעט בסרטים ברשת … להמשיך לקרוא אובנטו 1710 – גירסה ששווה להתקין

Vue.js החזירה את הכיף שנעלם לי בפיתוח פרונטאנד.
ההרצאה אודות Vue.js שהועברה במסגרת PyWeb-IL 69 זמינה בעמוד הרצאות ומצגות.
אמ;לק: סקירת מוצר שיוסיף לכם שכבת הגנה על חשבונות מקוונים וגם על המחשב האישי. זו תהיה כתבה ראשונה בסדרת פוסטים על אבטחת מידע בסיסית לישראלי המצוי, למרות שהפוסט הספציפי הזה אולי לא מיועד ממש לכולם כי הוא עוסק בחומרה יעודית שעולה בסביבות $50 (כולל משלוח) ולא תוכנה זמינה וזולה/חינם.
יותר מחצי שנה לא כתבתי פוסט, למעשה כמעט 8 חודשים אני חושב. המון חדשות חולפות בקצב מסחרר ואי אפשר להתעמק בכלום, וגם החלפת מקום עבודה מוריד מהזמן הפנוי לכתיבה של יותר מציוצים בטוויטר. אם אתם לא עוקבים, חוק הזיהוי הביומטרי עבר והחל מיוני כולם חייבים לתת טביעות אצבע ופנים. מי שישלם כופר מיוחד יוכל להשאר מחוץ למאגר (אם אתם באמת מאמינים שלא ישמרו לכם את תביעת האצבע אחרי שיכתבו אותה לשבב בתעודה), אבל יצטרך לעשות את זה פעמיים בעשור במקום פעם אחת. ההמשך עכשיו יכול להיות אחד משלושה עיקריים: או שהפניה שלנו לבג"צ תצליח והמאגר יבוטל מתישהו ב-2018, או שיהיה מהפך בחירות וקואליציה חדשה תחליט למחוק את השרץ, או שהגזרה תשאר, ועד 2022 (2027 למי שרץ להחליף תיעוד במאי) כל הישראלים שישארו פה יאלצו להשתדרק למאגר. בינתיים כבר היו דליפות בהודו וסיפורים מסוכנים אחרים, אז נחיה ונראה. על עדכונים של פאדיחות הבית הלבן אני גם לא ארחיב, אתם בטח צופים כמוני בסטיבן קולבר ביוטיוב.
היום אני רוצה לספר לכם על הצעצוע החדש שלי, יוביקי 4. כל מי שמכיר אותי, יודע שככל שנכנסתי בשנים האחרונות לתחום הזכויות הדיגיטליות, אני יותר ויותר מתעניין בתחומי הצפנה, זיהוי והזדהות, סיסמאות חזקות וכדומה. זה רק אספקט קטן מהעולם הזה, וכמובן לא משנה כמה חזקה הסיסמא שלכם לפיכסבוק אתם עדיין צריכים להיות אחראים למה שאתם מפרסמים שם. בכל מקרה כדאי גם שלא יגנבו לכם את החשבון עצמו, ולכן אני ממליץ תמיד:
כמה מילים על אימות כפול, או אימות בשני פקטורים: אחד הדברים הראשונים שמוגדרים בפרוטוקול זיהוי (ולא משנה אם אנחנו מדברים על סיסמא לאתר או כשאתם מתיישבים מול הפקיד בבנק) הוא הגדרת שיטת הזיהוי, כששיטות אימות הזיהוי מתחלקות ל3 קטגוריות כלליות: מי אתה, מה אתה יודע, ומה יש לך.
מי אתה – זה לרוב זיהוי ביומטרי, הבעיות איתו שאת חלק מהמדידות הביומטריות יקר למדוד או קל לזייף, ובמיוחד זה לא שונה מול כל גורם, ולכן אם היכולת להתאמת במקום אחד דלפה, הרי שהיא טובה לאחרים שסומכים על אותה השיטה. זה שווה ערך לסיסמא לא חזקה, שכתובה בצורה לא מוצפנת בכל מיני מקומות שאתה מסתובב בהם, שניתן לזייף ואי אפשר להחליף. רעיון גרוע. הצעתי היא שאם ספק השירות נותן בחירה, אל תסתפקו לעולם בזיהוי ביומטרי כאמצעי זיהוי ראשי. לא מול משרד הפנים או רשויות המס, לא טביעת האצבע לפתיחת הטלפון, לא להפעיל חתימה אלקטרונית במחשב, לא טביעה קולית מול השירות הטלפוני של הבנק, כל אחת מהשיטות האלו כבר הוכחה כקלה לזיוף.
משהו שאתה יודע – זו לרוב סיסמא, ובמקרים הפחות מוצלחים: תאריך יום הולדת, קוד סודי מגב כרטיס האשראי, תאריך ההוצאה של תעודת הזהות האחרונה שלך, מספר תעודת הזהות, שם הנעורים של אימא, שם חיה או מורה או בי"ס ראשון וכיוצא באלו דברים שקל לגלות עליכם ע"י בילוש או כיוס.
משהו שיש לך – תעודה בלתי ניתנת לזיוף, אם ע"י שימוש בשיטות ייצור סודיות וייחודיות ואם ע"י חתימה דיגיטלית, או אולי מפתח כלשהו שלא ניתן לשכפל. כשאני אומר מפתח עולה לכם אולי בראש מפתח פלדלת או ייל, אבל את אלו כבר שכפלו כי הופיעו בטעות בתמונה. הסיפור הכי מצחיק היה כשסוכני TSA הצטלמו ברוב היבריס עם צרור המפתחות שלהם שפותח כל מנעול מזוודות בשוק, ואנשים מיהרו להעתיק את המבנה מהתמונות, וכמזה שנתיים אפשר להוריד את כל המפתחות מגיטהאב להדפסה בתלתפסת ביתית. לא, אני מתכוון למפתחות הצפנה פיזיים, כלומר מעין התקן USB עם מעבד קטן וזכרון שאי אפשר לקרוא, וניסיון למעקף פיזי של ההגנות אמור להרוס אותו ללא שוב. כאלו יש מספר מוצרים בשוק ואחד היצרנים הבולטים הוא Yubico. אני סוקר את המוצר שלהם כאן כי אחרי שלמדתי את הנושא ברשת הגעתי למסקנה שזה אחד משניים-שלושה הכי מעניינים, מגוונים ונגישים, ואין לי שום קשר איתם מעבר לזה (וכמובן לא קיבלתי מהם מוצר או טובות), ולכן קניתי אותו. יש להם אפילו יבואן רשמי בארץ אבל אחרי שקיבלתי מהם ספאם, העדפתי לשלם את המחיר המלא של הזמנה מחו"ל (אמזון או הריסלר הזה). שווה להציץ, לפעמים יש להם סייל 50% הנחה ליום-יומיים.
אימות כפול, או אימות מרובה, הוא כזה שמשתמש ביותר משיטה אחת מאלו שפירטתי, ובמיוחד עדיף שלפחות משתי קטגוריות שונות.1
המוצר עליו אדבר פה הוא חד פעמי ולא ניתן לגיבוי או העתקה, ולכן הוא בגדר משהו שיש לי. לא אכנס כאן לכל הפרטים הטכניים הקטנים, אבל רשימת הדברים שעושה הכרטיסון הקטן הזה היא מרשימה:
זה לא פרנואידי?
למשתמש פרטי כיום, קצת. בעתיד אולי כבר לא. כדאי להתחיל להכיר או להתרגל.
להצפין את הדיסק? זה לא מעמיס את המערכת?
עם LUKS זה מובנה בקרנל, לחלונות ומאק יש משהו דומה, המחיר אחוז או שניים. אני לא ממליץ על ecryptfs שאובונטו מציעה להצפין אתה רק את ספריית הבית, זה פוגע בביצועים הרבה יותר. התחלתי לעשות את זה כשעבדתי בחברות שעסקו במידע רגיש, אצל מעסיקים אחרים הסתכלו עלי כמשוגע ובסוף באו להתייעץ איתי כשהמחשב הראשון נגנב מהמשרד או כשנציגים התחילו לצאת לשטח ולתערוכות ועלה הפחד שיגנבו סודות מקצועיים. אז כאמור לדעתי היום זו חובה שלא עולה הרבה לממש.
אני בונה היום אתר, להשקיע באימות כזה למשתמשים שלי?
גם TOTP-2FA וגם U2F – לדעתי כן, במיוחד אם האתר שומר פרטים אישיים של כרטיסי אשראי, בריאות מטופלים ועוד כיוצא באלו. יש ספריות חופשיות שקל לשלב, ולמערכות כמו וורדפרס, דג'נגו, ג'ומלה, רובי-או-ריילז ואחרות יש כבר מודולים מוכנים לקטיפה מהעץ, אז חבל להתעצל!
למה יוביקי 4 ולא גרסת הנאו?
טעם אישי. היוביקי 4 תומך במפתחות טיפה יותר גדולים, הוא טיפה יותר זול, קוד ה-PGP שלו פתוח בגיטהאב. לרוב האנשים גם הנאו יהיה מצוין, והיתרון הגדול שלו הוא NFC שעובד עם אנדרואידים שיש להם רכיב תקשורת תואם. אם רוצים להשתמש ביוביקי 4 (ללא NFC) על אנדרואיד, אפשר בעזרת כבל OTG, או לטלפונים חדשים, חיבור ישיר USB-C בדקם יוביקי החדש).
יש מתחרים ראויים?
יש כמה. חלקם יתנו U2F בלבד בפחות מ$10-$20, חלקם יקרים מאוד אבל עושים דברים נוספים כמו לשמש כארנק קריפטומטבעות (למשל Trezor ואחרים) ויש גם אופציות "האקריות" פתוחות כגון OnlyKey שמוסיף שכבות הגנה כמו סיסמא, פיצ'רים כמו השמדה עצמית וכדומה. יש מצב שאקנה כזה בעתיד, למרות שהוא נראה פחות עמיד מכנית לשבירה ושפשופים.
התוכנה צרובה ולא ניתנת להחלפה? אז מה אם יתגלה באג אבטחה?
כבר קרה פעם אחת, וכל הלקוחות קיבלו מפתח חדש עם קושחה מעודכנת. זה חלק מהשירות (והמחיר). אי האפשרות לעדכן את הקושחה זה פיצ'ר מתוכנן במכוון, כדי לא לאפשר החלפה לתוכנה שתגלה את המפתחות הסודיים ששמורים על המפתח.
כבר יש לי כזה מהמעסיק
אם המעסיק נתן לכם התקן כזה שישאר שלכם לשימוש אישי גם אחרי שתעזבו – כיף לכם! גוגל, פייסבוק וחברות טכנולוגיה אחרות עושות את זה. השתמשו בזה חופשי גם לחשבונות פרטיים!
אבל זה בעצם כרטיס חכם! יש לי כזה מרשות המסים ובתעודת הזהות החכמה החדשה!
כן ולא. יש על הכרטיסים האלו מעבד מספיק חזק לכל אלו ככל הנראה, ויכולות להזדהות בפרוטוקול כלשהו מול הממשלה יום אחד, אבל לא קושחה פתוחה שמאפשרת את כל הטוב שעליו כתבתי לעיל. אם הייתי שר הפנים, אחרי שהייתי מבטל את המאגר הביומטרי, הייתי מעביר נותן לכל הציבור תעודות חכמות עם היכולות האלו מובנות שישמרו עליהם ביום-יום. לצערי לא נראה לי שזה יקרה בזמן הקרוב.
למה לא כתבת פוסט כבר המון זמן?!
כי הייתי עסוק, וכי אף אחד לא שאל למה לא כתבתי כבר המון זמן, אז אולי מסתפקים בפרסונה הטוויטרית שלי…
אם יש לכן עוד שאלות, שתפו בבקשה בתגובות. אם זה מספיק מעניין לכלל הקהל, אולי אענה פה בגוף הפוסט.
-------
אחרי תקופה ארוכה של המתנה שוחררה גרסת בטא 1.1.0 של CppCMS. גרסה זו מכילה המון שיפורים ושיוניים. ביניהם:
התכנון הוא לבצע בדיקת בטא מהירה, לשחרר 1.2 כגרסה יציבה (גם ככה חלק ניכר מהמשתמשים כבר עובד בענף הפיתוח ב-git).
לאחר מכן אני רוצה לעבור לפיתוח בחלקים יותר קטנים ללא השהיות גדולות בין הגרסאות. בהמשך מתכנון:
std::shared_ptrאתם מוזמנים להתנסות בגרסת בטא האחרונה!
אז לפתע פתאום האקדמיה ללשון שינתה את כללי הכתיב.
הופתעתי מאוד מהשינוי של היום. אולי היו על זה ידיעות בפרסומים של האקדמיה, אבל למרות שאני מתעניין בלשון בכלל, ובכללי הכתיב בפרט, אינני עוקב אחרי כולם. למשל, בדיוק לפני מספר חודשים האקדמיה ללשון הקטלאנית הודיעה שהיא מתכננת לפשט את כללי הכתיב ולבטל הרבה מהסימנים מעל האותיות, אבל היא פרסמה טיוטה לדיון ציבורי, ולא הודיעה ישר על השינוי. (ויש דיון ציבורי, כי לאנשים אכפת מזה.)
אילו האקדמיה ללשון העברית פרסמה טיוטה, הייתי מעיר כמה דברים. אני אישית לא אוהב את הגושפנקה שניתנה ל„שיער”, „בריכה”, „ברירה”, ו„עבירה”, אבל בסדר, אני מבין שזה נפוץ, ואני אפילו שמח מאוד שאני לא צריך לבזבז את העצבים שלי על ויכוחים בנושא הזה. עם זאת, הכתיב החדש „מייד” מצער: גם הכתיב „מיד” היה נפוץ למדי, ולא עורר הרבה מחלוקות, והוא שמר על הקשר למילה „יד”.
אני הקפדתי מאוד על „ססמה” בתרגומי פיירפוקס וטוויטר, למרות התנגדויות רבות, ועכשיו זה בהדרגה יהפוך ל„סיסמה”. על זה לא חבל לי כל־כך, כי זאת ממילא מילה שאולה מובהקת, גם אם עתיקה, ואם אתם שואלים אותי, אפשר להוסיף יו״ד גם למילים שמיות מובהקות כמו פסגה, קדמה, וכיו״ב.
טיפ־טיפה חבל לי על הכתיב „שמים”, שעכשיו הפך ל„שמיים”. היה בזה דמיון יפה ל„מים”, אבל בסדר. עכשיו אני יכול להפסיק להחרים את יישום „ירושמיים”, שהפכה כבר מזמן למשהו פולחני עבור ירושלמים רבים.
אני מרוצה מהשינוי של „תכנה” ו„יזמה” ל„תוכנה” ו„יוזמה”. אני גם מרוצה למדי מהשינוי של מילות היחס „אתי, אתך” ל„איתי, איתך”, ושל „עתים” ל„עיתים”, אבל מוזר לי ביותר שלא נוספה בהזדמנות הזאת האות יו״ד למילים כמו „אִגרוף” ו„מִחזור”, כדי לא להתבלבל עם „אֶגרוף” ו„מַחזור”. זה היה יכול להיות כלל פשוט ושימושי, והוא ממש לא היה אמור להיות שנוי במחלוקת. חבל שזה התפספס.
עוד משעשעים אותי ה„אישורים” שנינתו למילה „אומנם” וליו״ד בצורת הגוף הראשון בזמן עתיד בבניין נפעל, למשל „איכנס” במקום „אכנס”. אני תמיד כתבתי אותם בכתיב מלא. את „אומנם” כתבתי בווי״ו כי גם „אֻמנם” הוא ניקוד תקני ולא רק „אָמנם”, וצליל u תמיד אמור להיכתב בווי״ו (אם כי עכשיו גיליתי לראשונה שהניקוד „אֻמנם” מיועד לשאלות, לפחות לפי אבן־שושן). ובבניין נפעל כתבתי תמיד „איכנס”, „איזהר”, וכו׳, כי הניקוד בחיריק תקין כמו בניקוד בסגול (ר׳ למשל גזניוס 51p).
טוב שיש עכשיו גושפנקה למילה „תיאטרון”, כי אני לא מכיר שום תיאטרון ישראלי שבכניסה עליו כתוב „תאטרון”. (אם יש כזה, זה מפדח למדי, אז עדיף שפשוט אודה: אני לא הולך להצגות מספיק.) מצד שני, מוזאון עדיין אמור להיכתב בלי יו״ד. אני אוהב את החלוקה החדשה הזאת, אבל יש לי תחושה שמוזאונים ימשיכו לקרוא לעצמם „מוזיאונים”, אם כי אפשר לשם השעשוע לנסות להחיות את המילה „בית נכאת”.
מעטים ישימו לב לזה, אבל עכשיו המילה „די” תיכתב תמיד ביו״ד אחת. גם ככה רוב האנשים כותבים אותה ביו״ד אחת, וזה תמיד היה נכון, אבל משום־מה האקדמיה אפשרה עד עכשיו גם „דיי” ו„דאי”. אפילו ראיתי את „דיי” בספרים שהאקדמיה הוציאה ממש לאחרונה (כמו „העברית בתקופת המנדט” הנהדר של יעל רשף). אבל זהו, לא עובד: רק „די”, וטוב שכך.
עוד דבר שמעטים ישימו לב אליו הוא השם של הכללים החדשים: „כללי הכתיב המלא”. עד עכשיו הם נקראו „כללי הכתיב חסר־הניקוד”. למיטב ידיעתי, המונחים כתיב מלא וכתיב חסר מעולם לא היו מוגדרים באופן מדויק למרות שאנשים רבים השתמשו בהם. „כתיב חסר” עדיין אינו מוגדר, אבל זה בסדר, כי הוא לא ממש נחוץ.
עכשיו יהיה ממש נחמד לעדכן גם את מילון האיות החופשי Hspell. נדב ודן, אם אתם קוראים את זה, אני אשמח לעזור.
מבחינה טכנולוגית, שנת 2016 היתה שנה מרתקת. לצערי, לא מצאתי סיכומים הולמים לשנה כה אינטסיבית ואולי אף הייתי אומר – מופרעת. אני חושב, שבמקום הראשון, בישראל, השנה הזו היתה קודם כל שנת האופניים החשמליים. רבים מתייחסים אליהם מבחינת היקף התאונות, אבל להערכתי העניין הגדול הוא מספר כלי הרכב הללו הנעים על הכבישים. אט אט, האופניים … להמשיך לקרוא סיכום שנה שנת 2016 + מצבה של התוכנה החופשית
A little less than six months ago, we held the first PyCon in Israel. To our dismay, it took us this long to post all the videos from the event, but now they’re finally up, and you can finally catch up on The Track Not Taken.
We’d like to take this opportunity to clear the 2016 table and summarize the conference, to give it some closure.
The conference was a lot of work and fun to organize, and truly wonderful to witness. We’ve had:
Over and beyond the hard data, there was a great feeling of a community coming together.
There’s a few points we want to discuss in more details:
We made a conscious effort to make the conference more welcoming to diverse populations. This included a well-defined Code of Conduct, as well as reaching out to specific communities, which are usually underrepresented in technical conferences. This included, of course, the cooperation with Django Girls Tel Aviv, who were invited to the conference; we did not collect the statistics of visitor gender, but we have reason to believe it was significantly more balanced than usual. We also reached out to some other groups who were less clearly visible. By all the feedback we got, everybody felt very welcome.
To our regret, we could not show the same level of diversity among the speakers. Only 3 of the 32 accepted talks were presented by women, and none of these were Israeli. Further, we did not have a travel-support plan for speakers, and partly as a result of that, we did not have any speaker from the less-privileged parts of the world. We still have some way to go there.
We intend to keep pursuing diversity in future editions of PyCon Israel.
In the spirit of Open Source and transparency, we’re happy to share a summary of our budget (all numbers are thousands of Shekels).
Sponsorship: 246
Ticket sales: 54
Total: 300
Venue (incl. food): 134
Conf. party (food+movie): 41
Keynote speakers travel: 30
Speaker’s dinner: 13
Video recording & editing: 20
T-shirts & other swag: 28
Wireless internet: 5
Various other: 3
Total: 274
As you can see, we ended with a positive balance of close to 26K ILS. This is more than we intended, a miss we attribute to over-cautiousness and inexperience. A small part of this surplus will go to support Hamakor, the Israeli F/OSS association which helped make the conference happen, and the rest will go into the budget of the next PyCon Israel.
We’d like to call out three special groups which could use your help — participation as well as sponsorship; groups whose ongoing work enabled this conference and will hopefully enable others like it in the future:
Since so long has passed, we can also add a look to the future: Preparations for PyCon Israel 2017 have already started! You can join the organizing team, or just keep track of our progress via our different channels -
Blog: https://medium.com/@pyconil
Twitter: @pyconil, #pyconil
YouTube channel: https://www.youtube.com/channel/UC8ApA9ibgkf0XK7lgTVZgEQ
Facebook: https://www.facebook.com/pyconisrael/
Google group: https://groups.google.com/forum/#!forum/pycon-israel (requires registration)
Website: http://il.pycon.org/
Watching the months of preparations come to full fruition made our hearts burst with joy. We’d like to thank everyone involved — all CFP submission authors, the invited and accepted speakers, the sponsors (and in particular the Diamond sponsors, Red Hat & Cymmetria), the vendors (and in particular the helpful staff of our wonderful venue at Yes Planet), the Israeli Python community in general for making such an event possible, and you, the attendees, for making it a reality.
See you in 2017,
The PyCon Israel organizing team
צהריים טובים.
לאחר מחזור פיתוח בן שישה חודשים, שוחררה גרסה 3.22 של שולחן העבודה GNOME !
גרסה זו מכילה 22980 שינויים שנרשמו ב־Git על ידי 775 תורמים, בהשוואה ל־28933 שינויים על ידי 837 תורמים ב־3.20.
אחוז התרגום עומד על 80% (36912 מחרוזות מתורגמות, 3682 מעורפלות ו־49874 שאינן מתורגמות), בהשוואה ל־80% (36069 מחרוזות מתורגמות, 3702 מעורפלות ו־4937 שאינן מתורגמות) ב־3.20 ו־82% (37120 מחרוזות מתורגמות, 3326 מעורפלות ו־4675 שאינן מתורגמות) ב־3.18.
על התרגום בעיקר אני אחראי, ולאחרונה הצטרף ניב באר ותרגם את חלק מהתיעוד למשתמש „צעדים חדשים ב־GNOME” (נקרא gnome-getting-started-docs) ואפילו החל לתרגם ליישומים (טרם מצאתי זמן להכניס את התרגומים האחרונים שלו).
להלן מוטמע סרטון המציג את GNOME 3.22. קריינות על ידי קארן סנדלר, לשעבר מנכ״ל קרן GNOME, ומייק טרנטינו. עריכה על ידי Bastian Ilsø, שעורך סרטונים אלו כבר למספר שחרורים.
כרגיל, אוסיף כאן שיר. שיר יפה, שפשוט נהניתי לנגן על הפסנתר.
בברכה,
יוסף אור
ערב טוב.
בשבוע האחרון תרגמתי ובכך צמצמתי פערים של חצי שנה ללא תרגום, והבאתי את GNOME לתרגום מלא (להוציא את gitg ואת gnome-builder, שלא תורגמו גם בגרסה הקודמת).
אחוז התרגום עומד על 80% (36915 מחרוזות מתורגמות, 3727 מעורפלות ו־4987 שאינן מתורגמות), בהשוואה ל־80% (36069 מחרוזות מתורגמות, 3702 מעורפלות ו־4937 שאינן מתורגמות) ב־3.20 ו־82% (37120 מחרוזות מתורגמות, 3326 מעורפלות ו־4675 שאינן מתורגמות) ב־3.18.
לאחר עלייה במספר המחרוזות שאינן מתורגמות נתן לראות התייצבות מספר זה, לצד עלייה חוזרת במספר המחרוזות המתורגמות. הבטחֲתי היא כי GNOME מתורגם באופן מלא. כלומר, להוציא שני היישומים שצוינו לעיל – המשתמש לא יפגוש במחרוזות שאינן מתורגמות.
ניתן לקרוא טיוטת הערות השחרור לגרסה זו של GNOME. גם הפעם לא אסקר השינויים, מקוצר בזמן.
את השיר, הפעם, אקדיש ליום המיוחד, לגעגוע לירושלים.
ערב טוב,
יוסף אור