קטגוריה: gui

מימוש RDP טבעי בשפת רובי

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

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

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

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

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

כתובת הפרויקט: https://github.com/Safe-T/rdp-rb

שלום גנום שלוש

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

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

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

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

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

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

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

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

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

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

Gtk3, GObject Introspection ו Free Pascal

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

ביצוע הBinding משתמש למעשה בפרויקט שקהילת GTK יצרה בשם GObject Introspection.
אם להסביר על רגל אחת את מהות הפרוייקט, אז הוא לוקח את ה API של פרוייקט GTK וממיר את המידע לקבצי XML אותם ניתן לקרוא בכל שפת תכנות.

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

קובץ כזה יראה כך: להמשיך לקרוא

קישור ל Qt

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

מה זה תכנות מונחה עצמים ? להמשיך לקרוא

להריץ webkit עם FPC/Lazarus

התפרסה תמונה של תוכנית שכתובה ב QT4 המריצה את WebKit. עד כאן אין שום דבר לכאורה יוצא מן הכלל.

ובכן התוכנית שמריצה את WebKit כתובה כולה ב FPC והממשק משתמש בלזרוס.

הספריות QT שהתוכנית משתמשת בהם הינם:

# ldd fpc_webkit_demo | grep libQt
. libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb79b8000)
. libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb7090000)
. libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0xb6f8e000)
. libQtWebKit.so.4 => /usr/lib/libQtWebKit.so.4 (0xb669c000)

מדהים אותי כל פעם מחדש לראות את הקדמות התמיכה בQT בכל מה שקשור ל FPC ולזרוס, ועכשיו כש QT 4.5 הולך לצאת בתור LGPL, אז לדעתי אפשר לראות רק יותר שימושים נורמליים עבור QT, במקום עוד ספרייה שמנסה לגרום ל ++C להיות שימושי…

פיתוח מהיר וקל

לפני יומיים התקנתי (גם אני) את FPC 2.2.0. וכרגיל בניתי אחרי עדכון עוד גרסה של Lazarus ישירות מה svn. גרסת ה QT4 שאני לאחרונה ערכתי עליה ניסויים עדיין רחוקה מלספק לי כלי נורמלי לפיתוח (ואני באמת מצר על כך).
אז החלטתי לנסות אחרי התעלמות רבת החודשים, שוב את GTK 2 בלזרוס. חשוב לי להזכיר כי יום לפני שחרור FPC 2.2.0 ניסיתי את גרסת GKT2 של לזרוס שקרסה בזמן עליית הIDE.
אבל פתאום על אותה גרסת SVN לתדהמתי Lazarus פשוט עובדת. ועובדת די טוב יחסית לגרסה לא יציבה ולא מושלמת (וכן היא עדיין מכילה הרבה באגים).
עכשיו הצלחתי להשלים את משימת פיתוח ה FastAGI שלי (שנכון לזמן כתיבת הבלוג, נשאר לי רק להתחיל לשלוח פקודות ולקבל את התשובה חזרה). פשוט מדהים.
Lazarus, GTK2, Hebrew

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

פיתוח חוצה פלטפורמות באמצעות Free Pascal 2.2.0

תרגום מהגרסה האנגלית לכתבה שפורסמה בOSNews ע"י Joost van der Sluis
תורגם ע"י עידו קנר

לאחרונה Free Pascal (FPC) שחררה את הגרסה 2.2.0. מהדר הקוד הפתוח לשפת פסקל אשר ממשיך מאז התחיל ב-1993 לגדול ולהיות אחד ממהדרי הקוד הפתוח הכי מתוחכמים הקיימים כיום. מדי יום מפתחים רבים מגלים את FPC ומפתחים את התכנות שלהם באמצעות פסקל מונחה עצמים. הפיתוח של Lazarus תרם לכך באופן מיוחד: Lazarus היא סביבת עבודה משולבת גרפית עבור FPC, עם כלי פיתוח רבים לפיתוח ותכנון תכנות גרפיות.
להמשיך לקרוא

היכולת לבחור -> תוכנות למניפולציות תמונה

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

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

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

[gv data="lyLPZDVdQiQ"][/gv]

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

אז מי אמר שאין תוכנות בלינוקס מגניב