DCSIMG
January 2010 - Posts - GadiM - Gad J. Meir www.idag.co.il

GadiM - Gad J. Meir
www.idag.co.il

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

קישורים

January 2010 - Posts

קבוצות המשתמשים של מיקרוסופט ורשימת הרצאות לשימוש אישי II

לפני די הרבה זמן (אפריל 2007) ריכזתי בבלוג את דעתי על החשיבות של קבוצות המשתמשים, ובאותה הזדמנות ריכזתי שם את רשימת ההרצאות שלי בקבוצות המשתמשים השונות לאורך תקופה של כמה שנים. הרישום הכי עתיק שמצאתי, היה הרצאה שלי על Multi Threading משנת 2001 בקבוצה של ++C, ודי משעשע היה לשים לב, שההרצאה הראשונה שלי בקבוצת Windows Developers שנערכה רק לפני כמה שבועות, עסקה במבוא ל Parallel World. ההומור נובע מזה שקבוצת מפתחי חלונות, היא בעצם ההקמה מחדש של קבוצת ה ++C המקורית, זו שחיה ובעטה בעולם ה Native, עוד הרבה לפני שהפכה להיות מנוהלת (Managed) ושהשם שלה שונה לקבוצת ה #C. המקריות הזו מעןוררת מחשבות על אפקט המטוטלת, ועל "אין חדש תחת השמש".

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

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

22/8/07 – קבוצת המשתמשים של Windows Client

הפעם, טיפה בשונה, המפגש יעסוק בשאלה: "לאן רצה הטכנולוגיה, לאן רצה מיקרוסופט ואיך כל זה משפיע עלינו? "
•    מה קורה למערכות ההפעלה של מיקרוסופט בעולם שבו מצד אחד מערכת ההפעלה היא לא יותר מאשר מרכזיה של גאדג'טים מבחינת הצרכן הפשוט ומצד שני יש דרישה למרכזי מחשבים ענקיים מרובי CPUs וליבות ?
•    מהם התפקידים שממלאים בעולם הזה Vista, W2K8, Media Center, Home Server ?
•    כיצד כל זה מתקשר לטכנולוגית ה Rally, ל Eco System, להזרקה של תקלות חמרה באמצעות תכנה, לטכנולוגיות אבטחה חדשות ולמערכות Enterprise ?
•    מה ההשפעה שיש לכל הטכנולוגיה הזו על הבית שלנו ועל מקום העבודה שלנו ?

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

16/01/08 – קבוצת המשתמשים של #C

Topic: Presentation one Title: Optimizing Code Performance: Theory and Practice
Presentation one Abstract: Code optimization is an art, not a science. Yet, the Visual Studio C/C++ compiler offers numerous optimization features, many of them not well known or properly practiced. It is first necessary to understand what each feature does to the application in order to select the right combination of features necessary to achieve the required performance goals. The session covers the core optimization features and techniques and demonstrates the performance effects of each feature. The participants will get practical tips and best practices based on field experience.

Topic: Presentation two Title: Eliminate Bugs Early With Static Code Analysis
Presentation two Abstract: Catching bugs early reduces development costs. Static analysis is one of the best ways to detect bugs early in the development process. However, to realize its full potential, code must be annotated. Annotating code for static analysis, self documents the code and improves code quality and readability. The session focuses on the Visual Studio C/C++ compiler static analysis features and its static analysis annotation tags. The session is loaded with practical information, demos, and it includes guidelines based on field experience. After attending the session, participants will be able to employ static analysis immediately on their code base.

18/02/09 – קבוצת המשתמשים של #C

Topic: Debugging C++, Native and .NET Applications in the Field with  updated information on Vista, Windows-7 and 64-bit

Lecture description:

At customer sites and in testing and QA labs, Visual Studio is not installed. Single-stepping an application is not a practical approach to catch an elusive bug at a production site with connected live users. Unfortunately, many bugs only reveal themselves in such environments. By using the freely available Debugging Tools for Windows package and the SOS extension, it is possible, without installation, to collect and analyze debug information. The presentation will explains everything a .NET programmer needs to know in order to utilize these valuable tools and techniques immediately. The session is loaded with practical information, demos, and it includes guidelines based on field experience.

Prerequisites
Debugging experience.

24/05/09 – קבוצת הארכיטקטים של דוט נט

This month's topic will be about Why projects fail, why systems crash and what can be done to preempt this.

Our presenter, Gad Meir, is a plumber and a plumber’s job is to clean blockages in pipes. When there is a crash, I go to a production site and take a dump. From the dump I find a bug. Behind every bug there is always a chain of bugs, eventually leading to the root cause of the failure. The root cause of failure could be incorrect architecture, poor process, or abused technology, to name but a few.  When we have a dump, the dirt cannot be swept under the carpet, because the carpet is no longer there.

