ארכיון חודשי: דצמבר 2011

האם אתה מעוניין לשמוע הרצאה על כלי לפיתוח תוכנות לאנדרואיד ?

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

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

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

אפליקציית Android לניהול נסיעות ברכבת

train managmentSven Barth כתב לעצמו תכנה לניהול הנסיעות שלו ברכבת, ולשם כך השתמש בלזרוס ו FPC for JVM.

הגרסה משתמשת ב SQLite בנוסף בשביל לשמור ולשלוף מידע, ורצה בצורה טבעית על ה VM של אנדרואיד.

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

הגרסה הקודמת של התכנה נכתבה עבור מערכת מבוססת Windows CE. הגרסה שהוא יצר ל WinCE, השתמשה בקבצי ini, אותם הוא כאמור המיר לSQLite.

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

SOPA – עוד מסמר בארון הקבורה לשוק של ארה"ב

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

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

ואם זה לא מספיק, אז אתרים למשל כמו Facebook ו Google+ ואפילו whatsup.org.il מחוייבים לקבל אחריות אישית על כל מעשה של כל משתמש הנעשה באתר. כלומר אם אני ניגש ל whatsup ושם קישור לסרט "פיראטי" או תוכן מוזיקאלי שאין לי רשות לקשר אליו, אז מאיר, יהודה וטל יהיו אחראים באופן אישי לשאת באחריות של המעשה שאני עשיתי. אבל זה לא רק תוכן שהוא פיראטי כביכול. אפילו הוראות כיצד להוריד firefox יכול להחשב כתוכן בעייתי, אשר בעקבותיו האתר והבעלים שלו יפגעו. כל הבלאגן הזה נקרא SOPA שהוא ר"ת עבור Stop Online Piracy Act. להמשיך לקרוא

האם כשאתה הולך למסעדה אתה גם …

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

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

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

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

האם לתרום ערכים לוויקיפדיה ישראל ?

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

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

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

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

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

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

לעבוד עם JSON ו FPC

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

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

בנוסף, הספרייה מגיעה עם fpJSONRTTI אשר ממיר אובייקטים באמצעות RTTI ל JSON וממיר חזרה מ JSON לאובייקטים. בנוסף מגיעה בספרייה גם יחידה בשם jsonconf בשביל לעבוד עם קבצי הגדרות מבוססי json. להמשיך לקרוא

דרושה טכנולוגיה חדשה לדוא"ל

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

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

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

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

ד"א את קוד המקור של google wave אפשר למצוא כאן.

מוקדש כחומר למחשבה.

קישור ל"מדוע firebird עדיף מOracle"

כותב הבלוג Backwards compatible, מנהל למעלה מ600 מסדי נתונים מבית אורקל, ו60 מסדי נתונים של Firebird, מסביר מדוע לדעתו Firebird הוא מסד נתונים שעדיף לכם לקחת עבור העסק שלכם, במקום אורקל.

ממשק גרפי לציטוטים חלק שלישי

Quote Window

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

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

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

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

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

להבין מחרוזות

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