نوشته های علی یوسفی

مینویسم تا از توهمات دور شوم و بهتر خودم را بشناسم و با نگاه به گذشته ببینم آیا رشدی داشته ام یا خیر

نوشته های علی یوسفی

مینویسم تا از توهمات دور شوم و بهتر خودم را بشناسم و با نگاه به گذشته ببینم آیا رشدی داشته ام یا خیر

نوشته های شخصی من در مورد زندگی برای گذشتن از ایده‌های تکراری و روزمرگی‌ها و ثبت تجربه های زندگانی

چند نکته درباره جاوا اسکریپت

پنجشنبه, ۲۰ مهر ۱۳۹۶، ۱۱:۰۳ ق.ظ

۱- تقریبا همه جا می توان properties اضافه کرد 


var a = {}; // create a new object a.b = 'hello';


var a = []; // create an array a.b = 'hello';


var a = function() {}; a.b = 'hello';


۲- توابع آبجکت هستند 

function doIfTrue(isTrue, whatToDo) { if(isTrue) whatToDo(); } doIfTrue(true, function() {alert('hello');}); // alerts "world" doIfTrue(false, function() {alert('world');}); // does nothing


۳- حلقه  for...in بر روی نام پروپرتی ها تکرار می کند نه مقدار آنها 

از این حلقه برای پیمایش آرایه ها استفاده نکنید ؟ 

برای این کار در ECMAScript 6  حلقه for... of تعریف شده است .


۴- حوزه تعریف متغیر‌ها


ادامه دارد 

منبع :

Top Ten Things Beginners Must Know About JavaScript

https://www.codementor.io/community

  • Ali Yousefi

سی‌روز‌اول-۸ پایان سی روز

يكشنبه, ۱۶ مهر ۱۳۹۶، ۱۲:۲۹ ق.ظ

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

  این سی روز خوب بود و الان هم برنامه ای ۶۰ روزه دارم برای مرحله بعدی و اون مرحله هم اینه که هر روز یک نوشته بنویسم و چند برنامه کاربردی بنویسم و نمونه کار قابل قبول داشته باشم و تست نوشتن رو هم خوب یاد بگیرم و تا تاریخ 16 آذر هم این برنام ادامه داره.

  کم و کم هم تلاش می‌کنم که صبح ها زود تر بیدار بشم. 

  • Ali Yousefi

عنوان یک : دنیای انتخاب‌ بسته‌های کوچک هیجان‌انگیز بدون نتیحه و انتخاب‌های بسته‌های بزرگ کسل‌کننده مفید

عنوان دو : چگونه می توانم انتخاب هایی درست داشته باشم

عنوان سه: چرا با اینکه میدانم بسته های کوچک بدردنخور هستند باز هم به آنها دل بسته ام

...

تعریف  بسته های کوچک:  بسته های اطلاعاتی که روزانه با آنها مواجه هستیم و به آنها می پردازیم ویژگی اصلی آنها کوتاه بودن و ادامه دار نبودن است، بحث‌ها و موضوعات مختلف که در قالب خبر در سایت می خوانیم یا مطلبی در وبلاگ و یا نیم خبری که در تلگرام یا اینستاگرام و یا در ۱۴۰ کاراکتر در تویئتر  و ... می خوانیم یا می بینیم یا با نگاه کوتاهی از آنها رد می شویم یا باز بحث هایی که با دوستان سر این مسائل می‌کنیم و عموم آنها در مورد موضوعاتی هستند که به افق زمانی از یک هفته قبل تا صفر روز بعد اشاره دارند، فوتبال، سیاست، آتش‌سوزی‌، تصادفات و ... .

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


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


  1. پشتکار نداشتن
  2. ترس از باختن
  3. کمال‌گرا بودن و انجام ندادن کارهایی که صددرصد درست نیستند
  4. نداشتن هدف و بدتر از آن  داشتن هدف هایی که توهم هستند
  5. برنامه‌ریزی های اشتباه یا بدتر از آن نداشتن برنامه ریزی
  6.  انتخاب بسته های کوچک وسرگرم شدن با آنها
  7.  رفتارهای خارج از کنترل بعد باختن
  8. نداشتن هیچ ایده ای در مواقع ابهام
  9. درون ریزی افراطی
  10. قبول نکردن اینکه خودم و فقط خودم مسئول رفتار های خودم هستم(مقصریابی)


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

