CleverDevs – Telegram
CleverDevs
8.47K subscribers
733 photos
282 videos
27 files
435 links
به کانال کلوردوز خوش اومدین

سعی میکنیم چیزایی که بنظر کاربردی هستن رو باهاتون به اشتراک بزاریم


🔥لینوکس
🔥برنامه نویسی فرانت‌اند
🔥برنامه نویسی بک‌اند
🔥اخبار تکنولوژی و...

CleverDevs are better than other Devs
💢~> @mmdrsdev
Download Telegram
این توییت هم چند روزیه خبر ساز شده

نظر شما در این باره چیه ؟

#youtube
@CleverDevs - @CleverDevsGp
👎137👍30
اگر فکر کردین درآمدتون وابسته به سانسور و عدم دسترسی بقیه به اطلاعات و سرکوب آزادی و … هست، دوباره به کاری که دارین می‌کنین فکر کنین!

© Jadi

#youtube
@CleverDevs - @CleverDevsGp
👍1858🔥7👎4👌1
میم تیرانداز ترکیه ای رو با این تموم کنیم

#meme #fun
@CleverDevs - @CleverDevsGp
🤣74👍8😁4🆒3🔥2
توی این پست میخوام یه فیچر باحال لاراول به اسم macro رو معرفی کنم

ممکنه بخواید برای یکی از کلاس های خود لاراول متدی اضافه کنید طبیعتا رفتن و اضافه کردنشش به سورس کد خود لاراول کار منطقی ای نیست تو این موقعیت میتونید از macro ها استفاده کنید

در واقع کلاس های لاراول یه متد macro دارن که دوتا آرگیومنت میگیره اولی اسم متدی که میخوایم اضافه کنیم و دومی یه تابع که بدنه متد رو تشکیل میده

حالا چطور ماکرو هارو تعریف کنیم و ازشون استفاده کنیم ؟ برای اینکار میتونید ماکرو رو توی بوت AppServiceProvider تعریف کنید یا نه برای اینکه پروژتون تمیز تر باشه یه پروایدر مخصوص برای ماکرو ها بسازید

برای مثال ما میخوایم یه متد even برای کلاس Collection بسازیم تا بیاد اعضای زوج کالکشن رو برگردونه برای اینکار توی متود boot میاییم و ماکرو رو به این صورت تعریف میکنیم :

use Illuminate\Support\Collection;

public function boot()
{
Collection::macro('even', function () {
return $this->filter(function ($value) {
return $value % 2 === 0;
});
});
}


حالا هرجا بخوایم میتویم کلاس Collection رو use کنیم و از متد even استفاده کنیم :

