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
چرا 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
Forwarded from CleverDevs (CleverDevs Ads)
💥با هوش تجاری، مهره حیاتی هر کسب و کاری باش💥


بوت‌کمپ استخدامی BI:
🔸بیشتر از 110 ساعت آموزش
🔸انجام پروژه‌های عملی
🔸کوچ و منتورینگ تخصصی
🔸آموزش مهارت‌های نرم، رزومه نویسی تخصصی و ساخت لینکدین حرفه‌ای
🔸پشتیبانی تسهیل در استخدام و معرفی به شرکت‌های معتبر

🔰مباحث دوره:
SQL Server
BI Theory
SSIS
Power BI
KPI
و...

🔴 تا 25% تخفیف ویژه
🔴 شرایط پرداخت اقساطی

⭐️یک دوره کامل برای یادگیری هوش‌تجاری
اگر به دنیا دیتا‌ها علاقه داری این بهترین فرصت برای ورود به این بازار کاره

دیدن سرفصل‌ها:
https://dnkr.ir/ymvbq

ارتباط با پشتیبانی:
@Daneshkar_support
Forwarded from 
arvancloud.lgbt

برا اینکه یادتون نره و دم دستتون باشه:

#fun #موقت
Forwarded from Python Hints
توی این هفته freecodecamp دوتا دوره عالی گذاشته؛ این دو مورد ربطی به پایتون نداره اما بدرد خیلیا میخوره بخصوص :
@pytens, @pyrust

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

دوره ها کدوم موارد هستند ؟


1- Cuda Programming Course (in C)

2- Linux Device Driver Development (in C)


حقیقتش اینکه این هفته جلسه نداریم؛ برای این هست که از شروع لایوها اولین جمعه ای هست که تسک ندارم و چون ۲ هفته گذشته بسیار بسیار درگیر بودم؛ ترجیح دادم این جمعه رو استراحت کنم و برای این استراحت این ۲ ویدئو رو انتخاب کردم برای دیدن.

امیدوارم شما هم لذت ببرید؛ کانسپت مهم هست.
‏فلاتر چیست؟
فریم‌ورکی که در نگاه اول عاشقش میشی ولی بعد به گوه خوردن میفتی!

<سردار/>

@DevTwitter
‏برنامه نویسی پایتون این جوریه که وقتی می خوای مبحث جدید بخونی قبلی ها یادت رفته و باید دوباره از اول بخونی

<Princess Carolyn/>

@DevTwitter
توی قسمت تنظیمات بخش امکانات ووکامرس یه گزینه هست به اسم HPOS Full text search indexes

اگر اینو بزنید توی سفارشات سرچ سفارشاتتون خراب میشه

مثلا اگر سرچ کردید آقای علپور

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

بررسی کردیم دیدیم هر کی این تیک رو زده سرچ سفارشاتش خرابه

@poinair پوینا
Forwarded from Linuxor ?
یه قانون مورفی هست که میگه، شما دقیقا بد ترین زمان ممکن میزنید لینوکستون رو خراب می‌کنید که به شدت بهش نیاز دارید !


🐧 @Linuxor
‏اوبونتو داره installerش رو بازنویسی میکنه و نسخه جدید قراره با Flutter نوشته بشه. کلا Canonical با Google برای پورت کردن Flutter به دسکتاپ همکاری می‌کنه.

https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-21.10-New-Installer-Plan

<ArashM/>

@DevTwitter
This media is not supported in your browser
VIEW IN TELEGRAM
🤔 چطوری روی آرتیکس Genymotion رو اجرا کنیم اونم وقتی systemd نداریم؟!

😎 وقت من به شکل رو مخی سر فیکس کردن این گرفته شد، امیدوارم بدرد دوستان آرتیکس یوزر بخوره...

۱. جنی‌موشن رو نصب کنید، از هرجایی که دوست دارید،
من از aur پکیج genymotion رو نصب کردم.

۲. یه دایرکتوری دلخواه ایجاد کنید که فایل‌های مربوط به dummy_systemd رو بعدا توش قرار بدیم،
مثلا من آدرس ‎/home/pinkorca/Tools/dummy رو انتخاب کردم...

۳. توی دایرکتوری مورد نظر ۲ تا فایل dummy_systemd.c و systemd.map رو قرار بدید.
برای طولانی نشدن پست کدها رو در قالب فایل‌هاشون تو کامنتِ اول همین پست ارسال می‌کنم.

۴. کامند زیر رو داخل همون دایرکتوری اجرا کنید:
gcc -shared -fPIC -Wl,--version-script=systemd.map -o libsystemd.so.0 dummy_systemd.c

اگه اروری مشاهده نکردین و فایل libsystemd.so.0 هم ایجاد شد یعنی همه‌چیز درسته...

۵. حالا کافیه به این شکل اجراش کنید:
LD_LIBRARY_PATH=/آدرس دایرکتوری خودتون/ genymotion

مثلا برای خودم:
LD_LIBRARY_PATH=/home/pinkorca/Tools/dummy genymotion


و تمام!

#ترفند #لینوکس
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
💎 وریبل‌ها در CSS 💎

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

نحوه تعریف و استفاده از وریبل‌ها 🚀

➊ وریبل‌ها در CSS با استفاده از -- تعریف می‌شوند و برای دسترسی به آن‌ها از تابع var() استفاده می‌کنیم

:root {
--primary-color: #3498db;
--secondary-color: #2ecc71;
--font-size: 16px;
}

توی کد بالا وریبل های خودمون رو در شبه کلاس :root تعریف کردیم


➋ حالا برای استفاده از وریبل‌ها در بخش‌های مختلف CSS، کافی است آن‌ها را با تابع var که بالاتر گفتیم فراخوانی کنیم

body {
background-color: var(--primary-color);
color: var(--secondary-color);
font-size: var(--font-size);
}

button {
background-color: var(--secondary-color);
font-size: var(--font-size);
}

تو کد بالا رنگ و اندازه فونت عناصر body و button رو با وریبل‌های CSS مقدار دهی کردیم.



#️⃣ #css #css_variables

🚀 @coolycode
Forwarded from Geek Alerts
ویژگی Advanced Voice Mode تا هفته آینده در دسترس کاربران پلن رایگان اما با محدودیت ۱۵ دقیقه استفاده در هر ماه قرار خواهد گرفت. همچنین به دلیل قوانین اتحادیه اروپا هنوز در کشورهای اروپایی در دسترس نیست درنتیجه نیاز به وی‌پی‌انی با آی‌پی غیر از اروپا خواهید داشت.

tweet
hadi @geekalerts
بریم لینکدین، اونجا محیط کاری و حرفه ایه

لینکدین:
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy Raymond)
🔶 نسخه اول قالب شرکتی آلتین کارنه افتضاح بود و هم اکنون به نسخه دوم قالب آلتین کارنه به روز رسانی شد.

به روز رسانی شامل تغییرات کلی صفحه اصلی است.

https://altincrane.ir/

#وردپرس

@TheRaymondDev