گردهمايي – يك

  • یوسف مهرداد بی‌بالان

جاي همه‌ي شما خالي بود.
بالاخره پس از حدود دو ماه، بچه‌هاي مدرسه دور هم جمع شدند. از كساني كه در سال ۶۵ وارد دبيرستان شده بودند تا كساني كه همين امسال از دبيرستان فارغ‌التحصيل گشته‌اند. به قول يكي از دوستان كه مي‌گفت وقتي ما وارد دبيرستان شديم، بعضي‌ها هنوز به دنيا نيامده‌ بودند

همه دور هم جمع شده بودند به يك بهانه: بازنشسته شدن آقاي داوري، مدير دبيرستان.
آقاي محمد داوري عزيز و دوست‌داشتني، مردي بزرگ، انساني وارسته براي مدت ۲۳ سال مدير دبيرستان نمونه بود. «وقتی که در تربیت معلم بودم و کتاب سردار جنگل ابراهیم فخرایی را می‌خواندم، دانستم كه آن مرد بزرگ آرزو داشت كه در چندين نقطه‌ي گيلان، مدرسه‌ي شبانه‌روزي ايجاد كند. من هم آرزو كردم كه بتوانم روزي چنين كاري كنم. آرزوي من سال ۶۵ به واقعيت پيوست و دبيرستان نمونه‌ي گيلان تأسيس شد. مدارس نمونه يكي از مؤفق‌ترين طرح‌هاي وزارت آموزش و پرورش بعد از انقلاب است.»

احمدآقاي مهربان و خون‌گرم باعث و باني اين كار شد. احمد آقا قبلاً در تماسي به من گفته بود كه قرار است مراسمي براي بزرگداشت آقاي داوري در آذرماه برگزار شود. من هم براي آن روز، كارهايم را تنظيم كردم ولي به دلايلي اين مراسم برگزار نشد. به احمدآقا زنگ زدم كه چه شد؟ بعد گفتم كه خوب نمي‌شود كه ما كاري نكنيم. هر چه خواستم كار را به عهده احمدآقا- كه به گفته‌ي خودش، دو تا پيراهن در اين زمينه بيشتر پاره كرده- بگذارم، نشد (دلیلش هم این بود که پیراهن‌هايش برای برگزاري مراسم قبلی پاره شده بود). ايشان هم شرط گذاشتند كه اگر من قبول مسئوليت كنم، ايشان هم كمك خواهند كرد. هر چند كه هميشه از كارهاي اجرايي و هماهنگي، دوري مي‌جستم ولي اين بار با دفعه‌هاي قبل متفاوت بود. آقاي داوري و پرسنل دبيرستان در زندگي من بسيار تأثيرگذار بودند و نمي‌شد كه کاری برایشان نکنم. این بود که پیشنهاد احمدآقا را قبول کردم و کارمان را شروع کردیم.

اگر هر سال حداقل ۴۰ نفر در دبیرستان پذیرفته شده باشند، مي‌بايست حداقل ۹۰۰ نفر را پيدا مي‌كرديم.

مجسمه آناهیتا در فومن

گزیده:
گیلان گیلان همیشه بهاره گیلان

چطور بهتر زندگی کنم؟

  • یوسف مهرداد بی‌بالان

پرسیدم چطور بهتر زندگی کنم؟
با كمی مكث جواب داد:
گذشته‌ات را بدون هیچ تأسفی بپذیر
با اعتماد زمان حالت را بگذران
و بدون ترس برای آینده آماده شو
ایمان را نگهدار و ترس را به گوشه‌ای بیانداز
شک‌هایت را باور نکن
و هیچگاه به باورهایت شک نکن
زندگی شگفت انگیز است، در صورتی‌كه بدانی چطور زندگی کنی
پرسیدم آخر …
و او بدون اینكه متوجه سؤالم شود، ادامه داد:
مهم این نیست که قشنگ باشی،
قشنگ این است که مهم باشی! حتی برای یک نفر
كوچك باش و عاشق …
كه عشق، خود میداند آیین بزرگ كردنت را
بگذار عشق خاصیت تو باشد، نه رابطه‌ی خاص تو با کسی
موفقیت پیش رفتن است نه به نقطه‌ی پایان رسیدن
داشتم به سخنانش فكر می‌كردم كه نفسی تازه كرد و ادامه داد:
هر روز صبح در آفریقا آهویی از خواب بیدار می‌شود و برای زندگی كردن
و امرار معاش در صحرا می‌چرد
آهو می‌داند كه باید از شیر سریع‌تر بدود، در غیر این‌صورت طعمه شیر خواهد شد
شیر نیز برای زندگی و امرار معاش در صحرا می‌گردد و می‌داند که
باید از آهو سریع‌تر بدود تا گرسنه نماند
مهم این نیست كه تو شیر باشی یا آهو
مهم اینست كه با طلوع آفتاب از خواب برخیزی و برای زندگیت،
با تمام توان و با تمام وجود شروع به دویدن كنی
به‌ خوبی پرسشم را پاسخ گفته بود ولی می‌خواستم باز هم ادامه دهد و باز هم به ….
كه چین از چروك پیشانیش باز كرد و با نگاهی به من اضافه كرد:
زلال باش …،‌
زلال باش …،
فرقی نمی‌كند كه گودال كوچك آبی باشی، یا دریای بیكران
فقط، اگر حقیقتا
زلال باشی، آسمان در توست
و تو جاری هستی تا زندگی جاری باشد ….
زندگی قانـــــــون نیست
زندگی قافیه باران است
من اگر پاییزم و درختان امیدم همه بی برگ شدند
تو بهاری و به اندازه ی باران خدا زیبایی
و بلندای امیدت پاسداشتی مداوم برای زندگیست
مرجع: از ميان نامه‌هاي حميد

