DCSIMG
April 2007 - Posts - GadiM - Gad J. Meir www.idag.co.il

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

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

קישורים

April 2007 - Posts

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

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

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

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

קבוצת המשתמשים של VB 

 3/1/2007 - How to design your software to run without problems on Microsoft Operating Systems

This month, instead of focusing on new technologies, we are going to take a look at a very important “real-world” topic - How to design your software to run without problems on Microsoft Operating Systems (Lessons learned in the Vista Compatibility Lab). Our speaker, Gadi Meir, loves to focus on real-world issues and problems.

Did you know that Microsoft publish a full specification for programs designed to run under any Microsoft specific operating system ?

The specification is hidden under the code name “The Logo program”.

This code name is misleading, because even if you are not interested in getting the logo, you still want your software to run according to the specification, to avoid any surprises from your customers and to save a lot of problems from your help desk team.

In this talk Gadi will try to squeeze a 3 day workshop into a 2 hours timeframe.

And he’ll give some hints, to help your software survive the current and future Microsoft operating systems

1/2/2005 - The VB My Object Productivity Tool   and InfoPath as a Data Entry XML Transformer


This month’s speaker is no stranger to IVBUG members, but the topics he is going to cover, may be relatively unknown to you.   He is going to cover two different, interesting topics:

VB My Object productivity tool

The my object is a collection of tools and utilities that give the developer fast access, shortcuts and prepared code  to a variety of useful day to day pieces of code used by every developer during the development process.  Knowing about this object and using it wisely is a recipe for turbo bursting of a developer performance.  Gad is going to cover most of the features of the my object and show the special integration between the my object and the Visual Studio 2005 Visual Basic IDE.

InfoPath as a Data Entry XML Transformer

InfoPath is one of the unknown programs in the Office family. It is part of the Office professional and enterprise editions since the introducing of office 2003 and many users don’t know about it. InfoPath is the perfect tool for transferring human form data to XML as the first step of any digital possessing of forms. InfoPath have rich programming interface but in most of the cases the basic built in capabilities eliminate the need of writing code at all. Gad is going to show the tip of the iceberg of a tool that is going to be one of your building blocks for any electronic data processing system you are going to build from now on.

 5/3/2003 - MSF V.3; Microsoft’s’ Updated Toolkit for Project Management and .NET CLR’s Virtual Sandbox

קבוצת המשתמשים של C#/CPP

21/2/2007 - User Mode Device Drivers, new technology looking for usage and Event Tracing for Windows frame ware and other Microsoft instrumentation tools

Topics: Debugging (cont.)

Lecturer: Gad J. Meir, R & D Manager, IDAG Ltd.

Part I - Event Tracing for Windows frame ware and other Microsoft instrumentation tools

One of the main problems every developer faces is how to know what his program is doing. Printf debugging is the most common debugging technique used since “Hello World!\n” to answer this question. For a larger development projects, most developers write their own logging library. Event Tracing for Windows (ETW) is an efficient kernel-level tracing facility that lets you log kernel or application-defined events. This framework is built-in in every Microsoft OS since Windows 2000 and is fully managed by the build in windows administration tools. The new Process Monitor tool and related tools are going to be discussed with some practical guidelines based on Gadi’s experience.

Part II – User Mode Device Drivers, new technology looking for usage       

The Idea of writing a device driver in user mode might at first sound insane. Most developers avoid considering device driver as a solution because of the complexity involved in writing device drivers. The new WDK with the new KMDF and UMDF frameworks does to device driver development, the same type of revolution that MFC did to C++. Writing device drivers today using KMDF and/or UMDF is much simpler than before. One of the interesting side effects of the new frameworks is the ability to write a device driver that runs in user mode. In this presentation the architecture and usage of device drivers, is going to be discussed with emphasis on user mode device drivers.

16/06/2005 - Instrumentation in Windows Operating Systems

Topic: Instrumentation in Windows Operating Systems

Instrumentation gives you the ability to use operating system infrastructure services to receive, in real time, detailed information about how your program is functioning.

You get the ability to embed in your program road signs, signals and trace capabilities that can be dynamically and selectively activated and stopped as needed in the customers environment.

You can control your instrumentation without recompiling, using tools that are integral part of the operating system.

These abilities allow you to receive an exact picture of the operation of your program in real-time and allow you to more easily locate, problems in the runtime environment. The operating system Instrumentation infrastructure allow for the collection of data even if the application is distributed over several computers.

Instrumentation provides a bridge that connects your application to your customer’s production  and enterprise environment, and to the operations and management tools that are customarily used in these types of environments (and in computer centers with large numbers of computers).

Integrating the Instrumentation mechanisms in the design phase of a program has minimal effect on the development and coding time, but reduces considerably the time dedicated to locating mistakes and analyzing problems in the development, debugging, installation and usage phases.

