یکی از ابزار های لینوکسی که اکثر اوقات ازش استفاده میکنم tmux هستش
این ابزار بهتون کمک میکنه تا صفحه ترمینال رو به بخش های مختلف تقسیم کنید تا چند تا کار رو همزمان انجام بدید
ممکنه بگید خب تب جدید باز میکنم چه نیازی به tmux دارم اما خب tmux دوتا مزیت داره
اول اینکه تو محیط tty که نمیتونید تب باز کنید و اینا میتونید با tmux چند تا کارو باهم انجام بدید
دوم اینکه همه بخش ها جلو چشمتونه و برای دیدن لاگ و ... راحت ترید
برای نصب و استفاده یه سر به گیت هابش بزنید
https://github.com/tmux/tmux/wiki
برای اینکه باهاش را بیوفتید میتونید این چیت شیت یا این ویدیو از جادی رو ببینید
#tools #tmux
@CleverDevs - @CleverDevsGp
این ابزار بهتون کمک میکنه تا صفحه ترمینال رو به بخش های مختلف تقسیم کنید تا چند تا کار رو همزمان انجام بدید
ممکنه بگید خب تب جدید باز میکنم چه نیازی به tmux دارم اما خب tmux دوتا مزیت داره
اول اینکه تو محیط tty که نمیتونید تب باز کنید و اینا میتونید با tmux چند تا کارو باهم انجام بدید
دوم اینکه همه بخش ها جلو چشمتونه و برای دیدن لاگ و ... راحت ترید
برای نصب و استفاده یه سر به گیت هابش بزنید
https://github.com/tmux/tmux/wiki
برای اینکه باهاش را بیوفتید میتونید این چیت شیت یا این ویدیو از جادی رو ببینید
#tools #tmux
@CleverDevs - @CleverDevsGp
1🔥28👍10❤3⚡3👎1🤣1
مثل اینکه پاول دورف (مدیر عامل تلگرام) از آذربایجان رفته فرانسه و توی فرودگاه گرفتنش
#News #FREEDUROV
@CleverDevs - @CleverDevsGp
🔻اتهامات احتمالی دوروف شامل حمایت از تروریسم، قاچاق مواد مخدر، همدستی در جنایات، کلاهبرداری دسته جمعی، پولشویی، پنهان کاری، محتوای پدوفیلی، فرار از تحریم و غیره است.
#News #FREEDUROV
@CleverDevs - @CleverDevsGp
👎40💔30👍10🤣4
خب حالا که رفتید تمرین کردید(😔)، اگه میخواید نمونهکار واقعی بزنید برید فیگمای این آقا رو چک کنید:
کلی قالب استاندارد داره که تو هر کدوم حالتهای مختلف موبایل و لپتاپ و دسکتاپ رو طراحی کرده.
#Design #Portfolio #Figma
@CleverDevs @CleverDevsGp
https://www.figma.com/@praha
کلی قالب استاندارد داره که تو هر کدوم حالتهای مختلف موبایل و لپتاپ و دسکتاپ رو طراحی کرده.
#Design #Portfolio #Figma
@CleverDevs @CleverDevsGp
1❤28👍7🔥5👌2💔2
Typography Responsive
بجای استفاده از مدیا کوئری،
یه تکنیک برای ریسپانسیو کردن تایپوگرافیها اینه که:
1. فونتسایز اون متن توی کوچیکترین حالت سایت رو بدست میارید
مثلا کوچیکترین حالت 320px هست و فونتسایز اون متن هم تو این حالت 16px.
2. همینکارو برای بزرگترین حالت هم انجام میدیم مثلا 1280px حداکثر سایز سایته و تو این حالت فونتسایز 28px هست.
3. حالا این اطلاعات رو طبق عکس وارد این سایت میکنیم:
Fluid Typography Calculator
4. و بوم یه فانکشن clamp بهمون میده و فونتسایز اون متن رو برابر باهاش قرار میدیم.
#Design #CSS #Tool
@CleverDevs @CleverDevsGp
👍19❤6👌4⚡2
Bye Bye try-catch blocks!
?=
مثل اینکه یه آپدیت برای Js قراره بیاد و ارور هندلینگ رو متحول کنه.
الان، برای ارور هندلینگ از try-catch استفاده میکنیم، ولی توی این آپدیت قراره
Safe Assignment Operator
اضافه شه، که خیلی سینتکس تمیز تری داره:
async function getData() {
const [error, response] ?= await fetch("https://api.example.com/data");
if (error) return handleError(error);
return response;
}چندتا مزیتش:
👈 نستینگ و تودرتو بودن کدها کمتر میشه.
👈 ایپیآی های مختلف، ممکنه ارور هندلینگ متفاوتی داشته باشن، و با این روش دیگه نیاز نیست توی بلاک catch شرطهای مختلف بذاریم.
👈 میتونیم با استفاده از Symbol.result ارور
هندلینگ سفارشی داشته باشیم، اینجوری:
function example() {
return {
[Symbol.result]() {
return [new Error("Error message"), null];
},
};
}
const [error, result] ?= example();// البته فعلا چیزی برای جایگزینی بلاک finally گفته نشده که میتونه یکی از معایبش باشه.
#Js #Es Source
@CleverDevs @CleverDevsGp
👍21❤8👌3🔥1
New Text Document.txt
605 B
درود دوستان طی هفته گذشته داشتم یه وبسایت با nextjs توسعه میدادم و برای ui دنبال component های آماده و زیبا و کاربر پسند بودم که به این لایبرری ها و وبسایت ها بر خوردم، امیدوارم به شما هم کمک کنن.
01. shadcn
02. nextui
03. mui
04. chakra
05. tailwind
06. aceternity
07. preline
08. tailus
09. flowbite
10. daisyui
11. mantine
12. ariakit
13. primevue
موفق باشید🌹
#UI #Next #React
@CleverDevs @CleverDevsGp
01. shadcn
02. nextui
03. mui
04. chakra
05. tailwind
06. aceternity
07. preline
08. tailus
09. flowbite
10. daisyui
11. mantine
12. ariakit
13. primevue
موفق باشید🌹
#UI #Next #React
@CleverDevs @CleverDevsGp
🔥30❤11👍6⚡2👌2
Named Arguments توی php چیه و چه کاربردی داره ؟
این فیچر که توی php8 اضافه شده به ما کمک میکنه که آرگومان های تابع رو به جای ترتیب بر اساس اسم هاشون به تابع پاس بدیم
مثلا تابع زیر رو تصور کنید
یک تابع سادس که میاد یه کاربر اضافه میکنه. تابع برای سه تا از پارامتر هاش مقدار دیفالت داره یعنی اگه پاسش ندیم اون مقدار دیفالت رو در نظر میگیره حالا فک کنید بخوایم یه کاربر اضافه کنیم و میخوایم شهر و سنش همون مقدار دیفالت باشه ولی جنسیتش رو ست کنیم اگه بخوایم پیشفرض و بر اساس ترتیب آرگومان هارو پاس بدیم نیازه که حتما مقدار شهر و سن رو هم توی آرگومان ها پاس بدیم تا بتونیم مقدار جنسیت رو بدیم اما در عوض میتونیم از طریق اسم پارامتر ها آرگومان هارو پاس بدیم مثل کد پایین
حالا اگه اسم آرگومان هارو مشخص نمیکردیم مجبور بودیم هر چهارتا آرگومان رو پاس بدیم و خب کدوم شلوغ تر و سخت تر میشد
این قابلیت برای توابعی که تعداد پارامتر زیادی دارن و بیشترشون هم آپشنال هستن خیلی کاربردیه
اگه میخواید بیشتر در بارش بخونید میتونید به این لینک سر بزنید
https://stitcher.io/blog/php-8-named-arguments
#php
@CleverDevs - @CleverDevsGp
این فیچر که توی php8 اضافه شده به ما کمک میکنه که آرگومان های تابع رو به جای ترتیب بر اساس اسم هاشون به تابع پاس بدیم
مثلا تابع زیر رو تصور کنید
function createNewUser($name , $city = "Tehran" , $age = "18", $gender = ""){
$user = new User();
$user->name = $name;
$user->city = $city;
$user->age = $age;
$user->gender = $gender;
$user->save();
}یک تابع سادس که میاد یه کاربر اضافه میکنه. تابع برای سه تا از پارامتر هاش مقدار دیفالت داره یعنی اگه پاسش ندیم اون مقدار دیفالت رو در نظر میگیره حالا فک کنید بخوایم یه کاربر اضافه کنیم و میخوایم شهر و سنش همون مقدار دیفالت باشه ولی جنسیتش رو ست کنیم اگه بخوایم پیشفرض و بر اساس ترتیب آرگومان هارو پاس بدیم نیازه که حتما مقدار شهر و سن رو هم توی آرگومان ها پاس بدیم تا بتونیم مقدار جنسیت رو بدیم اما در عوض میتونیم از طریق اسم پارامتر ها آرگومان هارو پاس بدیم مثل کد پایین
createNewUser(name : "Mammad" , gender : "male");
حالا اگه اسم آرگومان هارو مشخص نمیکردیم مجبور بودیم هر چهارتا آرگومان رو پاس بدیم و خب کدوم شلوغ تر و سخت تر میشد
این قابلیت برای توابعی که تعداد پارامتر زیادی دارن و بیشترشون هم آپشنال هستن خیلی کاربردیه
اگه میخواید بیشتر در بارش بخونید میتونید به این لینک سر بزنید
https://stitcher.io/blog/php-8-named-arguments
#php
@CleverDevs - @CleverDevsGp
👍21❤6🔥3⚡1👌1
Forwarded from Abolfazl Devs (Abolfazl)
اگه تو ام ازونایی هستی که با فیلم دیدن میخوای زبانتو بهتر کنی ادامه این مطلبو از دست نده 🤓
شما هم احتمالا اکثر فیلما رو با زیر نویس میبینید ولی گاهی اوقات شده تو یه فیلم یه عبارتی رو میگن و خوب متوجه نمیشید حالا اگه دوتا زیر نویس رو همزمان(یکی بالا یکی پایین) داشته باشید، دیگه چیزیو از دست نمیدید👌
برنامه Subnoscript Merger دقیقا همینکار رو میکنه و دوتا زیر نویس میگیره و در خروجی یه فایل زیر نویس نهایی بهتون میده که میتونید رو پلیر هاتون استفاده کنید.
این برنامه برنامه متن باز هست و با مراجعه در لینک زیر میتونید نحوه استفاده اون رو ببینید.
https://github.com/ixabolfazl/subnoscript-merger
اگه خوشتون اومد خوشحال میشم تو گیتهاب ستاره ⭐ بدید.
@abolfazl_devs
شما هم احتمالا اکثر فیلما رو با زیر نویس میبینید ولی گاهی اوقات شده تو یه فیلم یه عبارتی رو میگن و خوب متوجه نمیشید حالا اگه دوتا زیر نویس رو همزمان(یکی بالا یکی پایین) داشته باشید، دیگه چیزیو از دست نمیدید👌
برنامه Subnoscript Merger دقیقا همینکار رو میکنه و دوتا زیر نویس میگیره و در خروجی یه فایل زیر نویس نهایی بهتون میده که میتونید رو پلیر هاتون استفاده کنید.
این برنامه برنامه متن باز هست و با مراجعه در لینک زیر میتونید نحوه استفاده اون رو ببینید.
https://github.com/ixabolfazl/subnoscript-merger
اگه خوشتون اومد خوشحال میشم تو گیتهاب ستاره ⭐ بدید.
@abolfazl_devs
👍45💯6❤4🔥2👌2👎1
درود دوستان من حدودا 2 سال خورده ای پیش زمانی که استارت زدم برنامه نویسی رو یه پروژه توسعه دادم که با کتابخونه Puppeteer.js و grammyjs یه مروگر باز میکرد و به اکانت ایتا یا روبیکا یا بله یا تلگرام لاگین میزد سپس در گروه های موجود با یه روند خیلی عادی شروع به فعالیت میکرد.
کلا ولش کردم بعد یک ماه ولی الان گزاشتمش رو گیتم اگه مایل بودین فورک کنید روش کار کنین اگه تعدادمون بره بالا خودمم روش تایم میزارم بلکه یه چیز خفن ازش درآوردیم.
لینک ریپو
https://github.com/MmdBay/telegram_tabchi_bot
اگه کسی حال حوصله داشت اول یه README براش بنویسه، اگر هم مایل بودین فورک کنین کامیت بزنین بیاد.
@CleverDevs - @CleverDevsGp
کلا ولش کردم بعد یک ماه ولی الان گزاشتمش رو گیتم اگه مایل بودین فورک کنید روش کار کنین اگه تعدادمون بره بالا خودمم روش تایم میزارم بلکه یه چیز خفن ازش درآوردیم.
لینک ریپو
https://github.com/MmdBay/telegram_tabchi_bot
اگه کسی حال حوصله داشت اول یه README براش بنویسه، اگر هم مایل بودین فورک کنین کامیت بزنین بیاد.
@CleverDevs - @CleverDevsGp
🔥16👍5🆒4
همونطور که میدونید عکس بالا سخت ترین کار برای هر دولوپری هستش 😁
خیلی وقتا اون ترکیب بندی کلمات توی ذهن نمیاد، خیلی وقتا طولانی میشه متنش، حتی بعضی وقت ها نمیدونیم این تغییر که دادیم دقیقا چه نوعیه، feat, ref, chore و ...
یکی از بچه های چنل یک برنامه کوچیک و جمع و جور نوشته که بعد از اینکه فایل هاتون رو به stage اضافه کردید، با اجرای این برنامه توی دایرکتوری پروژه تون، از مدل Gemini-1.5-flash استفاده میکنه و بهتون چند تا commit message بر اساس تغییراتتون پیشنهاد میده
پروژه باحالی بود یه سر به گیت هابش بزنید
https://github.com/ali-hv/comsu
همچنین اگه ایده ای براش دارید که میتونه بهترش کنه، میتونید pr بدید
#git #comsu #openSource
@CleverDevs - @CleverDevsGp
خیلی وقتا اون ترکیب بندی کلمات توی ذهن نمیاد، خیلی وقتا طولانی میشه متنش، حتی بعضی وقت ها نمیدونیم این تغییر که دادیم دقیقا چه نوعیه، feat, ref, chore و ...
یکی از بچه های چنل یک برنامه کوچیک و جمع و جور نوشته که بعد از اینکه فایل هاتون رو به stage اضافه کردید، با اجرای این برنامه توی دایرکتوری پروژه تون، از مدل Gemini-1.5-flash استفاده میکنه و بهتون چند تا commit message بر اساس تغییراتتون پیشنهاد میده
پروژه باحالی بود یه سر به گیت هابش بزنید
https://github.com/ali-hv/comsu
همچنین اگه ایده ای براش دارید که میتونه بهترش کنه، میتونید pr بدید
#git #comsu #openSource
@CleverDevs - @CleverDevsGp
🔥60👍17💯4
امروز تولد دنیس ریچی یکی از خفن ترین برنامه نویس های تاریخه
دنیس ریچی خالق زبان سی و یکی از دو نفری بود که سیستم عامل یونیکس رو ساختن
#clang #unix #DennisRitchie
@CleverDevs - @CleverDevsGp
دنیس ریچی خالق زبان سی و یکی از دو نفری بود که سیستم عامل یونیکس رو ساختن
#clang #unix #DennisRitchie
@CleverDevs - @CleverDevsGp
4❤91🔥14👍10
-اصل Vertical Openness Between Concepts در کلین کد
کاملا ساده و مختصر این اصل میگه که بین بخش های مختلف کدتون یکی دو خط فضای خالی بزارید فاصله بیوفته بینشون مثلا کد زیر رو ببنید
تو کد بالا بین بخش های مختلف کد فاصله ای نذاشتیم حالا اگه کدمون بیشتر و پیچیده تر بشه خوندنش خیلی سخت تر میشه حالا اگه بیایم و مثل کد پایین یه خط خالی بین هر بخشی از کد بزاریم خوندنش به مراتب راحت تر میشه
حالا چون تو این پست نمیشد مثال بزرگتری زد اونقدرا تفاوتشون معلوم نمیشه ولی تو کدبیس های بزرگتر رعایت همین یه موضوع تفاوت چشمگیری ایجاد میکنه
#CleanCode
@CleverDevs - @CleverDevsGp
کاملا ساده و مختصر این اصل میگه که بین بخش های مختلف کدتون یکی دو خط فضای خالی بزارید فاصله بیوفته بینشون مثلا کد زیر رو ببنید
import CleverDevs from telegram
function helloWorld(){
console.log("hello world");
}
function sendStarRaction(){
console.log('send star reaction on CleverDevs Posts');
}
تو کد بالا بین بخش های مختلف کد فاصله ای نذاشتیم حالا اگه کدمون بیشتر و پیچیده تر بشه خوندنش خیلی سخت تر میشه حالا اگه بیایم و مثل کد پایین یه خط خالی بین هر بخشی از کد بزاریم خوندنش به مراتب راحت تر میشه
import CleverDevs from telegram
function helloWorld(){
console.log("hello world");
}
function sendStarRaction(){
console.log('send star reaction on CleverDevs Posts');
}
حالا چون تو این پست نمیشد مثال بزرگتری زد اونقدرا تفاوتشون معلوم نمیشه ولی تو کدبیس های بزرگتر رعایت همین یه موضوع تفاوت چشمگیری ایجاد میکنه
#CleanCode
@CleverDevs - @CleverDevsGp
2👍34🔥12👌4❤1