گزیده:
ترس باعث می‌شود تا بسیاری از مردم به رویاهایشان نرسند. مارک فیشر

خوشبختي

  • یوسف مهرداد بی‌بالان

خوشبختي ما در سه جمله است:
تجربه از ديروز، استفاده از امروز، اميد به فردا

ولي ما با سه جمله ديگر زندگي‌مان را تباه مي‌کنيم:
حسرت ديروز، اتلاف امروز، ترس از فردا
دكتر علی شریعتی

مرجع: از بین نامه‌هاي حميد

گزيده:
حسین بیشتر از آب، تشنه لبیک بود. اما افسوس که به جای افکارش، زخمهای تنش را نشانمان دادند و بزرگترین درد او را بی آبی معرفی کردند. (دکتر علی شریعتی)
مرجع: وبلاگ زهرا

ّFive reasons why I still write use cases

  • یوسف مهرداد بی‌بالان

XP pretty much banned use cases, replacing them with the similar sounding “user stories” (see A user story is to a use case as a gazelle is to a gazebo}, and as a result agile zealots have been happy to dump use cases in the trash (along with their project managers, estimates, plans, and architectures). Scrum did similar, using the “product backlog” instead of user stories. Yet as I go around projects, I keep running across organizations suffering from three particular, real, painful, and expensive problems:

1. User stories and backlog items don’t give the designers a context to work from
2. User stories and backlog items don’t give the project team any sense of “completeness” –
3. Related to completeness, user stories and backlog items don’t provide a good-enough mechanism for looking ahead at the difficulty of upcoming work

Use cases are, indeed, heavier and more difficult than either user stories or backlog items, but they bring value for that extra weight. As not-Einstein said: “Make things as simple as possible, but no simpler.” (The attribution to Einstein has been debunked, it seems.) In particular, use cases fix those three problems.
Here 5 reasons why I still write use cases:

1. The list of goal names provides executives with the shortest summary of what the system will contribute to the business and the users. It also provides a project planning skeleton, to be used to build initial priorities, estimates, team allocation and timing. It is the first part of the completeness question.
2. The main success scenario of each use case provides everyone involved with an agreement as to what the system will basically do, also, sometimes more importantly, what it will not do. It provides the context for each specific line item requirement, a context that is very hard to get anywhere else.
3. The extension conditions of each use case provide the requirements analysts a framework for investigating all the little, niggling things that somehow take up 80% of the development time and budget. It provides a look ahead mechanism, so the customer / product owner / business analyst can spot issues that are likely to take a long time to get answers for. These issues can and should then be put ahead of the schedule, so that the answers can be ready when the development team gets around to working on them. The use case extension conditions are the second part of the completeness question.
4. The use case extension scenario fragments provide answers to the many detailed, often tricky business questions progammers ask: “What are we supposed to do in this case?” (which is normally answered by, “I don’t know, I’ve never thought about that case.”) In other words, it is a thinking / documentation framework that matches the if…then…else statement that helps the programmers think through issues. Except it is done at investigation time, not programming time.
5. The full use case set shows that the investigators have throught through every user’s needs, every goal they have with respect to the system, and every business variant involved. It is the final part of the completeness question. (And yes, I did indeed sit down and walk through 240 use cases with a client, at the end of which, I turned to her and asked: “And is that everything?” She said, Yes, and we built that, delivered it, got paid for it, and it is still in use ten years later.)

