همه‌ی نوشته‌های اصلان

درباره‌ی اصلان

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

آگاهی جمعی

آگاهی جمعی یا با عناوین دیگر بصیرت عمومی، اطلاع عمومی یا اطلاع جمعی یا در زبان انگلیسی Common Knowledge یکی از اون موضوعات جالبه که توی علوم زیادی (مثل منطق و روانشناسی اجتماعی) تعریف میشه و کاربرد داره. ماجرا از اونجا شروع شد که توی همین ترم آخری که گذروندم(بهار ۹۶) در درس منطق ریاضی با استاد محمد شهریاری، ایشون گفتند که برید و درباره آگاهی جمعی یا همون Common Knwledge تحقیق کنید و بیارید. مقدار کمی هم توضیح دادند که خیلی گیج نزنیم. از همون اولش به موضوع علاقه‌مند شدم و شروع کردم به تحقیق و جمع کردن یکسری مثال/معما مربوط به آگاهی جمعی.

حالا اصلا این Common Knowledge که میگیم چی هست؟ خب ویکی پدیای انگلیسی آگاهی جمعی رو اینطور تعریف میکنه:

Common knowledge is a special kind of knowledge for a group of agents. There is common knowledge of P in a group of agents G when all the agents in G know P, they all know that they know P, they all know that they all know that they know P, and so on ad infinitum

بخوام خودم به فارسی توضیح بدم اینطور میشه که:

آگاهی جمعی نوع خاصی از دانستن مخصوص یک گروه از عوامل است. در گروه عوامل «الف» میگوییم نسبت به «ب» آگاهی جمعی وجود دارد، هرگاه که تمامی عوامل در گروه «الف»، «ب» را بدانند و همه عوامل در گروه «الف» بدانند که همه عوامل دیگر «ب» را میدانند و همینطور تا بی نهایت.

حالا یکسری از کاربرد ها، مثال ها و نمونه هایی از سوال/معما های مربوط به این موضوع شدند تحقیقی که من به استاد تحویل دادم.

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

لینک دانلود فایل PDF تحقیق درباره Common Knowledge یا همون آگاهی جمعی

 

PHP در راه انتشار – قسمت دوم

با تاخیر خیلی زیاد بلاخره اینو گفتم بنویسم که موضوعم ناقص نمونه.

در پست PHP در راه انتشار – قسمت اول درباره یکسری از مهمترین تغیرات نسخه هفتم PHP گفتم و حالا میخوام بقیشونو بگم.

تعریف ثابت آرایه ای با استفاده از define

در نسخه ۵.۶ این امکان اضافه شده بود که از طریق const یک ثابت با مقدار آرایه ای تعریف کنیم. ولی یک مشکل اساسی داشت و ان هم این بود که شما نمیتونستید از متغیر های مقدار دهی شده برای مقدار دهی ثابت استفاده کرد. یکم توضیحش سخته. اجازه بدید نشون بدم.

مثلا به دستورات زیر دقت کنید. توی این دستورات خط دوم ارور میده.

ولی اگه من جایی نیاز داشته باشم تا با استفاده از یک متغیر یک ثابت رو مقدار دهی کنم پس باید چیکار کنم؟ خب اینجاست که define با تغیرات نسخه ۷ به کمکمون میاد.

خب خیلی راحت همینکار رو با define میکنیم و هیچ اروری هم دریافت نمیکنیم.

استفاده گروهی از namespace ها

خب برای اینم باز مثال ببینیم بهتره.

مثلا کد زیر برای دوران قبل از PHP7 بود:

همین کد بعد از دوران پیدایش نسخه ۷ام به این شکل میشه:

تابع intdiv 😐

این تابه دوتا پارامتر به عنوان ورودی میگیره و بخش صحیح حاصل تقسیم پارامتر اول به دوم رو برمیگردونه.

اینکه این تابع رو خودمون تعریف کنیم کار خیلی راحتی هست ولی خب گذاشتن دیگه…

پارامتر session_start

احتمال خیلی زیاد با session_start آشنا هستید. ولی خب این تابع هیچ پارامتری دریافت نمیکرد؛ البته تا نسخه هفتم. حالا به عنوان پارامتر اختیاری میتونه آرایه‌ای از تنظیماتی که قبل از این باید از php.ini تغیرشون میدادیم بگیره.