موردی که الان می خواهم بیشتر در مورد آن بنویسم مورد ششم است :‌  انتخاب بسته های کوچک وسرگرم شدن با آنها

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

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

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

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

  • Ali Yousefi

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

    یک نمونه todo با فریم ورک یی۲ نوشتم و نوشتن اون خیلی آسون و سر راسته اما تقریبا هیچ کس از اون استفاده نمیکنه و لازمه که برای اون کلاینت وب و موبایل بنویسم، پس شروع کردم به نوشتن یک اپ موبایل  و شروع لیست بلند بالای سمت کلاینت کد نوشتن، جاوااسکریپت، سی اس اس و آیونیک آنگولار، تایپ اسکریپت، سس، جی‌کوری، بوت استرپ، با توجه به زمانی که من برای خودم در نظر گرفتم نمی دونم چکار باید بکنم.

   آنگولار و تایپ اسکریپت رو در حدی getting start می خونم و تمرکزم رو روی سمت سرور یی۲، php و پایگاه داده می‌گذارم.

  • Ali Yousefi

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


  • Ali Yousefi

سی‌روز‌اول-۴ ANSI Escape codes

جمعه, ۱۰ شهریور ۱۳۹۶، ۰۳:۲۱ ب.ظ

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

<?php
// Set Graphics Mode:
//Text attributes; Foreground colors ; Background colors

echo
"\033[0;31;47m", "Hello \n";
echo
"\033[1;31;47m", "Hello \n";
echo
"\033[2;31;47m", "Hello \n";
echo
"\033[3;31;47m", "Hello \n";
echo
"\033[4;31;47m", "Hello \n";
echo
"\033[5;31;47m", "Hello \n";
echo
"\033[6;31;47m", "Hello \n";
echo
"\033[7;31;47m", "Hello \n";
echo
"\033[8;31;47m", "Hello \n";



برای اطلاعات بیشتر http://ascii-table.com/ansi-escape-sequences.php
  • Ali Yousefi

سی‌روز‌اول-۳ Ajax validation yii2

جمعه, ۱۰ شهریور ۱۳۹۶، ۰۱:۳۶ ق.ظ

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

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

[['title'], 'unique'],
سپس در ویو و فرم مورد نطر برای فیلد عنوان ایجکس ولیدیشن را فعال می کنیم

<?= $form->field($model, 'title', ['enableAjaxValidation' => true])
->
textInput(['maxlength' => true]) ?>

و در شروع فرم آدرس اکشنی که مقدار فرستاده شده از ایجکس را هندل می کند را آدرس دهی می کنیم

<?php $form = ActiveForm::begin([
'validationUrl' => 'validate'
]);
?>

و نهایتا اکشنی که در کنترلر قرار دارد و اعتبار سنجی را انجام می دهد
public function actionValidate()
{
$model = new Todo();
if (Yii::$app->request->isAjax &&
$model->load(Yii::$app->request->post())) {
Yii
::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validate($model);
}
}



کد کامل  Validation Ajax



  • Ali Yousefi

سی‌روز‌اول-۲ : حاشیه های جذاب و متن کسل کننده

پنجشنبه, ۹ شهریور ۱۳۹۶، ۱۲:۰۹ ب.ظ

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

هنوز نمی توانم شبکه های اجتماعی را مدیریت کنم و به کار های اصلی ام بپردازم.

روز اول خوب بود و برنامه ام رو انجام دادم.


  • Ali Yousefi

سی‌روز‌اول-۱ : برنامه ۲-۲-۲-۴ php - yii2- sql -کار عملی

چهارشنبه, ۸ شهریور ۱۳۹۶، ۰۳:۱۷ ق.ظ

شیوه برنامه ریزی به این صورت است که ۲ ساعت PHP و ۲ ساعت Yii2 و ۲ ساعت sql و ۴ ساعت هم کار عملی

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

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

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

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

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

  • Ali Yousefi

سی روز تلاش

چهارشنبه, ۸ شهریور ۱۳۹۶، ۰۲:۵۸ ق.ظ

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

  سعی می‌کنم تجربیات خودم را هر روز بنویسم و چیز هایی را که یاد می‌گیرم و چیز هایی که به آنها فکر می کنم، احساس می کنم نوشتن تجربیات می تواند برای من مفید باشد.

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

  تلاش می کنم هر روز حداقل یک نوشته بنویسم و زنجیر را نشکنم.


  • Ali Yousefi