Meysam's Experiences

MeyEx ,محلی برای انتشار تجربیات من در زمینه های مرتبط با حوزه ی تولید نرم افزار

Meysam's Experiences

MeyEx ,محلی برای انتشار تجربیات من در زمینه های مرتبط با حوزه ی تولید نرم افزار

Meysam's Experiences

در زمینه ی تولید نرم افزار فعالیت دارم. نوشته های این بلاگ به طور خاص در مورد تمامی زمینه هایی که منتهی به تولید نرم افزار و یا تجربیاتی که در محیط کاریم کسب می کنم خواهند بود. [البته فعلا به دلیل مشغله های جانبی دیگر و داشتن مخاطب در آن حوزه ها, مطالب کمی غیر نرم افزار شده است!]
در این بلاگ سعی شده که مطالب به صورت تخصصی و دسته بندی شده منتشر شوند

تابلوی اعلانات
جدیدترین نظرات

۷ مطلب در مرداد ۱۳۹۲ ثبت شده است

۲۷
مرداد
۹۲

در این مطلب به نوشتن چند جمله پیرو مطلبی که در لینک ذیل آمده هست بسنده خواهم کرد

تب استارتاپی ایران و خطرات آن برای اکوسیستم کارآفرینی کشور، دعوت به همفکری

ضمنا در لینک فوق, دعوت به همفکری شده است!

سایت خوش فکری از آن سایتهایی هست که فارغ از تخصص می تونه سایت خوبی برای خواندن و پیگیری باشد!

  • میثم هوشمند
۲۰
مرداد
۹۲

در این پست,طبق قرار قبلی در خصوص سمینار Pre Event استارت آپ ویکند 23 مرداد تهران

خواهم نوشت.

روند برگزاری همایش

نکاتی در خصوص توسعه ی موبایل اپلیکیشن برای پلتفرم اندروید

نکاتی در خصوص ران کردن یک استارت آپ

تفاوت استارت آپ با یک شرکت تجاری

و... از نکاتی هستند که منتشر خواهم کرد.

خوبی این پست این هست که به رشته ی کامپیوتر صرفا اختصاص ندارد!

طبق قرار قبلی مبنی بر ارائه ی گزارشی از این سمینار, مطالبی را از روی نتی که برداشتم می نویسم. امیدوارم که گویا و مفید باشد.

سمینار گرچه با نیم ساعت -حدودا- تاخیر شروع شد اما در مجموع خوب بود و قابل قبول البته به جز بخش پذیرایی آن!

ابتدا در خصوص روند برگزاری استارت آپ ویکند و ارائه ای ایده ها.

در شروع این رویداد و ابتدای روز اول شما 60 ثانیه زمان در اختیار دارید تا ایده ی خود را به گوش حضار برسانید و نظر افرادی که قرار هست در تیم شما قرار بگیرند و البته قبل از آن نظر داوران را به خود جلب کند. برای این منظورم خوب هست که این نکات را مد نظر قرار بدهید.

1. پنج ثانیه از زمان را به معرفی خودتان اختصاص بدهید.

2. ده الی بیست ثانیه بر روی شرح مشکلی که برایش راه حل دارید وقت بگذارید.

3. مابقی زمان را به ارائه ی راه حلی که در نظر دارید

4. در آخر هم زمانی را برای بیان نیازمندیهای فنی و نیروی انسانی گروه اختصاص بدهید

البته بر کسی نباید پوشیده باشد که توانمندی شما در فن بیان و زبان بدن و ایجاد هیجان در داوران و حضار نقش مهمی خواهد داشت!

خب روز اول با بیان کلی ایده بر اساس زمان بندی 60 ثانیه ای شروع می شود. بعد از ارائه ی ایده ها نوبت به رای گیری خواهد رسید. 10 ایده ی برتر امکان تشکیل گروه و بهره مندی از فرآیندهای باقی مانده در این رویداد را دارند.

بعد از معرفی ایده های برتر, نوبت به یارگیری می رسد. به این ترتیب که صاحبان ایده ها یک تابلو که روی آن نیازمندی های خود را نوشته اند بالای سر می گیرند و با مراجعه ی افراد علاقمند به ایده های مطرح شده مذاکرات با محوریت معرفی افراد به یکدیگر و بحث های بیشتر در مورد ایده صورت می گیرد.

بعد از آن نوبت می رسد به اینکه هر کدام از تیم ها با راهنمایی مربیان استارت آپ شروع کنند به مقدمات اولیه ی پروژه هاشون.

