מודרניזציה של אפליקציות Web באמצעות יישום ה-Experience Builder

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

זה בא לידי ביטוי בכמה מאפיינים:

  • הוא לא כל כך מותאם לנייד. הוא כן יודע להגיב לגדלי מסך שונים, אבל אין את היכולת לשנות ולהתאים אותו במיוחד לנייד כדי שיוצג בצורה האופטימלית ביותר. היות ופלאפונים וטאבלטים הם היום כלי עבודה לכל דבר, אי התאמה של יישום לנייד הוא כבר חיסרון יחסית משמעותי.
  • האינטראקציות של ווידג'טים מוגבלות – כשאנחנו מפעילים ווידג'ט מסוים, לא בהכרח תהיה לו השפעה על יישום אחר. למשל אם עכשיו נסנן נתונים באמצעות הfilter, הוא ישפיע על המפה אבל לא על שאר הווידג'טים ביישום.
  • ב-Web App Builder לא ניתן לשנות את הפריסה של ווידג'טים. הממשק מכיל תבניות מאוד מובנות ואי אפשר להתאים את המיקום של ווידג'טים בתוך הממשק, אלא רק לקבוע איזה ווידג'ט ישב במיקום אפשרי.
  • חיסרון משמעותי מאוד הוא שה-Web App Builder לא תומך בצפיין המפות החדש של ESRI. הצפיין שמבוסס על JS4 כבר מכיל יכולות תצוגתיות ופונקציונליות מרשימות מאוד, אם זה מבחינת ביצועים, סימבולוגיה מתקדמת עם תמיכה ב-Hatching למשל, אפקטים ועוד. כמובן שבעתיד הקרוב והרחוק יתווספו עוד יכולות לצפיין המפות החדש וזה יהפוך את השימוש ב-Web App Builder למוגבל הרבה יותר.
  • הממשק של ה-Web App Builder לא מאפשר ליצור יישום שמורכב מכמה מפות. אז אם רוצים למשל ליצור ממשק אחד שמציג מפות דו ממד ותלת ממד יחד, ה-Web App Builder לא עונה על הצרכים האלו.
  • הממשק גם לא מאפשר ליצור טיוטות של שינויים באפליקציות שטרם פורסמו. כלומר, אם מבצעים איזה שהוא שינוי ביישום, אין את היכולת לשמור אותו כטיוטה. כל שינוי שנעשה ונשמור יופיע ישירות אצל המשתמשים ביישום.
  • ונקודה אחרונה היא שהתהליך ליצירת תבניות אינו פשוט ולא אינטואיטיבי.

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

בתמונות – השוואה בין ממשק ה-Web App Builder (בתמונה העליונה) לממשק ה-Experience Builder המחודש והמודרני.

עם זאת לממשק עדיין יש כמה יתרונות על ממשק ה-Experience Builder:

  • לא כל הווידג'טים עדיין הגיעו לממשק ה-Experience Builder. אנחנו צריכים לזכור ש ה-Web App Builder מכיל בתוכו כמות יפה ומרשימה של ווידג'טים ולא כולם עדיין הוטמעו ב-Experience Builder.

בתמונה המצורפת ניתן לראות איזה ווידג'טים יעשו את המעבר מה-Web App Builder אל ממשק ה-Experience Builder. התמונה מחולקת לארבע קטגוריות:

  • עיגול כתום מלא – ווידג'ט שכבר הוטמע ב-Experience Builder
  • עיגול כמעט מלא – יישום שנמצא בעבודה של ESRI ועתיד להגיע בעתיד הקרוב לממשק
  • עיגול חצי מלא – יישום ש-ESRI מתכננת להטמיע
  • עיגול ריק – לא נמצא בתוכניות של ESRI כרגע

בסך הכל ניתן לראות שכל הווידג'טים החשובים ללקוחות יגיעו בסופו של דבר ל-Experience Builder.

  • האפשרות להשתמש ב-URL Parameters – פרמטרים שנמצאים בכתובת ה-URL של הממשק כמו מעבר לקואורדינטה מסוימת, גם זה עדיין לא הוטמע ב-Experience Builder.
  • וכל הנושא של נגישות וכל הנושא של התאמה ללקויי ראייה ולאנשים עם צריכים מיוחדים, גם זה עדיין לא הגיע לממשק.

יכולות ה-Experience Builder

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

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

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

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

בניגוד ל- Web App Builder, בתוך האקספיריינס אנחנו יכולים לשלוט לגמרי בנראות של הממשק:

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

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

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

