Md Daily – Telegram
Md Daily
726 subscribers
239 photos
15 videos
21 files
283 links
راجب مقالات و مستندات فنی یا غیر فنی که میخونم و علایقم اینجا مینویسم :)


گروه کانال: https://news.1rj.ru/str/MdDailyGap

کورس ها: https://news.1rj.ru/str/MdDaily/395

وبلاگ: https://mddaily.ir
Download Telegram
#فان

برای یاد گیری و درک مفهوم Recursive Function (تابع بازگشتی)
در برنامه نویسی کافیه روی این لینک کلیک کنید

🆔 @MdDaily
😁10🤪6👻2👍1🫡1
🔥امروز روز جهانی برنامه‌نویس هاست..

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

با انرژی و امید ادامه بدید و قدر دانی میکنیم از تمام کسانی که با کارهاشون دنیا را به جای بهتری تبدیل کردند و میکنند

روزتون مبارک رفقا ❤️

🆔 @MdDaily
4👍2🎉1🍌1
‏حالا که بحث اپل داغه بذارید یه حقیقت رو درمورد iOS بهتون بگم:

توی آیفون و آی‌پد، مرورگری به جز سافاری وجود نداره
حتی کروم و فایرفاکس و edge هم اونجا در حقیقت سافاری هستن، فقط ادای یه مرورگر دیگه رو درمیارن!

قضیه از این قراره که اپل فقط اجازه میده یک انجین خاص به اسم WebKit روی iOS ران بشه. کار این browser engine خیلی خلاصه اینه که کد وبسایت رو بخونه و براساس اون، صفحات رو رندر کنه و به یوزر نشون بده

بخاطر این محدودیت، شرکت‌های دیگه نمی‌تونن از انجین خودشون توی iOS استفاده کنن

توی حالت عادی، گوگل از یه انجین به اسم Blink استفاده میکنه
و فایرفاکس هم انجین خاص خودش به اسم Gecko رو داره
اما وقتی که پای iOS درمیون میاد، WebKit به تنها گزینه تبدیل میشه

البته شرکت‌های سازنده مرورگرها می‌تونن یه سری تغییرات جزئی توی انجین ایجاد کنن اما طبیعتا دستشون خیلی باز نیست

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

نکته تکمیلی: این قضیه فقط توی iOS وجود داره و برای macOS شرکت‌ها می‌تونن از انجین خودشون استفاده کنن و محدودیتی در کار نیست

<Erfan.tsx>

🆔 @MdDaily
🗿2😐1🆒1😡1
ابزار JsonCrack خیلی جالبه. از فایل های جیسونی که خوندنشون سخته براتون مثله تصویر پست یه دیاگرام تولید میکنه که میتونید ازش خروجی تصویری بگیرید.

علاوه بر JSON از YAML، XML و CSV هم پشتیبانی میکنه و برای vscode هم اکستنشن داره .

لینک گیت هاب پروژه:
https://github.com/AykutSarac/jsoncrack.com

وبسایت پروژه:
https://jsoncrack.com/

🆔 @MdDaily
👍4🍌2🌭1🦄1
💡 توی این مدتی که اولین نسخه ی پایدار Bun منتشر شد و  باز هم یه ابزار جدید به اکو سیستم جاوا اسکریپت اضافه شد و کلی سروصدا کرد،‌ تصمیم گرفتم توی این پست Deno, Bun و NodeJs رو باهم مقایسه کنم و ببینیم هرکدوم چه مزیت هایی دارن و اصلا چرا وجود دارن

خب قبل از اینکه بریم این ابزار ها را باهم مقایسه کنیم، اول بریم سراغ اینکه چرا اینها وجود دارند و چه مشکلی رو حل می کنند؟

تا قبل از اومدن nodeJS، ابزار هایی وجود داشتند که به توسعه دهندگان اجازه می دادند خارج از مرورگر هم کد های جاوا اسکریپت خودشون را اجرا کنند اما با دسترسی ها و امکانات محدود پس در نتیجه نیاز به یه ران تایمی حس میشد که این مشکلات رو حل کنه و استفاده از جاوا اسکریپت رو خارج از مرورگر عمومی کنه. اتفاقی که تو پشت صحنه میوفتاد و الانم میفوته اینکه کد های جاوا اسکریپتی که شما می نویسید  توی مرورگر های کرومیوم بیس توسط یه انجینی بنام V8 تفسیر و اجرا میشند. این انجین با زبان c++ نوشته شده و متن بازم هست. سال 2009 یه شخصی بنام Ryan Dahl اومد انجین V8 رو گذاشت تویه برنامه ای که با c++ نوشته بود که بتونه جاوا اسکریپت رو خارج از محیط مرورگر هم اجرا کنه و ویژگی های جدیدی را هم بهش اضافه کرد و اونجا بود که nodeJs متولد شد و این ایده که از جاوا اسکریپت توی بکند، دسکتاپ موبایل و... هم استفاده بشه و فقط محدود به مرورگر نباشه شکل گرفت. پس به طور کلی ران تایم های جاوا اسکریپتی مثله Deno, Bun و NodeJs  اومدن تا به ما این امکان را بدن از جاوا اسکریپت خارج از محیط مرورگر استفاده کنیم.