کلاس IntlChar

ّIntlChar یک کلاس از پیش تعریف شدست که داخل پر از ثابت ها و متود هایی هست که مربوط به بررسی و جمع آوری یکسری از اطلاعات مربوط به کاراکتر ها است.

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

 

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

همایش روز آزادی نرم‌افزار

پوستر همایش
پوستر همایش

خب ۲۷ شهریور که گذشت روز ازادی نرم‌افزار بود و من هم عضو تیم اجرایی و مجری بودم. حالا اینکه روز آزادی نرم‌افزار چیه با یک سرچ خیلی ساده میتونید پیدا کنید پس من دربارش حرف نمیزنم تا الکی سرتونو درد نیارم.چیزی که میخوام بنویسم بیشتر درباره کار های اجرایی هست و اینکه چطوری یک کار رو اصولی جلو ببرید. نه اینکه ما اصولی جلو برده باشیم ها!! 🙂 فقط یادگرفتیم که چجوری اصولی باشه. حالا تا دفعات بعدی استفاده کنیم.

مورد اول:

هیچ وقت امیدوار نباشید که کسی که میتونه بدون کار کردن هم پول در بیاره کار شمارو راه بندازه!

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

مورد دوم:

هر پروژه ای که انجام میدید، چه کوچیک چه بزرگ، حتما روی سیستم RACI مدیریتش کنید.

سیستم RACI یک سیستم هست برای مدیریت پروژه تا بتونید مسئولیت هارو تقسیم کنید. میتونید توی صفحه ویکیپدیای مربوط بهش اطلاعات مفیدی رو پیدا کنید.شاید بعدا دربارش یک متن کامل نوشتم.

مورد سوم:

مجری نباید صدای کلفت و داشته باشه و یک مریضی که هی سرفه کنه 😐

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

مورد آخر:

هیچ وقت به آمار اعتماد نکنید!

ما ثبت نام رو روی سیستم ایوند قرار دادیم تا آمار شرکت کننده هارو داشته باشیم.خب اصلا تعداد با شرکت کننده ها انطباق نداشت. یکسری ثبت نام میکنند ولی نمیان( چون رایگانه!‌ ) یکسری هم ثبت نام نمیکنن و میان چون بدون ثبت نام هم میتونن شرکت کنن. پس کلا قابل پیش بینی نیست که چند نفر میان!

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

تیغ اوکام

william_ockham
William Ockham

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

ویلیام اوکام فیلسوف و منطق‌دان انگلیسی که ۷ قرن پیش زندگی میکرده. از عمده دلایل شهرتش اینهمه سال پس از مرگ، «اصل تیغ اوکام» یا با اسم دیگه «اصل اختصار تبیین» هست.

حالا این تیغ اوکام چی هست و چی میگه؟

ویکیپدیا میگه به شکل ترجمه عامیانه از لاتین تیغ اوکام این رو میگه:

در توضیح و توصیف، بخش‌های ناضروری را حذف کن.

ولی این که حالا این یعنی چی باز ویکی پدیا اینو میگه:

میان دو نگره که توان توصیف و پیش‌بینی یکسانی دارند، ساده‌ترین را بگزین.

خب فکر کنم یکم مشخص شده باشه که چی میگه.

تا اینجا که تمام استنادمون به ویکیپدیا بوده پس از همونجا یک مثال هم میارم براتون:

چرا در یخچال خانه هیچ غذایی نیست؟! آیا گروهی ازسارقان بین‌المللی آن را خالی کرده‌اند؟ آیا یخچال شیئی ساخته فضایی هاست که هر غذایی را ناپدید می‌سازد؟ یا اینکه دلیل خالی بودن یخچال، این است که هم اتاقی من و دوستانش دیشب گرسنه بوده‌اند؟

