Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Sadra Codes
من یه زمان، خیلی رندوم با یه نفر توی چت توییج آشنا شدم بعد فهمیدم اسرائیلیه. پسر خوبی بود. رفتیم دیسکورد بعدش. چند ماهی ازش خبری نداشتم تا اینکه امروز صبح دیدم دیسکورد پیام داده: سالمی؟ حالت خوبه؟ 😂💀
سادگی همیشه خبر از پیچیدگی میده!

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

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

و شاید بگید خوب این خوبه دیگه یارو کد برای ما زده و استفاده می‌کنیم و لذتشو میبریم. تو خیلی از مواقع این درسته، ولی امان از اون روزی که بخوایید یکچیزی رو تغییر بدید که فریم‌ورک/کتابخونه براتون انجام داده :) اونجاست که این سادگی که ازش لذت میبردید تبدیل کابوس میشه :D

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

این گفتم که بدونید همیشه هر سادگی خوب نیست، گاهی بهتره تن به کار بدید و اون کد خودتون بزنید تا با نیاز شما هماهنگ باشه نه اینکه یک کتابخونه هزارخطی نصب کنید تا از ۱۰۰ خطش استفاده کنید.

@TorhamDevCH
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
موتور جستجوی perplexity.ai به زودی نسخه دسکتاپش رو عرضه می‌کنه. در اولین مرحله برای مک‌او‌اس.

https://pplx.ai/mac
hadi @geekalerts
با این کتاب‌خونه، QR Code های جذاب بسازید:

https://github.com/zhengkyl/qrframe

@DevTwitter | <معین/>
Forwarded from Linuxor ?
توی سیستم های توزیع شده، یه الگورتیمی داریم به اسم الگوریتم قُلدر به این صورته که اگه یه کامپیوتر بفهمه کامپیوتر "هماهنگ کننده" فعلی جوابی نمیده، به همه کامپیوتر ها میگه "من جایگزینشم" اگه توی یه تایم خاصی کسی با شناسه بالا تری جوابش رو نده، خودش رو به عنوان هماهنگ کننده جدید معرفی میکنه و کار های هماهنگی رو انجام میده.


🐧 @Linuxor
معرفی افزونه cobaole ninja
معرفی افزونه cobaole ninja
Forwarded from ایلوژن باگ
This media is not supported in your browser
VIEW IN TELEGRAM
خوب بییییییییییییییییییید؟
Forwarded from هادی
زبان RSQL مخفف Restricted SQL برای فیلتر کردن داده‌ها در APIهای RESTful استفاده میشه

اگر نیاز به پیاده سازی فیلتر های RQL/RSQL/FIQL
در پایتون روی Django REST framework داشتید

این کتابخانه را یک نگاهی داشته باشید
https://github.com/njoyard/django-rql-filter

@DevTwitter | <MehrdadLinux/>
چرا PHP نسبت به بقیه زبان‌ها کندتر است و راهکار چیست؟ قسمت دوم


کندی PHP برای شرکت‌ها و سازمان‌های بزرگی مانند فیسبوک به یک چالش جدی تبدیل شده بود، زیرا هر فرآیند از ابتدا شروع می‌شد و این بار اضافی برای سازمان‌ها توجیه‌پذیر نبود. به همین دلیل فیسبوک تصمیم گرفت معماری HHVM را طراحی کند، که کد PHP را به بایت‌کد تبدیل کرده و به‌صورت Just-In-Time (JIT) کامپایل می‌کرد.

حالا JIT برای PHP چه کاری انجام می‌دهد؟
برای توضیح بهتر، تصور کنید یک تعمیرکار یخچال برای تعمیر روزانه در منازل، همه ابزارهای خود را با خودش ببرد. این کار نه تنها او را خسته می‌کند، بلکه باعث مصرف بیش از حد انرژی و منابع هم می‌شود.

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

و jit دقیقاً همین کار را برای کامپایل یک برنامه انجام می‌دهد؛ یعنی هر بخش از کد فقط زمانی که به آن نیاز باشد، کامپایل و اجرا می‌شود.

فیسبوک با این روش تونست یک پلتفرم بزرگ رو در اون زمان با php که تقریبا در زبان php ناممکن به نظر میرسید رو عملی کنه

@DevTwitter | <Farhad Safari/>
Forwarded from Gopher Academy
اChannels در زبان Go در دسته‌بندی‌های خاص خود قرار می‌گیرند و بیشتر به عنوان نوع داده و ابزاری برای همگام‌سازی در عبارات و دستورات کنترل جریان استفاده می‌شوند.

### Channels به عنوان Expressions:
اChannels می‌توانند به عنوان عبارات استفاده شوند، چرا که مقادیر را انتقال می‌دهند و می‌توانند در جاهایی که مقداری بازگشتی نیاز است، استفاده شوند. به عنوان مثال:

#### - ارسال و دریافت از Channel (Send and Receive):
ارسال و دریافت از یک channel یک عملیات مسدودکننده است و می‌تواند به عنوان یک عبارت استفاده شود.

مثال:
ch := make(chan int)
go func() {
ch <- 42 // ارسال مقدار به channel (Send)
}()
val := <-ch // دریافت مقدار از channel (Receive)
fmt.Println(val)

در اینجا، ch <- 42 و <-ch هر دو عبارات هستند؛ یکی برای ارسال مقدار به channel و دیگری برای دریافت مقدار از آن.

