DCSIMG
עמוד הבית| חבילות השירות שלנו| חומר חופשי| צור קשר
July 2008 - Posts - בלוג היועצים של מיקרוסופט ישראל

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

July 2008 - Posts

גאווה ודעה קדומה

אתמול עלה לאוויר אתר אינטרנט חדש ומסקרן מאוד.

הרעיון שלו הוא כזה:

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

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

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

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

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

- DataSet זה אסון, אני אף פעם לא משתמש בו

- TCP Binding הוא תמיד העדיף ביותר לשימוש

- אני לעולם לא משתמש ב- Session

ועוד ועוד.

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

First Impressions from TechReady7 (Seattle, WA)

Hello from chilly Seattle,

Yes, chilly, as in “a bit cold”. I talked with my wife earlier and she told me how hot it is right now in Israel while I’m wearing a coat over here (which I had to buy upon arrival since usually the weather here is just fine in July and I didn’t think about bringing anything warm…).

So, most of Israel MCS (12 people!) are here in Seattle for the week and beside excessive meat and alcohol consumption we’re learning quite a few new things!

TechReady is a pretty big internal event for technical Microsoft FTEs (Full Time Employees). It happens twice a year in Seattle, WA. The main advantages of this event are:

1.       All of the presenters are members of the different product teams. Most of them are members of the dev teams.

2.       The scale is huge (5 days, ~7000 attendees, ~1200 sessions, hundreds of hands-on-labs).

3.       Great networking opportunities – both with peers from other countries and the dev teams. This is how we maintain our great relationships with the dev teams and leverage these relationships for the benefit of our customers.

4.       The nature of the content is “unfiltered”. We get the essence of the content directly from the source – good, bad and ugly.

5.       It’s fun :-). On top of the party, the networking, the pubs, the live shows (Seattle, the cradle of Grunge still maintains its coolness!) there’s the gaming night. Playing Halo against a few hundreds of people in a huge hall is quite an experience…

Up until now, I had the pleasure of attending some very interesting sessions delivered by Ray Ozzie, David Chappell and many others. We get technical updates and interesting overviews on various current and future trends, technologies, architecture concepts and methodologies.

For me, personally, the most interesting subjects presented until now were around our Application Platform roadmap, Software + Services concepts, Agile implementation in P&P, Virtualization vision and strategy, Enterprise Library 4.0 and Composite WPF.

We still have 3 days to go and the amount of content is overwhelming. I still hope to learn more about Office 14, VSTS futures, SQL Server 2008, Windows 7, more S+S (this is The next big thing). I have at least 3 sessions scheduled for each time slot and choosing which one I should go to every time is pretty hard…

Over the next few days expect to see more posts from my peers laying out their insights and perspectives on the content we’re absorbing over here. Almost all of what we learn here is still confidential (sorry for not sharing L) and will be publically revealed only around PDC but still there’s a lot we can already talk about now. And we will…

Posted: Jul 29 2008, 08:05 PM by orenk | with 1 comment(s)
תגים:

חינם - רשימת כלים חיוניים חופשיים לזיהוי בעיות ביצועים באפליקציות

שאלה: מה הכלי האולטימטיבי לזיהוי בעיות ביצועים?

תשובה: נמצא לכל אחד בין האוזניים.

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

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

ניהול ידע בקצה אצבעות – Guidance Explorer

Guidance Explorer מבית patterns&practices או כפי שאנחנו מכנים אותו GE הינו כלי לניהול ידע ללא חיבור לרשת. GE מאפשר שליפה מהירה של מידע בתחומים כגון ביצועים, אבטחת מידע ו-VSTS. הכלי בא עם כ-4000 מידעים וניתן בקלות להוסיף גם מידעים משלך. למידע נוסף:

סקר קוד בהיבט שיפור ביצועים – Practices Checker

כדי לזהות כתיבה לא נכונה מזוית ראיה של ביצועים ניתן להיעזר ב-Practices Checker מבית קבוצת patterns&practices שסורק את הקוד שלך ומנסה לזהות תבניות כתיבת קוד לא אופטימאליות. למידע נוסף:

WCAT - יצירת עומס לזיהוי בעיות ביצועים תחת עומס [כבד]

WCAT הינו כלי command line ליצירת עומס על אפליקציות Web – מכל סוג, כולל ASP.NET – בצורה מבוזרת. בארכיטקטורה מאוד דומה לVSTS – כולל Controller ו-Agents – אך ללא UI וללא חיבור ל-TFS. למידע נוסף:

TinyGet – סימולציה של פניות לדפי Web (גם לצורך העמסה)

חייב משהו מהיר ומלוכלך (נשמע לא מי יודע מה בתרגום מ-quick and dirty) כדי ליצור עומס ולזהות בעיות תחת עומס באפליקציות ASP.NET ו-Web  בכלל? TinyGet מאוסף המדהים של IIS Resource kit הוא הכלי שלך. למידע נוסף:

Ajax View – זיהוי בעיות ביצועים ב-JS (כולל AJAX)

כותב אפליקציות עשירות מבחינת UI? משתמש ב-JS וב-AJAX? נתקל בבעיות ביצועים בצד הדפדפן? Ajax View הוא הכלי שלך. למידע נוסף:

הבעיות הן בדרך כלל בבסיס הנתונים – היעזר ב-SQL Profiler

גישות מרובות לבסיס הנתונים, שאילתות מסובכות – אלה הבעיות המרכזיות והכי שכיחות. כדי לזהות אותן היעזר ב-SQL profiler. הכלי עצמו בא עם SQL Server שהוא מוצר בתשלום, אך ברגע שישנו רישיון ל-SQL Server אז SQL Profiler הוא בחינם ;). למידע נוסף:

Fiddler – זיהוי בעיות מזוית ראיה של צד לקוח

Fiddler זהו למעשה HTTP Debugger שמאפשר זיהוי מספר רב של בעיות ביצועים כמו נפחים גדולים של תוכן, ריבוי פניות לשרת ורבות אחרות. אני ממליץ להתחיל מקריאה של חומר מבית Yahoo (נסה את הכלי שלהם – YSlow – הוא טוב באמת – אך רץ רק ב-FireFox).

לוגים של IIS – ה-BI שלך עבור ביצועים מתחיל כאן

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

perfmon – זיהוי בעיות ביצועים מתקדם

perfmon הינו כלי להצגת מדידות של כמות פרמטרים מערכתיים אדירה. החוכמה היא לדעת מה למדוד והיא נמצאת כאן:

 

Alik Levin

שמי אליק לוין ואני מתרכז ב- Security and Performance באפליקציות Net.

בזמני הפנוי אני בלוגר שרוף.

Posted: Jul 28 2008, 03:24 AM by alikl | with 5 comment(s) |
תגים:,

סיפור לקוח – שיפור ביצועים מערכת מידע ברמת ארכיטקטורה

האם אתה אוהב מערכות מהירות או איטיות?

האם ניתן לשפר ביצועים של מערכת כשהמערכת אינה קיימת עדיין? האם ניתן לצפות מראש בעיות זמני תגובה כשאף שורת קוד עוד לא נכתבה? האם ניתן לדעת מראש מה תהיה צריכת רשת, CPU וזכרון – המשאבים המרכזיים שמהווים צווארי בקבוק בדרך כלל?

התשובה – בפרוש כן, ניתן למדל את כל זה ואף מעבר לזה, כל מה שנדרש הוא לדעת לשאול שאלות נכונות.