php 
$numbers = collect([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);

$evenNumbers = $numbers->even();

// $evenNumbers will now contain [2, 4, 6, 8, 10]


برای درک بهتر میتونید این مقاله از دیتی رو هم بخونید

https://ditty.ir/posts/laravel-macro/J6dqn

#Laravel #php
@CleverDevs - @CleverDevsGp
👍17🔥433
یکی از بچه های چنل یه پادکستی به اسم ازشنبه شروع کرده که توش در باره برنامه نویسی و تکنولوژی حرف میزنه اگه علاقه‌مند بودید میتونید از یوتوب یا ساندکلاد گوش کنید

یوتوب - ساندکلاد
@CleverDevs - @CleverDevsGp
👍25🔥42
چطور مشکل merge conflict رو حل کنیم؟

#fun
@CleverDevs - @CleverDevsGp
🤣87😁8👍62🆒1
Forwarded from Sudoer (Morteza Bashsiz)
درود دوستان

من برگشتم :دی
یه پروژه ای رو از ماه مارچ سال ۲۰۲۳ شروع کردم برای دور زدن فیلترینگ که بشه ریکوست‌های وب رو توی یک ریکوست فیک قایم کرد و رد کرد توی اینترنت
که الان به جای خوبی رسیده و نیازمند همراهی عزیزانی هست که دست به کد با زبان سی++ هستند و با کتابخانه boost آشنایی دارند
من حدود یک سال و نیم هست که روی این پروژه به صورت پاره‌وقت دارم کار میکنم و برای اینکه بتونم بهتر پیاده‌سازیش کنم ۲ تا کتاب و کلی منابع خوندم تا دانشم بره بالاتر
۱. این کتاب از اسکات مایرز
۲. این کتاب دیگر از اسکات مایرز
۳. داکیومنت خود بوست
هنوز به صورت کامل آماده استفاده نیست و دو مشکل اساسی داره که سعی میکنم برطرفش کنم و اون هم مموری منیجمنت بهتر و ایزوله کردن تردهاست

سعی میکنم در آینده یه ویدیو بسازم و توش توضیح بدم که چطوری کار میکنه

خلاصه اینکه اگه خودتون میتونید مشارکت کنید یا اینکه کسی رو میشناسید که بتونه مشارکت کنه خوشحال میشم پروژه رو بهش معرفی کنید تا بتونه مشارکت کنه

سپاس فراوان از همراهی همه شما

https://github.com/MortezaBashsiz/nipovpn
👍3712🔥5
یکی از آسیب پذیری های خطرناک دنیای نرم افزار Race Condition هست . اما race condition چیه و چطور اتفاق میفته ؟

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

این مشکل که توی برنامه های مولتی ترد رخ میده اینطوریه که یه ترد از برنامه داره مثلا یه قسمتی از یه دیتای حساس رو میخونه و درحالی که هنوز میخونه و تمومش نکرده یه ترد دیگه از برنامه میاد اون دیتا رو آپدیت میکنه و عوضش میکنه

بزارید یه مثال بزنم تا این مسئله بهتر جا بیوفته . فک کنید با یه سیستم بانکی طرفید وقتی میخواید پولی به شخصی انتقال بدید سیستم اول میاد چک میکنه که شما تو حسابتون موجودی دارید یا نه اگه موجودی داشتید اول x مقدار پول به حساب طرف مقابل انتقال میده و بعد x مقدار از حساب شما کسر میکنه حالا فکر کنید اینجا یه race condition اتفاق بیوفته و دوتا درخواست انتقال با فاصله خیلی کم ثبت بشه اولی بیاد چک کنه ببینه موجودی دارید بعد پول رو به حساب طرف مقابل اضافه کنه و تا اون لحظه ای که پول از حساب شما کم میشه درخواست دوم هم بیاد و مرحله چک کردن موجودی رو رد کنه اینطوری شما پولی بیشتر از موجودیتون انتقال دادید


یکی از استفاده های معروف از این آسیب پذیری برمیگرده به سال 2015 که ایگر هوماکف ، متخصص امنیتی که تونست هرچند بار که میخواد حساب استارباکسش رو شارژ کنه بدون اینکه هزینشو پرداخت کنه (میتونید داستانش رو از اینجا بخونید)

یا همین چند وقت پیش که یه باگی تو openssh به وجود اومده بود و از همین آسیب پذیری استفاده میکرد

اگه میخواید بیشتر دربارش بخونید میتونید یه نگاهی به این مقاله ها بندازید

sokanacademy - techtarget - virgool

#security
@CleverDevs - @CleverDevsGp
🔥26👍143
فونت ادیتور برنامه نویس های ادایی :

#fun
@CleverDevs - @CleverDevsGp
🤣103👍8😁3💯2💔2
-اصل The Newspaper Metaphor در کلین کد

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

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

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

#CleanCode
@CleverDevs - @CleverDevsGp
👍275🔥5
جدیدا اومدم پست هایی که بلند هستن رو توی Obsidian مینویسم اولش بعد کپی میکنم تو تلگرام و میفرستم چنل که حس خوبیه بنظرم

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

همین اینکه میتونم غیر از چنل یه جای دیگه هم آرشیوی از نوشته ها داشته باشم

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

اگه دنبال یه برنامه یاداشت خوب هستید میتونید امتحانش کنید برای سیستم عامل های GNU/Linux - Windows - Macos - IOS - Android هم موجوده

https://obsidian.md/

#tools
@CleverDevs - @CleverDevsGp
👍27🔥7👎321
Media Query

یه چیز باحال به CSS اضافه شده😂

مشخص کردن محدوده مدیا ها رو جای این:

@media (min-width: 320px) {}


میتونیم این‌جوری هم انجام بدیم:

@media (width >= 320px) {}


#CSS SRC
@CleverDevs @CleverDevsGp
👍35🔥86👌4
Built-In AI in your browser!


مثل این‌ که کروم داره روی یه WebAPI جدید کار میکنه؛ هوش مصنوعی!

این WebAPI فعلا روی آخرین نسخه کروم قناری🐦 کار میکنه.

نمونه کد رو میتونید تو عکس ببینید.

#Js #Javanoscript #AI SRC
@CleverDevs @CleverDevsGp
120👍8👌4🆒3
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👌41
پارامتر های args* و kwargs** توی پایتون چی هستن ؟

توی پایتون ما علاوه برا پارامتر هایی که به طور معمول موقع تعریف تابع مشخص میکنیم دونوع پارامتر دیگه داریم که با ستاره مشخص میشن 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👌32
CleverDevs
سروران عزیزی که ... #fun #sql @CleverDevs - @CleverDevsGp
برای اینکه یروزی قیافتون شبیه این زبون بسته نشه، MySQL دستورات خیلی ساده ای داره که بصورت ایمن میتونید کارای خودتون رو انجام بدین و اگه از نتیجه راضی بودین تغییرات رو اعمال کنید، در غیر این صورت از تمامی دستورات استفاده شده صرف نظر میشه تا مشکلی در دیتابیس بوجود نیاد.

دستور شروع اعمال تغییرات:
BEGIN;


و پس از اعمال تغییرات، اگر مایل به ذخیره آنها بودید از دستور زیر استفاده کنید:
COMMIT;


و در غیر اینصورت، برای صرف‌نظر کردن از تغییرات اعمال شده از دستور زیر استفاده کنید:
ROLLBACK;


#MySQL
@CleverDevs - @CleverDevsGp
2👍40🔥7👌2
Forwarded from Milad Nouri(ツ) میلاد نوری

طی نفوذی که به چند ربات ناشناس تلگرام اتفاق افتاده، متوجه شدند ۴۵۰ میلیون چت، ۱۱ میلیون عکس و ۳ میلیون ویدیو روی سرورهای این بات‌ها ذخیره شده.

منبع: توییتر یاشو - مشاهده ویدئو
2🤯52👍10😁7
Forwarded from Python Hints
تقریباً توی ۲ سال گذشته وقتی یکی بهم میگه:

برای فلان موضوع منبعی وجود نداره، نمی‌تونم یاد بگیرم


واقعاً عصبیم می‌کنه.

من زمانی لینوکس رو یاد گرفتم که ۱ ماه منتظر موندم تا 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🔥87👌3👎2
محمد رضا حقیری ، برنامه نویسی ایرانی یه مدل زبانی توسعه داده که روی 400 میلیارد پارامتر train شده و عملکرد خوبی مخصوصا توی زبان فارسی داره

این پروژه رایگانه و اگه حمایت بشه همیشه رایگان میمونه

برای توضیحات بیشتر و گرفتن api به سایتش سر بزنید

https://jabirproject.org/

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

#Ai #jabir
@CleverDevs - @CleverDevsGp
🔥78👍17💯7🤣21👎1
همه میدونیم که مهم‌ترین بخش یادگیری تمرینه؛
اگه ایده‌ای برای تمرین و زدن پروژه ندارید میتونید از این‌جا صد تا پروژه مختلف رو ببینید و هر کدوم یه‌چیز خاص دارن که باید برید راجع بهش سرچ کنید.

لینک:

https://dev.to/bigsondev/100-free-frontend-challenges-3f0?ref=dailydev

#Tool
@CleverDevs @CleverDevsGp
👍18104👌2