خب سوالی که پیش میاد اینه NodeJs داره کارش رو به خوبی انجام میده و محبوب ترین ران تایم جاوا اسکریپتم هست، پس چرا Deno و Bun وجود دارند؟

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

با تمام برتری ها و مزیت هایی که Deno نسبت به NodeJs داره اما یه مشکل اساسی وجود داره که باعث میشه Deno یه پروژه ی شکست خورده حساب بشه!  پروژه ی Deno بجای اینکه بیاد روی ویژگی های ضروری و core کار کنه و بعدا فیچر های بیشتری اضافه کنه تمام تمرکزش رو گذاشته روی ویژگی های برترش نسبت به NodeJs و همین باعث شده با خیلی از API ها ناسازگار بمونه و مهاجرت پروژه ای که با NodeJs نوشته شده به Deno خیلی سخت و تو پروژه های خیلی بزرگ تقریبا غیر ممکن بشه. اینجاس که Bun اومده تا اشتباهات Deno رو جبران کنه. Bun دقیقا داره چیکار میکنه؟

ران تایم Bun که زبان Zig نوشته شده، بجای V8 از انجین JavaScriptCore استفاده میکنه و یکی از دلایل سریع تر بودن Bun نسبت به بقیه بخاطر انجینیه که داره ازش استفاده میکنه. Bun علاوه بر ران تایم بودن یه جعبه ابزار کاملی از تمام چیز هایی که توسعه دهنده برای اجرای یه برنامه ی ساده تا بکند یه پروژه بزرگ نیاز  داره توی خودش داره.
مثل:
-
پشتیبانی از Ts,tsx,Jsx
- پکیج منیجر
- هات ریلود
- باندلر
- پشتیبانی از api های استاندار وب
- خوندن و نوشتن روی فایل های سرور
- سازگار بودن با ESM و CommonJS
و..

یکی از دلایلی که باعث محبوبیت Bun شده اینکه کاملا با پروژه ها NodeJs سازگاره و بدون تغییرات در کدتون میتونید از Node به Bun مهاجرت کنید.

پس در نتیجه احتمال مهاجرت توسعه دهندگان در آینده ی نزدیک از NodeJs به Bun وجود داره، باید منتظر باشیم ببینیم چی میشه:)

برای پروژه ی بعدیم از Bun استفاده کنم؟

بستگی داره. اگه میخواهید لبه ی تکنولوژی باشید و چیز های جدیدی را امتحان کنید، چرا که نه :) ولی اگه دارید رویه پروژه ای  کار میکنید که براتون مهمه همه چیز استیبل باشه، هنوز برای مهاجرت به Bun زوده، چون هنوز کامیونیتی بزرگی مثل Node نداره و پروژه های زیاد و بزرگی باهاش نوشته نشدند


🆔 @MdDaily
2👍21👌1
Audio
🎧 #موزیک مناسب زمان برنامه نویسی


► 00:00 Rainy Nights - Azaleh
► 03:46 In A Cabin By The Lake - Lazarus Moment
► 09:47 Hollow - Ecepta
► 11:44 For The Sky - Himalia
► 17:16 Disconnect - Victoriya
► 21:11 Horizon - Almost Vanished
► 25:50 Forget Me Not - Oscuro Official
► 29:59 Radiance - Menual
► 33:51 Dawn - Kazukii
► 37:36 No One Is Forever - Moon
► 41:44 But You Never Told Me - Groundfold
► 44:56 God Will Let Me Know - Dakun
► 48:06 Asylum - Eyeri
► 52:50 Tension - Kazukii
► 57:19 Your Reflection - Lux Natura
► 1:01:38 Frustration - Brimstone
► 1:06:22 Wanderer - Fyze
► 1:11:09 Hypnos - 4lienetic
► 1:14:52 We Are Blind - RIT & LuQus
► 1:19:04 Asterism - Ecepta
► 1:22:48 Cosmo Pollen - Brombaer & Noahs Boat
► 1:27:22 One Too Many - Exist Strategy
► 1:31:23 Somewhere - F3edo
► 1:37:10 Ilia - Kisnou
► 1:39:56 Tea - Quok
► 1:44:33 Quenching - Margari's Kid