Reference: alistair.accountsupport.com
Alistair is author of Patterns for Effective Use Cases and Writing Effective Use Cases books

Quote:
“There is no reason for any individual to have a computer in his home.”
(Ken Olson, President, Digital Equipment Corporation, 1977)

Design Pattern Based Web Applications

  • یوسف مهرداد بی‌بالان

Pattern-based web applications have become popular since they promote reusability and consistency. In few cases, patterns do not produce the desired effect because of lack of experience in applying them. This situation forces one to think of a suitable re-engineering solution for such applications. The objectives of the paper are three fold. It provides a survey of different pattern-based web applications that will be useful for the application designers. It highlights some of the web applications where patterns have been inappropriately handled. A few re-engineering initiatives for such cases are also analyzed.

Pattern Name

Applicability

Consequences

Remark

Command Processor

• Separates request for a service from its execution.

• Ideal for the development of hyper-controllable applications.

• This pattern provides flexibility in handling requests and their functionalities.

• It also allows commands to be executed in separate threads of control.

• Implementation of indirections costs storage and time thereby leading to efficiency loss.

A reengineering strategy with Memento, Observer, Visitor and Singleton may replace the functionality of Command Processor.

Document View

• Document holds the core functionality and data, View combines the ‘View’ and ‘Presentation above’

• Suited for 2-Tier Client-Server architecture

Document-View-Presentation

• The Document holds the core functionality and the data; view to manage the display (render + accept service request) and Presentation deals with output and user input

• Reuse the rendering output

• Pluggable presentation component

• Thin user interface

• Ideal for multiple window based applications

• Increased Complexity

Model/View/Controller

• Dividing an application into functionality(model), display(view) and user input(controller)

• Easy maintenance of multiple views of the same model.

• Synchronized and ‘pluggable’ views..

• Uncontrollable number of updates.

• Close coupling between views and controllers

The model can be made to skip unnecessary updates.

Navigation Strategy

• Ideal to apply when there is a need to establish a relation between two or more objects at different times.

• Used in situations where objects stored in a database are to be retrieved whenever an associated object raises a demand.

• The pattern encourages dynamic creation and linking of nodes in an active hypermedia environment.

• Allows one to define different kinds of links as well as end points.

• Used to improve memory requirements by deferring the retrieval of the target code only when needed.

• Increased number of objects and communication overhead between the classes involved.

The Prototype pattern can be used to overcome the barriers of the pattern.

NavigationObserver

• Maintenance of navigation history

• Maintenance of different viewers for the history

• Enabling the backtracking in the navigational path.

• Decouples navigation from its history and history from the display of it.

• Provides application independent functionality for the style of viewing the history.

• Causes overhead when attempts are made to filter certain types of nodes in the history.

A reengineering effort made by introducing an alternate architecture involving singleton or mediator.

Presentation/ Abstraction / Control

• Defines a structure in the form of levels of cooperative agents. Each agent is divided in to Presentation, Abstraction and Control components

• New agents can easily be added / dropped at any time.

• Easy implementation of multi tasking

• Increased system complexity

Provides a maintainable and extensible structure with clear separation of concepts between different system tasks.

Reference: Journal of Object Technology
Quote:
“There’s an old story about the person who wished his computer were as easy to use as his telephone. That wish has come true, since I no longer know how to use my telephone.” Bjarne Stroustrup

خيلي ساده اتفاق افتاد.

  • یوسف مهرداد بی‌بالان

خيلي ساده اتفاق افتاد.
داشتم مصاحبه گريدي بوچ با يكي از رسانه‌ها را مي‌خواندم. از وي پرسيده شده بود كه قهرمانانش چه كساني هستند. از چند نفر نام برده است كه انسانهاي تأثيرگذار و البته مسن‌تر از وي بودند. يك نام در آنها وجود داشت كه در سن 48 سالگي از دنيا رفته بود. استاد دانشگاه كارنگي ملون كه در سال 2008 به دليل عارضه‌ي سرطان از دنيا رفت. كارهايي كه انجام داده بود از جمله‌ي پروژه‌ي آليس را به دقت بررسي كردم. اما چرا بايد اين شخص مورد ارادت شخصي چون گريدي بوچ باشد.
به ناچار به جستجويم ادامه دادم. حالا ديگر موضوع كاملاً از كارِ ساده‌ي مطالعه‌ي كوتاه وبلاگ‌هاي علمي و فني به جستجويي براي حل معمايي تبديل شده بود. مطلبي نظرم را جلب كرد. «آخرين كنفرانس».
«آخرين كنفرانس» در تاريخ 18 سپتامبر 2007 توسط وي برگزار شده بود كه عنوان كنفرانس «واقعاً به روياهاي بچگي‌تان دست پيدا كنيد» با حضور حدود 400 نفر از اساتيد، دانشجويان و همسرش، حدود 6 ماه قبل از درگذشتش. در اكتبر همان سال در برنامه‌ي اپرا حاضر شد و در اين‌باره مجدداً سخن گفت. به همراه جفري زاسلو، سخنراني‌اش را به صورت كتابي منتشر كرد كه يكي از پرفروشترين كتابها در اكتبر 2008 به نقل از نيويورك تايمز شد. كتابي كه در اولين چاپ به تيراژ 400 هزار نسخه رسيد و به 46 زبان دنيا ترجمه شد.

