פלאנט תוכנה חופשית בישראל (Planet FOSS-IL)

23 April, 2018

Boris Shtrasman

G633 בלינוקס

עד היום בדר"כ השתמשתי באוזניות פלאנטרוניקס, אבל הפעם החלטתי לנסות אוזניות גיימינג של לוג'יטק (G633 Artemis spectrum).

לאחר כחודשים זו חווייתי:

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

חיברתי וזה פשוט עבד (המיקרופון והאוזניות).


usb 1-3: new full-speed USB device number 9 using xhci_hcd
usb 1-3: New USB device found, idVendor=046d, idProduct=0a5c
usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-3: Product: Logitech G633 Gaming Headset
usb 1-3: Manufacturer: Logitech
usb 1-3: SerialNumber: 00000000
input: Logitech Logitech G633 Gaming Headset as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.3/0003:046D:0A5C.0007/input/input30
hid-generic 0003:046D:0A5C.0007: input,hiddev0,hidraw0: USB HID v1.11 Device [Logitech Logitech G633 Gaming Headset] on usb-0000:00:14.0-3/input3
usb 1-3: 2:1: cannot get freq at ep 0x1
usb 1-3: 2:1: cannot get freq at ep 0x1
usb 1-3: 1:1: cannot get freq at ep 0x81


האוזניות כן מדווחות אל איזו שהיא אי התאמה (מה שמוצג כ cannot get freq XX), אבל לא נתקלתי במשהוא שלא עבד שציפיתי שיעבוד על גבי USB יותר ממה שאני מציין למטה.

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

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

ניסיתי לחבר את הפין ישירות לחיבור ה־3.5 מ"מ במחשב - ללא הצלחה עם הקלטה.

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

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

מה שזה אומר שאם מחברים את האוזניות לרכזת שמחוברת למחשב נייד לא יהיה ניתן להשתמש בהן (כן כן גם ב USB3). ועל זה אנו אמורים תודה למי שהמציא את עמדת העגינה שלא מגיעה עם מקור מתח ומתחברת ע"ג USB למחשב הנייד. יש לכם מחשב נייד עם חיבור USB בודד מזל טוב !

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

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

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

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

23 April, 2018 01:18 PM

20 April, 2018

Ilan Shavit

בקרת ג'ובים בלינוקס

בקרת ג'ובים פירושה היכולת לעצור (stop), להקפיא (suspend) ולחדש ריצה של תהליכים.

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

$ sleep 10 &
[1] 17029
$

הסבר: המספר 1 (מוקף בסוגריים מרובעים) זה מס' ה- Job (נקרא JID או Job ID) ו- 17029 זה מספר התהליך (PID או Process ID).

הצגת טבלת הג'ובים שרשומה במערכת:

$ jobs
[1]+ Running sleep 10 &

 

איך עוצרים תהליך (זמנית)?

שתי אפשרויות:

איך מחדשים עבודת תהליך?
גם כאן שתי אפשרויות:

איך "הורגים" תהליך (לא ניתן בעתיד לחדש את עבודתו)?

kill PID

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

כדי למנוע מצב זה יש שלוש אפשרויות:

הפקודה disown:

$ sleep 10 &
[1] 17029
$ disown
$ exit

 

הפקודה nohup (התכנית הבאה לא תיעצר גם כשנצא מה- shell):

$ ssh user@server
$ nohup sleep 1000 &
$ exit

20 April, 2018 04:38 AM

19 April, 2018

Gabor Szabo

Leadership

For the full article visit Leadership

19 April, 2018 04:49 PM

Supporters

For the full article visit Supporters

19 April, 2018 02:50 AM

17 April, 2018

Diego Iastrubni

כרומבוק – מחשב מיותר

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

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

מבחינת חומרה. המסך מאוד בהיר, לא בעל רזולוציה טובה למדי… אבל הצבעים יחסית לא רעים, הרמקולים לא רעים (אני משווה אותם למחשב ThinkPad – אבל יותר מבריק וחזק). הסוללה מחזיקה בין (לפי הדיווח של מערכת ההפעלה) בין 9-13 שעות. המקלדת סבירה מינוס, הלחיצה היא יותר טובה מאשר במחשב HP שהיה לי פעם, אבל לא בגודל אמיתי (נניח 75%). אין מסך מגע, וה-trackpad נוראי וקטן.

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

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

הטקסט המלא

17 April, 2018 03:39 PM

Boris Shtrasman

במטותה ממכם עזבו את הפריסה לנפשה

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


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


לדעתי הרעיון של להזיז את הפריסת האותיות (מה שידוע כחלק מתקן si1452) הוא מאותגר שימושית -
  • זה לא יעזור לאנשים שמקלידים הקלדה עיוורת (כי זה ישבש להם את האותיות) - ומי שחושב שזה תענוג יבדוק פריסת דבורק אל מול פריסה אמריקאית (וידלג בינהן). גם אנשים שמקלידים בשני שפות או יותר לומדים הקלדה עיוורת והייכן האותיות ממוקמות.
  • זה לא יעזור למי שאינו יודע הייכן נמצאת האות בפועל (כי החריטה נמצאת במקום אחר) ומשתמש במקלדת בפריסה התקנית  לא יראה את המיקום החדש.
  • זה לא יעזור אם האות מחוקה חלקית - האות ו והאות ן מסומלות בצורה שונה במקלדות שאיתן אני עובד (והחלפתי מספיק מקלדות בחיי), אם האותיות הגיעו למצב שנמחק חלקית כאשר האות ו והאות ן מחוקות חלקית זה לא ישנה שום הרבה בפריסה החדשה - הזזת האות ו' על מקשי שחקני call of duty (מקש האנשים שהאוהבים לשמור על עוד חיים במשחק ) כך שגם שם האות תמחק (ואף יכול להיות שיותר).
  • זה לא יעזור אם הגופן שקיים במלקדת הוירטואלית אינו ברור מספיק זה גם לא יהיה ברור מספיק כאשר ישנו את מיקום האותיות.
אני אישית לא פחות ממזועזע מהגישה (ציטוט מאחד העיתונים)  -
אנשי מכון התקנים מאמינים כי הציבור יתיישר עם התקן החדש, וכי לאחר שהציבור יכיר אותו ויבין כי הוא נוח יותר, הוא יהפוך לסטנדרט המוביל בישראל.

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

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

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

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

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

17 April, 2018 10:36 AM

16 April, 2018

Hamakor

כנסים, כנסים, ופעילויות נוספות

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

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

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

מלבד הארועים אותם אנו מארגנים, אנו לוקחים חלק גם בארועים נוספים העוסקים בקוד פתוח. כך למשל, נשתתף כמרצים בכנס Open Source World של אנשים ומחשבים, שיתקיים ב-30 באפריל.

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

16 April, 2018 05:47 PM

13 April, 2018

Ilan Shavit

הקלדה אוטומטית בלינוקס

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

בעבר השתמשתי, ואף כתבתי, על – autokey. למרות שמדובר בכלי מצוין, לי הוא מרגיש מעט "כבד" ולכן עברתי להשתמש בפתרון קל הרבה יותר: xdotool (מקלדת וירטואלית).