🆔 @MdDaily
👨‍💻6🍌2👍1
از آخرین باری که Phind.com رو تست کردم خیلی تغییر کرده و توی آپدیت جدیدش به شما این امکان رو میده که با فعال کردن حالت Pair Programmer یک دستیار برنامه نویس در کنار خودتون داشته باشید. وقتی حالت Pair Programmer رو فعال می کنید طبق چیزی که ازش درخواست کردید، شروع می کنه به تعریف وظایف برای خودش و با سرچ توی اینترنت و وظایفی که برای خودش تعریف کرده، به شما نتیجه میده. شما میتونید از مدل GPT-4 و GPT-3.5 یا Phind استفاده کنید که مدل GPT-4 اش در حالت رایگان محدودیت 10 درخواست در روز داره ولی استفاده از دو مدل دیگه هیچ محدودیتی نداره .

شما میتونید از Phind توی vscode هم به صورت اکستنشن استفاده کنید

توی ویدیوی پست، ازش خواستم یک بکند با گولنگ و یک وب اپ با Django بنویسه

🆔 @MdDaily
👍2🤯21🤩1
Audio
🎧 #موزیک مناسب زمان برنامه نویسی

► 0:00
► 3:20
► 4:50
► 9:00
► 16:33
► 20:13
► 23:30
► 30:24
► 34:10
► 37:10
► 42:50
► 48:25
► 59:00
► 1:09:00
► 1:13:48
► 1:17:40


🆔 @MdDaily
4🍌3
This media is not supported in your browser
VIEW IN TELEGRAM
و بالاخره یکی از بزرگ ترین آپدیت های Google Bard امروز منتشر شد!

بارد به اکستنشن مجهز شده و به کمک این قابلیت به سرویس‌هایی مثل گوگل درایو، جیمیل و بقیه ی اپ های گوگل متصل میشه و ازش میتونید به عنوان یه دستیار استفاده کنید

🆔 @MdDaily
1👍1🤯1👀1
#فان

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

پ.ن: سایت ثبت احوال هنوز از دسترس خارج
است.

<eMjEY>


🆔 @MdDaily
🤣7😁2
Audio
🎧 میکس جذاب #موزیک های استفاده شده در سریال مستر ربات برای زمان برنامه نویسی

👨🏻‍💻بخش های پیشنهادی:
► 2:45
► 10:03
► 28:00
► 28:40
► 32:06
► 38:21
► 49:10
► 53:41
► 01:06:22
► 01:08:43
► 1:19:01
► 01:27:04
► 1:30:37

🆔 @MdDaily
❤‍🔥41🍌1
#گولنگ

توی این پست از مجموعه پست های آموزشی MdDaily قراره با پکیج pprof در Golang آشنا بشیم :)

پکیج pprof چه مشکلی رو حل میکنه؟

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


پکیج pprof کجاها کاربرد داره؟

پکیج pprof مخفف Performance Profiling هستش و به شما در جزیه و تحلیل عملکرد برنامه های Go کمک میکنه. این پکیج به شما این امکان رو میده تا داده های پروفایل را از برنامه های خود جمع آوری کنید و این داده ها را در یک اینترفیس مبتی بر وب یا به صورت cli بررسی کنید.


- سی پیو (CPU Profiling): می‌توانید از pprof برای تجزیه و تحلیل مصرف CPU در برنامه Go خود استفاده کنید. این به شما کمک می‌کنه تا بخش‌هایی از کد خود را که بیشترین منابع CPU را مصرف می‌کنند شناسایی کنید.

- مموری (Memory Profiling): همچنین می‌توان از pprof برای تجزیه و تحلیل مصرف حافظه استفاده کرد، که به شما کمک می‌کنه مموری لیک ها یا الگوهای تخصیص حافظه ناکارآمد (inefficient memory allocation patterns) رو تو کدتون پیدا کنید.


-گوروتین (Goroutine Profiling): به شما اجازه می‌ده تا کانکارنسی های برنامه‌ی خود را تجزیه و تحلیل کنید و به شما کمک می‌کنه تا درک کنید که چطوری گوروتین‌ها ایجاد، مسدود یا اجرا می‌شوند و همچنین با پروفایل کردن گوروتین‌ها به شما کمک میکنه تا مشخص کنید که گوروتین‌ها در کجا منتظر هستند یا مسدود شدند

یک مثال از pprof :
package main

import (
_ "net/http/pprof"
"net/http"
"time"
)

func main() {
// ایجاد یک وب سرور برای پروفایل کردن برنامه.
go func() {
http.ListenAndServe(":6060", nil)
}()

// کد برنامه ی شما ...

// اکنون میتونید توی این آدرس: http://localhost:6060/debug/pprof/ پروفایل برنامتون رو ببینید

// به عنوان مثال : این کد 10 ثانیه داده های پروفایل cpu را جمع آوری میکنه
time.Sleep(10 * time.Second)
}

