Meysam's Experiences

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

Meysam's Experiences

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

Meysam's Experiences

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

تابلوی اعلانات
جدیدترین نظرات
۰۶
بهمن
۹۳

تهیه و تنظیم این راهنما به همت آقای مهندس آذرنیا صورت گرفته است.

با تشکر از ایشان.

ضمنا لینکهایی که دوستان ارسال کنند و یا خودم منتشر کنم؛ از طریق ستون سمت چپ بخش پیوندهای روزانه قابل دسترسی هستند؛

یک مطلب در مورد الگورتیم surf لینک شده است

چنانچه به مشکلی برخورد کردید؛
زیر همین پست می تونید کامنت بگذارید

 

برای استفاده از کتابخانه openCV در ویژوال استودیو می‌بایست مراحل زیر را طی نمود:

1-1: از سایت http://opencv.org و از قسمت downloads ورژن 2.4.1 (openCV for windows) را دانلود نمایید.

1-2: پس از دانلود یک فایل به نام opencv-2.4.10.exe خواهید داشت که آنرا باز کرده و مسیری که می‌خواهید فایل‌های openCV در آنجا extract شوند، را مشخص کنید.

 

2-1: visual studio را باز کرده و از منوی File گزینه New و سپس Project را انتخاب ‌کنید.

2-2: در پنجره باز شده از منوی سمت چپ Visual c++ را انتخاب نموده و از پنجره وسط گزینه Win32 console Application را انتخاب نموده و ok را بزنید.

2-3: در پنجره باز شده next را زده و در پنجره بعدی در قسمت Additional Options تیک مربوط به Empty Project را فعال نمایید و سپس Finish  را بزنید.

 

 

  • میثم هوشمند
۰۳
بهمن
۹۳

بالاخره تقویم فارسی به ویندوز 10 اضافه شد

 

Microsoft Windows (turn on images)

 Status update

An idea you follow has been updated:

Add Persian calendar to Windows

(No Status) → Completed