روز دوم مربیان جدی تر وارد گود می شوند و تیم ها را هدایت می کنند. البته تیم میتواند کلا درب را بر روی مربیان ببندد به این خیال که ما داریم کار می کنیم؛ مزاحم نشوید لطفا!

ادامه دارد

  • میثم هوشمند
۱۱
مرداد
۹۲

"علم فقط برای کسب ثروت"
عنوان اولین پست "مهمان" این بلاگ است که توسط همکارم سرکار خانم زهرا محمد باقری نوشته شده است. قبل از آن باید بگویم که ماجرای این پست از آنجایی شروع شد که مطلبی با عنوان " Senior Developer به چه کسی گفته می شود؟" را برای تعدادی از دانشجویان کلاس برنامه نویسی ارسال کردم. بعد از آن, یکی از دوستان سوالی مطرح کردند به این مضمون که: " من که تازه الان شروع کردم به یادگیری و تا الان چیزی از برنامه نویسی نمی دانستم  و در مقایسه با یک نفر که در هنرستان کامپیوتر خوانده کمتر می دانم, آیا می توانم  زمانی که خیلی هم دور نباشد از طریق این رشته و مهارت روی یک پروژه ی عملی کار کنم و درآمد کسب کنم یا اینکه فقط در حد یک سری اطلاعات پیش خودم می ماند؟". بعد از پاسخ به سوال ایشان که بیشتر از یک پرسش و پاسخ ساده به طول انجامید, برای من سوال پیش آمد که آیا آنچه که به عنوان راهنمایی و تجربیات به ایشان منتقل کردم با واقعیت بازار کار و دنیای کامپیوتر به چه میزان حقیقی و درست بوده است؟ البته بیشتر یک کنجکاوی, برای همین این موضوع را با همکارم مطرح کردم. بخشی از خروجی صحبت های ما مطلبی است که ذیلا نوشته شده است.

همین جا تشکر می کنم از خانم محمد باقری, به جهت زحمتی که برای نوشتن این پست متقبل شدند!

علم فقط برای کسب ثروت!

صحبت اصلا درباره آدم هایی نیست که دانشگاه می روند یا یک کلاس خاص تا بگویند می رویم دانشگاه یا فلان کلاس ، اول که این را گوشزد کنیم دسته بندی مان خیلی جمع و جور می شود و راحت تر می شود ادامه داد.در حقیقت صحبت سر آن دسته از ما آدم های جامعه ی ایران است که درس می خوانند یا مهارتی و علمی کسب می کنند تا از آن بهره برداری کنند.
برای این گروه وقتی به نتیجه ی تحصیل کردن یا آموختن فکر می کنیم و کلمه ی بهره برداری را به کار می بریم فقط یک امر است که از آن برای خودمان و اجتماع قابل قبول می شود،آنهم امر پول در آوردن.یعنی وقتی یک فعالیت جدی را شروع می کنیم باید یک توجیه عقلانی برای آن داشته باشیم که بشود انگیزه مان برای تلاش کردن و آنهم به صورت پیش فرض کسب ثروت است.آنوقت در برابر سوالِ "این کارها برای چی؟" جواب می دهیم "برای پول..."و به این شکل است که رضایت و تایید سوال کننده تامین می شود ، این سوال کننده حتی درون خود ما هم هست و فقط از بیرون نیست.
مساله این است که رفع نیاز مادی برای همه ی آدم ها از چنان اولویتی برخوردار شده که اجازه نمی دهد دلایل دیگری در تصمیم گیری هایمان دخیل شوند.حتی اگر ادعا کنیم که چنین نیست عاقبت عملکردمان موید همین مطلب است ،علم فقط برای کسب ثروت.

  • میثم هوشمند
۰۸
مرداد
۹۲

خیلی وقته که درست تمام شده و دنبال کار مناسب می گردی؟ کلی ایده توی ذهنت داری اما فکر می کنی که امکان اجرایی کردنشون را نداری؟
به نظرت جمع شدن در قالب یک تیم کاری برای پیش برد طرحی که داری یک کار اشتباه هست چون ممکنه ایده ی شما را تصاحب کنند؟
از کار کردن در قالب تیم های کوچک که به صورت تخصصی روی یک موضوع کار می کنند استقبال می کنی؟