خروجی کد در پست بعدی....

🆔 @MdDaily
3👍1
خب توی تصویر یک ما یه برنامه ای داریم (سورس برنامه) که مشکل مموری داره .

با دستور go run main.go برنامه را اجرا میکنیم. تا در آدرس‌: http://localhost:6060/debug/pprof/heap به pprof دسترسی داشته باشم. درصورتی که این لینک را توی مرورگر باز کنید با صفحه ای مشابه تصویر شماره دو مواجه میشید.

با استفاده از کامند زیر:
go tool pprof http://localhost:6060/debug/pprof/heap

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

همچنین با استفاده از کامند زیر:
go tool pprof -png http://localhost:6060/debug/pprof/heap > out.png

برایه شما یک فایل png از پروفایتون ایجاد میکنه که تصویر چهار نمونه ای از خروجی این دستور هست.

این دو پست آشنایی مختصری بود درباره پکیج pprof و کاربرد هاش، و شما می تونید برای آشنایی بیشتر و یادگیری این پکیج از منابع زیر استفاده کنید:

https://shorturl.at/hIKN0

https://shorturl.at/hxMW8

https://shorturl.at/jBRW2

https://shorturl.at/anpO8

https://shorturl.at/ruBH6

🆔 @MdDaily
31👍1
#معرفی

قبلا برای دنبال کردن مقالات و اخبار تکنولوژی از Medium و X (توئیتر سابق) استفاده می کردم. اما خب Medium پولی شد و X هم دیگه مثل سابق نیست و اکثر مطالب تکراری شدند یا چیزهایی میاد تایم لاینم که مربوط به علایقم نیست ¯\_(ツ)_/¯

توی این چند وقت برای دریافت آخرین اخبار و گلچین مطالب تکنولوژی و آموزشی از این منابعی که در ادامه پست بهتون معرفی میکنم استفاده کردم و مطالبی که به نظرم جالب و مفید میومدن هم توی کانال MdDaily با شما به اشتراک گذاشتم و میذارم :)

اگه برنامه نویس گولنگ هستید عضویت توی خبرنامه ی golangdojo رو بهتون توصیه میکنم. هر هفته مطالب آموزشی و مقاله های مفید را راجب گولنگ براتون میفرسته

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

توی دسته ی آموزش های ویدیویی هم یکی از بهترین سرویس ها freecodecamp هست.

اگه مطالعه روزانه ی مقاله و اخبار رو ترجیح میدید، سرویس daily.dev رو بهتون پیشنهاد میکنم. با ثبت نام توی این وب اپ و انتخاب موضوعاتی که بهش علاقه دارید براتون گلچینی از مقاله ها و اخباری از منابع مختلفی مثل dev.to ,medium، و ... رو براساس موضوعاتی که انتخاب کردید نشون میده و میتونید نظر بقیه ی کاربران daily.dev رو بخونید، مطالب مورد علاقتون رو لایک کنید و چیز های جدیدی را یاد بگیرید.

🆔 @MdDaily
👍61🔥1👌1🍌1
معرفی cursor اولین کد ادیتور مبتنی بر AI

کد ادیتور cursor یه فورک از وی اس کد هست که با هوش مصنوعی ادغام شده، به دلیل اینکه فورک وی اس کد هست شما میتونید خیلی راحت از وی اس کد به این کد ادیتور مهاجرت کنید.

ویژگی های cursor:

- ویژگی Command K:
با استفاده از این ویژگی بعد از اینکه بخشی از کدتون که میخواستید تغییر کنه رو انتخاب کردید، نحوه تغییر کد را به Ai توضیح میدید و کد را براتون عوض میکنه

- چت
بر اساس کد بیس پروژتون میتونید با Ai چت کنید و بدون نیاز به توضیح خط کد و لاجیک پروژتون جواب مناسب دریافت کنید

- دیباگ اتوماتیک
به کمک این ویژگی با کمک AI کدتون رو دیباگ کنید

- و کلی ویژگی AI دیگه که در فرایند کد نویسی به شما کمک میکنه :)

ادیتور cursor برای سه سیستم عامل مک و ویندوز و لینوکس دردسترسه ولی استفاده از مدل های GPT-4 و GPT-3.5 در پلن رایگانش محدودیت داره که شما میتونید با وارد کردن OpenAI Key خودتون این محدودیت رو برطرف کنید.

وبسایت پروژه:
https://www.cursor.so/

گیت هاب پروژه:
https://github.com/getcursor/cursor


🆔 @MdDaily
👌4👍2🔥2🍌21