CSS Logical Properties
یه بحثی هست به اسم پراپرتیهای منطقی که برای ما فارسی زبانها خوبه که بلدش باشیم. (چون فارسی از راست به چپه)
ما میتونیم جای جهتهای فیزیکی مثل چپ و راست از جهتهایی که بستگی به Rtl یا Ltr بودن HTML دارن استفاده کنیم؛ یعنی چی؟
یعنی مثلا جای
.box{
margin-right: 24px;
}از
.box{
margin-inline-end: 24px;
}استفاده کنیم.
// برای عمودی از block و افقی از inline استفاده میکنیم.
تو این حالت مهم نیست که سایت ما چپچینه یا راستچین، در هر صورت المنت بعدی با کلس box بیست و چهار پیکسل فاصله میگیره.
اما تو حالت اول اگه دایرکشن رو از چپ به راست به راست به چپ تغییر میدادیم باید یه همچین کدی هم اضافه میکردیم:
html[dir="rtl"] .box {
margin-right: 0;
margin-left: 24px;
}یسری پراپرتیهای دیگه که میتونن از این روش پیروی کنن:
text-align, inset, padding, border
#CSS SRC
@CleverDevs @CleverDevsGp
1👍34🔥7👌4⚡1
پارامتر های args* و kwargs** توی پایتون چی هستن ؟
توی پایتون ما علاوه برا پارامتر هایی که به طور معمول موقع تعریف تابع مشخص میکنیم دونوع پارامتر دیگه داریم که با ستاره مشخص میشن Non-keyword args و keyword args که پاس دادنشون موقع فراخوانی تابع الزامی نیست و آرگیومنت های اضافه ای که موقع فراخوانی تابع بهش پاس میدیم جای این پارامتر ها قرار میگیرن
اما چطور باید این پارامتر هارو تعریف کنیم و ازشون استفاده کنیم. فرض کنید ما یه تابع به اسم user داریم که به عنوان پارامتر اول آیدی میگیره و به عنوان پارامتر های بعدی یه سری دیتا بدون keyword مثلا اسم زبان های برنامه نویسی طرف و یه سری دیتا با keyword به عنوان اطلاعات شخصی طرف میگیره
حالا اگه این کد رو ران کنیم آیدی رو مثل یه پارامتر معمولی پرینت میکنه
بقیه آرگیومنت هایی که keyword ندارن میرن جزو langs که یه tuple هستش
و آرگیومنت هایی هم که که keyword دارن میرن جزو userinfo که یه dictionary هستش
و خروجی یه همچین چیزی میشه :
برای اینکه بیشتر دربارشون بخونید میتونید لینک زیر رو ببینید
https://www.geeksforgeeks.org/args-kwargs-python/
#python
@CleverDevs - @CleverDevsGp
توی پایتون ما علاوه برا پارامتر هایی که به طور معمول موقع تعریف تابع مشخص میکنیم دونوع پارامتر دیگه داریم که با ستاره مشخص میشن Non-keyword args و keyword args که پاس دادنشون موقع فراخوانی تابع الزامی نیست و آرگیومنت های اضافه ای که موقع فراخوانی تابع بهش پاس میدیم جای این پارامتر ها قرار میگیرن
اما چطور باید این پارامتر هارو تعریف کنیم و ازشون استفاده کنیم. فرض کنید ما یه تابع به اسم user داریم که به عنوان پارامتر اول آیدی میگیره و به عنوان پارامتر های بعدی یه سری دیتا بدون keyword مثلا اسم زبان های برنامه نویسی طرف و یه سری دیتا با keyword به عنوان اطلاعات شخصی طرف میگیره
def user(id,*langs,**userinfo):
print(id)
print(langs)
print(userinfo)
user(1,"php","python",name="Mammad",channel="CleverDevs")
حالا اگه این کد رو ران کنیم آیدی رو مثل یه پارامتر معمولی پرینت میکنه
بقیه آرگیومنت هایی که keyword ندارن میرن جزو langs که یه tuple هستش
و آرگیومنت هایی هم که که keyword دارن میرن جزو userinfo که یه dictionary هستش
و خروجی یه همچین چیزی میشه :
1
('php', 'python')
{'name': 'Mammad', 'channel': 'CleverDevs'}
برای اینکه بیشتر دربارشون بخونید میتونید لینک زیر رو ببینید
https://www.geeksforgeeks.org/args-kwargs-python/
#python
@CleverDevs - @CleverDevsGp
2👍32🔥8👌3⚡2
CleverDevs
سروران عزیزی که ... #fun #sql @CleverDevs - @CleverDevsGp
برای اینکه یروزی قیافتون شبیه این زبون بسته نشه، MySQL دستورات خیلی ساده ای داره که بصورت ایمن میتونید کارای خودتون رو انجام بدین و اگه از نتیجه راضی بودین تغییرات رو اعمال کنید، در غیر این صورت از تمامی دستورات استفاده شده صرف نظر میشه تا مشکلی در دیتابیس بوجود نیاد.
دستور شروع اعمال تغییرات:
و پس از اعمال تغییرات، اگر مایل به ذخیره آنها بودید از دستور زیر استفاده کنید:
و در غیر اینصورت، برای صرفنظر کردن از تغییرات اعمال شده از دستور زیر استفاده کنید:
#MySQL
@CleverDevs - @CleverDevsGp
دستور شروع اعمال تغییرات:
BEGIN;
و پس از اعمال تغییرات، اگر مایل به ذخیره آنها بودید از دستور زیر استفاده کنید:
COMMIT;
و در غیر اینصورت، برای صرفنظر کردن از تغییرات اعمال شده از دستور زیر استفاده کنید:
ROLLBACK;
#MySQL
@CleverDevs - @CleverDevsGp
2👍40🔥7👌2
Forwarded from Milad Nouri(ツ) میلاد نوری
طی نفوذی که به چند ربات ناشناس تلگرام اتفاق افتاده، متوجه شدند ۴۵۰ میلیون چت، ۱۱ میلیون عکس و ۳ میلیون ویدیو روی سرورهای این باتها ذخیره شده.
منبع: توییتر یاشو - مشاهده ویدئو
طی نفوذی که به چند ربات ناشناس تلگرام اتفاق افتاده، متوجه شدند ۴۵۰ میلیون چت، ۱۱ میلیون عکس و ۳ میلیون ویدیو روی سرورهای این باتها ذخیره شده.
منبع: توییتر یاشو - مشاهده ویدئو
2🤯52👍10😁7
Forwarded from Python Hints
تقریباً توی ۲ سال گذشته وقتی یکی بهم میگه:
واقعاً عصبیم میکنه.
من زمانی لینوکس رو یاد گرفتم که ۱ ماه منتظر موندم تا
چرا ؟
چون با اینترنت dial up + کارت اینترنت
۲ هفته صبر کردم نسخه جدید منتشر بشه، بعد سفارش دادم برام آوردن که ۲ هفته طول کشید.
وقتی cd به دستم رسید، یک کتاب قدیمی که از یک دانشجوی کارشناسی دانشگاه دستم رسیده بود رو نصفش رو خونده بودم و رو کاغذ تمرین کرده بودم.
انقدری که جای آیکون و آپشنها و ... رو حفظ شده بودم.
سیستم وقتی خراب میشد و توی کتاب نبود، بهترین گزینه این بود که تا ۱ شب صبر کنم چون از ۱ شب به بعد اینترنت dial up قویتر میشد (۶۴ کیلوبایت بود اون موقع) و میشد توی فرومهای مختلف راحتتر پستهارو دنبال کرد.
بعد شما الان به من میگی منبع نیست ؟ حتی اگر واقعاً هیچ منبعی هم وجود نداشته باشه برای دسترسی شما.
۱- داکیومنت اصلی
۲- سورس کدهای دیگران (یا حتی نویسنده اون کتابخونه، زبان برنامهنویسی یا ...)
۳- هوش مصنوعی
برای مثال من میخوام یک کتابخونه تو
bard.google.com
رو باز میکنم؛ توی اولین پیام مینویسم.
بعد شروع میکنم سورس کد دیگران رو خوندن، داکیومنت خوندن و کد زدن.
و هر کدی که متوجه نشم، یا حتی متوجه هم بشم برای درک بهتر و یا اینکه مطمئن بشم درست یاد گرفتم میدم به این مدل و ....
حالا چرا
۱- دسترسی به داده سرچ
۲- طول متن ورودی طولانیتر
۳- توضیحات دقیقتر
۴- کاملاً رایگان
توجه کنید ازش نمیخوام کد بزنه، میخوام بهم توضیح بده.
خلاصه که برای تنبلی خودتون، دنبال بهونه نباشید.
قطعاً این تکنیک زمانبر هست، اما پیشرفت نیاز به زمان داره.
گل سر سبد، آنچه باید رو بهتون گفتم دیگه
برای فلان موضوع منبعی وجود نداره، نمیتونم یاد بگیرم
واقعاً عصبیم میکنه.
من زمانی لینوکس رو یاد گرفتم که ۱ ماه منتظر موندم تا
CD نصب لینوکس به دستم برسه چرا ؟
چون با اینترنت dial up + کارت اینترنت
۵۰۰۰ تومانی امکان دانلود نداشتم.۲ هفته صبر کردم نسخه جدید منتشر بشه، بعد سفارش دادم برام آوردن که ۲ هفته طول کشید.
وقتی cd به دستم رسید، یک کتاب قدیمی که از یک دانشجوی کارشناسی دانشگاه دستم رسیده بود رو نصفش رو خونده بودم و رو کاغذ تمرین کرده بودم.
انقدری که جای آیکون و آپشنها و ... رو حفظ شده بودم.
سیستم وقتی خراب میشد و توی کتاب نبود، بهترین گزینه این بود که تا ۱ شب صبر کنم چون از ۱ شب به بعد اینترنت dial up قویتر میشد (۶۴ کیلوبایت بود اون موقع) و میشد توی فرومهای مختلف راحتتر پستهارو دنبال کرد.
بعد شما الان به من میگی منبع نیست ؟ حتی اگر واقعاً هیچ منبعی هم وجود نداشته باشه برای دسترسی شما.
۱- داکیومنت اصلی
۲- سورس کدهای دیگران (یا حتی نویسنده اون کتابخونه، زبان برنامهنویسی یا ...)
۳- هوش مصنوعی
برای مثال من میخوام یک کتابخونه تو
Rust یاد بگیرم و منبع هم نداره : bard.google.com
رو باز میکنم؛ توی اولین پیام مینویسم.
You are a senior Rust developer and my tutor on learning Axum, from now on you must help me understand every single line of code we will talk about.
بعد شروع میکنم سورس کد دیگران رو خوندن، داکیومنت خوندن و کد زدن.
و هر کدی که متوجه نشم، یا حتی متوجه هم بشم برای درک بهتر و یا اینکه مطمئن بشم درست یاد گرفتم میدم به این مدل و ....
حالا چرا
Bard یا همون Gemini رو استفاده میکنم ؟ ۱- دسترسی به داده سرچ
۲- طول متن ورودی طولانیتر
۳- توضیحات دقیقتر
۴- کاملاً رایگان
توجه کنید ازش نمیخوام کد بزنه، میخوام بهم توضیح بده.
خلاصه که برای تنبلی خودتون، دنبال بهونه نباشید.
قطعاً این تکنیک زمانبر هست، اما پیشرفت نیاز به زمان داره.
گل سر سبد، آنچه باید رو بهتون گفتم دیگه
3👍113🔥8❤7👌3👎2
محمد رضا حقیری ، برنامه نویسی ایرانی یه مدل زبانی توسعه داده که روی 400 میلیارد پارامتر train شده و عملکرد خوبی مخصوصا توی زبان فارسی داره
این پروژه رایگانه و اگه حمایت بشه همیشه رایگان میمونه
برای توضیحات بیشتر و گرفتن api به سایتش سر بزنید
https://jabirproject.org/
پ.ن یه ربات تلگرام زدم تا تستش کنم
#Ai #jabir
@CleverDevs - @CleverDevsGp
این پروژه رایگانه و اگه حمایت بشه همیشه رایگان میمونه
برای توضیحات بیشتر و گرفتن api به سایتش سر بزنید
https://jabirproject.org/
پ.ن یه ربات تلگرام زدم تا تستش کنم
#Ai #jabir
@CleverDevs - @CleverDevsGp
🔥78👍17💯7🤣2❤1👎1
همه میدونیم که مهمترین بخش یادگیری تمرینه؛
اگه ایدهای برای تمرین و زدن پروژه ندارید میتونید از اینجا صد تا پروژه مختلف رو ببینید و هر کدوم یهچیز خاص دارن که باید برید راجع بهش سرچ کنید.
لینک:
https://dev.to/bigsondev/100-free-frontend-challenges-3f0?ref=dailydev
#Tool
@CleverDevs @CleverDevsGp
اگه ایدهای برای تمرین و زدن پروژه ندارید میتونید از اینجا صد تا پروژه مختلف رو ببینید و هر کدوم یهچیز خاص دارن که باید برید راجع بهش سرچ کنید.
لینک:
https://dev.to/bigsondev/100-free-frontend-challenges-3f0?ref=dailydev
#Tool
@CleverDevs @CleverDevsGp
👍18❤10⚡4👌2
این آقا ستار هاشمی وزیر ارتباطات جدید کشوره.
ببینیم تو فحش خوردن میتونه رکورد جهرمی رو بشکونه یا نه
#News
@CeverDevs @CleverDevsGp
#News
@CeverDevs @CleverDevsGp
🤣105😁16👍8👌4👎2
یکی از بچه های چنل یه ریپازیتوری ساخته و داخلش درباره اینکه چطور توی hyperv*، لینوکس نصب کنیم و اسکریپت برای فعال کردن قابلیت های ویژه اش قرار داده.
تست کنید و اگه ایرادی داشت بگید.
*هایپر-وی برای دوستانی که نمیدونن:
یه هایپروایز نوع یک هست یعنی اینکه ماشین های مجازیتون مستقیما روی سخت افزارتون اجرا میشن و کاری به سیستم عاملتون(ویندوز) نداره و عملکردی خیلی بهتری نسبت به virtual box و vmware میده.
https://github.com/ali-hasehmi/LinuxVM-HyperV
#hyperv
@CleverDevs - @CleverDevsGp
تست کنید و اگه ایرادی داشت بگید.
*هایپر-وی برای دوستانی که نمیدونن:
یه هایپروایز نوع یک هست یعنی اینکه ماشین های مجازیتون مستقیما روی سخت افزارتون اجرا میشن و کاری به سیستم عاملتون(ویندوز) نداره و عملکردی خیلی بهتری نسبت به virtual box و vmware میده.
https://github.com/ali-hasehmi/LinuxVM-HyperV
#hyperv
@CleverDevs - @CleverDevsGp
👍24❤6🔥5
Good 🆚 Bad Refactor
وقتی یه پروژه رو میخوایم ریفکتور کنیم چیکارا نکنیم که وضع بدتر شه؟ (این پارت یکه.)
1. Don't Change The Base
بیس کد فعلی رو تا حد امکان تغییر ندید، صرفا شرایط فعلی رو بهتر کنید. مثال:
قبل:
function processUsers(users: User[]) {
const result = [];
for (let i = 0; i < users.length; i++) {
if (users[i].age >= 18) {
const formattedUser = {
name: users[i].name.toUpperCase(),
age: users[i].age,
isAdult: true
};
result.push(formattedUser);
}
}
return result;
}بعد از یه ریفکتور بد:
import * as R from 'ramda';
const processUsers = R.pipe(
R.filter(R.propSatisfies(R.gte(R.__, 18), 'age')),
R.map(R.applySpec({
name: R.pipe(R.prop('name'), R.toUpper),
age: R.prop('age'),
isAdult: R.always(true)
}))
);
بعد از یه ریفکتور خوب:
function processUsers(users: User[]): FormattedUser[] {
return users
.filter(user => user.age >= 18)
.map(user => ({
name: user.name.toUpperCase(),
age: user.age,
isAdult: true
}));
}توی ریفکتور اول بیس کد کلا تغییر کرد و از یه پکیج جدید استفاده شد و احتمال زیاد بقیه کسایی که تو پروژه هستن باهاش آشنایی ندارن و کار برای همه سخت میشه.
#CleanCode SRC
@CleverDevs @CleverDevsGp
👍26👌5🔥3❤2⚡2
یکی از ابزار های لینوکسی که اکثر اوقات ازش استفاده میکنم 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