כיצד משתמשים ב- xdotool? נניח אני רוצה ליצור קיצור לקוד ה- html הבא: </ BR>

אני יוצר קובץ, נניח בשם br.sh. תוכן הקובץ:

bin/bash/!#
sleep 0.5

"</ xdotool type "<BR

עכשיו כל שנותר זה ליצור קיצור דרך במקלדת: בצילום המסך הבא ניתן לראות שהגדרתי קיצור דרך ctl+shift+B להפעלת הסקריפט

הערות:

13 April, 2018 12:13 PM

10 April, 2018

Ilya Sher

List of JSON tools for command line

I am considering making a JSON parsing and generating command line tool. Started with looking around a bit. Below is a list of existing JSON command line tools. Numbers are [GitHub stars] at the time of writing this post. (… contributed by …) means that this post was updated with the item.

Honorable mentions

 


If you feel that some project is missing from the list, please let me know in comments below.

10 April, 2018 06:22 AM

08 April, 2018

Ilya Sher

Unix safety tip: use rmdir

About to remove an empty directory? Use rmdir, not rm -rfrmdir will not remove the directory if it’s not empty. Make it a habit. Thank me once every 2 to 20 years when you don’t remove your stuff by accident.

08 April, 2018 06:46 PM

02 April, 2018

Hetz Ben Hemo

פייסבוק ימשיכו לשקר לכם

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

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

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

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

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

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

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

אישית, לי אין ממש מידע פרטי ואישי בפייסבוק, אבל מצד שני אני לא אוהב להיות ללא שליטה על מי שרואה/מגיב לדברים שאני מעלה, אז הדבר הכי פשוט היה למחוק את החשבון פייסבוק שלי, לחכות כמה שבועות עד שפייסבוק מוחקים (לא, הם לא מוחקים מיידית), אבל מצד שני אני כן כפרילאנסר רוצה פרויקטים ואני מקבל פה ושם פניות דרך המסנג'ר של פייסבוק, ולכן החלטתי להשתמש בתוסף Social Book Post Manager שמאפשר לך למחוק הודעות לפי חודשים, שנים וכו' (הוא לא עושה עבודה הכי טובה כך שאם בחרת חודש מסויים, כדאי שתבקש מהתוכנה לעבור במהירות יותר איטית לפחות פעם פעמיים נוספות), וכך מחקתי את רוב הפוסטים שלי מה-4 שנים האחרונות והשארתי את הפוסטים השיווקיים או הטכניים. אם פייסבוק רוצה להעביר את המידע והקישורים החוצה – ממש אין לי בעיה עם זה 🙂

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

הטקסט המלא

02 April, 2018 01:45 PM

28 March, 2018

Lior Kaplan

Document Freedom Day

לאחרונה כתב Benjamin Netanyahu – בנימין נתניהו : "הממשלה אישרה היום את הצעתי להנגיש לציבור את כלל החומרים הארכיוניים בעניין קליטת העליות הגדולות בראשית שנות המדינה. כל המסמכים יהיו נגישים לחלוטין לכל אדם בישראל ובעולם. כפי שעשינו בפרשת ילדי תימן כך נעשה גם פה."

אך בעוד מסמכי נייר אפשר לקרוא תמיד (למעט ענייני נזקים פיזיים), את המסמכים הדיגיטלים לא בטוח שנוכל לקרוא. יום חופש המסמכים מדבר בדיוק על החלק של "נגישים לחלוטין לכל אדם". האם נוכל לקרוא את המסמכים שהממשלה יצרה לפני 20 שנה עם Microsoft Word 6? מה לגבי מסמכים שנכתבו בשנות הש-80 וה-90 המוקדמות? (לדוגמה: מסמכי העלייה הרוסית, תיעוד שקשור למלחמת המפרץ). הבעיות כמובן גם קיימות בגרסאות מאוחרות יותר של התוכנה.

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

לשמחתי, גם ב-Microsoft Word יש בשנים האחרונות תמיכה ב-ODF, כך שנשאר בעיקר להגדיר את הפורמט כמחייב לכל הרשויות. האם Israel State Archives – ארכיון המדינה ירים את הכפפה?

(ה-28 במרץ הוא יום חופש המסמכים #OpenStandard #ODF )

28 March, 2018 07:27 PM

19 March, 2018

Tom Bigelajzen

Font Progress Update

The Ubuntu Font Hebrew v0.8 Design PrototypeThere 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

19 March, 2018 08:15 AM

Ubuntu Font Hebrew Subset now has an issue on Launchpad

The Ubuntu Font Hebrew v0.8 Design PrototypeI 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.

19 March, 2018 08:15 AM

18 March, 2018

Hamakor

הודעה על אסיפה כללית של עמותת המקור – 28.3.2018

בתאריך 28.3.2018 בשעה 19:00 תכונס אסיפה כללית רגילה של עמותת המקור – עמותה ישראלית לתוכנה חופשית ולקוד – מקור פתוח (ע"ר). אסיפת העמותה תתכנס במשרדי חברת מטיפיק, במגדל משה אביב קומה 51, דרך ז'בוטינסקי 7 רמת גן.

על סדר היום:

  1. אישור דו"ח כספי ומילולי לשנת 2017.
  2. הצגת דו"ח ועדת ביקורת לשנת 2017.
  3. אם יהיה בכך צורך — בחירת מוסדות חדשים לעמותה. המוסדות הנוכחיים (ועד וועדת ביקורת) נבחרו, כזכור, רק לפני כחצי שנה, ואיש מממלאי התפקידים לא הודיע על כוונה להפסיק את תפקידו. עם זאת, אם יש מישהו שרוצה להצטרף למוסדות, האסיפה היא הזדמנות לעשות זאת, כך שאם מישהו ירצה להצטרף, נערוך בחירות כדי לאשר או לדחות את הצטרפותו.

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

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

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

18 March, 2018 06:37 PM

15 March, 2018

Hetz Ben Hemo

ה-LAB הבא פרק 10: חסימת פרסומות למכשירים בבית

קוראי בלוג זה הותיקים בוודאי יודעים על דעתי על פרסומות באתרים (אין לי בעיה עם פרסומות, כל עוד הם לא קופצים לך על הפרצוף ומפעילים מוסיקה בווליום בגלל שהעברת את העכבר בטעות ליידם ובוודאי לא פרסומות שגורמות למחשב לעבוד בצורה איטית!), ולכן החלטתי הפעם להדגים התקנה של אובונטו LTS עם PiHole, תוכנה בקוד חופשי שהופכת את המכונה שהיא רצה עליה לשרת DNS פנימי בבית/LAB כך שכל המשתמשים בבית שמשתמשים ברשת הפנימית/WIFI יוכלו לגלוש ללא פרסומות (כמעט).במילים אחרות, Pi Hole הוא מעין "פרוקסי" למכשירים/מחשבים בבית  שלך שמונע את הפרסומות מבלי שתצטרך להגדיר כל מכשיר/מחשב עם כל מיני חוסמי פרסומות.

לשם כך יש צורך ב-VM אבל למי שאין LAB או מערכת וירטואליזציה בבית, גם פתרון של Raspberry Pi-3 יעודי (ב-69$ כולל כל מה שצריך) יכול להיות פתרון מצוין לכך.

בעקרון מה ש-PiHole עושה הוא בעצם משמש כשרת DNS פנימי ויש צורך להגדיר בנתב הביתי את כתובת ה-DNS לשרות ה-DHCP אל ה-Pi Hole עצמו כך שכל בקשת DNS תעבור דרך האפליקציה ואם האתר מבקש גישה לשרת פרסומות, שרת הפרסומות חסום, וכך מקבלים גלישה טובה נטולת פרסומות (טוב, ברוב המקרים, לא כולם, במיוחד באתרים ישראליים ובפייסבוק). אם יש לכם שרת DNS פנימי כחלק מה-LAB, תוכלו להגדיר את ה-Pi Hole שיפנה אל שרת ה-DNS הפנימי הנוכחי שלכם ואם אתם רוצים שרת DHCP במקום שרות ה-DHCP של הנתב שלכם, אפשר לבטל שרות זה בנתב ולהפעיל זאת ב-Pi Hole.

בוידאו כאן תוכלו לראות הדגמה של הקמת שרת אובונטו LTS, הקמה והגדרות של Pi Hole.

הטקסט המלא

15 March, 2018 01:59 PM

06 March, 2018

Amir Aharoni

The Curious Problem of Belarusian and Igbo in Twitter and Bing Translation

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:

Emmanuel Macron on Twitter.png

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:

Еўрарадыё   euroradio    Twitter double.pngBoth 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:

Еўрарадыё   euroradio    Twitter single Russian.pngNotice two weird things here:

  1. After clicking, “Ukrainian” turned into “Russian”!
  2. Since the text is actually written in Belarusian, trying to translate it as if it was Russian is futile. The actual output is mostly a transliteration of the Belarusian text, and it’s completely useless. You can notice how the letter ⟨ў⟩ cannot be transliterated.

Something similar happens with the Igbo language, spoken by more than 20 million people in Nigeria and other places in Western Africa:

 4  Tweets with replies by Ntụ Agbasa   blossomozurumba    Twitter.png

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.

06 March, 2018 07:39 PM

05 March, 2018

Lior Kaplan

Running for OSI board

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 (:

Full text

05 March, 2018 09:37 AM

25 February, 2018

Amir Aharoni

Wikimedia Strategy Phase 1: What Does It Mean for Me and (Maybe) for Language Diversity in Wikipedia

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.

25 February, 2018 06:21 PM

Ira Abramov

עוד פרויקט שלא אגיע אליו: עוזר חכם ובית חכם

האם אתם רוצים מערכת כזו? התשובה מורכבת.

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

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

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

  1. יש מיקרופון והמחשב שמאזין לו, מנסה לבטל רעשי רקע ולהתמקד במה שעלול להיות דיבור.
  2. אח"כ תוכנה אחרת שבודקת אם זה אכן דיבור ומתרגמת אותו לטקסט. זה אולי הרכיב הכי מתוחכם במערכת ונחמד שיש אופציה או שתיים ברישיון חופשי (אבל כרגע אני די בטוח שזה עובד רק באנגלית, ולא יעבוד בעברית בקרוב. מקווה שלא תהיה בעיה עם זיהוי מבטא לא ילידי :)
  3. אחרי שיש לנו טקסט אפשר לפענח ממנו את הפקודה גם אם לא נאמרה בצורה תקנית אחת. כלומר "התראה עוד שעה" או "בבקשה כוון לי תזכורת בעוד שעה מעכשיו, תודה" הם שני משפטים שונים למדי אבל המחשב צריך לזהות את שניהם. הרכיב הזה והרכיב הקודם הם הרכיבים שקורים בענן של גוגל או אמאזון או מיקרוסופט שאותם אני רוצה להביא אל תוך הבית.
  4. בשלב הזה אפשר להפעיל מיני תוכנות וסקריפטים (מייקרופט למשל קוראים לזה "כשרונות" והקהילה פיתחה כבר כ-140 כאלו), כאן מגיעה ההתממשקות עם MQTT ורכיבי חומרת Sonoff השונים, או גישה לרשת כדי לדבר עם חשבון הגוגל שלכן כדי לבדוק איש קשר או לדחוף ארוע ליומן, וכיוצא באלו.
  5. לבסוף לאשר או להחזיר משוב למשתמש בצורת רכיב אחר שהופך תשובת טקסט לדיבור, מסנטזים כאלו יש הרבה בשוק – היה לי אפילו על אפפל ][ עם 64K זכרון, לצערי האיכות התפתחה מעט מאוד מאז בתוכנה פתוחה. מקווה שישתפר בעתיד.

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

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

קריאה לעומק של תשובות מייקרופט לתומכי הקיקסטארטר ושל תנאי הפרטיות שלהם שכנעה אותי שהם לא עומדים בדרישות הפרטיות שלי בתצורה הנוכחית שלהם. בגדול הם "מתכננים" גרסא מקומית של רכיב ה־STT (דיבור לטקסט) שתרוץ על מחשב לינוקס או חלונות אבל זה עוד לא שם, ובתלות ברכיב שיבחרו, יכול להיות שזה ידרוש GPU חזק כדי לבצע את הניתוח בצורה מהירה ככל הניתן. מנתח ה־STT הנוכחי שלהם לא מספיק טוב והחדש שיכנס בסוף החודש צריך הרבה יותר כוח מחשוב. אז  כדאי לחכות. בעתיד זו תהיה אפליקציה או תמונת Docker מוכנה שנוכל להריץ על שרת PC כעזר לרספברי בלי להסתמך על שרתי החברה.

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

25 February, 2018 03:50 PM

20 February, 2018

Shlomi Noach

Using dbdeployer in CI tests

I was very pleased when Giuseppe Maxia (aka datacharmer) unveiled dbdeployer in his talk at pre-FOSDEM MySQL day. The announcement came just at the right time. I wish to briefly describe how we use dbdeployer (work in progress).

The case for gh-ost

A user opened an issue on gh-ost, and the user was using MySQL 5.5. gh-ost is being tested on 5.7 where the problem does not reproduce. A discussion with Gillian Gunson raised the concern of not testing on all versions. Can we run gh-ost tests for all MySQL/Percona/MariaDB versions? Should we? How easy would it be?

gh-ost tests

gh-ost has three different test types:

Unit tests are already running as part of automated CI (every PR is subjected to those tests). Systems tests are clearly tied to our production servers. What's the deal with the integration tests?

gh-ost integration tests

The gh-ost integration tests are a suite of scenarios which verify gh-ost's operation is sound. These scenarios are mostly concerned with data types, special alter statements etc. Is converting DATETIME to TIMESTAMP working properly? Are latin1 columns being updated correctly? How about renaming a column? Changing a PRIMARY KEY? Column reorder? 5.7 JSON values? And so on. Each test will recreate the table, run migration, stop replication, check the result, resume replication...

The environment for these tests is a master-replica setup, where gh-ost modifies on the table on the replica and can then checksum or compare both the original and the altered ghost table.

We develop gh-ost internally at GitHub, but it's also an open source project. We have our own internal CI environment, but then we also wish the public to have visibility into test failures (so that a user can submit a PR and get a reliable automated feedback). We use Travis CI for the public facing tests.

To run gh-ost's integration tests as described above as part of our CI tests we should be able to:

I was about to embark on a MySQL Sandbox setup, which I was not keen on. But FOSDEM was around the corner and I had other things to complete beforehand. Lucky me, dbdeplyer stepped in.

dbdeployer

dbdeployer is a rewrite, a replacement to MySQL Sandbox. I've been using MySQL Sandbox for many years, and my laptop is running two sandboxes at this very moment. But MySQL Sandbox has a few limitations or complications:

dbdeployer is a golang rewrite, which solves the dependency problem. It ships as a single binary and nothing more is needed. It is simple to use. While it generates the equivalence of a that of a MySQL Sandbox, it does so with less command line flags and less confusion. There's first class handling of the MySQL binaries: you unpack MySQL tarballs, you can list what's available. You can then create sandbox environments: replication, standalone, etc. You can then delete those.

It's pretty simple and I have not much more to add -- which is the best thing about it.

So, with dbdeployer it is easy to create a master/replica. Something like:

dbdeployer unpack path/to/5.7.21.tar.gz --unpack-version=5.7.21 --sandbox-binary ${PWD}/sandbox/binary
dbdeployer replication 5.7.21 --nodes 2 --sandbox-binary ${PWD}/sandbox/binary --sandbox-home ${PWD}/sandboxes --gtid --my-cnf-options log_slave_updates --my-cnf-options log_bin --my-cnf-options binlog_format=ROW

Where does it all fit in, and what about the MySQL binaries though?

So, should dbdeployer be part of the gh-ost repo? And where does one get those MySQL binaries from? Are they to be part of the gh-ost repo? Aren't they a few GB to extract?

Neither dbdeployer nor MySQL binaries should be added to the gh-ost repo. And fortunately, Giuseppe also solved the MySQL binaries problem.

The scheme I'm looking at right now is as follows:

The above is a work in progress:

Another concern I have at this time is build time. For a single MySQL version, it takes some 5-7 minutes on my local laptop to run all integration tests. It will be faster on our internal CI. It will be considerably slower on Travis CI, I can expect between 10m - 15m. Add multiple versions and we're looking at a 1hr build. Such long build times will affect our development and delivery times, and so we will split them off the main build. I need to consider what the best approach is.

That's all for now. I'm pretty excited for the potential of dbdeployer and will be looking into incorporating the same for orchestrator CI tests.

 

 

20 February, 2018 07:29 AM

31 January, 2018

Rabin Yasharzadeh

Ansible and ControlMaster file naming

This is a short story of how Ansible and SSH (using the default ControlMaster path format) bite me.

Lets take this network layout for example, where we have the same IP behind different machines.

+--------------+           +------------+
                               |              |           |            |
                               |  dc1-jumper  +-----^-----+  dc1-db    |
                        +------>  8.8.8.8     |           |  10.0.0.1  |
                        |      |              |           |            |
+-------------+         |      +--------------+           +------------+
|             |         |
|  mgmt-host  +---------+
|             |         |      +--------------+           +------------+
+-------------+         |      |              +-----^-----+            |
                        |      |  dc2-jumper  |           |  dc2-db    |
                        +------>  8.8.4.4     |           |  10.0.0.1  |
                               |              |           |            |
                               +--------------+           +------------+

And we have this lines in our ssh config file,

Host dc1-jumper
  HostName dc1-jumper
  User root
  Port 22
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no

Host dc2-jumper
  HostName dc2-jumper
  User root
  Port 22
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no

Host dc1-db
  HostName 10.0.0.2
  User root
  Port 22
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  ProxyCommand ssh dc1-jumper -W %h:%p

Host dc2-db
  HostName 10.0.0.2
  User root
  Port 22
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  ProxyCommand ssh dc1-jumper -W %h:%p

Host *
   ControlMaster auto
   ControlPath ~/.ssh/master-socket/%r@%h:%p
   ControlPersist 6s

Now the problem is that

dc1-db
and
dc2-db
share the same IP, and the master socket file which is created (based on the above placeholders %r@%h:%p) will use the same file name, so if you try to connect to
dc1-db
right after you have connected to
dc2-db
, guess where you well end up ?

$ ll ~/.ssh/master-socket
0 srw-------. 1  Jan 31 17:42 root@10.0.0.2:22
0 srw-------. 1  Jan 31 17:41 root@dc1-jumper:22
0 srw-------. 1  Jan 31 17:41 root@dc2-jumper:22

I only notice this after I saw my Ansible playbook is changing the same file over and over, the file was a simple yum repo definition, which should not change after the first setup, but this repo template had a ansible fact as place holder which was the distro version (rhel6/rhel7), and based on which connection was establish first (dc1-db vs dc2-db) this fact was set based on the first machine which was connected. So each run one of the machine will register a change.

After looking into ssh documentation I found out there are other place holders I can use. There is %C which didn’t help in my case, as it seem to generate the same string, but using %n did the trick as it used the connection name and not the

Hostname
name/ip for the socket file.

ControlPath ~/.ssh/master-socket/%r-%n-%p

$ ll ~/.ssh/master-socket
0 srw-------. 1  Jan 31 17:42 root-dc1-db-22
0 srw-------. 1  Jan 31 17:42 root-dc2-db-22
0 srw-------. 1  Jan 31 17:41 root-dc1-jumper-22
0 srw-------. 1  Jan 31 17:41 root-dc2-jumper-22

 

31 January, 2018 04:48 PM

29 January, 2018

Shlomi Noach

orchestrator 3.0.6: faster crash detection & recoveries, auto Pseudo-GTID, semi-sync and more

orchestrator 3.0.6 is released and includes some exciting improvements and features. It quickly follows up on 3.0.5 released recently, and this post gives a breakdown of some notable changes:

Faster failure detection

Recall that orchestrator uses a holistic approach for failure detection: it reads state not only from the failed server (e.g. master) but also from its replicas. orchestrator now detects failure faster than before:

Faster master recoveries

Promoting a new master is a complex task which attempts to promote the best replica out of the pool of replicas. It's not always the most up-to-date replica. The choice varies depending on replica configuration, version, and state.

With recent changes, orchestrator is able to to recognize, early on, that the replica it would like to promote as master is ideal. Assuming that is the case, orchestrator is able to immediate promote it (i.e. run hooks, set read_only=0 etc.), and run the rest of the failover logic, i.e. the rewiring of replicas under the newly promoted master, asynchronously.

This allows the promoted server to take writes sooner, even while its replicas are not yet connected. It also means external hooks are executed sooner.

Between faster detection and faster recoveries, we're looking at some 10sec reduction in overall recovery time: from moment of crash to moment where a new master accepts writes. We stand now at < 20sec in almost all cases, and < 15s in optimal cases. Those times are measured on our failover tests.

We are working on reducing failover time unrelated to orchestrator and hope to update soon.

Automated Pseudo-GTID

As reminder, Pseudo-GTID is an alternative to GTID, without the kind of commitment you make with GTID. It provides similar "point your replica under any other server" behavior GTID allows.

There's still many setups out there where GTID is not (yet?) deployed and enabled. However, Pseudo-GTID is often misunderstood, and though I've blogged and presented Pseudo-GTID many times in the past, I still find myself explaining to people the setup is simple and does not involve change to one's topologies.

Well, it just got simpler. orchestrator is now able to automatically inject Pseudo-GTID for you.

Say the word: "AutoPseudoGTID": true, grant the necessary privilege, and your non-GTID topology is suddenly supercharged with magical Pseudo-GTID tokens that provide you with:

Auto-Pseudo-GTID further simplifies the infrastructure in that you no longer need to take care of injecting Pseudo-GTID onto the master as well as handle master identity changes. No more event_scheduler to enable/disable nor services to start/stop.

More and more setups are moving to GTID. We may, too! But I find it peculiar that Pseudo-GTID was suggested 4 years ago, when 5.6 GTID was already released, and still many setups are not yet running GTID. If you're not using GTID, please try Pseudo-GTID! Read more.

Semi-sync support

Semi-sync has been internally supported via a specialized patch contributed by Vitess, to flag a server as semi-sync-able and handle enablement of semi-sync upon master failover.

orchestrator now supports semi-sync more generically. You may use orchestrator to enable/disable semi-sync master/replica side, via orchestrator -c enable-semi-sync-master, orchestrator -c enable-semi-sync-replica, orchestrator -c disable-semi-sync-master, orchestrator -c disable-semi-sync-replica commands (or API equivalent).

The API will also tell you whether semi-sync is enabled on instances. Noteworthy that configured != enabled. A server can be configured with rpl_semi_sync_master_enabled=ON, but if no semi-sync replicas are found, the Rpl_semi_sync_master_status state is OFF.

More

UI changes, removal of prepared statements, documentation updates, raft updates...

orchestrator is free and open source and released under the Apache 2 license. It is authored at and used by GitHub.

I'll be presenting orchestrator/raft in FOSDEM next week, at the MySQL and Friends Room.

29 January, 2018 09:02 PM

21 January, 2018

Kaplan Open Source Consulting

תמיכה ב-PostgreSQL

אנחנו שמחים להכריז על שירותי ייעוץ ותמיכה ב-PostgreSQL, אחד ממסדי הנתונים בקוד פתוח המועדפים על ארגונים. אנו תומכים בהתקנות על כל הפצות הלינוקס הגדולות, אצל הלקוח או בענן, כולל פתרונות PostgreSQL-as-a-service. בנוסף, אנחנו גם תומכים ב-PostGIS, תוספת עבור מידע מרחבי בתוך PostgreSQL. השירות שלנו מגובה ע"י מרכז הכשירות של credativ, אחת מחברות המובילות בתחום ה-PostgreSQL.

בנוסף לשירות העסקי, אנחנו שמחים להצטרף לקהילת ה-PostgreSQL הישראלית, על ידי מתן חסות לכנס PGDay 2018 שיתקיים ב-19.3.2018 (פרטים נוספים באתר http://pgday.org.il )

21 January, 2018 10:37 AM

20 January, 2018

Guy Rutenberg

Set default application using `xdg-mime`

You can use the xdg-mime utility to query the default mime-type associations and change them.

xdg-mime query default video/mp4

Will return the .desktop file associated with the default app to open mp4 files. To change the default association:

xdg-mime default vlc.desktop video/mp4

you need to specify the desktop file to open files of the specified mime type. To check the mime-type of a given file, use

file -ib filename

20 January, 2018 06:11 PM

16 January, 2018

Artyom Beilis

CppCMS עובר מ-LGPLv3 ל-MIT

היום עדכנתי רישיון של CppCMS ל-MIT. הגרסה הקרובה 1.2 תשוחרר עם רישיון מעודכן

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

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

הטקסט המלא

16 January, 2018 09:47 AM

04 January, 2018

Levi Shahar

איך לא להגן על הרשת אלחוטית שלכם

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

Full text

04 January, 2018 09:25 AM

02 January, 2018

Kaplan Open Source Consulting

יעדי 2018

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

היעדים הקהילתיים שלנו ל-2018:

  1. אימוץ מדיניות "כסף ציבורי? קוד ציבורי!" בגופי ממשלה, רשויות המדינה והשלטון המקומי
  2. שילוב נשים בעולם הקוד הפתוח
  3. מימון המונים לגיור מוצרי קוד פתוח
  4. הקמת חממה לעסקים מבוססי קוד פתוח
  5. שילוב סטודנטים בפרוייקטי קוד פתוח

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

02 January, 2018 11:22 PM

27 December, 2017

Diego Iastrubni

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

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

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

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

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

הטקסט המלא

27 December, 2017 08:18 PM

14 December, 2017

Arie Skliarouk

O GTalk team, where were thou? (part III) (AKA: The other shoe dropped).

Today it happened for the first time. GTalk team, silently, without telling anyone, stopped messages sent using XMPP to be delivered to Android Hangouts clients. This caused me to miss important alert message from my monitoring system.

Good bye GTalk/Hangouts, it was nice to know you.

Hello telegram, the only popular and opensource API system out there!
See you on tg://resolve?domain=skliarie

14 December, 2017 08:41 AM

07 December, 2017

ik

התמודדות עם שגיאות תוכנה

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

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

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

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

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


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

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

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

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

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

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

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

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

חריגה היא משהו שלא צריך להתרחש ובמידה וכן, צריך אליו התייחסות מיוחדת. כלומר זה משהו חריג, שלא אמור להתרחש בכלל.

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

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

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

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

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

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

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

07 December, 2017 09:40 AM

03 December, 2017

Rabin Yasharzadeh

Force WP-CLI output to be in English

I need to manage several insensate of WordPress installations, some of them are in Hebrew and one in Arabic, and when using wp-cli to manage the installation, e.g when running plugin update, wp-cli will use WordPress translation strings with the current WP installed language. So for example a Hebrew WP installation will look like this:

WP-CLI terminal output in Hebrew

Using WP-CLI with a terminal not supporting BiDi

One way to over come this, is to use a terminal which support BiDi (e.g mlterm or Konsole)

WP-CLI with BiDi suported terminal

Using WP-CLI with a terminal (like mlterm) supporting BiDi

That’s make is a bit better, but still I prefer all my terminal work to be in English.

I tried to add a snippet of code to wp-config.php to detect if the WP installation is running via WP-CLI and force the WPLANG to be en_USbut that didn’t work either. So I googled a bit more and didn’t found any way to resolve this my self, so I asked for some help in the wp-cli slack channel and they gave me a work around which seems to work, and they also open an issue (which you are welcome to support to push this forward) in github about defaulting to English for wp-cli in terminal.

TL;DR

Any way, the short answer is to use the --require option of wp-cli to load a file which uses a hook to set WPLANG before any one set it.

<?php
WP_CLI::add_wp_hook( 'pre_option_WPLANG', function() {
    return 'en_US';
});

And you can run all your commands with:

wp --require=force-locale.php {...}

or you can go one step forward, and set it as default for all wp commands by setting it in the global ~/.wp-cli/config.yml file

require:
  - /home/wp/.wp-cli/force-locale.php

 

03 December, 2017 08:35 AM

28 November, 2017

Lior Kaplan

AGPL enforced: The Israeli ICT authority releases code

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

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/)

Full text

28 November, 2017 09:07 AM

14 November, 2017

Guy Rutenberg

Installing Firefox Quantum on Debian Stretch

Debian only provides the ESR (Extended Support Release) line of Firefox. As a result, currently, the latest version of Firefox available for Debian Stretch is Firefox 52, which is pretty old. Lately, Firefox 57, also known as Quantum, was released as Beta. It provides many improvements over older Firefox releases, including both security and performance.

Begin by downloading the latest beta (for Firefox 57) and extract it to your home directory:


$ wget -O firefox-beta.tar.bz2 "https://download.mozilla.org/?product=firefox-beta-latest&os=linux64⟨=en-US"
$ tar -C ~/.local/ -xvf firefox-beta.tar.bz2

This installs Firefox to your current user. Because Firefox is installed in a user-specific location (and without root-priveleges), Firefox will also auto-update when new versions are released.

If you prefer using the stable version of firefox, simply replace the first step by


$ wget -O firefox-stable.tar.bz2 "https://download.mozilla.org/?product=firefox-latest&os=linux64⟨=en-US"

Next, we take care of desktop integration. Put the following in ~/.local/share/applications/firefox-beta.desktop:


[Desktop Entry]
Type=Application
Name=Firefox Beta
Exec=/home/guyru/.local/firefox/firefox %u
X-MultipleArgs=false
Icon=firefox-esr
Categories=Network;WebBrowser;
Terminal=false
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;

14 November, 2017 07:22 PM

08 November, 2017

Lior Kaplan

קוד פתוח בכנס האזרח 360 של רשות התקשוב הממשלתי

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

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

מכל הדברים, שקף אחד עשה לי את היום:

קוד פתוח ברשות התקשוב הממשלתי

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

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

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

08 November, 2017 03:07 PM

28 October, 2017

Levi Shahar

השורה הראשונה בסקריפט שלכם

הפוסט הבא נכתב כתשובה למישהו שאמר לי “הטרמינל קורא את השורה הראשונה בקובץ (*sh), ומחליט כיצד להריץ אותו”. והאמת היא שזה לא נכון, כי הקרנל בכבודו ובעצמו מטפל בזה.

Full text

28 October, 2017 09:25 AM

18 October, 2017

Ram on Agmon

אובנטו 1710 – גירסה ששווה להתקין

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

הטקסט המלא

18 October, 2017 05:06 PM

09 October, 2017

Guy Sheffer

RealtimePi – out of the box real-time RaspberryPi Raspbian

RealtimePi logo

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.

Features

Steps to install

  1. Download the image here
  2. Unzip and flash it to an SD card (small enough to fit a 2GB card)
  3. Open newly flashed image and edit two files, one for the wifi, and one for the bot token:
  4. Put in realtimepi-wpa-supplicant.txt your wifi address (skip if using Ethernet cable). Here is how it should look:
    wifi

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!

 

Full text

09 October, 2017 10:05 AM

03 October, 2017

Meir Kriheli

מצגת ההרצאה אודות Vue.js

Vue.js החזירה את הכיף שנעלם לי בפיתוח פרונטאנד.

ההרצאה אודות Vue.js שהועברה במסגרת PyWeb-IL 69 זמינה בעמוד הרצאות ומצגות.

03 October, 2017 06:39 AM

25 August, 2017

ik

חודש עם Tilix

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

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

הדבר הקרוב ביותר שמצאתי הוא תוכנה בשם Tilix, אשר קיבלתי עליה המלצה. התוכנה עצמה כתובה בשפה בשם D, והיא מספקת המון תכונות מדהימות, אשר חלקן לקוחות מכלים כדוגמת screen ו tmux, וחלקן מ iTerm2.

tilix

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

בנוסף לכך שיש לי split שקל לעבור בניהם עם המקלדת, אפשר גם ליצור משהו שנקרא session, ממש כמו virtual desktop. וגם אליהם ניתן לעבור בקלות עם המקלדת.
היא מאפשרת למשל לשתף מקלדת עם כל או חלק מהטרמינלים הפתוחים בסשן, כך שהקלדה במקום אחד תתקבל גם בשאר, חיפוש של תוכן שהודפס למסך (למשל לוג שאתם פתחתם עם tail -f, ואולי פספסתם משהו בו), ואפילו ניהול של clipboard, בנושא שאל העתקה והדבקה, ולא בניהול של היסוטוריה וכיוב' שלו, הוא יודע לספק הודעת מערכת כאשר פעולה הסתיימה, להגדיר מסוף כ readonly (לא מקבל מקלדת, בניגוד ל CTRL+S שפשוט משהה את הפעילות) ובנוסף, יש לו תמיכה בכלים שונים שלא ניסיתי עדיין.

אני יודע מה אתם חושבים, למה להשתמש בה ולא ב tmux?
ובכן, דבר ראשון, אני כמעט אף פעם לא עובד על שרתים מרוחקים בשנה האחרונה. כלומר כן לפעמים מתחבר, אבל עדיין לטרמינל שלי.

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

אבל זה לא הכל, אני יודע שכאן אני תלוי בטרמינל, ולא בתוכנה שרצה בטרמינל, אבל בסופו של דבר, האם זה משנה אם התוכנה נקראת tmux, screen או אולי Tilix?

ובכן, קצת 🙂

הייתי מאוד שמח לראות את Tilix משפרת מספר דברים אצלה:

במידה והשניים הראשונים יהיו, לדעתי מדובר במתחרה ראוי ל tmux (למעשה הוא כזה כבר עכשיו, אבל עדיין).
כמובן שגם אפשר להריץ tmux בתוך tilix, ואז בכלל זכיתם המון גמישות 🙂

כמובן שיש עוד תכונות של iTerm2 שהייתי שמח לראות אצלי, אבל הדברים שבאמת חשובים לי נוצרו כבר.

 

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

25 August, 2017 08:29 AM

14 August, 2017

Guy Sheffer

How to reuse your old Raspberry Pi as a Telegram-controlled Alarm Clock – AlarmPi

RaspberryPi Alarm clock

RaspberryPi alarm clock

Hey all,

So do you have a RaspberryPi not doing anything at home? Got that 2GB class 4 SD card that you just don’t know what to do with it? Well this guide is for you! It will let you turn your Pi in to an IOT alarm clock, no code, no complicated commands, just flash, edit two text files and you are good to go. The alarm clock is controlled from Telegram, so you can set it and turn it off from your smartphone. I find that usually using my phone wakes me up. So it’s useful for me. You can also edit the alarm and use any mp3 file you want.
The code is all available in github. AlarmBot is the Telegram Bot. An AlarmPi is the distro (built with CustomPiOS yet again).

Steps to install

  1. Download the image here
  2. Unzip and flash it to an SD card (small enough to fit a 2GB card)
  3. While it downloads and flashes, let’s create a telegram bot and get a token for it!
    1. Send a message to bot father
    2. Send /newbot

      Setting a new bot

      Setting a new bot

    3. Copy the telegram token that is in the last message
  4. Open newly flashed image and edit two files, one for the wifi, and one for the bot token:
    1. Put in alarmpi-wpa-supplicant.txt your wifi address (skip if using Ethernet cable). Here is how it should look:
      wifi
    2. In config.ini,  paste the newly created bot token from step 3. This is where the token goes:
      token
    3. optionally, you can change the alarm.mp3 file to the sound of your choice.
  5. Boot your pi and connect it to speakers, wait a bit, because it will reboot internally twice. And send /start to your bot.
  6. You’re done! Let’s see how we can set alarm with telegram!

How to use the telegram bot

Once you got a reply to /start and you know the bot is working you can use “/help” to list all the available commands.
Screenshot_2017-08-12-16-42-42~01.png

First, set the /timezone to your location, and make sure you can see the correct time with the /time command.

Now let’s set an alarm, type /new and you will get the option to pick an alarm that works daily or weekly (code contributions would be great to add more types of alarms).

Screenshot_2017-08-12-16-44-42~01.png

Once you have alarms, you can manage them in the /list command.

Screenshot_2017-08-12-16-46-53.png

You can disable, or delete commands using this menu. Selecting the bell will disable it, the X will delete an alarm, pressing on the alarm names would close the table.

To stop an alarm that is going, send /stop to the bot.

You can test the alarm using the /test command.

There is no reason why any Pi on earth should not be doing something

So this AlarmPi distro is usable, it lets you burn and flash a device within minutes and make it useful instead of lying and collecting dust in your house. The reason people are not using Pis is because making them do something requires “a guide”, aka list of instructions you are probably going to get wrong to do something simple. Building something as robust as this would take hours, and would be hell to maintain and receive code contributions. But AlarmPi is easy to read and modify. There is a repo for the bot, and a repo for the distro. If a new rapsberrypi comes out and there is a new Raspbian, all you got to do is rebuild and release. No manual editing. And takes less time to build and supports over 40 devices already which run Armbian.

The code base of AlarmBot lets you control crontabs, it could be used for controlling

As always, code contribute are appreciated!

Full text

14 August, 2017 11:01 AM

31 July, 2017

Ira Abramov

כפתור פראנויה לכל כיס

אמ;לק: סקירת מוצר שיוסיף לכם שכבת הגנה על חשבונות מקוונים וגם על המחשב האישי. זו תהיה כתבה ראשונה בסדרת פוסטים על אבטחת מידע בסיסית לישראלי המצוי, למרות שהפוסט הספציפי הזה אולי לא מיועד ממש לכולם כי הוא עוסק בחומרה יעודית שעולה בסביבות $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. אפשר לדון פה פילוסופית אם ה־‏Google Authenticator שלי, שמגובה כל יום וניתן לשחזור במקום אחר הוא באמת משהו שיש לי או שהוא מידע ולכן משהו שאני יודע, אבל לצורך הפשטות, לרוב המוחץ של האוכלוסייה, זה נופל תחת משהו שיש לי.

31 July, 2017 04:51 PM

12 July, 2017

Artyom Beilis

אחרי תקופה ארוכה שוחררה בטא של CppCMS 1.1.0

אחרי תקופה ארוכה של המתנה שוחררה גרסת בטא 1.1.0 של CppCMS. גרסה זו מכילה המון שיפורים ושיוניים. ביניהם:

  • תכנון מחדש של application pool לתיקון מספר בעיות מובנות שהיו קיימות בו עד כה
  • API חדש של פעולות non-blocking לשיפור משמעותי בביצועי אפליקציות אסינכרוניות
  • סיכון ועיבוד בזמן העלאה של התוכן (למשל עיבוד או בדיקה של קבצים תוך כדי העלאה)
  • תמיכה משופרת ב-RESTful API
  • מערכת לניהול plugin ושיפורים מערכת תבניות (templates) בהם.
  • אפשרות ניהול session ללא עוגיות (למקרה והמשתמש ממש צריך)
  • שילוב ניהול ה-session מול טכנולוגיות אחרות כולל מימוש עבור PHP, Java Servlet, ASP.Net ו-Python Django
  • שיפורי ביצועים רבים
  • ועוד...

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

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

  • ל-1.4 תמיכה מלאה ב-HTTP/1.1, ב-HTTPS ומימוש של websockets
  • ל-2.0 להעביר CppCMS ל-C++11 תוך ניקוי חלק מה-API שילקח מספריה סטנדרטית כמו std::shared_ptr

אתם מוזמנים להתנסות בגרסת בטא האחרונה!

הטקסט המלא

12 July, 2017 09:01 AM

11 July, 2017

Oz Nahum

Submitting patches to Python

This is not my typical blog post style. So no "how to" or opinnions. Just some reflections on how I submitted a patch to Python's standard library. continue reading...

11 July, 2017 06:56 AM

18 June, 2017

Amir Aharoni

סיסמה

אז לפתע פתאום האקדמיה ללשון שינתה את כללי הכתיב.

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

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

אני הקפדתי מאוד על „ססמה” בתרגומי פיירפוקס וטוויטר, למרות התנגדויות רבות, ועכשיו זה בהדרגה יהפוך ל„סיסמה”. על זה לא חבל לי כל־כך, כי זאת ממילא מילה שאולה מובהקת, גם אם עתיקה, ואם אתם שואלים אותי, אפשר להוסיף יו״ד גם למילים שמיות מובהקות כמו פסגה, קדמה, וכיו״ב.

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

אני מרוצה מהשינוי של „תכנה” ו„יזמה” ל„תוכנה” ו„יוזמה”. אני גם מרוצה למדי מהשינוי של מילות היחס „אתי, אתך” ל„איתי, איתך”, ושל „עתים” ל„עיתים”, אבל מוזר לי ביותר שלא נוספה בהזדמנות הזאת האות יו״ד למילים כמו „אִגרוף” ו„מִחזור”, כדי לא להתבלבל עם „אֶגרוף” ו„מַחזור”. זה היה יכול להיות כלל פשוט ושימושי, והוא ממש לא היה אמור להיות שנוי במחלוקת. חבל שזה התפספס.

עוד משעשעים אותי ה„אישורים” שנינתו למילה „אומנם” וליו״ד בצורת הגוף הראשון בזמן עתיד בבניין נפעל, למשל „איכנס” במקום „אכנס”. אני תמיד כתבתי אותם בכתיב מלא. את „אומנם” כתבתי בווי״ו כי גם „אֻמנם” הוא ניקוד תקני ולא רק „אָמנם”, וצליל u תמיד אמור להיכתב בווי״ו (אם כי עכשיו גיליתי לראשונה שהניקוד „אֻמנם” מיועד לשאלות, לפחות לפי אבן־שושן). ובבניין נפעל כתבתי תמיד „איכנס”, „איזהר”, וכו׳, כי הניקוד בחיריק תקין כמו בניקוד בסגול (ר׳ למשל גזניוס 51p).

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

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

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

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

18 June, 2017 11:03 AM

09 May, 2017

Meir Kriheli

debian.org.il המחודש

debian.org.il היה חלק מה"חוב הטכני" שלי. מדובר באתר די פשוט שנבנה עם Django pre-1.0 ופייתון 2.6, והציג נהלים לקויים (כמו הכללת שם הפרוייקט ב־import).

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

הקוד החדש באתר כולל:

הפריעה לי גם העובדה שהקוד מעולם לא פורסם (היה קובץ settings.py בודד, עם הסיסמאות בתוכו וכד'). גם נקודה זו טופלה והקוד זמין כעת בגיטהאב:

https://github.com/MeirKriheli/debian.org.il

09 May, 2017 02:41 PM

17 April, 2017

Oz Nahum

Why I still persist on not using systemd

The following screenshot of a systemd issue reported on github saysit all. I don't care if systemd is technically superior, the way it's being developed is truely bothering. It's leadership is insisting on being blunt ingoring users, misleading and even wrong. continue reading...

17 April, 2017 02:36 PM

15 April, 2017

Lev Meirovitch

Sneaking features through the back door

Sometimes programming language developers decide that certain practices are bad, so bad that they try to prevent their use through the language they develop. For example: In both Java and C# multiple inheritance is not allowed. The language standard prohibits it, so trying to specify more than one base class will result in compiler error. […]

15 April, 2017 05:24 PM

03 April, 2017

Lev Meirovitch

Putting it out there…

When I first discovered Linux and the world of Free Software, I was already programming in the Microsoft ecosystem for several years, both as a hobby, and for a living. I thought switching to writing Linux programs was just a matter of learning a new API. I was wrong! Very wrong! I couldn’t find my […]

03 April, 2017 09:04 PM

16 February, 2017

Itzik Kotler

The Key To Cybersecurity: Shared Intelligence And Industry Cooperation

Chicago in the 1930s was a hive of organized crime where the bad guys always had the upper hand. As dramatized by the film "The Untouchables," lawman Eliot Ness confides to Officer Jim Malone that he is prepared to do “everything within the law” to take down Al Capone. But streetwise Malone tells Ness that, to win, he must be prepared to do more. “He pulls a knife, you pull a gun. He sends one of yours to the hospital, you send one of his to the morgue. That’s the Chicago way.”

Like ‘30s Chicago, the dark web is crawling with global crime syndicates, and everyone I've talked to says fighting the Chicago way sounds appealing. The problem is that the same laws that make hacking a crime also make it a crime to retaliate.

Read full article at Forbes here

Full text

16 February, 2017 12:12 AM

13 January, 2017

Ram on Agmon

סיכום שנה שנת 2016 + מצבה של התוכנה החופשית

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

הטקסט המלא

13 January, 2017 12:10 PM

18 October, 2016

PyCon Israel

Pycon Israel 2016 wrap up

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:

Diversity

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.

Budget

In the spirit of Open Source and transparency, we’re happy to share a summary of our budget (all numbers are thousands of Shekels).

Income

Sponsorship: 246

Ticket sales: 54

Total: 300

Expenses

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.

Community organizations

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:

2017

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/

Final words

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

18 October, 2016 07:45 PM

23 September, 2016

Yosef Or Boczko

GNOME 3.22 שוחרר !

צהריים טובים.

לאחר מחזור פיתוח בן שישה חודשים, שוחררה גרסה 3.22 של שולחן העבודה GNOME !

GNOME 3.22 Hebrew

גרסה זו מכילה 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ø, שעורך סרטונים אלו כבר למספר שחרורים.

כרגיל, אוסיף כאן שיר. שיר יפה, שפשוט נהניתי לנגן על הפסנתר.

בברכה,

יוסף אור

23 September, 2016 02:47 PM

14 August, 2016

Yosef Or Boczko

מצב תרגום GNOME – לקראת 3.22

ערב טוב.

בשבוע האחרון תרגמתי ובכך צמצמתי פערים של חצי שנה ללא תרגום, והבאתי את GNOME לתרגום מלא (להוציא את gitg ואת gnome-builder, שלא תורגמו גם בגרסה הקודמת).

אחוז התרגום עומד על 80% (36915 מחרוזות מתורגמות, 3727 מעורפלות ו־4987 שאינן מתורגמות), בהשוואה ל־80% (36069 מחרוזות מתורגמות, 3702 מעורפלות ו־4937 שאינן מתורגמות) ב־3.20 ו־82% (37120 מחרוזות מתורגמות, 3326 מעורפלות ו־4675 שאינן מתורגמות) ב־3.18.

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

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

את השיר, הפעם, אקדיש ליום המיוחד, לגעגוע לירושלים.

ערב טוב,

יוסף אור

 

14 August, 2016 04:05 PM

12 August, 2016

sml

החלצות מעידכון כושל

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

הטקסט המלא

12 August, 2016 04:42 PM

13 July, 2016

Itzik Kotler

Fuzzing The Kill Chain

Fuzzing is a technique in software testing where you generate a number of random inputs, and see how a program handles it. So what does a testing technique have to do with a process such as the Cyber Kill Chain as developed by Lockheed Martin? Easy! Just as fuzzing a software produces resilient software, fuzzing a process will produce a validated process. The Kill Chain takes about seven steps that adversaries must complete in order to achieve their goals, but will it always be the case? Can an attacker pull off a successful attack with just one step? Or three? That’s what we’re going to fuzz out ...


(Again, in order to avoid cross-posting between the different blogs, that was just a brief paragraph and a link to the original post is below).

Continue reading: https://www.safebreach.com/blog/fuzzing-the-kill-chain

Full text

13 July, 2016 08:14 PM

24 June, 2016

sml

טיפ: התקנת NX על OpenSUSE Leap 42.1

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

הטקסט המלא

24 June, 2016 09:35 AM

27 May, 2016

Shlomi Fish

Tech Tip: Checking the Latest Build in Travis CI

If you are using Travis CI, you can check the latest build after a failed build by going to the “Build History” tab in your project’s main page (= https://travis-ci.org/shlomif/fc-solve or equivalent), and selecting the new commit.

Licence

Copyright by Shlomi Fish, 2016.

You can reuse this entry under the Creative Commons Attribution 3.0 Unported licence, or at your option any later version of it. See the instructions on how to comply with it.

27 May, 2016 12:43 PM

21 May, 2016

Shachar Shemesh

על פטרת צפרניים ופרטיות

פוסט זה הוא תגובה לטור של ג׳קי לוי בישראל היום. מר לוי היקר, אני יהודי חרד. לא חרדי. אינני נוהג ללבוש שחורים, אפילו לא כאסטרטגיית דיאטה. את השקפתי הדתית ניתן לסכם במילה „אתאיסט”, אף כי אני מקיים באדיקות את הוראות מורינו הדגול רוג׳ר רביט (הוראות שמהכרותי עם הצדדים היותר פומביים של אישיותך, גם אתה לא […]

The post על פטרת צפרניים ופרטיות appeared first on לינוקס ותוכנה חופשית.

21 May, 2016 05:59 AM

29 April, 2016

PyCon Israel

Meet our silver sponsors — Cloudify

Cloudify is an open-source Python Shop developing an orchestration framework for any cloud infrastructure provider allowing to use the tools of your choice to manage your applications. Cloudify’s mission statement is to allow organizations to realize the benefits of cloud computing by simplifying the management of cloud applications at scale.

Our complex challenges vary from scaling and healing to abstracting common tools like Docker, Puppet, Chef, Telegraf and the likes via Cloudify plugins. We adhere to PEP8 and do not compromise on code quality! OpenStack contributors are welcome.

We’re looking for brilliant developers to join us on a journey to take the concept of orchestration to the next level. http://github.com/cloudify-cosmo is our home. You’re invited.

29 April, 2016 08:55 AM