The following topics will be covered in this lecture:

  • ETW -Event tracing for windows.
  • Performance Counters.
  • WMI - Windows Management Instrumentation.
  • Event Logs.
  • WER – Windows Error Reporting
  • PTD - production Time Debugging.

  18/8/2004 - Debugging in Production Systems

Topic: Debugging in Production Systems

The development environment (Visual Studio) is not installed on customer and production sites. Testing environments that emulate the customer site should also not have the development environment installed. So what do you do when you try to understand why your program crashes specifically in these environments? Installation of the development environment on these machines is either not possible or causes the problem to disappear.

Without access to Visual Studio, the rules of the game change. However, as it turns out, there are many things that one can do even without Visual Studio.

The following is a list of things that one should know how to do when found in this type of situation:

  • Analyze blue screens and decoding the information that is contained in them
  • Dump collection on the program and operating system levels and the proper configuration to obtain the most appropriate Dump.
  • Post mortem analysis of a Dump and extraction of great amounts of information contained in it.
  • Use debugging tools that do not require installation that allow the analysis of code in a production environment or at a customer site (Win32 and CLR)
  • Use of operating system debuggers that do not require installation
  • Use of Low Level Debug using a connection cable between computers
  • Use the operating system and Microsoft’s programs symbol files, in order to obtain more information
  • Do all of this remotely from a distant computer

These are just some the topics that Gadi will cover, time permitting.

17/7/2003 - CLR Plumbing

19/2/2003 - MSF V.3; Microsoft’s’ Updated Toolkit for Project Management and CLR’s Virtual Sandbox

16/10/2002 - More on Security

21/11/2001 - Developing Multi-Threaded Applications with C#

24/7/2005 - קהילת ‎.NET Software Architects

This month, we will have a presentation on "Agile MSF & Team Server extensibility for Architects". The presenter is Gad Meir from IDAG. Gadi is a veteran group member and a distinguished architect in the Israel software industry.

The new Team Server in Visual Studio 2005 includes MSF, the Microsoft Solutions Framework, as the first template. MSF is “not-a-methodology” used for years internally at Microsoft, as a framework for managing software and deployment projects. It is a group of guidelines and practices, which enables the “team-of-peers”, leading the project, to focus on doing the most important thing at any given time.

The presentation will allow us to understand MSF and to be able to utilize and customize team server to implement your development process needs.

31/05/2005 - קבוצת המשתמשים של Agile

Part II:

What is MSF Agile and why it is the first process template in the new Microsoft Team foundation server Visual Studio 2005.

Details:

MSF is “not-a-methodology” used for years internally at Microsoft, as a framework for managing software and deployment projects. MSF is actually a group of guidelines and practices, which enables the “team-of-peers”, leading the project, to focus on doing the most important thing at every given time. Using MSF principles makes it easy to discover how far the project is from its target and what is the direction you need to steer the project to get back on track.

In the New Team foundation system server part of the new Visual studio 2005 suite, the first process template is MSF Agile.

In this lecture I’ll try to explain what MSF is and why Agile MSF is actually a proof to the fact that MSF is an agile frame ware.

Agenda:

  • What is MSF.
  • What are the MSF main Principles.
  • What do the Team Foundation server Agile MSF template include.
  • How to use Team Foundation server as an agile management tool.
  • Q & A

 

 13/11/2005 - קבוצת המשתמשים של Embeded

שלום לחברי קהילת ה- Embedded,
ברצוני להזכירכם על המפגש הבא שיתקיים ב- 13 בנובמבר 2005, בין השעות 17:00-20:00. האורח שלנו הפעם הוא גדי מאיר מחברת ידאג. הוא יתאר לנו בפרוט רב את היתרונות הגלומים בשימוש ברכיבי דיווח השגיאות ב- Windows CE

אבי כחולי

13/12/2005 - קבוצת Windows Client

מדוע לא להשתמש בחשבון ADMIN:
כל אחד מאיתנו חשוף לסיכונים באינטרנט בזמן הגלישה, החל מדייג דרך Root kits וכלה בסתם וירוסים.
בהרצאה נסביר את הסיכונים שכולנו מכירים וגם כמה חדשים ונראה שיש כמה דברים פשוטים שניתן לעשות ברמת הפרט.
דברים שאם אתה מקפיד עליהם יכולים למנוע 99% מהסיכונים.

על זרה מושלמת ודמות מומחה המחשבים בסרטים

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

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

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

לי זה מפריע.  

למה מסך כחול הוא ההוכחה הטובה ביותר לכך שהמחשב שלך תקין