این روزها پای درد دل هر جوانی که بنشینیم فصل مشترکی دارند به اسم "کار" – من بهش میگم مشغولیت (Business)- . عموما هم از قشر تحصیل کرده, خصوصا از گروه دانشجویان مهندسی هستند. البته شاید این تخمین برای عموم و اقلیت بودنشان از دید هر کس فرق داشته باشد. خیلی مهم نیست. مسئله این هست که همگی ما از دوران قبل از دانشگاه تیپ فکریمان این طور هست که:

دبیرستان را با معدل و وضعیت عالی پشت سر بگذاریم, به دانشگاه خوب در رشته ی خوب – در تعریف دانشگاه و رشته ی خوب هم جای بحث هست که فعلا در این مقال نمی گنجد- برویم, در یک بازه ی زمانی معقول فارغ التحصیل شویم, ....

تا اینجای فکرمان را, کم و بیش هم برایش تصویر ذهنی حقیقی داریم و هم ابزارهای پیمودن راه را در اختیار داریم. از کلاس کنکور و جزوه گرفته تا ملاقات با رتبه های برتر کنکور در بین فامیل و دوستان. اما حلقه ی مفقوده ای که از آن غافل هستیم نحوه ی ورود به بازار کار و شروع فعالیت تخصصی-رسمی ما در آن بازار هست. این بخش از رویای دانشگاه خوب-رشته ی خوب-کار خوب-درآمد خوب به نظرم هیچ موقع به شکل واقعی و صحیح پیش روی ما قرار داده نشده است.
و ما هم فرصتی برای برای لمس واقعیت این بخش از رویایی که حتما میتونه تبدیل به واقعیت بشه نداشتیم. نکته ای که که مهم است این هست که:

در ورود خودمان به بازار کار چقدر خودمان را مسئول می دانیم؟ سهم خودمان از تلاشی که برای ورودمان به بازار کار باید صورت بگیره چیست؟
اصلا سهمی برای خود قائل هستیم؟ یا تماما جامعه و مسئولین را ملزم به تلاش و کوشش و فراهم آوردن شرایط می دانیم؟


اگر برای خودت سهمی قائل هستی

اجازه بده تا شما را با چیزی آشنا کنم به اسم "Startup Weekend – استارت آپ ویکند" ...

  • میثم هوشمند
۰۷
مرداد
۹۲

بهترین روش برای آموزش نحوه ی انجام یک کار در کامپیوتر و یا کمک گرفتن از فردی متخصصی در زمینه ای که برای ما مشکل به وجود آمده است, تهیه ی تصویر مراحل مختلف انجام کاری هست که قصد توضیح آن را داریم.

ابزارهایی که به طور معمول مورد استفاده ی ما قرار می گیرند (آنچه که خود معمولا استفاده می کردم) شامل سه مورد ذیل است:

1. ابزار Snipping Tool در ویندوز 7

Win 7: Start Menu >> Type: Snipping

روش استفاده از آن بسیار ساده است و با یک بار تجربه می توان به تسلط خیلی خوبی در آن رسید!

2.  در نرم افزار یاهو مسنجر نسخه 11.5 به بعد, در پنجره چت بر روی منوی مربوطه - تصویر منو در حال حاضر در دسترس نیست- کلیک کنید, سپس صفحه به صورت ماسک شده در می آید و امکان انتخاب بخش مورد نظر از صفحه فراهم می شود. حال دو امکان دارید, ذخیره تصویر و ارسال آن, و یا صرفا ارسال تصویر به مخاطب.

3. استفاده از دکمه ی Print Screen و Past کردن تصویر ذخیره شده در نرم افزار Paint و یا دیگر نرم افزار های ویرایش تصویر.

اما روش دیگری نیز وجود دارد, استفاده از یک ابزار مخصوص ثبت تصاویر مراحل انجام کار در کامپیوتر به نام Problem Step Recorder

 این ابزار که در ویندوز 7 وجود دارد, کاربردش در زمینه ضبط مراحل انجام کاری است که کاربر انجام می دهد.

برای اجرای این برنامه, در منوی استارت عبارت " PSR "و یا " Probelm Step Recorder " را وارد نمایید و از لیست نتایج جستجو برنامه را انتخاب و اجرا نمایید.

 روش استفاده از برنامه ساده است.

کافی است قبل از شروع به انجام عملیات مورد نظر که نیاز به ضبط مراحل آن می باشد, دکمه ی Record را فشار دهید. دقیقا مانند کاری که در Sound Recorder انجام می دهیم.