دیگه حس میکنم زیادی از حد مشخص شد یعنی چی! توی مثال بالا اینکه سارقین بین‌المللی غذاهارو دزدیده باشن ممکنه ولی خب واقعا ساده ترین حالت ممکن نیست و باید خیلی از موارد وارد داستان بشن تا بشه همچین چیزی رو توجیح کرد ولی اینکه یکی گشنش شده و غذای توی یخچال رو خورده یک نظریه خیلی سادست و لازم نیست داستان پیچیده ای برای انجام شدنش داشته باشیم.

ولی ایرادات زیادی به تیغ اوکام وارده که یکی از مهمتریناش معیار سادگی هست. وقتی که گفتیم «میان دو نگره که توان توصیف و پیش‌بینی یکسانی دارند، ساده‌ترین را بگزین.» ساده ترین اصلا کدوم یکی هست؟ ما به چی میگیم ساده؟!

تا اینجای داستان برای همه بود و هر کسی میتونست بخونه و ازش استفاده کنه. ولی از اینجا دیگه مربوط میشه به کامپیوتر و برنامه نویسی…

خب مثالمو با زبان برنامه نویسی CPP میزنم.

یک برنامه ای رو اجرا میکنید و خروجی Hello World رو دریافت میکنید. به نظر شما برنامه نویس توی سورس برنامه چی نوشته که خروجیش این شده؟ خط اول، دوم یا سوم کد زیر؟

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

گفتیم که از ایرادات وارد به تیغ اوکام بررسی سادگی هست. ولی خب شاید بتونیم توی برنامه نویسی معیار های خوبی برای سادگی بیاریم.

مثلا میشه به نظر من اینارو معیار های خوبی قرار داد و به اونهایی که این ویژگی هارو دادند برنامه های ساده تر گفت:

  • تعداد حلقه های کمتر
  • تعداد شرط های کمتر
  • تعداد متغیر های کمتر
  • خطوط کوتاهتر
  • و…

ابته منظورم از خطوط کوتاهتر خطوط کمتر نیست ها!! منظورم طول هر خط هست. به نظر من تعداد خطوط معیار مناسبی برای سادگی نیست.

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

اندر مزایای پایگاه داده های گراف محور و OrientDB

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

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

خلاصه اینکه یک نوع از این پایگاه داده های جدید هم پایگاه داده های گراف محور یا Graph Based هستند.از معروف ترین این دیتابیس ها میشه به NEO4j اشاره کرد. ولی خب دیتابیس هایی هم هستند که از چند نوع از ساختار های NoSQL پشتیبانی میکنند مثل OrientDB که هم از حالت گراف پشتیبانی میکند و هم از سند-گرا که یکی دیگر از ساختار های NoSQL است.

خلاصه این که برای کار خودم از پایگاه داده OrientDB استفاده کردم تا گراف رو داخلش ذخیره کنم.خب قبل از این من توی C# به MS-SQL و توی PHP به MySql متصل شده بودم و باهاشون کار کرده بودم.ولی خب تا حالا با Java به هیج دیتابیسی وصل نشده بودم. پس این کار برای من دوتا جنبه تازه داشت. اول اینکه برای اولین بار داشتم توی جاوا به پایگاه داده متصل میشدم و دوم اینکه اولین تجربه من با دیتابیس OrientDB و در کل یکی از زیر شاخه های جنبش NoSQL بود.

خب اولین کاری که باید میکردم ساختن یک دیتابیس محلی در آدرسی هست که خودم میخوام تا برنامه بتونه باهاش در ارتباط باشه.

فقط برنامه برای کار کردن به چند تا از کتابخانه های OrientDB نیاز داره که توی پوشه /lib خود دیتابیس میتونید پیداشون کنید.

خب من به این فایل ها برای کتابخانه نیاز دارم و اونارو به اپلیکیشن خودم اضافه میکنم.

خب حالا بریم سر برنامه. اول از هر چیزی من نیاز دارم تا ایمپورتشون کنم:

حالا دیگه تمام چیزی که نیاز دارم این یک خط کده تا کل گراف رو وارد آبجکت graph بکنم:

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

حالا میتونم داخل بخش try کد های مربوط به کار کردن با گرافم رو بنویسم. تقریبا کاری دیگه نمونده.

به مثال های زیر در کار با گراف دقت کنید تا دیگه من شرح ندم:

از نکات خیلی جالبش اینه که نیاز به sync کردن نیست و هر کاری میکنید مستقیما توی پایگاه داده اعمال میشه.همچنین OrientDB از زبانی شبیه به SQL برای Query های خودش استفاده میکنه که بیشتر فقط زمانی که میخوایم بر اساس یک الگوی خاص دنبال یک چیزی بگردی ازش استفاده میکنیم. برای استفاده از اون هم میتونید به صورت زیر استفاده کنید:

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

http://orientdb.com/docs/master/index.html

Geek Pride Day

خب شنوندگان(خوانندگان) عزیز امروز ۲۵ می سال ۲۰۱۶! روز افتخار، روز سرافرازی و روز غرور جمعیت گیک های کره زمین هستش!

روز ۲۵ می از سال ۲۰۰۶ به روز Geek Pride Day معروف هست و روزی هست که گیک ها برای خودشون جشن میگیرن.این روز برای اولین بار توی اسپانیا با این عنوان برپاشد و از سال ۲۰۰۸ در آمریکا به شکل جدی‌تری به کارش ادامه داد!

Geek-Pride-Day-Wish-Photoخب برای اونایی که نمیدونن گیک یعنی کی، باید بگم که گیک ها افرادی هستند که علاقشون به یک چیز توی زندگی روزمرشون اثر گذاته و این اثرات معمولا عجیب و غریب هستند!

و چیزی که جالبه اینکه معمولا افرادی که گیک یک چیزی هستند گیک چیز های دیگه هم هستند!

مثلا من خودم در اولین مرتبه گیک کامپیوترم:D ولی در ادامه باید بگم که گیک داستان های کمیک و ابرقهرمانی، گیک غذا و گیک غذا هم هستم 😀

البته بعضی چیزا هم هستند که بین گیک و نرد ها مشترک هستند مثل Book Worm بودن که البته در تلاشم که به اون مرحله برسم و هنوز کار داره تا به این درجه نایل بشم!

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

و نکته جالب ینکه این روز با روز حوله Towel Day همزمانه! کلا مناسبت های جالبی توی دنیا هستند.

خب وظیفه ما اطلاع رسانی درباره این روز فرخنده و خجسته بود و حالاکه کارمون تموم شد دیگر حرفی نیست جز خداحافظی 😀

برنامه های تابستان

خب دیگه به شروع ماه گریه و خون یعنی خرداد رسیدیم 😀 یعنی فکر نمیکنم کسی باشه که از خرداد دل خوشی داشته باشه!

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

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

ولی بحث زیبای پروژه ها! خب توی تابستونی که میاد باید منتظر چه چیزایی باشید؟ اول از همه پروژه سیستم مدیریت محتوایی هست که برای وبسایت های خبری طراحی شده و هنوز اسمی نداره که بخوام با اون معرفیش کنم.ولی خب این پروژه تقریبا تکمیله. از نکاتی که این سیستم رو متمایز میکنه ساختار کاملا منعطف و خیلی سادشه که خیلی ساده میتونید همه چیز رو به عنوان پلاگین به سیستم اضافه کنید.کلا چیز باحالیه 😀

پروژه بعدی که احتمالا با کمک یکسری از دوستان شروع بشه پروژه ای هست که فعلا اسمشو گذاشتم دودویی یا همون مبنای دوی خودمون.این پروژه یک وبسایته که قراره روی آموزش تمرکز داشته باشه.سیستمش کاملا اصولیه و سعی شده تا همه چیز خیلی مرتب و طبقه بندی شده توش قرار بگیره.هنوز ظاهرش یکم کار داره و اینکه مطالب اولیش باید آماده بشن.این یکیو خیلی دوست دارم چون یکبار که خوابم نمیبرد ساعت فکر کنم ۶ یا ۷ صبح به سرم زد و یکم اولشو نوشتم تا خوابم بیاد 😀

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

نظریه های یادگیری به خصوص هال!

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

این کتاب یک کتاب مخصوص بچه های روانشناسی و علوم تربیتی هست که به توصیه پسرخاله گرامی، که خودش دانشجوی روانشناسی هست و دیده بود که به نظریه های یادگیری علاقه دارم، تهیه کردم و  دارم میخونمش.