לצערנו מסכים כחולים הולכים ונעלמים מנוף חדרי השרתים וסביבות המשתמש. גם XPSP2 וגם W2K3SP2 יציבים מדי ולא מתעופפים להם בעליזות רבה כבימים ימימה (למגינת ליבם של חובבי היוניקס למיניהם שאוהבים עד היום לחיות בעבר ולנפנף במנטרה הזו). היציבות הזו גרמה לכך שאחד המיזמים של קבוצת השיווק במיקרוסופט נאלץ להיגנז, ואני מדבר כמובן על המיזם למכור שטח פרסומת על גבי המסכים הכחולים (עם חשיפה מובטחת). היציבות הזו גורמת נזק רב גם למפתחים, בעיקר בסביבה ארגונית. אם עד עכשיו יכולת לסמוך על מנהל ה IT שיעשה לפחות Reset אחד כל יום לשרת בגלל מסך כחול. כיום זה כבר לא משהו שאתה יכול לקבל כדבר מובטח מאליו. התוצאה היא שכל זליגות הזכרון הקטנות שהתעלמת מהם בפיתוח, מצטברות ומתגלות ומציפות לעין כל את הפשלות שעשית בפיתוח. הבעיה חמורה עד כדי כך שמתארגנת קבומת אינטרס של מפתחים תחת הכותרת Reset Every Day, על מנת לשכנע את מיקרוסופט לאפשר למפתחים לפגוע קצת ביציבות של המערכת. מצד שני התשובה של אנשי ה PR של מיקרוסופט, היא שלא צריך מאמץ מיוחד מצד מיקרוסופט כדי לפגוע ביציבות המערכת והמפתחים עושים את זה מספיק טוב לבד. למעשה, אומרים אנשי ה PR, אחת הסיבות העיקריות לכך שמיקרוסופט עשתה את דוט נט ואת ה CLR היתה כדי לשחרר את המפתחים מהצורך לבצע Reference count על האוביקטים שלהם. היוזמה הזו באה לאחר שמחקר מדעי הוכיח שמפתח ממוצע איננו מסוגל לספור מאפס עד שלוש ובחזרה לאפס ללא טעות. ההוכחה המדעית למחקר היא שה Bug הנפוץ ביותר בתוכנות שרתים ובמערכות לקוח עד ימינו אנו, הוא פניה לאוביקט שכבר נעשה לו Delete ו/או השארת אוביקט לנצח בזכרון גם לאחר שאף אחד לא צריך אותו יותר.

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

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

ולמה שמפתח יקרא לשגרה הזו ? ישנם המון סיבות וכולם מתועדות היטב ב WDK (וגם ב Debugging tools for windows). המכנה המשותף לכל הסיבות הללו הוא איתור בזמן ריצה של בעיה, שהיא כל כך קריטית ומשמעותית לסביבת העבודה של מערכת ההפעלה, שכל המשך פעולה של מערכת ההפעלה בתנאים הללו, יכול רק להחמיר את הנזק שיגרם, ולגרום לתוצאות גרועות עוד יותר. במקרה כזה, כל מה שנשאר למי שאיתר את הבעיה החמורה הזו, זה לסמן את הבעיה וללחוץ על כפתור האזעקה / המפלט / העצירה / ההשמדה עצמית, לפני שיגרם נזק גדול יותר. לאיסטרטגיה הזו קוראים Fall to a safe place והיא מקובלת מאד אצל כל מי שעוסק בתרחישי חירום.

כל מה שאתה צריך לעשות כדי לדעת מה בדיוק גרם ללחיצה על הכפתור האדום, הוא לקרוא את ה Dump לתוך כלי קריאת Dump - ים כמו WinDbg ולתת את פקודת הקסם "Analize -v!" וללכת ולחפש בתיעוד את הסיבה. גם אם לא תבין את הסיבה, המודול הגורם יוצבע בה בבירור ובדרך כלל לא צריך יותר מזה כל מנת לדעת מי הפושע.

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

Posted: Apr 02 2007, 12:34 AM by GadiM | with 1 comment(s)
תגים:,

למה אני נוסע השנה ל WinHec

במאי השנה אני נוסע לארה"ב להשתתף בכנס WinHec2007. זהו כנס ספציפי ליצרני חמרה וכותבי Device Drivers בעולם של מיקרוסופט.

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

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

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

העולם של Device Drivers עובר כיום מהפכה שניתן להשוות אותה פחות או יותר למה ש MFC עשה ל C++ (לטוב ולרע). והמסר של המהפכה הזו חשוב לכל מי שעוסק בתחום, שלא לדבר על ההשלכות שיש לזה על Vista ו LongHorn. גם נושא ה Certification התקדם ויש כמה שינויים משמעותיים וגם זה נושא חשוב לכל מי שעוסק בתחום.

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

תודה מראש לכל מי שינקוף ולו אצבע.