We are pleased to let you know that Persian calendar support is now in the latest build of Windows 10, available through the Windows Insider Program (http://insider.windows.com). Thank you for all your comments and feedback in helping shape the future of Windows.

Ning Jin-Grisaffi
Ning Jin-Grisaffi
Admin, Microsoft Windows
  • میثم هوشمند
۰۲
بهمن
۹۳

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

 

دوستانی که مایل هستند انجام این پروژه را به صورت حضوری و در کنار سایر دوستان تجربه کنیم

لطفا تا پایان روز شنبه مورخ 1393/11/04 اطلاعات خواسته شده را,  به صورت خصوصی کامنت بگذارند تا هماهنگی های لازم برای برگزاری یک جلسه ی کارگاهی خوب انجام شود.

 

 

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

ساعت جلسه هم به دلیل شاغل بودن اکثر دوستان بعد از ظهر خواهد بود.

این جلسه هزینه ای ندارد.

تعداد نفرات حداقل 8 نفر حداکثر 14 نفر    - تا الان 8 نفر ثبت نام کردند -

نام
نام خانوادگی
آدرس ایمیل
شماره تماس
لپ تاپ دارم | ندارم

 

دوره ویژه آموزش مفاهیم برنامه نویسی
کارگاه مهندسی نرم افزار با رویکرد تحلیل و طراحی

این ترم برای درس سیستم عامل؛ برگزار می شود؛
اگر مایل هستید که به شما هم اطلاع داده بشود؛ مشخصاتتون رو زیر همین پست کامنت بگذارید

 

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

داده کاوی در پردازش ابری

 

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

 

کلمات کلیدی: پردازش ابری, داده کاوی

 

معرفی

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

 

 

 

 

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

تکنیک های داده کاوی تکامل یافته اند و بیشتر مورد استفاده قرار گرفته اند, کشف دانش در پایگاه های داده به شکل فزاینده ای حیاتی شده است, در زمینه های همچون: کسب و کار, پزشکی, علوم, مهندسی, داده های مکانی و ... .

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

 

 

2. برخی جنبه ها راجع به پردازش ابری

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

در شکل (1) نشان داده شده است که چارچوب پردازش در طول نیمه اخیر قرن در 6 مرحله جابه جا شده است:

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

 


شکل 1. تغییر الگوی پردازش در نیم قرن اخیر [1]

 

  • میثم هوشمند
۱۵
دی
۹۳

  • میثم هوشمند
۱۶
آبان
۹۳

این مطلب نگاهی آزاد به کارکرد نرم افزاری نظیر بیت تورنت می باشد و هرگونه استنباطی در مورد مرتبط بودن این مطلب با کارکرد اصلی و واقعی نرم افزار بیت تورنت رد می شود.

همانطور که در کلاس درس سیستم های توزیع شده به شکبه و نرم افزار بیت تورنت اشاره شد؛

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

همچنین سرعت دریافت اطلاعات از این شبکه نیز نکته ی دیگری است که در این مطلب قصد پرداختن به آن را ندارم.

آنچه که در این مطلب بدان خواهم پرداخت نحوه ی کارکرد این نرم افزار هست.

بیایید با یک سوال شروع کنیم.

؟

  • میثم هوشمند
۱۸
شهریور
۹۳

هادی, دانشجوی سال سوم مهندسی نرم افزار

سلام؛ چند وقت پیش از طرف یکی از دوستانم یک شرکت نرم افزاری به من معرفی شد تا برای کار به اون شرکت مراجعه کنم. ظاهرا کارشون این طور هست که به شما مدتی آموزش میدهند و بعدش در پروژه های پشتیبانی که دارند نیرو را به کار میگیرند؛ مثلا بانک ملت. قرارداد هم دو ساله می بندند؛ و حقوقش هم ماهی 1.2 الی 1.5 میلیون تومان هست. برای من سوال شده که اصلا مگه شرکت های نرم افزاری آموزش هم دارند؟ و اینکه این کار را قبول کنم یا نه؟

در کل می خوام از شما یک مشورت بگیرم در خصوص اینکه این کار را قبول کنم یا نه؟

 _ هادی به نظرم بیشتر می خواست تحلیل و حرف یک نفر را در خصوص این موقعیت بشنود؛ بنابراین شاید متنی که اینجا نوشته شده؛ نتونه خیلی خوب فضای اون صحبت ها را تداعی کنه_

میثم هوشمند:

سلام هادی جان؛

از آنجایی که نامه ی تو و شرایطی که عنوان کردی برای خیلی از دانشجوها به وجود میاد؛ جواب مفصل تری می نویسم که همه استفاده کنند، پس لطفا با حوصله بخونش.

اول اینکه ؛ عموما بحث آموزش زمانی معنا و قابلیت اجرایی پیدا می کند که حوزه ی کاری اون شرکت یا اون موقعیت شغلی مشخص و قابل پیش بینی و دارا چارچوب باشد. مثال می زنم؛ زمانی که قرار هست شما به عنوان نیروی متخصص یک محصول نرم افزار برای پیاده سازی پورتال های سازمانی کار کنید؛ تا مسئول فروش یک سری محصول سخت افزاری؛ خب کاملا طبیعی هست که مدتی را صرف آموزش  کنند برای اینکه نیروی جدید بتواند ایفای نقش کند.

اما در شرکت هایی که تولید نرم افزار می کنند و خصوصا خصوصا شرکت هایی که پروژه های پشتیبانی – و باز خصوصا پروژه هایی بدون حد و مرز و جنس مشخص- دارند؛ اینجا آموزش معنای خاصی نمی تواند داشته باشد؛ چرا که شخص باید با دنیایی از مفاهیم و اطلاعات اولیه و توانایی ها وارد این موقعیت شغلی بشود.

بنابراین با تعریفی که از اون شرکت و کارش ارائه کردی؛

  • میثم هوشمند
۰۱
تیر
۹۳

کدام Service، کدام User ؟

سوالی که افراد بسیاری در پروسه نصب Sql Server در بخشی که مربوط به انتخاب کاربر برای هر کدام از سرویس های سیکوئل سرور هست، می پرسند.
در واقع چندین انتخاب وجود دارد.

من به شخصه در زمان نصب SQL Server با این سوال مواجه بودم و نتایج جستجو بر روی اینترنت و سوال و جواب از دوستان فنی؛ نتیجه ی مثبت و منحصری را حاصل نمی کرد. تا اینکه در آخرین جستجو که به سایت MSDN منتهی شد به مطلبی برخورد کردم؛ که مطالب ذیل ترجمه ایست آزاد از آن.

برای اجرای هر کدام از سرویس های سیکوئل سرور, هر کدام از آن ها باید یک حساب کاربری که در طی مراحل نصب تنظیم شده اند, داشته باشند. این حساب های کاربری که برای شروع و اجری سیکوئل سرور به کار می روند می توانند یک حساب کاربری از نوع built-in یا local user یا domain user باشند.

ذیلا به تشریح هر کدام پرداخته شده است.

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

گاهی اوقات در گزارشات فیلدی قرار داد که مقدار آن از نوع Boolean می باشد. شاید بد نباشد که به ازای مقادیر True یک علامت "تیک" و به ازای مقادیر False یک علامت "ضربدر" نمایش دهیم. اما چگونه؟

مقادیری از این نوع که توسط به طور مثال سیکوئل سرور برگردانده می شوند به صورت کلمات "True" یا "False" می باشند.

برای این کار چند راه حل وجود دارد.

اول 

لازم هست که یک Formula Field روی فرم قرار دهیم. روی فیلد کلیک راست می کنیم و Edit Formula را انتخاب می کنیم و عبارت ذیل را در بخش فرمول می نویسیم. فرض می کنیم اسم فیلد Table.MyField هست.

If {Table.MyField } = true then 'P' else 'O'
سپس نام فونت این فیلد را برابر با
"Wingdings 2"
قرار می دهیم.
دوم 
مقدار فیلد مورد نظر را در کوئری دیتابیس به این صورت بخوانیم   (به طور مثال فیلد مورد نظر وضعیت فعال بودن کاربر را نشان می دهد)
SELECT
name,
family,
gender,
CASE
WHEN IsActive= 1   THEN char(110)
ESLE char(111) END
as 'IsActive'
FROM dbo.Users
سوم 
مانند راه اول است با این تفاوت که نیازی به تغییر نوع فونت فیلد نیست
تنها به جای حروفی که در فرمول نوشته شده باید کد اسکی کاراکتر های تیک و ضربدر را باید قرار داد. مانند عبارت ذیل:
If {Table.MyField } = true then CHAR(254)  else CHAR(168)

اگر در بین فونت های دیگر جستجو کنیم؛ شکل های جالبی برای فیلدهای گزارش می توانیم پیدا کنیم

اگر شما هم از این ترفند استفاده می کنید؛ به اشتراک بگذارید.

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

چرا RAID برای پایگاه های داده بسیار مهم است؟

این متن، ترجمه ایست آزاد، از  Why is RAID So Important for Databases?

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

RAID یک سیستم دیسکی است که شامل چندین دیسک که یک آرایه نامیده می شوند می باشد که عملکرد،تحمل خطا،ظرفیت ذخیره سازی بهتری را با هزینه ای متوسط، فراهم می آورد. زمانی که سیستم سرور خود را پیکربندی می نمایید، به طور معمول مجبور به انتخاب یکی از دو روش ذیل برای دیسک  درایو های داخلی سرورتان هستید.

1. RAID سخت افزاری

2. RAID نرم افزاری،

 

سامانه RAID به طور گسترده ای به عنوان یک راهکار ذخیره سازی برای کسب بهترین عملکرد استفاده می شوند، بسته به اینکه برنامه کاربردی بر نوشتن اطلاعات تمرکز دارد یا بر خواندن اطلاعات. مدیر پایگاه داده، Ray Rankins  ( لینک سایت شرکت مشاوره ای ایشان )در کتابش که در مورد برنامه های DataBase-Related (لیست کتاب ها)است، توضیح می دهد که برای کمینه نمودن جابه جایی هد دیسک و بیشینه نمودن عملکرد I/O، این یک کار درست که  خواندن/نوشتن های تصادفی (مثل عملیات دست کاری داده) و خواندن/نوشتن خطی (مثل لاگ تراکنش های سیستم) را در میان دیسک های مختلف توزیع نمایید. من موافقم و نظر او را تائید می کنم. به عنوان مثال، SQL Server یا هر پایگاه داده دیگر، شدیدا بر عملیات I/O متمرکز است.

 

برای توضیح اهمیت RAID در پایگاه داده، من از SQL Server به عنوان مثال استفاده خواهم کرد، گرچه شما می توانید این مفاهیم را در انتخاب خودتان از میان پایگاه های داده دیگر نیز پیاده سازی نمایید. مفاهیم کم و بیش در همه موارد شبیه هم هستند.

گرچه RAID یک بخش از یک پایگاه داده مثل SQL Server نیست، اما پیاده سازی RAID می تواند مستقیما بر نحوه عملکرد SQL Server تاثیر بگذارد.

  • میثم هوشمند