קטגוריה: טלפוניה

מה צריך להבין בפיתוח אפליצקיות לסלולר

אתחיל בגילוי נאות: אינני מפתח אפליקציות לסלולר.

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

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

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

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

למשל, פיתוח מבוסס רשת – תקשורת סלולרית של data יקרה יותר מאשר תקשורת בwifi למשל, אם כי כל פעולת רדיו מאוד יקרה בסלולר – כן, גם bluetooth ו GPS.

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

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

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

גימגום השיחה בטלפון

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

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

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

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

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

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

ניוד צרות

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

לזרוס, חדשות תקופתיות

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

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

ביום שני האחרון (4/02/2013) שוחררה גרסה 1.0.6 של לזרוס אשר מכילה תיקוני באגים בלבד.

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

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

מנוע המשחק Castle שיחרר גרסה 4 שלו. המנוע מאפשר לספק API גבוהה לפיתוח משחקים, התחברות למודלים (כדוגמת אלו הנבנים עם blender), ועוד.

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

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

אחרון חביב לפוסט זה, הוא Community של FPC/Lazarus ב Google+‎ שאתם מוזמנים גם להצטרף לשם כמובן.

where have all the music gone ?

I used to be a Pandora user, but due to issues with the Music labelling cartel, it was forced to close it's service outside of the U.S. Australia and New-Zealand.
So I moved to Last.fm that offered me to pay a fee and listen to music. Until I got the following Email: להמשיך לקרוא

עתיד עולם התכנות לאן ?

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

למשל כאשר אדם שאל שאלה בwhatsup על ללמוד לפתח אפליקציות לאנדרואיד. אנשים התחילו להציע לו ללמוד את שפת C ואת שפת ++C, וכו' … ובסוף אחרי שהבין איך לתכנת בשפות האלו, לעבור לJava אשר איתה הוא סוף כל סוף יגיע "למנוחה ולנחלה".

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

ההבדל בהצעה שלי, הוא בכך שבאמצעות FPC, אני יכול לכתוב אפליקציות טבעיות לאנדרואיד (מהדר אותן לקבצי class של ג'אווה), ויותר מזה, אני יכול גם לבנות מערכות עבור iOS (יש בMarket של אפל, תוכנות שלמות אשר כתובות עם FPC ודלפי החדש עבור iOS), לספק את אותן המערכות לסביבות שולחנות העבודה, web ושרתים. כל זה ללא צורך להחליף שפה או טכנולוגיה, ועדיין לתת מענה רחב יותר מאשר פיתוח רק בשפת ג'אווה או Objective-C. להמשיך לקרוא

פרצת אבטחה חמורה בFreePBX 2.10.0 / Elastix 2.2.0

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

הבעיה מתרחשת בעקבות בעיית Cross Site Scripting אשר כותבת ללא פילטר מסויים לקובץ את התוכן ששמים ב URL. חשוב מאוד לעדכן את המערכת לגרסה האחרונה ביותר אשר מתקנת את הבעיה.

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

בין מעריצי אפל למציאות

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

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

השיר הבא, הולך להישמע לכם מוכר מידי, בגלל שיש שיר בשם Hotel California אשר באורך פלא דומה לו מאוד, אבל השיר שאני שמתי כאן, הגיע קרוב לעשור לפני …

אתה יכול לקחת את הגמל עד לבאר, אתה לא יכול להכריח אותו לשתות …

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

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

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

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