בדומה ל –Web App Builder, גם ב-Experience Builder ניתן ליצור ווידג'טים מותאמים אישית באמצעות Experience Builder for Developers.

ל-Experience Builder יש גם יכולות נוספות מתקדמות שכדאי להכיר:

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

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

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

ניתן גם להטמיע יישומי ArcGIS אחרים בתוך Experience Builder. בתוך האקספיריינס של יישום מובנה של ממשק הסקרים survey123 שמאפשר שילוב בין סקר לבין מפה ונתונים נוספים. בנוסף, אפשר גם להטמיע את היישומים הנוספים של ESRI, כמו דשבורדים, מפות סיפור, instant apps ועוד ולהציג כמה יישומים באפליקציה אחת.

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

כדי לעזור לכם לבצע את תהליך המעבר ל-Experience Builder, הכנו מספר סרטוני הדרכה והדגמות:

יצירה מחדש של יישום Web App Builder בממשק ה-Experience Builder:

בניית אפליקציות מתקדמות עם ממשק ה-Experience Builder:

לסיכום, ממשק ה-Experience Builder הוא ממשק מתקדם שמכיל יכולות מתקדמות ליצירת יישום WEB עדכני ומודרני אל הממשק, שכבר מכיל חלק נרחב מהיכולות של ה-Web App Builder, צפויות להתווסף בתקופה הקרובה יכולות רבות נוספות, וביניהם לא מעט ווידג'טים חשובים שיעשו את המעבר מה-Web App Builder. אנחנו ממליצים לכם להתחיל לעבוד עם ה-Experience Builder, לחוות את היכולות הרבות שלו ולהתחיל ליצור יישומים מרשימים ומגוונים.

בהצלחה!

Predictive Maintenance – כי תזמון (התחזוקה) זה עניין של טיימינג

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

מודלים אלו יכולים להיות מבוססי Machine Learning או Deep Learning, והם משתמשים בנתונים מחיישנים כדי לזהות חריגות, לנטר את תקינות הרכיבים, וכן לדעת להעריך את זמן התפקוד הנותר של המכונה (Remaining Useful Life, RUL).

באמצעות נקיטת גישת אחזקה זו, נוכל:

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

זאת באמצעות יכולת האלגוריתמים לענות על השאלות הבאות:

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

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

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

תחום האחזקה החזויה נשמע בול בשבילי! אבל למה ב-MATLAB ו-Simulink?

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

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

למידע נוסף:

צפו בוובינר (35:30):

מה חדש בסביבת MATLAB R2022a ?

1 – אפליקציות חדשות

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

    עוד בנושאי ניקוי נתונים ב-MATLAB אפשר לקרוא כאן

Data Cleaner App

  • Hardware Manager App
    אפליקציה זו מאפשרת לנו לזהות חומרה שברשותנו ולהתחבר אליה ישירות מ-MATLAB. היא מהווה פלטפורמה אחודה, נוחה ויעילה ממנה נוכל להתחבר לסוגים שונים של חומרות באמצעות גישה לכל אחת מהאפליקציות וה-add-ons השונים.
    לעוד מידע על האפליקציה, תוכלו לקרוא בקישור הבא.

Hardware Manager App

  • Code Compatibility Analyzer
    אפליקציה זו מאפשרת לנו לחלץ מהקוד אינפורמציה שבעזרתה נוכל לעדכן את הקוד לגרסה המתקדמת ביותר של MATLAB.
    הדוח שמייצרת האפליקציה כולל פרמטרים שונים של המידע הרלוונטי למעבר בין הגרסאות, כגון אבחון בעיות אי-תאימות בקוד, קיום שגיאות syntax, פונקציות שלא קיימות בגרסאות חדשות, פונקציונליות לא נתמכת שעלולה לגרום לשגיאות, פונקציונליות שעתידה להימחק, ועוד…
    למידע נוסף על האפליקציה תוכלו לקרוא בקישור הבא.

Code Compatibility Analyzer App


2 – גם מהזווית של תהליך פיתוח המשלב עבודה ב-MATLAB יחד עם Python – השיפורים ממשיכים להגיע:

  • Editor Python Support
    כעת ניתן לראות ולערוך קבצי Python מתוך MATLAB Editor, כשמוצגים שינויים ויזואליים נוחים – הדגשה בצבעים מתוך MATLAB, הזחה באופן אוטומטי, וכן נוספה התאמה מובנת של delimiters.
  • המרה קלה יותר בין סוגי משתנים שונים מ-Python ל-MATLAB