بعد از آن به سراغ انجام کارهایی که مد نظر داریم می رویم. در پایان هم بر روی دکمه ی Stop Reorder کلیک می کنیم.

پس از چند لحظه مکث, یک Save File Dialog یا پنجره ی ذخیره ی فایل نمایش داده می شود که از شما مسیر و نام فایل را برای ذخیره سازی نتایج می پرسد.

اگر دقت کنید تنها فرمت موجود در فیلد فایل تایپ فرمت ZIP است. این برنامه به صورت پیش فرص نتایج را در یک فایل فشرده شده با فرمت ZIP ذخیره می نماید. بعد از ذخیره به سراغ فایل می رویم و آن را باز می کنیم. داخل آن یک فایل با فرمت .htm وجود دارد. که حاوی تصاویر ذخیره شده و یک سری توضیحات شامل زمان و تاریخ, نوع کاری که صورت گرفته است به همراه یک سری توضیحات دیگر که نیاز هست خودتان یک بار آن را آزمایش نمایید.

نکته: این نرم افزار به هیچ وجه ورودی صفحه ی کلید را ذخیره نمی کند. به عبارتی آن چه که شما در برنامه های مختلف تایپ می کنید توسط این نرم افزار به دلیل رعایت مسائل امنیتی ضبط نمی شود.

سوال: چنانچه در حین ضبط مراحل انجام کار نیاز باشد تا با تایپ متن به مسئله ای اشاره کنیم و یا ورود اطلاعات را نشان دهیم, چه باید کرد؟

جواب: در کنار دکمه ی Stop Recorder گزینه ای وجود دارد به اسم Add Comment که با کلیک کردن بر روی آن می توانید در پنجره ی جدید باز شده متن مورد نظر خودتان را وارد نمایید, این متن به عنوان کامنت ذیل تصویر مربوط به آن مرحله از انجام کار ذخیره می گردد.

توضیحات این پست ادامه دارد!

  • میثم هوشمند
۰۳
مرداد
۹۲

در محل کار برای مدیریت سورس پروژه هایی که در حال کار بر روی آن ها هستیم از TFS استفاده می کنیم. به دلیل اینکه عمده ی زمان کار ما بر روی پروژه ها محدود به وقتی هست که در شرکت حضور داریم, خیلی کم پیش آمده که نیاز به دسترسی به سرور خارج از شبکه ی داخلی به وجود بیاید.

اما در چند روز گذشته این نیاز به وجود آمده. خب اولین چیزی که به ذهن می رسد این هست که نیاز به یک Static IP و تعریف یک رکورد NAT در بخش تنظیمات مودم اینترنتی شبکه ی داخلی شرکت هست.

تا اینجا درست. اما  Static IP بر روی سرویس ADLS شرکت تعریف نشده است و در هر بار اتصال به اینترنت IP جدید اما Valid به مودم تخصیص داده می شود.

در یک شبکه ی Local می توانیم از طریق نام یک کامپیوتر به آن متصل بشویم. اما زمانی که خارج از آن شبکه قرار داشته باشیم انجام این کار مقدور نیست.

زمانی که در Visual Studio از منوی Team>Connect نام کامپیوتر مقصد - که همان سرور سورس کنترل باشد- را وارد می کنیم و از طریق کانکشنی که تعریف می کنیم به سورس کنترل متصل می شویم, این کانکشن بر اساس آدرس سرور Uniqueu خواهد بود.

چنانچه خارج از شبکه ی Local بخواهیم از طریق Valid IP به همان سرور متصل بشویم, به دلیل اینکه Connection String جدید که بر اساس Valid IP می باشد با Connection String قبلی که بر اساس نام سرور می باشد متفاوت است, به همین دلیل ویژوال استودیو دو تعریف مجزا از این دو کانکشن خواهد داشت. بنابراین نمی توانیم پروژه ی مورد نظر خودمان را با کانکشن جدید, طبق روال گذشته مدیریت نماییم و عملیات Check-In و Check-Out و.. را انجام دهیم.

برای رفع این مشکل می توانیم از طریق نگاشت نام سرور محلی به Valid IP اقدام نماییم.

برای این کار, از مسیر C:\Windows\System32\drivers\etc فایل Hosts را به وسیله ی یک ویرایشگر متنی باز می کنیم و در انتهای خطوط موجود در فایل عبارت ذیل را وارد می نماییم.

Valid_IP {TAB} Local_Server_Name 