شاید در حین خوندنش اگه چیزای جالبی دیدم اینجا دربارشون بنویسم و یکم نظرمو دربارشون بگم.

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

گفتم شاید اگه اینجا یکم دربارش بنویسم خوب باشه.

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

کلارک لئونارد هال

با این وجود آقای هال اومدن و سعی کردن که برای این یادگیری فرمول های ریاضی تعریف کنند و روابط بین اونهارو با متغیر های ریاضی و توابع وابسته به همدیگه تعریف کردن. اگه اینو بدونیم که هال تا سن ۶۸ سالگی زندگی کرده و در سال ۱۹۵۲ چشم از این دنیای شوم بسته متوجه میشیم که خیلی جلوتر از زمان خودش داشته فکر میکرده.

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

راستش برای من به عنوان کسی که به برنامه نویسی و الگوریتم ها علاقه دارم چیزی که باعث شد نظریه هال برام جالب باشه اینه که اومده درواقع یک الگوریتم برای یادگیری انسان طرح کرده.

حالا دیگه من میرم تا ادامه این کتابم بخونم و اگه بازم به نظرم چیز جابی بود اینجا مینویسم.

و اینکه نمایشگاه کتاب هم نزدیکه و بر اساس سنت دیرینه من (بازدید از نمایشگاه مقدس کتاب) باز هم به نمایشگاه خواهم رفت، هرچند که اینبار موانع زیادی روبروم هستند. مثل اینکه الآن تبریزم و مثل اینکه محل جدید نمایشگاه مترو خورش خوب نیست 😀 ولی بازهم خواهم رفت و توصیه اکید من به شما اینه که اگه پایتخت نشین نیستید و قسمت نشده تا الآن به نمایشگاه کتاب تهران سری بزنید حتما امسال وقتتون رو تنظیم کنید و یکسری بهش بزنید.

چرا UX انقدر مهمه؟

شاید خیلی درباره UI شنیده باشیم.UI یا همون User Interface که ترجمش میشه رابط کاربری خیلی مهمه چون اینکه نرم‌افزار شما چقدر بتونه با ظاهرش کاربر رو مجذوب خودش کنه مشخص میکنه که شما چقدر کاربر دارید.

ولی خیلی جاها با وجود UI خوب و قابل قبول میبینم که نتیجه خوبی حاصل نمیشه.در اینگونه موارد مشکل اگه از محتوا نباشه از چیری هست به نام UX یا همون تجربه کاربری.درواقع تجربه کاربری این رو بیان میکنه که کاربر با UI به چه شکلی قراره تعامل داشته باشه و در کل اینکه قراره کار با UI چقدر لذت‌بخش، ساده و بدون ابهام باشه.

چیزی که باعث شد این رو اینجا بنویسم وبسایت جام شهید مدنی بود.وبسایت رو که باز میکنیم با ظاهر قابل قبولی روبرو میشیم که بد نیست.یعنی درواقع از نظر UI میشه گفت که مشکل خاصی نداره.(البته اگه از ترکیب رنگ ها و مشکل منوها بگذریم)

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

اهمیت تجربه کاربری خیلی زیاده.شاید حتی از رابط کاربری هم یبشتر.چون شما خیلی وقتا از سایتی که ظاهر درستی داره استفاده میکنید ولی از سایتی که اعصابتونو خورد کنه استفاده نمیکنید.حداقل من که نمیکنم 🙂

روز جهانی عدد پی

امروز چهارده مارس هست و روزی که به اسم عدد پی نامگذاری شده.دلیلشم اینه که عددپی به طور تغریبی چیزی نزدیک به ۳٫۱۴ هست و امروز هم که ۳/۱۴ هست یعنی روز چهاردهم ماه سوم!

π = ۳٫۱۴۱۵۹۲۶۵۳۵

خب به عنوان یک برنامه نویس باید به روش خودمون برای این روز یک کاری انجام بدیم دیگه 😀

خب اینم از هدیه روز پی، برنامه تخمین عدد پی به روش سوزن بوفن با زبان زیبای جاوا.

هپی پی دی 😀

Happy Pi day