בגרסת R2022a נוספה תמיכה בהמרת סוגי המשתנים list ו-tuple מ-Python, על ידי שימוש בממירים של MATLAB עבור מחרוזות ומשתנים נומריים.
לפרטים נוספים, תוכלו לראות את העמוד בנושא המרת משתנים בין MATLAB ל-Python, ובפרט לבחון את ערכי סוגי המשתנים py.list ו-py.tuple בטבלה – בקישור הבא.

כדי להיכנס קצת יותר לעובי הקורה, תוכלו להתנסות בדוגמאות ספציפיות:

  • Name=value Syntax
    נוכל להשתמש ב-syntax נוח בקריאה לפונקציה pyargs, לכתיבה משולבת Python בסגנון name=value, כשאנחנו קוראים לפונקציות של Python מתוך MATLAB.


3 – פיתוח Live Editor Tasks מותאמים-אישית

  • Live Editor Tasks הם ממשקים גרפיים פשוטים שניתן לשבץ לאורך הקוד שלנו ב-Live Script.
    בדרך כלל, tasks מייצגים סדרה של פקודות ב-MATLAB שניתן להפעיל באופן אוטומטי בעוד אנחנו חוקרים את הפרמטרים השונים בנתונים.
    בגרסה R2022a נוכל לפתח את tasks כראות עינינו – באופן מותאם אישי ונוח! כל שנצטרך לעשות הוא ליצור subclass ל-Live Task. כך נוכל לייצר את סט הפעולות הספציפי אותו אנו רוצים לשבץ לאורך ה-Live Script שלנו.

    לעוד מידע – תוכלו לקרוא בקישור הבא.

Custom Live Editor Tasks


4 – שיפור ההגנה על הקוד באמצעות P-code

  • בגרסת R2022a מידת ההגנה על הקוד שלנו השתפרה באמצעות שימוש ב-flag חדש של P-code. – נוכל להכניס לפונקציה pcode את הדגל "-R2022a", וכך לייצר קבצי P-code מוגנים על ידי אלגוריתם הגנה יותר מורכב, שהופך את הקוד ליותר קשה לפיצוח.
  • אחסון קבצי Big Data יעיל עם קבצי Parquet

פורמט קבצי Parquet הפך לפורמט אחסון פופולרי ל-Big Data בזכות התמיכה שלו במבני נתונים מקוננים (nested), דחיסה יעילה, ומהירויות קריאה מהירות של הנתונים, כולל סינון נתונים בזמן הקריאה – כך שרק הנתונים הרצויים ייקראו מחוץ לדיסק ולזיכרון.

בגרסת R2022a נוספה תמיכה בביצוע סינון מותנה (Predicate Pushdown). עם הפונקציה rowfilter ניתן להגביל את נפח הנתונים המיובאים, וזאת על ידי ביצוע הסינון כבר בזמן הקריאה. כמו כן, ניתן לקבוע ולהגדיר את הקבוצות מבוססות-השורות שבידינו, וגם לבצע המרה, ייבוא וייצוא של מבני נתונים מקוננים (nested).

לוגו MATLAB מוצג באמצעות קבוצות מבוססות שורות 

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

שילוב בין MATLAB ו-Python – ליהנות מכל העולמות

בטוח כבר שמעתם זאת בעבר – MATLAB או Python – אבל היום אנחנו הולכים לדבר דווקא על שימוש של MATLAB ו-Python ביחד!

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

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

שימוש נפוץ עבור השילוב של MATLAB ו-Python, דרכו רואים איך שתי השפות הללו עובדות טוב ביחד, הוא עבור יישומים בתחום AI. לשם כך קיימים תוספי ייבוא (Importers) ישיר וכנ"ל ייצוא (Exporters) עבור רשתות Deep Learning דרך MATLAB, ONNX ו-TensorFlow.

בסרטון הבא (3:24) תוכלו להתרשם כמה פשוט להשתמש ב-MATLAB וב-Python יחד בשלום ובהרמוניה מלאה:

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

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

למידע נוסף, אני ממליצה לכם להעמיק בקישורים הבאים:

  1. שילוב MATLAB ו-Python (וובינר 30 דקות)
  2. Cheat Sheets שימושיים לעבודה משולבת של MATLAB ו-Python
  3. אינטגרציה של מודל TensorFlow ב-Simulink לצורך סימולציה ויצירת קוד C (סרטון 5:47)

נתראה בפוסט הבא.