یعنی ابتدا آدرس آی پی سپس یک بار کلید Tab را فشار می دهیم و سپس نام کامپیوتر سرور محلی را درج می کنیم.



بعد از این کار, در هر کجایی که نام سرور محلی را وارد نماییم, توسط Rule تعریف شده در فایل مذکور, نام سرور به آی پی مورد نظر نگاشت می شود.

_ لازم به ذکر نیست که باید بر روی مودم اینترنتی شبکه ی داخلی مورد نظر باید توسط تعریف NAT درخواست هایی که روی پورت خاصی از مودم وارد می شوند را به همان شماره ی پورت بر روی رایانه ی سرور محلی منتقل کرد.

  • میثم هوشمند
۰۳
مرداد
۹۲

از دوران قبل از دانشگاه - یعنی سوم دبیرستان که با درس رایانه آشنا شدم و کمی بعدتر از آن با خواندن کتاب های آموزش برنامه نویسی- و حتی در دوران دانشگاه, چیزی که به کرات در ذوق هر دانش جویی می زند یک دست بودن سبک و سیاق صورت مسئله های کتاب های برنامه نویسی هست.
  • برنامه ای بنویسید که نمرات یک دانشجو را دریافت کرده ...
  • برنامه ای بنویسید که لیست دروس دانشجویان را دریافت کرده و مرتب کرده و نمایش دهد.
  • برنامه ای بنویسید که اسامی دانشجویان را دریافت کرده و امکان جستجو را ارائه دهد.
  • ....
در دوره ی آموزش برنامه نویسی که جلسه ی سوم آن را هفته ی پیش گذراندم, اواخر کلاس بعد از تدریس مبحث Branching قصد تعیین یک تمرین برای دانش جویان کلاس را داشتم. به تبعیت از آنچه که بر من در طول ایام دانشگاه و قبل از آن گذشته بود بی اختیار - تقریبا- اولین چیزی که به ذهنم رسید جمله ای بود شبیه عباراتی که پیشتر نوشتم.اما سریعا و تقریبا به طور ناخودآگاه تغییر مسیر دادم و آنچه که عنوان شد این بود:" بچه ها برنامه ای که میخوام بنویسید باید این طوری باشد که: اسم یک بچه را می گیره, سن بچه به ماه, وزن و قد و اندازه دور سر و اینکه آیا بچه می تونه بنشینه یا نه؟ و جنسیت بچه را از کاربر دریافت میکند. بعد بر اساس اینکه سن و سایر مشخصات بچه چه طور هست, پیام های متناسب نمایش بدهد.در نمایش پیام ها حتما رنگ زمینه و رنگ قلم را متناسب با جنسیت و نوع پیام تغییر بدهید. از تابع Beep() هم حتما استفاده کنید."
حسی که در دانش جوها به وجود آمده بود فکر میکنم تلفیقی از تعجب, خنده, جذب شدن و شاید هم کمی حس طنز بود.
قرار بر این شد که دانش جوها طبق اذعان خودشان کمی تحقیق میدانی داشته باشند در خصوص تناسب بین سن, وزن, دور سر, قد و جنسیت نوزاد یا همان بچه! دانش جو هایی که از نعمت خواهر/برادر زاده بهره مند بودند کارشون کمی سبک تر بود! - البته قرار نهایی بر این شد که الزاما نیازی به تحقیق میدانی نیست و هر کس می تواند برای خودش یک سری تناسب و معیار برای این برنامه و پارامتر در نظر بگیرد-
نتیجه گیری:
  • کمی خلاقیت در تعیین صورت مسئله می تواند موجب جذاب شدن فضای کلاس برای دانش جو ها بشود.
  • نوع صورت مسئله و نیاز به "تحقیق میدانی" باعث این می شود که دانش جو برای رسیدن به جوابی که در ذهن دارد به افرادی مراجعه کند که بعضا آن افراد از نزدیکان -مادر, پدر, خواهر و یا برادر- هستند, تعاملی که در این بین صورت می گیرد می تواند موجب انتقال انگیزه و تشویق بین سوال شونده و دانشجو بشود.
  • ....
پ.ن: مورد سوم و چهارم و .... نتیجه گیری را شما اضافه کنید.پ.ن: اگر شما خواننده ای این پست, از دانشجویان کلاس هستید, حس تان را موقع طرح صورت مسئله در کلاس برای من بنویسید. و اینکه نتیجه گیری های فوق درست هستند از نظر شما یا نه؟ نظر شما برای من مهم هست! ;-)
  • میثم هوشمند