Forwarded from نوشتههای ترمینالی
چطوری zig به maintain کردن پروژه ای C/cpp مون کمک میکنه.
این زبون نمیگه rewrite in zig (در حالی که توی rust میگن)
بلکه میگه کلی برنامه خفن با C/Cpp داریم، نمیشه همشون رو دور بریزیم.
به جایش بیایم کمک میکنیم از انی به بعد با zig توسعه پیدا کنن. مثلا در اولین قدم با toolchain مربوط به zig کامپایل بشن.
https://kristoff.it/blog/maintain-it-with-zig/
این زبون نمیگه rewrite in zig (در حالی که توی rust میگن)
بلکه میگه کلی برنامه خفن با C/Cpp داریم، نمیشه همشون رو دور بریزیم.
به جایش بیایم کمک میکنیم از انی به بعد با zig توسعه پیدا کنن. مثلا در اولین قدم با toolchain مربوط به zig کامپایل بشن.
https://kristoff.it/blog/maintain-it-with-zig/
kristoff.it
Maintain it With Zig
No matter what language you program in or what applications you use: everything you do with a computer today is powered at some level by a piece of C/C++ code.
Forwarded from DevTwitter | توییت برنامه نویسی
با وجود رشد هوش مصنوعی، هنوز هیچ پلتفرمی بهاندازهی وردپرس برای راهاندازی سریع وبلاگ بهینه، با سئوی عالی و ابزارهای قدرتمند وجود نداره. یک راهنمای کامل نوشتم که کمکتون میکنه در کمترین زمان ممکن یه وبلاگ وردپرسی بهینه (100% core web vital) بسازید:
https://wp-optimize.github.io/
@DevTwitter | <Masih Jahangirl/>
https://wp-optimize.github.io/
@DevTwitter | <Masih Jahangirl/>
Forwarded from Go Casts 🚀
آخرین جلسه تیمسازی در سال ۱۴۰۳ به لطف خدا برگزار شد.
فقط روی پروژه تیمسازی ۳ در طول ۹ ماه گذشته ۹۸ تا Pull-Request مرج شد و بیش از ۴۰۰ کامیت توسط افراد مختلف زده شد.
در مورد دوره و تیمسازی GoCasts مثل همیشه هیچ ادعایی ندارم و میدونم پر از عیب و نقصه، اما فکر میکنم تیمسازی به این شیوه جز GoCasts در جای دیگه ای برگزار نشده که تقریبا بالای ۸۰ درصد هفته های سال جلسات لایو code-review و طراحی سیستم برگزار بشه و تلاش بشه مخاطب با چالش هایی شبیه چالش های پروژه های واقعی روبرو بشه و خودش کد بزنه و تمرین کنه که درک بهتر و تجربه مهم تری باشه براش.
ممنون از همه دوستانی که مثل همیشه در سال ۱۴۰۳ از GoCasts حمایت کردند، ان شاءالله سال جدید برای همه بهتر از قبل پیش بره.
دم همگی گرم
مخلصم ❤️
خرید تخفیف ویژه عید نوروز ۱۴۰۴
۵۰ درصد + ۱ میلیون تومان
NOWRUZ
خرید از سایت
https://gocasts.ir
توضیحات کامل
https://t.iss.one/gocasts/633
دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4
@gocasts
فقط روی پروژه تیمسازی ۳ در طول ۹ ماه گذشته ۹۸ تا Pull-Request مرج شد و بیش از ۴۰۰ کامیت توسط افراد مختلف زده شد.
در مورد دوره و تیمسازی GoCasts مثل همیشه هیچ ادعایی ندارم و میدونم پر از عیب و نقصه، اما فکر میکنم تیمسازی به این شیوه جز GoCasts در جای دیگه ای برگزار نشده که تقریبا بالای ۸۰ درصد هفته های سال جلسات لایو code-review و طراحی سیستم برگزار بشه و تلاش بشه مخاطب با چالش هایی شبیه چالش های پروژه های واقعی روبرو بشه و خودش کد بزنه و تمرین کنه که درک بهتر و تجربه مهم تری باشه براش.
ممنون از همه دوستانی که مثل همیشه در سال ۱۴۰۳ از GoCasts حمایت کردند، ان شاءالله سال جدید برای همه بهتر از قبل پیش بره.
دم همگی گرم
مخلصم ❤️
خرید تخفیف ویژه عید نوروز ۱۴۰۴
۵۰ درصد + ۱ میلیون تومان
NOWRUZ
خرید از سایت
https://gocasts.ir
توضیحات کامل
https://t.iss.one/gocasts/633
دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4
@gocasts
Forwarded from DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
در سیستم های RAG یا سوال-جواب chunking (تکه تکه کردن متن) یکی از حیاتی ترین مراحل هست. و نقش مهمی در دقت بازیابی اطلاعات داره. تعداد زیادی روش برای چانک کردن وجود داره و اینکه چه روشی را انتخاب کنیم سخته . یکی باز بهترین مقاله ها که روشهای مختلف chanking را مقایسه و ارزیابی کرده اینجا معرفی میکنم و کدش هم کامل گذاشتن.
Link: https://research.trychroma.com/evaluating-chunking
Github: https://github.com/brandonstarxel/chunking_evaluation
@DevTwitter | <Mehdi Allahyari/>
Link: https://research.trychroma.com/evaluating-chunking
Github: https://github.com/brandonstarxel/chunking_evaluation
@DevTwitter | <Mehdi Allahyari/>
Forwarded from کانال مهرداد لینوکس
✅ نکته های لینوکسی
اگر دنبال مانیتور کردن بخش ها مختلف لینوکس هستید این ابزار ها را روی سیستم داشته باشید
top: https://linux.die.net/man/1/top
s-tui: https://amanusk.github.io/s-tui/
htop: https://htop.dev
atop: https://linux.die.net/man/1/atop
iftop: https://linux.die.net/man/8/iftop
iotop: https://github.com/Tomas-M/iotop
nvtop: https://github.com/Syllo/nvtop
asitop: https://github.com/tlkh/asitop
btop: https://github.com/aristocratos/btop
perf: https://www.brendangregg.com/perf.html
wavemon: https://github.com/uoaerg/wavemon
آموزش تصویری انگلیسی در youtube
https://www.youtube.com/watch?v=4isEhE2rvmA
با تشکر از امیر عزیز
اگر دنبال مانیتور کردن بخش ها مختلف لینوکس هستید این ابزار ها را روی سیستم داشته باشید
top: https://linux.die.net/man/1/top
s-tui: https://amanusk.github.io/s-tui/
htop: https://htop.dev
atop: https://linux.die.net/man/1/atop
iftop: https://linux.die.net/man/8/iftop
iotop: https://github.com/Tomas-M/iotop
nvtop: https://github.com/Syllo/nvtop
asitop: https://github.com/tlkh/asitop
btop: https://github.com/aristocratos/btop
perf: https://www.brendangregg.com/perf.html
wavemon: https://github.com/uoaerg/wavemon
آموزش تصویری انگلیسی در youtube
https://www.youtube.com/watch?v=4isEhE2rvmA
با تشکر از امیر عزیز
Forwarded from DevTwitter | توییت برنامه نویسی
یه مدته دارم در مورد MCP و اینا میخونم... مخصوصا فلسفهای که با خودش میاره.
این مقاله جالبی بود که با تاریخچه REST مقایسه کرده و دید جالبی داره.
https://twitchard.github.io/posts/2025-03-09-mcp-hypermedia-reborn.html
به نظرم برای کسایی که روی مدلهای معماری AI دارن کار میکنن خوندن این مقاله ارزشش رو داره.
@DevTwitter | <Mehran/>
این مقاله جالبی بود که با تاریخچه REST مقایسه کرده و دید جالبی داره.
https://twitchard.github.io/posts/2025-03-09-mcp-hypermedia-reborn.html
به نظرم برای کسایی که روی مدلهای معماری AI دارن کار میکنن خوندن این مقاله ارزشش رو داره.
@DevTwitter | <Mehran/>
Forwarded from Linux Zone | لینوکس زون
فرآیند بوت شدن سیستم های لینوکسی ⏳🚀
خب توی این پست فرآیند بوت شدن سیستم هایی که از لینوکس استفاده میکنن رو بررسی میکنیم.
1️⃣ فاز اولیه: اجرا شدن فریمور (BIOS/UEFI)
وقتی دکمهی پاور رو میزنی، اولین چیزی که اجرا میشه، BIOS (تو سیستمهای قدیمیتر) یا UEFI (تو سیستمهای جدید) هست. این قسمت سختافزار رو بررسی میکنه و مطمئن میشه که قطعات اصلی (مثل رم، پردازنده و دیسکها) درست کار میکنن.
تست اولیه: این مرحله به اسم POST (Power-On Self Test) شناخته میشه و اگه مشکلی باشه، مثلاً رم خراب باشه، معمولاً با یه سری بوق یا پیام خطا هشدار میده.
پیدا کردن بوت لودر: بعد از تست سختافزار، BIOS/UEFI دنبال دیسک قابل بوت میگرده (مثل SSD یا USB) و بوتلودر رو اجرا میکنه.
2️⃣ بوتلودر (GRUB یا systemd-boot)
بعد از اینکه دیسک بوت پیدا شد، بوتلودر (معمولاً GRUB) اجرا میشه. بوتلودر یه برنامهی کوچیکه که وظیفهی لود کردن کرنل لینوکس رو داره.
انتخاب سیستمعامل:
اگه چند تا سیستمعامل نصب کرده باشی (مثلاً لینوکس و ویندوز)، اینجا میتونی انتخاب کنی که کدوم یکی بوت بشه.
بارگذاری کرنل:
بعد از انتخاب سیستمعامل (یا بعد از چند ثانیه اگه گزینهای انتخاب نشه)، بوتلودر کرنل لینوکس (فایل vmlinuz) رو بارگذاری میکنه.
3️⃣ بارگذاری کرنل و initramfs
اینجا کرنل لینوکس اجرا میشه و شروع به کنترل سختافزار میکنه. اما چون هنوز فایلسیستم اصلی (Root) بارگذاری نشده، یه چیز به اسم initramfs وارد ماجرا میشه.
initramfs چیه؟
یه فایل موقتی که شامل درایورها و ابزارهای اولیه برای شناسایی و اتصال فایلسیستم اصلیه. به کرنل کمک میکنه که بتونه پارتیشنهای دیسک رو بشناسه و مونت کنه.
4️⃣ مونت شدن روت و اجرای systemd
بعد از اینکه کرنل تونست به فایلسیستم اصلی دسترسی پیدا کنه، حالا سیستم آمادهی راهاندازی سرویسها و بقیهی چیزهاست.
ورود systemd:
تو اکثر توزیعهای مدرن لینوکس، systemd اجرا میشه و وظیفهی مدیریت سرویسها و فرآیندهای سیستم رو به عهده داره.
راهاندازی سطح سیستم:
اینجا کلی سرویس اجرا میشن، مثل:
5️⃣ نمایش صفحهی لاگین
در نهایت، بعد از اینکه همه سرویسهای لازم اجرا شدن، یه ترمینال لاگین (TTY) یا محیط گرافیکی دسکتاپ (مثل KDE Plasma یا GNOME) نمایش داده میشه و میتونی با یوزرنیم و پسورد وارد سیستم بشی.
جمعبندی:
1. BIOS/UEFI اجرا میشه و سختافزار رو بررسی میکنه.
2. بوتلودر (GRUB) کرنل لینوکس رو لود میکنه.
3. کرنل و initramfs فایلسیستم رو راهاندازی میکنن.
4. systemd مدیریت سرویسها رو انجام میده.
5. صفحهی لاگین نمایش داده میشه و سیستم آمادهی استفادهست!
➖➖➖➖➖➖➖➖➖➖
خب توی این پست فرآیند بوت شدن سیستم هایی که از لینوکس استفاده میکنن رو بررسی میکنیم.
1️⃣ فاز اولیه: اجرا شدن فریمور (BIOS/UEFI)
وقتی دکمهی پاور رو میزنی، اولین چیزی که اجرا میشه، BIOS (تو سیستمهای قدیمیتر) یا UEFI (تو سیستمهای جدید) هست. این قسمت سختافزار رو بررسی میکنه و مطمئن میشه که قطعات اصلی (مثل رم، پردازنده و دیسکها) درست کار میکنن.
تست اولیه: این مرحله به اسم POST (Power-On Self Test) شناخته میشه و اگه مشکلی باشه، مثلاً رم خراب باشه، معمولاً با یه سری بوق یا پیام خطا هشدار میده.
پیدا کردن بوت لودر: بعد از تست سختافزار، BIOS/UEFI دنبال دیسک قابل بوت میگرده (مثل SSD یا USB) و بوتلودر رو اجرا میکنه.
2️⃣ بوتلودر (GRUB یا systemd-boot)
بعد از اینکه دیسک بوت پیدا شد، بوتلودر (معمولاً GRUB) اجرا میشه. بوتلودر یه برنامهی کوچیکه که وظیفهی لود کردن کرنل لینوکس رو داره.
انتخاب سیستمعامل:
اگه چند تا سیستمعامل نصب کرده باشی (مثلاً لینوکس و ویندوز)، اینجا میتونی انتخاب کنی که کدوم یکی بوت بشه.
بارگذاری کرنل:
بعد از انتخاب سیستمعامل (یا بعد از چند ثانیه اگه گزینهای انتخاب نشه)، بوتلودر کرنل لینوکس (فایل vmlinuz) رو بارگذاری میکنه.
3️⃣ بارگذاری کرنل و initramfs
اینجا کرنل لینوکس اجرا میشه و شروع به کنترل سختافزار میکنه. اما چون هنوز فایلسیستم اصلی (Root) بارگذاری نشده، یه چیز به اسم initramfs وارد ماجرا میشه.
initramfs چیه؟
یه فایل موقتی که شامل درایورها و ابزارهای اولیه برای شناسایی و اتصال فایلسیستم اصلیه. به کرنل کمک میکنه که بتونه پارتیشنهای دیسک رو بشناسه و مونت کنه.
4️⃣ مونت شدن روت و اجرای systemd
بعد از اینکه کرنل تونست به فایلسیستم اصلی دسترسی پیدا کنه، حالا سیستم آمادهی راهاندازی سرویسها و بقیهی چیزهاست.
ورود systemd:
تو اکثر توزیعهای مدرن لینوکس، systemd اجرا میشه و وظیفهی مدیریت سرویسها و فرآیندهای سیستم رو به عهده داره.
راهاندازی سطح سیستم:
اینجا کلی سرویس اجرا میشن، مثل:
مدیریت شبکه (NetworkManager یا systemd-networkd)
مدیریت لاگها (journald)
راهاندازی محیط گرافیکی (GDM، SDDM یا LightDM)
5️⃣ نمایش صفحهی لاگین
در نهایت، بعد از اینکه همه سرویسهای لازم اجرا شدن، یه ترمینال لاگین (TTY) یا محیط گرافیکی دسکتاپ (مثل KDE Plasma یا GNOME) نمایش داده میشه و میتونی با یوزرنیم و پسورد وارد سیستم بشی.
جمعبندی:
1. BIOS/UEFI اجرا میشه و سختافزار رو بررسی میکنه.
2. بوتلودر (GRUB) کرنل لینوکس رو لود میکنه.
3. کرنل و initramfs فایلسیستم رو راهاندازی میکنن.
4. systemd مدیریت سرویسها رو انجام میده.
5. صفحهی لاگین نمایش داده میشه و سیستم آمادهی استفادهست!
#️⃣ #linux #boot #kernel
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
Forwarded from Python Hints
آتیش شادی جشن ایرانیها
شب گذشته خیلیها رو سوزوند.
لذت میبرم مردمم رو شاد میبینم ♥️
شب گذشته خیلیها رو سوزوند.
لذت میبرم مردمم رو شاد میبینم ♥️
Forwarded from omid trade 360
به طور متوسط، یک مهندس سنیور نرمافزار ۳ تا ۵ برابر بیشتر از یک جونیور درآمد داره. این فقط به خاطر تجربه بیشتر نیست، بلکه به دلیل ارزش بیشتری هست که به شرکت میاره.
حالا فرض کنید دو مهندس تو یه شرکت کار میکنند:
مهندس A (سختکوش)
- روزی 10 ساعت کار میکنه، باگهارو را درست میکنه و هزاران خط کد مینویسه.
- تمام وظایف محول شده رو بدون فکر کردن به تأثیرشون انجام میده.
- و یه جورایی در چرخهی "کار زیاد، پیشرفت کم" گیر کرده.
مهندس B (موثر)
- قبل از نوشتن حتی یک خط کد، وقت میگذاره تا مشکل اصلی رو بفهمه.
- میتونه یه مشکل بزرگ تو سیستم پیدا کنه و با یک اسکریپت 500 خطی، سالانه ۵۰ تا ۷۰ میلیون تو هزینههای شرکت صرفهجویی کنه.
- ورکفلو رو بهتر میکنه تا سیستم سریعتر، بهینهتر و مقیاسپذیر بشه.
حالا وقتی زمان ترفیع برسه به نظرت شرکت کدوم رو بیشتر میخواد؟
انصاف هست مهندس A که مشغول بوده صرفا و تسکهارو انجام میداده و ارزش و تاثیر کمتری تو شرکت میذاره بیشتر ترفیع بگیره؟ خوب نه (نه اینکه نگیره، اینه که بیشتر یا کمتر بگیره)
پس کار ما مساوی هست با تأثیری که میگذاریم
چند تا نکته در نهایت
- مشکلات را حل کن، نه اینکه فقط کارارو را انجام بده
- قبل از شروع کدنویسی، بپرس: این چرا مهمه؟
- روی مشکلات بزرگ، بهینهسازی و اتومیشن کار کن که ارزش واقعی میسازه.
-فراتر از کدنویسی فکر کن
- یک سنیور نصفش مشکلگشا و نصفش برنامهریزه.
- یک سنیور سیستمها را طراحی میکنه، پیچیدگی رو کم میکنه و تصمیمهای بهتر میگیره، نه فقط کد بزنه.
- بفهم کارت چطور به شرکت کمک میکنه
- یادت باشه یک اسکریپت 200 خطی که پول صرفهجویی کنه، از یک ویژگی 10,000 خطی که کسی استفاده نکنه باارزشتره.
- بهترین مهندسها فقط کد نمینویسن، سیستمها محصولات و کارایی رو بهتر میکنن.
- هدف این نیست که کد بیشتری بنویسی، هدف اینه که ارزش بیشتری بسازی.
پس (در یک شرکت یا تیم سالم) ارزش بیشتری بسازی، پاداش بیشتری میگیری.
<Saman/>
➖➖➖➖➖➖➖➖
https://t.iss.one/addlist/KpzXaiSpKENkMGM0
حالا فرض کنید دو مهندس تو یه شرکت کار میکنند:
مهندس A (سختکوش)
- روزی 10 ساعت کار میکنه، باگهارو را درست میکنه و هزاران خط کد مینویسه.
- تمام وظایف محول شده رو بدون فکر کردن به تأثیرشون انجام میده.
- و یه جورایی در چرخهی "کار زیاد، پیشرفت کم" گیر کرده.
مهندس B (موثر)
- قبل از نوشتن حتی یک خط کد، وقت میگذاره تا مشکل اصلی رو بفهمه.
- میتونه یه مشکل بزرگ تو سیستم پیدا کنه و با یک اسکریپت 500 خطی، سالانه ۵۰ تا ۷۰ میلیون تو هزینههای شرکت صرفهجویی کنه.
- ورکفلو رو بهتر میکنه تا سیستم سریعتر، بهینهتر و مقیاسپذیر بشه.
حالا وقتی زمان ترفیع برسه به نظرت شرکت کدوم رو بیشتر میخواد؟
انصاف هست مهندس A که مشغول بوده صرفا و تسکهارو انجام میداده و ارزش و تاثیر کمتری تو شرکت میذاره بیشتر ترفیع بگیره؟ خوب نه (نه اینکه نگیره، اینه که بیشتر یا کمتر بگیره)
پس کار ما مساوی هست با تأثیری که میگذاریم
چند تا نکته در نهایت
- مشکلات را حل کن، نه اینکه فقط کارارو را انجام بده
- قبل از شروع کدنویسی، بپرس: این چرا مهمه؟
- روی مشکلات بزرگ، بهینهسازی و اتومیشن کار کن که ارزش واقعی میسازه.
-فراتر از کدنویسی فکر کن
- یک سنیور نصفش مشکلگشا و نصفش برنامهریزه.
- یک سنیور سیستمها را طراحی میکنه، پیچیدگی رو کم میکنه و تصمیمهای بهتر میگیره، نه فقط کد بزنه.
- بفهم کارت چطور به شرکت کمک میکنه
- یادت باشه یک اسکریپت 200 خطی که پول صرفهجویی کنه، از یک ویژگی 10,000 خطی که کسی استفاده نکنه باارزشتره.
- بهترین مهندسها فقط کد نمینویسن، سیستمها محصولات و کارایی رو بهتر میکنن.
- هدف این نیست که کد بیشتری بنویسی، هدف اینه که ارزش بیشتری بسازی.
پس (در یک شرکت یا تیم سالم) ارزش بیشتری بسازی، پاداش بیشتری میگیری.
<Saman/>
➖➖➖➖➖➖➖➖
https://t.iss.one/addlist/KpzXaiSpKENkMGM0
Forwarded from FullstacksJS — Academy
ریویو پروژه NextJS
توی این جلسه یک پروژه تو این جلسه یک پروژه NextJS رو با هم ریویو میکنیم.
مشاهده ویدئو
درباره ماب ریویو:
ماب ریویو یه رویداد دوستانه و خودمونی برای انتقال تجربه دانشه.
توی این رویداد دور هم جمع میشیم تا یک سورس کد رو با هم ریویو کنیم و درباره پرکتیسهای بهتر و دلایلش صحبت کنیم.
مباحث:
00:00 درباره ماب ریویو
01:30 خواهش دومم
02:40 درباره پروژه
03:37 وابستگی ها
05:33 مسئله Dead Code و Zombie Code ها
10:10 سلامتی وابستگی ها
11:46 کدهایی که مردن رو پاک کنید!
15:22 چطوری یک خط خالی توی کد روی استخدام شدن شما تاثیر میذاره؟
31:30 اضافه کردن فرمتر و لینتر
33:03 از public چیزی ایمپورت نکنید
34:47 کی و چطوری باید کامپوننتمون رو بشکنیم؟
42:35 مسئله useless fragment
43:51 یکپارچگی پیاده سازی و اسم گذاری
45:15 مسئله layout
48:04 مسئله اسم گذاری
53:46 بررسی کامپوننت Banner
55:11 چرا نباید از z-index و overflow زیاد استفاده کنید
55:54 تعداد خطهای کامپوننت Code Smell حساب میشه.
57:42 نحوده درست مدیریت z-index
59:51 اصل Single Responsibility تو فرانت اند
01:02:52 چه چیزهایی رو نباید توی کامپوننت برد؟
1:08:55 درک مسئله Spacing
1:11:07 پیاده سازی درست تم dark و light با taildinw
1:16:23 انکپسوله کردن مسئولیت های کامپوننت ها
1:20:07 کی از margin استفاده کنیم کی از padding
1:22:00 از grid و flex تو در تو استفاده نکنید.
1:27:34 به CSS فحش ندیم
1:28:32 فرق بین space و gap توی tailwind
1:30:25 جمع بندی
#fullstacksjs #mobreview #css #react #typescript #nextjs
توی این جلسه یک پروژه تو این جلسه یک پروژه NextJS رو با هم ریویو میکنیم.
مشاهده ویدئو
درباره ماب ریویو:
ماب ریویو یه رویداد دوستانه و خودمونی برای انتقال تجربه دانشه.
توی این رویداد دور هم جمع میشیم تا یک سورس کد رو با هم ریویو کنیم و درباره پرکتیسهای بهتر و دلایلش صحبت کنیم.
مباحث:
00:00 درباره ماب ریویو
01:30 خواهش دومم
02:40 درباره پروژه
03:37 وابستگی ها
05:33 مسئله Dead Code و Zombie Code ها
10:10 سلامتی وابستگی ها
11:46 کدهایی که مردن رو پاک کنید!
15:22 چطوری یک خط خالی توی کد روی استخدام شدن شما تاثیر میذاره؟
31:30 اضافه کردن فرمتر و لینتر
33:03 از public چیزی ایمپورت نکنید
34:47 کی و چطوری باید کامپوننتمون رو بشکنیم؟
42:35 مسئله useless fragment
43:51 یکپارچگی پیاده سازی و اسم گذاری
45:15 مسئله layout
48:04 مسئله اسم گذاری
53:46 بررسی کامپوننت Banner
55:11 چرا نباید از z-index و overflow زیاد استفاده کنید
55:54 تعداد خطهای کامپوننت Code Smell حساب میشه.
57:42 نحوده درست مدیریت z-index
59:51 اصل Single Responsibility تو فرانت اند
01:02:52 چه چیزهایی رو نباید توی کامپوننت برد؟
1:08:55 درک مسئله Spacing
1:11:07 پیاده سازی درست تم dark و light با taildinw
1:16:23 انکپسوله کردن مسئولیت های کامپوننت ها
1:20:07 کی از margin استفاده کنیم کی از padding
1:22:00 از grid و flex تو در تو استفاده نکنید.
1:27:34 به CSS فحش ندیم
1:28:32 فرق بین space و gap توی tailwind
1:30:25 جمع بندی
#fullstacksjs #mobreview #css #react #typescript #nextjs
YouTube
MobReview 6: بررسی کد ریاکت و نکست جی اس
توی این جلسه یک پروژه تو این جلسه یک پروژه NextJS رو با هم ریویو میکنیم.
مباحث:
00:00 درباره ماب ریویو
01:30 خواهش دومم
02:40 درباره پروژه
03:37 وابستگی ها
05:33 مسئله Dead Code و Zombie Code ها
10:10 سلامتی وابستگی ها
11:46 کدهایی که مردن رو پاک کنید!…
مباحث:
00:00 درباره ماب ریویو
01:30 خواهش دومم
02:40 درباره پروژه
03:37 وابستگی ها
05:33 مسئله Dead Code و Zombie Code ها
10:10 سلامتی وابستگی ها
11:46 کدهایی که مردن رو پاک کنید!…
Forwarded from محتوای آزاد سهراب
کانال اطلاعرسانی توزیع پارچ
سال جدید، پارچ جدید! 🥤 کمکم به ۱۴۰۴ نزدیک میشیم و ما توی تیم پارچ لینوکس در حال کار روی یه تحول بزرگ هستیم. علاوه بر بهینهسازیهای فنی، داریم روی هویت بصری جدید پارچ کار میکنیم تا ظاهر و تجربهی کاربریش مدرنتر و حرفهایتر بشه. این تغییرات از لوگو…
بالاخره هویت بصری رو استارت زدیم، چرا مهمه؟
خب این کتابچه هویت بصری تعیین میکنه که طرحهایی که برای پارچ ساخته میشن چه ساختاری رو داشته باشن، چه فونتی داخلشون باید استفاده بشه و همینطور اگر از لوگوی پارچ داخل طرحی بخواد استفاده بشه چه شرایطی داشته باشه که بهترین ظاهر رو به خودش بگیره.
از همه مهمتر اینکه خود برنامههایی که برای پارچ نوشته میشن دستخوش تغییرات میشن، توی ۱۴۰۴ سعی داریم تا پارچ رو چشمنواز تر از همیشه بکنیم.
@SohrabContents
خب این کتابچه هویت بصری تعیین میکنه که طرحهایی که برای پارچ ساخته میشن چه ساختاری رو داشته باشن، چه فونتی داخلشون باید استفاده بشه و همینطور اگر از لوگوی پارچ داخل طرحی بخواد استفاده بشه چه شرایطی داشته باشه که بهترین ظاهر رو به خودش بگیره.
از همه مهمتر اینکه خود برنامههایی که برای پارچ نوشته میشن دستخوش تغییرات میشن، توی ۱۴۰۴ سعی داریم تا پارچ رو چشمنواز تر از همیشه بکنیم.
@SohrabContents
Forwarded from کانال مهرداد لینوکس
✅لینوکس Linux 6.15 از The Airoha NPU که یک A RISC-V Network Processor Unit پشتیبانی میکنه
💠واحد پردازش شبکه (NPU) شرکت Airoha، با نام Xessor، یک پردازنده ۸ هستهای مبتنی بر معماری RISC-V است برای پردازش وظایف شبکه و تسریع Wi-Fi طراحی شده
🔥 این NPU به طور قابل توجهی بار کاری CPU را کاهش داده و مصرف انرژی سیستم را بهبود میبخشد. در نتیجه، مصرف انرژی کلی NPU هشت هستهای کمتر از یک CPU تک هستهای معمولی است
🔥 معماری Xessor به گونهای طراحی شده که تقریباً تمام وظایف پردازش شبکه را مدیریت میکند، بنابراین منابع CPU برای اجرای خدمات و برنامههای ارزش افزوده ارائهدهندگان خدمات آزاد میماند. همچنین، در صورت بارگذاری کامل CPU، NPU میتواند منابع جایگزین را برای حفظ سرعت و عملکرد روان سیستم فراهم کند
این معماری در سیستم روی تراشه (SoC) AN7581 شرکت Airoha به کار رفته است که از ترکیب CPU، NPU و یک شتابدهنده بسته هوشمند (SPA) بهره میبرد. این ترکیب، AN7581 را به اولین SoC در جهان تبدیل کرده که میتواند WAN، WLAN و LAN را با یک تراشه پشتیبانی کند و به سرعتهای بالای Wi-Fi 7 دست یابد.
#hardware #linux
💠واحد پردازش شبکه (NPU) شرکت Airoha، با نام Xessor، یک پردازنده ۸ هستهای مبتنی بر معماری RISC-V است برای پردازش وظایف شبکه و تسریع Wi-Fi طراحی شده
🔥 این NPU به طور قابل توجهی بار کاری CPU را کاهش داده و مصرف انرژی سیستم را بهبود میبخشد. در نتیجه، مصرف انرژی کلی NPU هشت هستهای کمتر از یک CPU تک هستهای معمولی است
🔥 معماری Xessor به گونهای طراحی شده که تقریباً تمام وظایف پردازش شبکه را مدیریت میکند، بنابراین منابع CPU برای اجرای خدمات و برنامههای ارزش افزوده ارائهدهندگان خدمات آزاد میماند. همچنین، در صورت بارگذاری کامل CPU، NPU میتواند منابع جایگزین را برای حفظ سرعت و عملکرد روان سیستم فراهم کند
این معماری در سیستم روی تراشه (SoC) AN7581 شرکت Airoha به کار رفته است که از ترکیب CPU، NPU و یک شتابدهنده بسته هوشمند (SPA) بهره میبرد. این ترکیب، AN7581 را به اولین SoC در جهان تبدیل کرده که میتواند WAN، WLAN و LAN را با یک تراشه پشتیبانی کند و به سرعتهای بالای Wi-Fi 7 دست یابد.
#hardware #linux
Forwarded from دستاوردهای یادگیری عمیق(InTec)
این دستگاه که میبینید اسمش
برای سال جدید، با شرکتی در ایران صحیت میکردیم روی یک سری کارهای هوش مصنوعی؛ که خب تصمیم گرفته بودند دوتا دستگاه با حداقل 96GB گرافیک تهیه کنند و نگرانی سرمایه گذاری و نشدن و ... داشتند.
یک همچین کانفیگی اگر بخواد بروز هم باشه برای هر سیستم حدوداً
تنها چیزی که کم داره البته فقط Memory Bandwith هست که ای کاش بالای 400GB بود ولی همین هم عالی هست (برای 90٪ البته فرقی هم نمیکنه)
با قیمت ۲تای این دستگاه؛ میشد یکی ازون سیستمها تهیه کرد فقط.
کاملاً هم قابل حمل هست.
https://www.nvidia.com/en-us/products/workstations/dgx-spark/
DGX Spark هست؛ جواب شرکت Nvidia به Framework, Apple Studio پیش فروش شروع شده با قیمتی حدوداً 3500 یورو.برای سال جدید، با شرکتی در ایران صحیت میکردیم روی یک سری کارهای هوش مصنوعی؛ که خب تصمیم گرفته بودند دوتا دستگاه با حداقل 96GB گرافیک تهیه کنند و نگرانی سرمایه گذاری و نشدن و ... داشتند.
یک همچین کانفیگی اگر بخواد بروز هم باشه برای هر سیستم حدوداً
8000$ درمیاد؛ که شخصاً با کمی جستجو پیشنهاد این دستگاه رو دادم.تنها چیزی که کم داره البته فقط Memory Bandwith هست که ای کاش بالای 400GB بود ولی همین هم عالی هست (برای 90٪ البته فرقی هم نمیکنه)
با قیمت ۲تای این دستگاه؛ میشد یکی ازون سیستمها تهیه کرد فقط.
کاملاً هم قابل حمل هست.
https://www.nvidia.com/en-us/products/workstations/dgx-spark/
Forwarded from Gopher Academy
🔵 عنوان مقاله
TypeScript's Compiler to Get 10x Faster, Thanks to Go
🟢 خلاصه مقاله:
در سالهای اخیر، TypeScript با استفاده از تایپ قوی (نوعبندی قوی که به کمک آن نوع متغیرها قبل از اجرای کد مشخص میشود) و ساختار افزوده، اکوسیستم JavaScript را به شدت تکان داده است. هرچند که کامپایلر (برنامهای که کد منبع را به کد ماشین تبدیل میکند) TypeScript به طور خاص سریع نیست، اما تیم TypeScript در مایکروسافت با انتقال آن به Go این مشکل را حل میکند!
🟣لینک مقاله:
https://golangweekly.com/link/166805/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
TypeScript's Compiler to Get 10x Faster, Thanks to Go
🟢 خلاصه مقاله:
در سالهای اخیر، TypeScript با استفاده از تایپ قوی (نوعبندی قوی که به کمک آن نوع متغیرها قبل از اجرای کد مشخص میشود) و ساختار افزوده، اکوسیستم JavaScript را به شدت تکان داده است. هرچند که کامپایلر (برنامهای که کد منبع را به کد ماشین تبدیل میکند) TypeScript به طور خاص سریع نیست، اما تیم TypeScript در مایکروسافت با انتقال آن به Go این مشکل را حل میکند!
🟣لینک مقاله:
https://golangweekly.com/link/166805/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Microsoft News
A 10x Faster TypeScript
Embarking on a native port of the existing TypeScript compiler and toolset to achieve a 10x performance speed-up.
Forwarded from Geek Alerts
فقط ۴ روز برای آپدیت فایرفاکس فرصت داری وگرنه همهچی خراب میشه! 🔴
اگه از فایرفاکس استفاده میکنی، بدو که فقط ۴ روز وقت داری آپدیتش کنی! یه گواهینامه ریشه (root certificate) مهم که برای تایید محتوا و افزونهها استفاده میشده، تاریخ انقضاش تموم شده و اگه به نسخه ۱۲۸ یا بالاتر آپدیت نکنی، فاتحه همه چی خوندهست. فرقی هم نمیکنه لینوکس، مک، ویندوز، اندروید یا iOS باشی، همهتون باید آپدیت کنید!
اگه آپدیت نکنی، همه قابلیتهایی که به آپدیت از راه دور وابسته هستن از کار میافتن، افزونههات غیرفعال میشن و محتوای DRM دار هم دیگه پخش نمیشه. حتی ممکنه سیستمهایی که به تایید محتوا نیاز دارن هم درست کار نکنن. پس دست بجنبون و برو توی تنظیمات فایرفاکس ببین چه نسخهای داری و اگه پایینتر از ۱۲۸ بود، سریع آپدیتش کن که بعداً پشیمون نشی.
در تاریخ ۲۸ اسفند ۱۴۰۳ • ساعت ۱۹:۵۲ • ۱۸ مارس ۲۰۲۵
zdnet
@alertsai
اگه از فایرفاکس استفاده میکنی، بدو که فقط ۴ روز وقت داری آپدیتش کنی! یه گواهینامه ریشه (root certificate) مهم که برای تایید محتوا و افزونهها استفاده میشده، تاریخ انقضاش تموم شده و اگه به نسخه ۱۲۸ یا بالاتر آپدیت نکنی، فاتحه همه چی خوندهست. فرقی هم نمیکنه لینوکس، مک، ویندوز، اندروید یا iOS باشی، همهتون باید آپدیت کنید!
اگه آپدیت نکنی، همه قابلیتهایی که به آپدیت از راه دور وابسته هستن از کار میافتن، افزونههات غیرفعال میشن و محتوای DRM دار هم دیگه پخش نمیشه. حتی ممکنه سیستمهایی که به تایید محتوا نیاز دارن هم درست کار نکنن. پس دست بجنبون و برو توی تنظیمات فایرفاکس ببین چه نسخهای داری و اگه پایینتر از ۱۲۸ بود، سریع آپدیتش کن که بعداً پشیمون نشی.
در تاریخ ۲۸ اسفند ۱۴۰۳ • ساعت ۱۹:۵۲ • ۱۸ مارس ۲۰۲۵
zdnet
@alertsai
Forwarded from DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
یک مدل جدید multimodal اومده به اسم SmolDocling که خیلی عالیه! خیلی کوچکه (ultra-compact vision-language model) و فقط با ۲۵۶ میلیون پارامتر دقتش در تبدیل داکیومنت به متن و استخراج اطلاعات واقعا بالاست. از OCR تا تشخیص کد و فرمولها و ... به کار میاد. راحت روی کامپیوتر نصب میشه و سرعتش هم خیلی بالاست. برای انواع کارها از جمله در workflow های agentic خیلی به درد میخوره.
HF: https://huggingface.co/ds4sd/SmolDocling-256M-preview
Paper: https://arxiv.org/pdf/2503.11576
@DevTwitter | <Mehdi Allahyari/>
HF: https://huggingface.co/ds4sd/SmolDocling-256M-preview
Paper: https://arxiv.org/pdf/2503.11576
@DevTwitter | <Mehdi Allahyari/>
Forwarded from Laravel News
Using Laravel's fluent Method for HTTP Response Transformations https://laravel-news.com/fluent-http-response-transformations
Laravel News
Using Laravel's fluent Method for HTTP Response Transformations - Laravel News
Streamline external API interactions in your Laravel applications with the HTTP Client's fluent() method. This approach brings type-safe data access to your integrations while reducing data parsing complexity.
Forwarded from Geek Alerts
اگه نسخه مرورگر فایرفاکس شما زیر ۱۲۹ باشه فقط ۴ روز زمان دارید تا آپدیتش کنید، تو نسخههای قدیمی یه گواهینامه روت بوده برای تایید محتوا و افزونهها که این تاریخ انقضاش تموم شده، فرقی نداره نسخه فایرفاکس شما چی باشه، زمانش که تموم بشه بخشی از اکستنشنها یا سایتها دیگه کار نمیکنن.
البته مرورگر یکی از برنامههایی هست که همیشه باید اپدیت نگهش دارید چون مستقیم با امنیت دستگاهتون مرتبط هست.
🔗 zdnet
🤓 @geekalerts
البته مرورگر یکی از برنامههایی هست که همیشه باید اپدیت نگهش دارید چون مستقیم با امنیت دستگاهتون مرتبط هست.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Md Daily (Mahan)
چیزی که ما میخواستیم تو یکی از فایل های .js به دو صورت زیر مخفی شده بود.
"client_id=f1TFyuaI8LX1Ybd1zvQRX8GpsNYcQ3Y5"
client_id:"f1TFyuaI8LX1Ybd1zvQRX8GpsNYcQ3Y5"
حالا وقتش بود که این فرایند رو اتوماتیک کنم. عید وقت خوبیه که اگه هنوز regex بلد نیستید، یاد بگیرید (وبسایت https://regexlearn.com/ و ریپو ی https://github.com/ziishaned/learn-regex که ترجمه فارسی هم داره و در نهایت ویدیوی https://www.youtube.com/watch?v=sXQxhojSdZM منابع خوبی برای یادگیری هستن).
سناریو ساده بود یه کد go بنویسم که بره محتوای soundcloud.com رو بگیره لینک های .js رو ازش استخراج کرده و شروع کنه توی فایل های جاوا اسکریپت با regex دنبال پترن client_id بگرده. می تونید کد رو از اینجا ببینید:
https://gist.github.com/mdpe-ir/709c3ca362fa0c2a30fa71e46ddd1f96
ولی بریم برای توضیح بخش های مهمش:
func fetchHTML(url string) (string, error) {
resp, err := http.Get(url)
if err != nil {
return "", fmt.Errorf("error fetching URL %s: %v", url, err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
return string(body), nil
}این تابع یه درخواست HTTP GET به آدرس https://soundcloud.com/ میفرسته و کل محتوای HTML صفحه رو برمیگردونه.
نکته: اینجا defer resp.Body.Close() باعث میشه بعد از تموم شدن کار، اتصال بسته بشه تا منابع سیستم آزاد بشه.
این تابع HTML رو پارس میکنه و همه تگهای <script> رو پیدا میکنه. دو نوع جاوااسکریپت رو جدا میکنه: لینکهای خارجی (با src) و کدهای داخلی (inline).
از پکیج golang.org/x/net/html برای پارس کردن HTML استفاده میکنه. لینکهای نسبی رو با resolveURL به آدرس کامل تبدیل میکنه و فقط فایلهایی که به .js ختم میشن رو نگه میداره.
برای هر لینک .js که پیدا شده، یه درخواست HTTP میفرسته و محتوای فایل رو میگیره.
پکیج regexp استفاده میکنه. دو الگو رو چک میکنه
برای فرمت پارامتری:
client_id=([A-Za-z0-9]{32})برای فرمت object مانند:
client_id\s*:\s*["']([A-Za-z0-9]{32})["']نکته: [A-Za-z0-9]{32} یعنی دنبال یه رشته ۳۲ کاراکتری از حروف و اعداد میگرده.
جمعبندی و نمایش نتیجه (main)
همه مراحل رو اجرا میکنه، client_idها رو جمع میکنه، تکراریها رو حذف میکنه و چاپ میکنه.
توی تست هام متوجه شدم که هر client id حدودا ۷ روز معتبره. میشه یه cron job نوشت که طی یه مدت مشخص اجرا بشه و client id رو اپدیت کنه.
بعد از اینکه client_id رو پیدا کردیم، حالا میتونیم با استفاده ازش به APIهای SoundCloud درخواست بزنیم. برای این کار، من تصمیم گرفتم یه درخواست به endpoint سرچ بزنم تا یه خواننده پیدا کنم و بعد برم لیست موزیکهاش رو بگیرم. بیایم اینو قدم به قدم پیاده کنیم.
یه API داره که میتونیم با استفاده ازش یه خواننده رو جستجو کنیم. طبق درخواستها تو Burp Suite یه endpoint سرچ چیزی شبیه اینه:
برای جستو در کاربران:
GET https://api-v2.soundcloud.com/search/users?q={query}&client_id={client_id}برای جستجوی کلی :
GET https://api-v2.soundcloud.com/search?q={query}&client_id={client_id}حالا فقط کافی بود برای گرفتن لیست موزیک های خواننده :
GET https://api-v2.soundcloud.com/users/{user_id}/tracks?client_id={client_id}به عنوان مثال این اندپوینت لیست موزیک های Safir رو بر میگردونه:
https://api-v2.soundcloud.com/users/1016216608/tracks?client_id=f1TFyuaI8LX1Ybd1zvQRX8GpsNYcQ3Y5
حالا که این کار رو کردیم، میتونیم کلاینت رو گسترش بدیم، مثلاً یه رابط کاربری ساده باهاش بسازیم یا قابلیت دانلود ترکها رو اضافه کنیم:)
---
مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Laravel News
React Theme Provider: A Walkthrough https://laravel-news.com/react-theme-provider-a-walkthrough
Laravel News
React Theme Provider: A Walkthrough - Laravel News
In this tutorial, let's look at customizing the react starter kit