Analyzing dumps give one a unique perspective about a project’s lifecycle. From this unique, bottom-up approach, all errors that were made during the lifetime of a project can be revealed.  Everything can be detected, from errors made during the envisioning phase to those made just before the crash.

The subject of my talk will primarily be about measures that may be taken in current or future projects to avoid and to be better prepared to all kinds of failures. It will include war room stories and lessons learned. I will also talk a lot about processes, team’s structure, risk management, testing, planning, instrumentation, monitoring, tracing, MSF, MOF, tools, etc.

Target audience is Architects, Project leaders, Senior developers and also IT managers, Help desk personal, Deployment teams, QA managers and anybody who is involved or deals with system failures.

10/06/09 – קבוצת נס ציונה

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

תאור הנושא:

בשלב ראשון נציג מה האילוצים שהשטח כופה על מי שבא לאתר תקלה בתכנה. החל מזה שבסביבת הייצור לא מותקן Visual Studio וכלה בזה שמנהל ה IT שונא מפתחים (ויש לו סיבות טובות לכך). לאחר מכן נציג טכניקות שונות שעונות על האילוצים הללו וניתנות ליישום בתנאי שטח. נדון קצת ב Debugging tools for windows ונכיר גם כלים נוספים שכולם או כבר מותקנים כחלק ממערכת ההפעלה או שהם זמינים להורדה חופשית מהאתרים השונים של מיקרוסופט.

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

ההכנסה של חלונות 7 ו Windows Server 2008 R2 לשוק בקרוב, מספקים לנו כמה חידושים בתחום, שגם אותם נזכיר בהרצאה.

18/06/09 – קבוצת המשתמשים של ALM

מפגש קהילת ALM בנושא: התיאוריה של MSF שמאחורי TFS (וגם: תוכניות MSF ל2010)

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

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

.ההרצאה, שתועבר ע"י גדי מאיר, מדריך MSFמוסמך מטעם מיקרוסופט העולמית ו- MSF Practitioner, תעסוק בעקרונות הבסיסיים של MSF, מה הם אומרים ואיך הם משתלבים בתבניות של TFS. כל העקרונות שמסתתרים מאחורי מודל הצוות, התהליך, הלך המחשבה וכל שאר המונחים וההצעות המופיעות ב Process Guidelines יוסברו ויוסבר גם הרקע התיאורטי והמעשי שעומד מאחוריהם

במסגרת ההרצאה יוקדש מקום לחידושים הרלונטיים בנושא MSF כפי שהם משתקפים ב CTP של Visual Studio 2010

איזה סוג של בלוגר אני או שלוש שנים עברו על הבלוג של השרברב

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

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

התגיות השמנות ביותר שלי עוסקות בתאור ארועים בארץ ובחו"ל (PDC, TechEd, IDCC, SDWest, WinHec, Alt.Net) כולל כמובן המון מפגשי Users Group וימי עיון. במערכות הפעלה חדשות (Vista, Windows 7) עם דגש על 64 ביט כמובן. במתודולוגיות (בעיקר MSF) וארכיטקטורה. באבטחה (Security). בתחביב העיקרי שלי Production Time Debugging. באורחים שאני מאחר מחו"ל David Platt, Juval Lowy ו Michele Leroux Bustamante הבלתי נשכחת. בטכנולוגיות כמו Visual Studio ו Parallel Processing. ובכמה שריטות פרטיות שלי, כמו מסלול היסורים שעברתי עד שמצאתי את המחשב האישי החדש שלי והדעות הבוטות שלי על חוק ה Spam.

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

image

למה לעבור לחלונות 7, יעילות המשתמש ואחריות הדרג המקצועי.

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

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

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

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

אז יופי שאם נרצה להשתמש בכל החידושים של חלונות 7 (ו Windows Server 2008 R2) יש לנו את כל הידע הנדרש, אבל למה שבכלל נרצה לעשות את זה.

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

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

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

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

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

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

גילוי נאות: אני משתמש על המחשב הנייד שלי, עדיין בויסטה 64 ביט כי אני ממתין שיצרן המחשב, ישלח לי הצעה לעשות Upgrade לחלונות 7 (64 ביט כמובן). אבל מצד שני, כל מחשבי המנהלה והפיתוח אצלי בארגון עובדים כבר עם חלונות 7 (64 ביט לחמרה חדשה ו 32 ביט לחמרה שלא תומכת ב 64 ביט).

מה ניתן ללמוד מהנסיון של מיקרוסופט בניהול פרויקטי תכנה והטמעה

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

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

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

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

למי שמעוניין לדעת יותר, אני מרצה על MSF בקבוצת מנהלי הפרויקטים של פנינה ביום שלישי 12/1/10 בשעה 17:00. פרטים נוספים והרשמה בקישור הבא.

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

מיפוי תהליכים בעולם הפיתוח כתוצאה מהמעבר ל Multi Core

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

העולם עובר ל parallel.

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

64cpus

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