Syntax | سینتکس
Відкрити в Telegram
Focus: Web Lan: Python & Go Website: https://syntaxfa.ir Quick connect: https://quick-connect.syntaxfa.ir Github: https://github.com/syntaxfa Group: https://t.me/Syntax_fa_group
Показати більше3 261
Підписники
+324 години
+107 днів
-130 днів
Архів дописів
3 261
میگن هر چیزی یه وقتی داره. مثل گل خوردن قطر تو دقیقه سوم بازی. حالا ناله کن عراقی.👍🏻
3 261
پیش بینیتون از بازی رو برامون کامنت کنید ببینیم با خودمون چند چندیم!
• پست موقت
3 261
دوست داشتم اولین پستم توی کانال رو به معرفی Larry Tester اختصاص بدم؛ که اتفاقا کمتر کسی هم این مرد بزرگ رو میشناسه. ایشون آقای لارنس تسلر هستند، برنامه نویس کامپیوتر که «copy and paste» رو ابداع کردن و اگر بگیم در ذخیرهی عُمر جامعه برنامهنویسان موثر بودن اغراق نکردیم. در واقع اگر این آقا نبودن، هنوز باید باید کل پایانامه تحقیقات و کدهامون رو خط به خط تایپ میکردیم! :))))
Syntax
3 261
Repost from CodeCrafters
چرا conda استفاده کنیم؟؟؟
اول اینکه نوع پایتون رو هم خودش براتون بالا میاره حین ساخت محیط و شما دیگه درگیر پیچیدگی و هندل کردن نصب و مدیریت چند نسخه مختلف پایتون نمیشید و حتی کار کردنش باهاش از pyenv راحت تره و عوض کردن نسخه پایتونش هم راحت تره
conda create -n MyENV python=3.8
دوم اینکه محیطی که براتون میسازه رو داخل home شما و در دایرکتوری مخصوص خودش میسازه و نه در مسیر جاری شما خب این مزیتش این هست که شما راحت هرجا باشید میتونید ۱-سریع فعال و ۲-غیرفعال و یا محیط خودتون رو تغییر بدید و یا بدون دغدغه نسبت به محل قرارگیریش محیط جدید بسازید و ۳-حذف هم کنید و بین محیطهای مختلف راحت سویچ کنید
1- conda activate my_env
2- conda deactivate
3- conda env remove -n MyENV
مورد بعدی هم اینکه:
۱-نصب پکیج هم داخلش راحته
۲-و علاوه بر خودش میتونید از pip هم استفاده کنید
۳- همچنین بروز رسانی پکیج
1- conda install PackName 2- pip install PackName 3- conda update PackName۱-لیست پکیجهای نصب شده رو هم میتونید ببینید ۲-و یا یک فایل حاوی ادرسهای آن جهت نصب بسازید ۳-و یا بصورت yaml براتون قرار میده که از دو بخش تشکیل شده پکیجهایی که خودش نصب کرده و پکیجهایی که با pip نصب شده
1- conda list 2- conda list --explicit 3- conda env --export > requirements.ymlکه بالطبع میتونید اون رو هم در یک محیط دیگه نصب کنید
conda create -f requirements.yml
conda create -n MyENV -f requirements.yml
گفتیم همه محیطها رو در یک مسیر قرار میده که با دستور زیر هم میتونید لیست همه محیط هاتون رو ببینید
conda env list۱- اگه بخواید یکمحیط روحذف کنید ۲-یا یک پکیج رو حذف کنید
1- conda env remove -n MyENV --all 2- conda remove PackNameبرای دیدن اطلاعات مربوط به محیط تون
conda infoجهت تست و بررسی سلامت محیط
conda doctorجهت تغییر نام محیط با شرط فعال نبودن محیط تون
conda rename۱-جستجوی پکیج با نمایش تاریخچه تگ آن ۲-مشاهده وابستگی های آن ۳-مشاهده پکیجها استفاده کننده آن
1- conda search PackName 2- conda repoquery depends PackName 3- conda repoquery whoneeds PackNameادغام محیط شل با conda
conda init bashپاک کردن پکیجهای نا استفاده
conda cleanبرای کانفیگ از قبیل محیط نصب، پکیجها محدودیت دانلود و ...
conda config
conda config --help
موضوع جالب اینکه هنگام نصب پکیج تمام وابستگیها رو اجرایی میکنه و نصب و حتی اگه نیاز به نسخه دیگری از پایتون باشه اون رو downgraid میکنه که منجر میشه تا حد ممکن براتون خطایی رخ نده و دردسر نکشید
داخل کامنت ها هم نحوه نصبش رو در اوبونتو میزارم
@code_crafters3 261
#موقت
موقعیت شرق تهران
sysadmin
حقوق ۱۵
جونیور
شرکت خوبیه
برای جزئیات بیشتر به این آیدی پیام بدید:
@f0rb1dd3n
3 261
طبق نظر دوستان و همونطور که میشد حدس زد این روزا زبان golang و rust خیلی محبوب هستند و اکثرا وقتی ازشون بپرسی دوست داری کدوم زبانو یاد بگیری یکی از این دوتارو بر اساس فیلد کاریشون انتخاب می کنن
همچنین زبان JS و C sharp بعد از Go و Rust انتخاب ملت بود
نسبت به یادگیری Java کسی آنچنان شوقی نشون نداده
یه نکته رو بگم:
خیلیا میگن دوست دارم فلان کارو بکنم ولی اینکه واقعا انجامش بدن بستگی به این داره چقدر اون چیز حیاتی بشه. پس خیلی وقتا میخوام گفتنا هیچوقت عملی نمیشن.
نکته بعدی درباره پایتون هستش:
تا اونجا میدونم هشتاد درصد ممبرا پایتون کارن
نظرسنجی این بود زبان دومی که انتخاب میکنید چیه
اما خیلیا حتی زبان دومم زدن پایتون و میخوان دوبار پایتونو یاد بگیرن (تعصبشو میکشن😁)
#pool #Fun
@Syntax_fa
3 261
با چند تا مثال regex رو یاد بگیر(قسمت اول)
1. پترن ما این هستش که توی متن hello داشته باشه:
Pattern := "hello"2. به بزرگ و کوچیک بودن حروف حساس نباشه: برای این موارد یه سری flag هایی رو regex در اختیار ما قرار داده. برای اینکه به بزرگ و کوچک بودن حروف حساس نباشه از فلگ i استفاده می کنیم:
Pattern := "(?i)Hello"3. اول متن با hello شروع بشه و به بزرگ و کوچیک بودن حروف حساس نباشه:
Pattern := "(?i)^hello"برای اینکار اول الگو از ^ استفاده میکنیم. 4. اول هر خط با hello شروع بشه: تو مثال قبلی گفتیم اول متن hello باشه اما اینبار اول هر خط رو میخوایم حساب کنیم. برای اینکار از فلگ g که مخفف global هست، استفاده میکنیم(توی هر زبان به یه شکلی فلگ هارو میدیم) 5. کاراکتر اول h باشد، کاراکتر دوم هرچیزی باشه فرقی نمیکنه و کاراکتر های بعدی llo باشد:
Pattern := "h.llo"با استفاده نقطه مشخص میکنیم هر کاراکتری باشه فرقی نمیکنه. 6. فقط حروف کوچک انگلیسی:
Pattern:= [a-z]داخل براکت میتونیم مشخص کنیم که چه کاراکتر هایی توی الگو ما هستش. ما اینجا میتونستیم حروف کوچک انگلیسی را بنویسیم اما بجایش به این صورت نوشتیم که از a تا z باشد. 7. حروف انگیسی باشد و به بزرگ و کوچک بودن حساس نباشد. همچنین اعداد 0 تا 9 را هم داشته باشد:
Pattern := "(?i)[a-z0-9]"همچنین میتوانیم از فلگ استفاده نکنیم و داخل براکت مشخص کنیم حروف بزرگ هم هستش:
Pattern := [a-zA-z0-9]#Regex @Syntax_fa
3 261
Canary
کانری دیپلویمنت روشی برای انتشار نرمافزار است که در آن یک بخش کوچک از کاربران به نسخه جدید یک سرویس یا نرمافزار منتقل میشوند تا اشکالات احتمالی در نسخه جدید شناسایی شود
در این روش یک درصد کوچکی از کاربران به عنوان "کانری" انتخاب میشوند تا نسخه جدید نرمافزار یا سرویس را تجربه کنند. اگر هیچ مشکلی پیدا نشود، بقیه کاربران هم به تدریج به نسخه جدید منتقل میشوند
اما اگر مشکلاتی در نسخه جدید پیدا شود، تنها کانریها تحت تاثیر قرار میگیرند و بقیه کاربران همچنان از نسخه قبلی استفاده میکنند. بنابراین احتمال خسارت وارده به تمام کاربران کاهش مییابد
برای مثال فرض کنید یک وبسایت خبری میخواهد نسخه جدید سیستم مدیریت محتوای آن را پیاده و راهاندازی کند. با استفاده از روش کانری دیپلویمنت، ابتدا تنها 1 درصد از کاربران به صورت تصادفی به نسخه جدید منتقل میشوند
اگر مشکلی پیش نیاید، مقدار بیشتری از کاربران هم به تدریج به نسخه جدید انتقال پیدا میکنند. اما اگر مشکلی مانند خرابی سایت یا عدم دسترسی به محتوا پیش بیاید، تنها همان درصدی که به عنوان کانری منتقل شدند تحت تاثیر قرار میگیرند
@Syntax_fa
3 261
اچ تی ام اکس چیست؟
اچ تی ام اکس به شما امکان دسترسی مستقیم به AJAX، CSS Transitions، WebSockets و رویدادهای ارسال شده از سرور را در HTML با استفاده از ویژگی ها می دهد، بنابراین می توانید رابط های کاربری مدرن را با سادگی و قدرت فرامتن بسازید.
#HTMX
@Syntax_fa
3 261
یکی از نظر های خوب دوستان:
این سوالات رو افراد ب شدت مبتدی یا افرادی ک تازه میخان شروع کنن میپرسن ک طبیعیه. این صنعت از بیرون مثل ی اقیانوس عمیق و ناشناخته میمونه و خیلیی می بینم ک هنر جو ها ب جای دل رو ب دریا زدن و پا تو آب گذاشتن بیرون وایمیسن و وقت گرانبهاشون رو ب این فکرها و پرسشها میگذرونن!
جواب اینه که برنامه نویسی قبل از اینکه ب زبان و فریمورک برسه شامل مهارتهای دیگه ای میشه ک خیلی مهم نیس تو چ زبانی هستی . ک مهمترین این مهارت ها حل مساله و طراحی الگوریتم ه. تربیت یک ذهن فنی مهندسی و بدست آوردن دید و منطق برنامه نویسی.
پیشنهادم ب هنر جوهای تازه کار اینه که اصلن ب ادامه ی مسیر فکر نکنن و فقط بپرن تو آب - با پایتون ک یکی از ساده ترین و در عین حال قدرمتند ترین زبانهای امروزه شروع کنن و مساله حل کنن - توی اینترنت و کتابهایی مثل الگوریتم و فلوچارت کلی مساله ی خوب پیدا میکنن ک میتونن تو زبان پایتون حل کنن و ی تیر و دو نشون بزنن.
هم پایتون یاد بگیرن و هم ذهنشون رو مثل ی برنامه نویس حرفه ای پرورش بدن و با الگوریتمهای پایه و نحوه ی تفکر مثل کامپیوتر و حرف زدن با ماشین آشنا بشن
و چون پایتون رو انتخاب کردن برای شروع در ادامه آپشنهای زیادی دارن. از بکند وب تا هوش مصنوعی و ...
و وقتی این مرحله رو رد کنین دیگه یاد گرفتن ی فریم ورک جدید یا ی زبان جدید براتون خیلی ساده میشه و میتونین توی زمینه های مختلف بسته ب علاقتون فعالیت کنین.
پس وسواس و مته ب خشخاش گذاشتن رو بیخیال شین و بپرین تو آب!!
#Question
@Syntax_fa
3 261
برای ریسیت کردن free trial برنامه های Jetbrains توی لینوکس از روش زیر می تونید استفاده کنید:
echo "Resetting trial period for $product"
echo "removing evaluation key..."
rm -rf ~/.config/$product*/eval
# Above path not working on latest version. Fixed below
rm -rf ~/.config/JetBrains/$product*/eval
echo "removing all evlsprt properties in options.xml..."
sed -i 's/evlsprt//' ~/.config/$product*/options/other.xml
# Above path not working on latest version. Fixed below
sed -i 's/evlsprt//' ~/.config/JetBrains/$product*/options/other.xml
echo
done
echo "removing userPrefs files..."
rm -rf ~/.java/.userPrefs
#Jetbrains
@Syntax_fa3 261
الگو Monitor در Synchronization
توضیح مانیتور در ویکیپدیا:
https://en.wikipedia.org/wiki/Monitor_(synchronization)
خب اگه به لینک بالا سر زده باشید قطعا هیچی نفهمیدید. پس به توضیح ساده ای که میدم دقت کنید.
این الگو زمانی استفاده میشه که ما بخوایم ترد ها بدون درگیر کردن و یا مصرف منابع در حالت خواب بروند تا زمانی که ما آنها را بیدار کنیم و به ادامه کارشان بپردازند.
یک مانتیور در حالت ساده یک قفل mutex دارد و یک شرط
زمانی که شرط برقرار نباشد ترد ها به حالت خواب می روند تا زمانی که شرط برقرار شود و ما از طریقی سیگنال بفرستیم تا دوباره شرط را چک کنند.
چالش:
در هر زبانی که کار میکنید. سعی کنید الگو Monitor را با حل یک مسئله ساده پیاده سازی کنید
مسئله پیشنهادی:
قرار است یک کاری را زمانی که تعداد یوزر ها به 100 نفر رسید پخش کنید و قبل از آن هر کسی که جوین می شود در حالت انتظار باقی می ماند تا تعداد به صد نفر برسد.
(هر یوزر مساوی با یک ترد هستش)
#Monitor_concurrency
@Syntax_fa
3 261
اگه قرار باشه زبان برنامه نویسیه جدید یاد بگیری، کدوم یک از موارد زیر رو انتخاب می کنی؟
3 261
کتاب آزاد زبان برنامه نویسی گو (فارسی)
اگه به زبان برنامه نویسی گولنگ علاقه دارید، یکی از بهترین منابع فارسی این کتاب هستش.
تو فصل های مختلف از مباحث مقدماتی تا پیشرفته گفته شده.
همچنین تو فصل جدید «شبکه بلاکچین» قراره آموزش داده بشه
لینک وب سایت:
https://book.gofarsi.ir/
همچنین گیت هاب حتما ستاره بدید تا حمایت شه:
https://github.com/GoFarsi/book
#Book #Golang
@Syntax_fa