### Channels به عنوان Statements:
عملیات مرتبط با channels می‌توانند به عنوان دستورات نیز استفاده شوند. در برخی موارد از آن‌ها برای کنترل جریان برنامه استفاده می‌شود، مثل استفاده در دستورات حلقه یا شرطی.

#### - Select Statement:
یک کانال می‌تواند در select statement که نوعی از دستورات کنترل جریان است، استفاده شود. select شبیه به
switch عمل می‌کند اما برای عملیات همگام‌سازی کانال‌ها.

مثال:

select {
case val := <-ch1:
fmt.Println("Received", val)
case ch2 <- 42:
fmt.Println("Sent 42 to ch2")
default:
fmt.Println("No communication")
}


در اینجا، select یک دستور است که جریان اجرای کد را بر اساس وضعیت کانال‌ها تعیین می‌کند.

### نتیجه‌گیری:

- ا**Channels** می‌توانند به عنوان عبارت در زمان ارسال (ch <- val) یا دریافت (val := <-ch) از کانال‌ها استفاده
شوند.

- در شرایط خاص مانند استفاده از `select` statement**، کانال‌ها بخشی از **دستورات کنترل جریان می‌شوند.


بنابراین، بسته به نحوه استفاده، کانال‌ها می‌توانند هم به عنوان عبارت و هم به عنوان دستور عمل کنند.

👑 @gopher_academy
Forwarded from Lack of leak XD
💡درباره اینکه ویندو منیجر چیه و چیکار میکنه و تفاوتش با دسکتاپ چیه .. این پست رو بخونید

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

desktop environment : DE
window manager : WM

اول از همه شما اون پشت یک دیسپلی سرور دارید که بطور کلی داره گرافیک شمارو هندل میکنه تا بتونید بصورت gui با سیستمتون کار کنید . محبوب ترین دیسپلی سرور حال حاضر xorg هست و بعد از اون wayland عه. یادتون نره که برای بالا اومدن هرچیز گرافیکی شما به این نیاز دارید .

بعد از اینکه نه ولی چیزی که بصوت عموم بعد بالا اومدن سیستم عاملتون باهاش در ارتباطین (گرافیکیال استفاده میکنید ) دیسپلی منیجر عه یا بهش لاگین منیجر هم میگن . همون صفحه ای که اول بعد بوت شدن بالا میاد و توش یوزرنیم وپسورد میزنید و بعد سشن مورد نظر رو انتخاب میکنید تا لاگین بشید و برید به دسکتاپ .

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

هر دسکتاپی خودش یک wm داره که بتونه مکان و ویژگی های پنجره هاتون رو تنظیم کنه و به شما هم امکان تنظیم رو بده . مثلا وقتی دارید سایز یک پنجره رو تغییر میدید ، دارید با wm سرو کله میزنید . کل کار ویندو منیجر در حقیقت اینه که پنجره هاتون رو مدیریت کنه .

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

ویندو منیجر ها انواع مختلفی دارن :

floating
tiling
dynamic

توی فلوت مثل دسکتاپ میمونه پنجره ها هر جور که باز میکنید تو دسکتاپ و تغییر اینا داره ، اینجا هم همون هست .

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

توی داینامیک هم شما میتونید راحت بین فلوت و تایل سوییچ کنید و در کنار هم استفاده کنید

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

این بنظرم مقدمه ی بدی نبود برای اشنایی با ویندو منیجر . در باره این موضوع بیشتر صحبت خواهم کرد .

@lack_xd
Forwarded from Woland's Linux Journal (Woland)
اهدای ۳۰۰،۰۰۰ دلار به بنیاد زیگ

توسعه‌دهنده‌ی ترمینال جدید Ghostty، و حامی پروژه زیگ، Mitchell Hashimoto، به همراه همسر خود مبلغ ۳۰۰،۰۰۰ دلار به بنیاد نرم‌افزار زیگ اهدا کردند.

بنیاد زیگ (Zig Foundation) یک سازمان غیرانتفاعی است که بر توسعه زبان برنامه‌نویسی زیگ (Zig) تمرکز دارد. زیگ یک زبان برنامه‌نویسی مدرن است که به دلیل کارایی بالا، سادگی و قابلیت اطمینان مورد توجه قرار گرفته است. هدف این بنیاد ترویج استفاده از زیگ و گسترش ابزارهای مرتبط با آن است تا برنامه‌نویسان بتوانند کدهای بهینه‌تر و پایدارتری بنویسند.

از محصولات بنیاد زیگ می‌توان به کامپایلر زیگ اشاره کرد که به توسعه‌دهندگان امکان می‌دهد کدهای سی و ++C را به صورت بهینه کامپایل کنند.

مأموریت اصلی این بنیاد خلق‌ دوباره‌ی System Programming و حل مسائل مشکل‌ساز دیرینه‌ی آن است. کامپایلر زیگ در پروژه‌های راست و گولنگ استفاده می‌شود. هم‌چنین کامپایلر زیگ اولین کامپایلری بود که موفق شد برای اپل M1 کامپایلیشن به‌صورت Cross Compile انجام دهد.
👉🔗 Mitchell Hashimoto's Blog
👉🔗Zig Announcement

#خبر
دوستان میخوایم استارت تولید محتوا رو توی یوتوب بزنیم 😁
بنظرتون درمورد چه موضوعاتی ویدیو بزاریم؟🤔
تو کامنتا بگید 😉
Forwarded from Yasha
چنل مخصوص توسعه دهندگان و برنامه نویسان و علاقمندان به تکنولوژی ❤️‍🩹👨🏻‍💻
@IDevZone