ديگر صبرم لبريز شد به سراغ فيلم كنفرانس رفتم. با دقت به سخنراني گوش كردم. چند دقيقه‌اي اول را ديدم اما به دليل سرعت كم اينترنت، نتوانستم ادامه دهم. همان صحنه‌ي اول سخنراني كافي بود. همان لحظه نامه‌اي به آقا رضا زدم و خواهش كردم كه فيلم را برايم دانلود كند. پس از دريافت فيلم از ايشان و به محض رسيدن به خانه، شروع به تماشايش كردم. خداي من.
در اين سخنراني، او در عين خنداندنتان، نكاتي را به شما ياد مي‌دهد و يا نكاتي را به يادتان خواهد آورد، كه ديگر از ياد نخواهيد بود. دنبال روياهاي كودكي بودن. باوركردني نيست، شخصي در آن وضعيت چگونه اين همه روحيه دارد. هر بخش از سخنراني‌اش درسي است براي آينده، براي لذت بردن از زندگي.
بعد از آن كتابش را از جايي پيدا كردم و شروع كردم به خواندنش. كتابي كه پر است از نگاه جذاب وي به زندگي و به روياهاي كودكي.
در آخر، سخنراني به اين شكل پايان مي‌يابد:«اين سخنراني براي شما نبود. اين سخنراني براي ديلون، لوگان و چلو، بچه‌‌هايم بود».
اين مرد بزرگ، كسي نبود جز Randy Pausch.

http://en.wikipedia.org/wiki/Randy_Pausch

http://www.thelastlecture.com/

http://en.wikipedia.org/wiki/The_Last_Lecture

http://www.amazon.com/Last-Lecture-Randy-Pausch

Quote:
With thanks to my parents who allowed me to dream, and with hopes for the dreams my children will have. Randy Pausch

Taking the temperature of UML

  • یوسف مهرداد بی‌بالان

More than twelve years have passed since UML, the Unified Modeling Language, became a standard.
At the beginning of the 1990s there were 26 published methods on object-orientation, most methods with its own notation. It was to address at least the notation problem that UML was conceived.
UML also found a number of detractors. It was criticized by the academic world.The great David Parnas called UML the “Undefined Modeling Language”, a strongly exaggerated but not unfounded criticism. The criticism stung.
The original leaders of the agile movement were also strongly against modeling.For them it was the “Unnecessary Modeling Language” – they said “no modeling – just code”.
Microsoft, reticent to do anything that might strengthen the competition, also did not initially support UML. Instead they were moving in a different direction based on domain-specific languages.

Now we find the pendulum swinging back. There are a number of good and easy to use tools. The criticism from the academic community has quieted. Agility has been embraced by large companies who see value in both “smart” modeling combined with an agile approach. People use UML though skepticism about the tools remains; many people work with sketches on white boards and use tools sparingly. Microsoft found that domain-specific languages did not replace the role for UML and that customers actually wanted to use UML. Today Microsoft is a strong supporter of UML.

Today the world looks upon UML with a more balanced perspective. UML is not the ”silver bullet” it was sold as ten years ago. Nor is it as bad as academicians, agilistas and competitors claimed five years ago. Used appropriately it is a practical tool for raising the level of abstraction on software from the level of code to the level of the overall system. And its use increases again, as it should, but now with more common sense.

Still, UML has become complex and clumsy. For 80% of all software only 20% of UML is needed. However, it is not easy to find the subset of UML which we would call the “Essential” UML. We must make UML

Reference: Ivar Jacobson

Quote:
There are just two kinds of languages: the ones everybody complains about and the ones nobody uses. Bjarne Stroustrup

برای خروج از جستجو کلید ESC را بفشارید