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

29 יולי, 2014

Shlomi Noach

Orchestrator 1.0.4 released

Outbrain's orchestrator Version 1.0.4 is released.

Quick links: Orchestrator Manual, FAQ, Downloads

What's new?

Co-masters

orchestrator now does a much better visualization of Master-Master replication:

orchestrator-co-masters

orchestrator-co-masters-j

 

The work on making the visualization more appealing also resulted in making a better distinction between the visual tree topology and the replication topology. This in turn also fixes the ruleset for moving slaves in a co-master topology, and lays the ground for future work on co-masters (i.e. Galera; unscheduled).

resolve

Had a few reports on orchestrator not being able to connect to some topology instances. It seems like the problem is with name resolving. To prove/disprove this, the resolve command or resolve API call now allows checking for instance connectivity. Orchestrator will first test whether the CNAME at all resolves, then try to dial the TCP address (host + port) to see whether it can make a connection.

A sample API call would be:

http://127.0.0.1:3000/api/resolve/myhost.mydomain/3306

A command line invocation would be:

orchestrator -c resolve -i myhost.mydomain:3306

chef cookbook

Silvia Botros of SendGrid has published a generic cookbook for deploying orchestrator via chef: https://github.com/sendgrid-ops/chef-orchestrator

Thanks, Silvia!

Topology Annonymizer Cheatsheet

If you want to share your topology graph, but do not wish to expose your host names, open your cluster page and execute the following in your browser's JavaScript console (jQuery is already included by orchestrator):

var _=function() {
  var counter = 0;  
  var port = 3306;
  jQuery("h3.popover-title").each(function() {
    jQuery(this).html("instance-"+(counter++)+":"+port)
  });
}();

This results in a modified topology such as the one presented above ("instance-11", "instance-12" and so on).

Other enhancements since 1.0:

Orchestrator is released as open source under the Apache 2.0 license and is available at: https://github.com/outbrain/orchestrator

29 יולי, 2014 11:42 AM

ik

אפצ'י מפסיק לפעמים להגיב לבקשות בצורה רנדומאלית

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

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

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

הפעלתי wireshark, וגיליתי כי three way handshake אינו מתבצע עד הסוף, ולמעשה ה ACK האחרון לא נשלח חזרה על ידי השרת (ה wireshark היה על השרת עצמו).
יש מספר נסיונות שליחה של לחיצת היד, ובסוף יש RST על הבקשה כי לא ניתן היה ליצור קשר, והבקשה התנתקה.

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

בנתיים דיברתי עם בוריס, והוא הצליח למצוא קישור מעניין שמדבר כי אפצ'י בברירת המחדל מגיע עם דגל של TCP_DEFER_ACCEPT. עד כמה שאני מבין, הדגל הזה אומר לשרת לא לחכות ל three way handshake, אלא במידה ונשלח מידע אחרי החיבור הראשוני, כשעוד אין ACK, אלא רק SYN-ACK, ניתן כבר לקבל את המידע, ולמעשה רק כשהוא יסתיים להישלח, ישלח גם ה ACK.

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

בשביל לכבות את הדגל בחיבור, צריך לשים ב httpd.conf הראשי, את הקוד הבא:

 AcceptFilter http none

במידה ויש הגדרה אחרת בנושא, למשל עם data, יש לשכתב אותה לnone.
וזה מכבה למעשה את הדגל של TCP_DEFER_ACCEPT ועכשיו אפצ'י חייב לחכות ללחיצת היד כמו שצריך לפני שיוכל לנתח את מה שנשלח.

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

 


תויק תחת:Operating Systems, unix, אינטרנט, אתרי אינטרנט, טיפים וטריקים, טכנולוגיה, לינוקס, קוד פתוח, תוכנה, תקשורת

29 יולי, 2014 09:29 AM

Gabor Szabo

Bad error messages

I just had this encounter: $ curl -H 'Content-Type: application/json' ' https://....' curl: (1) Protocol https not supported or disabled in libcurl WTF, it worked yesterday?

For the full article visit Bad error messages

29 יולי, 2014 08:39 AM

Yaniv Gershoni

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

אשכול הקישורים הגדול

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

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

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

הטקסט המלא

29 יולי, 2014 05:22 AM

28 יולי, 2014

Yosef Or Boczko

GUADEC 2014

ערב טוב.

כאן מסתיים היום השני שלי ב־GUADEC, כנס משתמשי ומפתחי GNOME באירופה. הכנס החל יומיים לפני שהגעתי.

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

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

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

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

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

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

sponsored-badge-simple

28 יולי, 2014 09:15 PM

Boris Shtrasman

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

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

28 יולי, 2014 08:35 PM

Shlomi Noach

Some MySQL security tips

This is a brief list of security tips for MySQL. It is by no means complete.

mysql> CALL common_schema.eval("SELECT sql_block_account FROM sql_accounts WHERE USER = 'root'");

28 יולי, 2014 09:13 AM

27 יולי, 2014

Lior Kaplan

Testing PHPNG on Debian/Ubuntu

We (at Zend) want to help people get more involved in testing PHPNG (PHP next generation), so we’re started to provide binaries for it, although it’s still a branch on top of PHP’s master branch. See more details about PHPNG on Zeev Suraski’s blog post.

The binaries (64bit) are compatible with Debian testing/unstable and Ubuntu Trusty (14.04) and up. The mod_php is built for Apache 2.4 which all three flavors have.

The repository is at http://repos.zend.com/zend-server/early-access/phpng/

Installation instructions:

# wget http://repos.zend.com/zend.key -O- 2> /dev/null | apt-key add -
# echo “deb [arch=amd64] http://repos.zend.com/zend-server/early-access/phpng/ trusty zend” > /etc/apt/sources.list.d/phpng.list
# apt-get update
# apt-get install php5

For the task of providing these binaries, I had a pleasure of combining my experience as a member of the Debian PHP team and a Debian Developer with stuff more internal to the PHP development process. Using the already existing Debian packaging enabled me to test more builds scenarios easily (and report problems accoredingly). Hopefully this could also be translated back into providing more experimental packages for Debian and making sure Debian packages are ready for the PHP released after PHP 5.6.


Filed under: Debian GNU/Linux, PHP

Full text

27 יולי, 2014 08:51 AM

Amir Aharoni

ארכיון

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

קראתם נכון, exe.

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

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


נ״ב: בשדות שם המשתמש והססמה אתם עדיין מגדירים dir="rtl", למרות שהם תמיד כתובים משמאל לימין. זה אמור להיות תיקון של שורה אחת. יהיה נחמד אם תתקנו את זה.


27 יולי, 2014 08:49 AM

Diego Iastrubni

דביאן שידרגו אל systemd

המחשב הנייד שלי לא הלך לישון. לא מצאתי את הכניסות הללו בתפריטים של KDE. זה גרם לי לחפש באניטרנט ומצאתי מה נשתנה: דביאן testing עברו כבר אל systemd במקום systemv-init. המעבר היה יחסית חלק.

עדכנתי מחדש מערכת, עשיתי reboot והכל הסתדר. נראה שהייתה בעייה וכבר פתרו אותה. נחמד.  מי שרוצה – פרטים אפשר למצוא כאן: https://wiki.debian.org/systemd

הטקסט המלא

27 יולי, 2014 05:22 AM

25 יולי, 2014

Ilan Shavit

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

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

טבלת ג'ובים:
ה- shell של לינוקס (bash\sh\ksh\csh\tcsh) מחזיק טבלה של ג'ובים. נריץ את הפקודה הבאה:

$ sleep 10 &
[1] 17029
$

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

הצגת טבלת הג'ובים:

$ jobs
[1]+  Running                 sleep 10 &

תחזיר לנו רשימה של ג'ובים שרשומים במערכת.

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

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

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

kill PID

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

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

My Signature

25 יולי, 2014 11:00 AM

24 יולי, 2014

ik

עוד מערכת לדיווח על אזעקות

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

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

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

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

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

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

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

 

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


תויק תחת:go, Ruby, טכנולוגיה, ממשל, פיתוח, קוד פתוח, תוכנה, תכנות

24 יולי, 2014 08:28 PM