שיפור ביצועים מתחיל בארכיטקטורה

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

  • תכנון לקוי מוביל למימוש לקוי. ארכיטקטורה ועיצוב לא נכונים תמיד יובילו לבעיות ביצועים. לדוגמה, מערכת שעוצבה להשתמש ב-Mutlithreading בצורה לא נכונה לא תעמוד בעומס, מערכת שמציגה דוחות ולא תוכננה להקטין נפחים לא תיתן זמני תגובה טובים ברשתות עם רוחב פס מוגבל. מערכת שבנויה תוך ביזור יתר שלא לצורך תהיה איטית בגלל קפיצות ברשת - SOA ו-S+S אינם פתרון פלא לכל דבר, יש להם מחיר! אלה הן דוגמאות פשוטות אך נצפות בשטח כל פעם מחדש.
  • בזבוז משאבים יקרים. ניתן לחזות בעיות ביצועים ולחסוך זמן יקר – זמן של מפתחים שבונים מערכת כושלת, זמן של מהנדסי בדיקות ביצועים שמבצעים בדיקות ביצועים על מערכת כושלת, זמן של בודקי QA שמבזבזים זמן על בדיקת תרחישים במערכת שמגיבה לאט, זמן של יועצים שחייבים לזהות את הבעיה ולהצביע עליה וגם למקורה כולל דרך לפתרון, זמן של מפתחים שצריכים לקודד מחדש.
  • פגיעה תדמיתית. לקוח שמקבל מערכת יפה מבחינת עיצוב גרפי אך לא מספקת “סחורה” יחשוב פעמיים בפעם הבאה אם להזמין מאותו הספק - סקסי לא תמיד תחליף טוב לביצועים טובים (זה גם תופס בתחומים אחרים..., לדוגמה, פרסום – ראה טיפ #3).

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

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

מה שואלים?

כדי להיות שיטתי וכתוצאה מכך להיות תוצאתי ויעיל נדרשת גישה פשוטה אך מקיפה. לגישה הזו אנחנו קורים מסגרת שיפור ביצועים – Performance Frame. מסגרת שיפור ביצועים נוצרה ע”י קבוצה patterns & practices (ובפרט ע”י J.D. Meier שמוביל את המאמץ) כתוצאה מפעילות מחקר מקיפה והשקעת משאבים אדירים. המחקר כולל ידע שנצבר בקבוצות מוצרי מיקרוסופט, בצוותי יעוץ מיקרוסופט – MCS (להזכירך – הבלוג הזה הוא של MCS), ומומחי שיפור ביצועים עם שם עולמי. המסגרת כוללת קטגוריות של הנושאים שמשפיעות הכי הרבה על ביצועים של המערכת, הינה המסגרת:

Performance Frame

לרשימה המלאה גלוש כאן – Performance Frame

סיפור לקוח

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

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

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

עשה זאת בעצמך (לא צריך ללכת ל-ACE או קנה ובנה)

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

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

קריאת המשך

Alik Levin 
שמי אליק לוין ואני מתרכז ב- Security and Performance באפליקציות Net.
בזמני הפנוי אני בלוגר שרוף.

eXtreme Waterfall Programming (subtitle: “what it takes to make waterfall work”)

My MCS Israel colleague Memy Lavi can always be counted on for interesting content, ideas and anecdotes.

A while back he sent me an article titled "They Write the Right Stuff" by Charles Fishman, and after reading the article I found that I just could not stop thinking about what it meant.

Let's start with a short description:

The article describes the processes and development methodologies of NASA's on-board shuttle software, developed by 260 women and men of the Lockheed Martin Corps space mission systems division.

The information in the article is fascinating:

  • A bug-to-LOC (lines of code) ratio that is incredibly low, especially when considering the complexity of the software they write and the scenarios in which they perform.
  • Continual improvement in error rate (they produced "world class" software ten years ago and since then they achieved a 90% percent improvement in code quality).
  • A predictable (on-time and on-budget) development process, that enables a sustainable delivery velocity and a healthy work-life-balance.

How do they do that?

Well, according to my interpretation of the article, it's an achievement that is possible by implementing an extreme form of waterfall methodology. A methodology I would argue deserves the (tongue-in-cheek) title "eXtreme Waterfall Programming".

Everything – really, EVERYTHING – is planned, designed, defined in advance. The current 400,000 LOC in the software are written according to a 40,000 page specification document (actually – it's not "a document"… its 30 volumes of specs).

Read that again: This is 1 specification page per 10 lines of code!

And in order to bring all those lines of pseudo-code specifications to life, you need to have order. Discipline. Rigidity. The programmer must comply with the specs absolutely and totally. How extreme is this compliance? Here's a quote for you:

"…the culture is equally intolerant of creativity… You have to do exactly what the manual says, and you've got someone looking over your shoulder… the process does stifle creativity".

And what does it mean to change the code?

"…no coder changes a single line of code without specs carefully outlining the change".

For example, one change of 1.5% of the software, 6,366 LOC, was approved after 2,500 pages of specifications were written.

You can imagine the cost of such a process. And you can just as easily imagine why it's worth it. The Arriane 5 rocket exploded because a programmer did not check for a buffer overflow; the Mars Global Surveyor crashed because one team calculated in meters, while the other team calculated in yards; developing software for space is definitely one of the most bug-intolerant jobs you can get as a programmer…

OK, that's interesting. But why should I care?

I've spent quite a few years of my life as a project manager and a solution architect of projects that were waterfallish.

And it didn't work.

I am not saying that the projects failed miserably. On the contrary - most were quite successful, eventually J.

The problem lies elsewhere. The requirements were always either (1) ill-defined (2) fluid (3) ultimately ignored.

Unlike the requirements in the space industry, where requirements can be frozen in time, software conservativeness is a virtue and creativity is not tolerated, the IT world in which I live professionally is always in flux, standing still leads to the business free-falling and programmer creativity is a pre-requisite.

Trying to impose a waterfall approach on an IT project, inevitably led to an unhappy customer trying desperately to change the specs halfway through the development phase, or to a development team trying to imaginatively fill the holes in a specs document that proved to be half-baked when it came to actual implementation.

There's nothing new here, and software methodologists, and especially Agile evangelists, have been pointing out these waterfall deficiencies for years.

However, I do not think that the problem is in the waterfall approach itself. I would argue that it is a feasible development process given the appropriate circumstances and resources, and it seems to me that both can be found in the example of the on-board shuttle software group.

The problem is that once you start diluting the methodology (introducing frequent changes to the specs; limiting the tremendous effort required to write and maintain specs that are detailed enough; not supporting the development process with the resources required – reaching up to 30 minutes per line of code) this dilution will bring your project down.

The same methodology dilution can be expected to cripple an Agile development process as well. See what happens when you take an Agile team, and make it relinquish unit tests (or TDD), avoid pair-programming, delay integration tests and space-out your iterations. Have fun. Agile, like Waterfall (actually more so), is a balanced methodology. It can quite easily be unbalanced.

And that's why I like the story of the on-board shuttle software group so much. It is the first case study of a waterfall methodology that actually makes sense to me. It takes a whole lot to make it work – but it works. And the cost is tremendous.

The only question remaining for each IT software project that tries to make it the waterfall way, is whether it knows what it takes to make it the waterfall way, and whether it is willing and able commit to it, without diluting the process - or by doing so, crippling the process and the project.

It looks like it, It feels like it but it is not It – Phishing for Dummies

Phishing is a new hacking technique which opened a new era of hacks. I call it a new era due to the fact that once again changed the level of hacks. It caused the boundary between application layer attacks and social engineering to be nebulous. We all have heard that security should be deployed and considered in layers. Have we ever thought about all the layers? Is social engineering was ever taken into consideration?

We have heard thousands of times that tools and hacking techiques are getting more and more sophisticated and so are the defense mechanisms, did we ever considered the homo sapiens should be taken into this equation as well (both as an attacker and as the victim)?

Well the attackers have alreay started ...

Security hacks started in telephony, then moved on to network attacks, then came the era of application security which we thought is the worst and considered to be the last one. We considered it as layer 7 (the highest OSI model layer) attack. However, recently we are facing a new challenge: social engineering security. To be honest it was always there, we all knew about it and we were all aware about the human affect on security. At the end it comes to human beings, however the main question here is can technology overcome human being’s mistakes?

Phishing in a Nutshell?
Phishing is a social engineering technique that is used by hackers\attackers in order to capture a naïve user’s login information (username and passwords) to different web sites (i.e. banks, credit cards, Paypal and others). These credentials are then used in order to steal money or information from those accounts.


IRS phishing example

How to Phish?

The Phishhook
When I was a child I always wanted all my clothes and shoes to be Nike. Where I lived there was a very common company for clothing including shoes named Mike. Guess what, their logo was the same as Nike’s with small change replacing the N with the M. My mother paid half the price and was happy. By the way two weeks later all my friends were having the same clothes and we were all Mike’s best friends.

Well Phishing is just the same imitating the attacked web site. Let say there is a bank named ibank.com its logo starts with capital “i”, when you write its name it looks like Ibank.com when you write it with lowercase “L” it looks like lbank.com. I am sure you all agree with me that only the minority of the population would notice the difference, isn’t that so?

Of course the domain name is not enough in order to convince a customer that he got to the website he was looking for. The main trick here is the look and feel (in advanced techniques the domain name is not an issue at all).
So now the hacker’s challenge is to dress his web site with the same clothes as the attacked web site – meaning building his trap in a convincing way so the naïve user would not even doubt that this is not the original web site. This is an easy task; one could even use the same pictures, same images as well as same colors. It might even be easier if he gets to the original web site download its HTMLs (the Web pages) and change it just a bit in order to put the attackers functionality (As for the functionality we’ll discuss it a little later) but keeping the look and feel of the original ibank web site.


The Bait
All the attacker is left with now is to convince customers to surf and visit his website. There are different ways to do that, he might spread an email or might post a message into a banking forums or even send IM messages to people. The message will be the bait and will contain two main components: 1. Offerings - to attract the fish to eat the bait (pressing the link)
2. Link – the bait itself (pressing this would lead the user to the hacker web site)
Therefore the message (email, IM) would contain some attractive offerings that will cause the naïve user to press the attached link such as an offer to customers to open a checking account with very good interest. In that same message he will add the link to the bank’s site (of course the link would lead to the attacker’s web site). Once the user clicks the link it feels like he got to the real banks web site. He tries to log in in order to get the new deal he got and he supplies its credentials (I hooked a fish).


After the Bait was Hooked
Here the attacker has two functionality options:
1. Grab these credentials and store it in its DB then displaying a message the bank web site is not available try again later.
2. Grab the credentials and redirect the client to the original website and running the client under the real login process so the customer won’t even know he was redirected.

The example given above is not theoretical and there are lots of “flavors” and permutations for Phishing.

Ebay Phishing Scam

How can we Make the Phisher Starve

The main problem though is how can we solve or overcome such challenges? And what is it different then old hacking techniques.

The main difference is that old hacks were using the human mistakes (bugs) in order to penetrate the corporate network or applications. The hackers used those holes in order to gain unauthorized access to data. As a result we could have put the blame on the organizations functionaries such as developers, system administrators, QA personnel, security stuff and others – it was someone’s responsibility to make sure these kinds of hacks would be found and fixed. Whereas the new attack is out of the organization hands and responsibility, even if the web site is totally secured and all the countermeasures were put in place and the web site is using all security mechanisms such as authentication, authorization, encryption, and many others all these won’t do anything to prevent from someone developing a masquerading website and attract users to get there and then stealing their identity.

There are a lot of groups and products that claim they could protect from these kinds of attacks but none take high percentage of responsibility for that. I believe, then, that the only tool we have to prevent these attacks is by education and awareness both to the organizations and customers. Once again back to my childhood when mother kept telling me “don’t open the door to strangers”.

Guilad Regev
ACE Team

מי משתכשך בבריכת החוטים?

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

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

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

"השימוש בשגרות מאוחסנות עשוי להקטין את הסכנה שבהזרקת SQL".

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

"השימוש ב- Stored Procedures עשוי להקטין את הסכנה שב- SQL Injection"

והאמת שזהו עוד משפט סביר. מה דעתכם על הדבר הבא:

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

המשפט הזה, שנראה קריפטי לחלוטין ממבט ראשון, מקבל משמעות הגיונית אם נחזיר את המונחים למקורם האנגלי:

"כאשר יש צורך לעשות שימוש ב- Thread נוסף, עדיף להשתמש ב- Thread מה- ThreadPool"

 

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

 

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

"ישנם יתרונות מובהקים לשימוש בקרן התקשורת החלונאית על פני ריחוק, הן מהיבטי ביצועים והן מהיבטים בין-תפעוליים".

 

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

BI End-To-End Solutions - The MS BI Roadmap By Microsoft Enterprise Cube (MEC)

mec

Hi Everyone,

Today I want to share with you the next generation of BI Solutions - Microsoft Enterprise Cube (Project name MEC).

What Is Microsoft Enterprise Cube?

Microsoft Enterprise Cube is designed to provide industry verticals with real-time, end-to-end performance management analytical solutions that target the client’s pain-points and provide a low cost of implementation, quick time to production with a rapid return-on-investment. These solutions are comprised of the Microsoft BI product stack (SQL, PPS, MOSS) and include content around vertical industry business pain points such as standards and best-practices based data models, predictive analytical models, KPI's, reports and workflow.

Solution Components

The Enterprise Cube solution supports four BI/Business Performance Management modules, which are:

  • Customer Segmentation - provides insight into customers and enables service providers to increase marketing efficiencies by identifying customer segments and expected buying behavior.
  • Profitability Management - identifies and analyzes customer accounts by most and least profitable. Embeds workflow's that provide a recommended course of action based on call patterns.
  • Revenue Management - ensures that service providers’ processes, practices and procedures maximize revenues by identifying any leakage areas and concerns. Plans actions and views trends to help increase revenue.
  • Churn Management - identifies, reduces and prevents voluntary customer attrition through proactive and reactive measures.

MEC is a BI framework designed to make the promise of true enterprise Business Intelligence solutions a reality. By incorporating industry and BI/BPM best practices, Microsoft Enterprise Cube delivers true people-ready BI & BMP solution to our customers.

MEC is built on top of Microsoft BI stack (SQL Server, PerformancePoint Server, SharePoint, etc) and a series of point-solutions.

Microsoft BI stack

BI

What vertical industry solutions are planned for MEC?

  • Communications Sector
  • Retail
  • Manufacturing
  • Healthcare

 

MEC Models Architecture

 

BIARC

 

Watch Microsoft Enterprise Cube Video

Visit Microsoft Services Web Site at www.microsoft.com/services

Bye

איך להפוך לארכיטקט?

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

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

בואו נתחיל ממה שהרגע הזה לא היה:

זה לא היה קורס. אני לא מכיר שום קורס שיכול להכשיר ארכיטקטים.

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

זה לא היה קידום. שינוי של טקסט בכרטיס ביקור לא יהפוך אף אחד לארכיטקט.

אם כך, מאיפה זה הגיע?

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

 

אז:

- אם "שכבות" בשבילך זה לא חלק מעוגה

- אם אתה יכול לנהל דיון אינטילגנטי על ההבדל בין MVC ו- MVP

- אם DS vs ORM לא נראה לך כמו סינית

- אם אתה נהנה מלשרטט ב- Visio כמו שאתה נהנה לכתוב קוד ב- Visual Studio

- אם אתה אוהב טכנולוגיות חדשות, אבל לא בכל מחיר

- אם אתה יודע להגיד ש- SOA זה טוב, אבל גם מתי לא להשתמש בו

- אם אתה יודע שזו לא הטכנולוגיה ולא החברה, אלא התכנון

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

- אם אתה יודע לגרום לאחרים שיקשיבו לך, גם בלי לצעוק

- ואם את כל זה אתה עושה כבר לפחות שנתיים...

כי אז, ידידי*, אתה כבר ארכיטקט.

 

*גם ידידתי, כמובן.

Posted: Jul 02 2008, 08:06 AM by memil | with 4 comment(s)
תגים: