اگر توی پروژه React js و یا Next js از کتابخانه framer motion استفاده میکنید این پست میتونه براتون خیلی مفید باشه!
سایت aceternity UI با استفاده از framer motion کلی انیمیشن های خفن و کاربری توی زمینه و قسمت های مختلف توسعه دادن که میتونید ببینید و اگر دوست داشتید کدش رو مستقیم کپی و استفاده کنید.
پیشنهاد میکنم حتما به سایتش سر بزنید!!!
https://ui.aceternity.com
@DevTwitter | <Mohammad Reza Moradi/>
سایت aceternity UI با استفاده از framer motion کلی انیمیشن های خفن و کاربری توی زمینه و قسمت های مختلف توسعه دادن که میتونید ببینید و اگر دوست داشتید کدش رو مستقیم کپی و استفاده کنید.
پیشنهاد میکنم حتما به سایتش سر بزنید!!!
https://ui.aceternity.com
@DevTwitter | <Mohammad Reza Moradi/>
👍32🔥10❤4
چند وقت پیش با یکی از دوستام که برنامه نویس یه فروشگاه اینترنتی بزرگه، حرف میزدم. سایتشون یه وردپرس سنگین بود که ترافیکش از یه حدی که رد شد، شروع کرد به کند شدن و داون شدنهای پشت سر هم. مشکل چی بود؟ مثل همیشه، MySQL به گلوگاه تبدیل شده بود.
یه دوستی بهشون گفته بود که راهش واضحه، Read/Write Splitting. دیتابیس رو Replica بزنید، Readها رو بفرستید روی Replica و Writeها روی Primary، فشار کم میشه، مشکل حله!
من خندیدم گفتم: این روی کاغذ جواب میده، ولی توی یه فروشگاه واقعی به درد نمیخوره. فرض کن یه مشتری یه محصول رو میخره، ولی چون Replica هنوز Sync نشده، توی صفحه محصول هنوز موجود نشون داده میشه. بعد یکی دیگه میاد، خرید میکنه، و یهویی دوتا سفارش برای یه محصولی که فقط یکی ازش مونده ثبت میشه. حالا میخای چیکار کنی؟
پرسید پس چیکار کنیم؟
سه تا راه به ذهنم میرسید برای بهینه کردن.
اول کوئری های سنگین مثل لود محصولات رو redis cache کن، دیتابیس یکم نفس بکشه
دوم شاردینگ رو امتحان کن. جدول های ووکامرس رو روی یه دیتابیس دیگه ببر ببین فرقی میکنه یا نه
۳ اینکه چرا سبد خرید کاربرات رو توی دیتابیس نگه میداری؟ ببرشون روی ردیس
نمیدونم مشکلشون برطرف شد یا نه
ولی تجربه ثابت کرده وردپرس بالای دوهزار تا پست، دردسرش بیشتره تا منفعتش.
همین که بیزینستون بزرگ شد، به مهاجرت از وردپرس اقدام کنید,
@DevTwitter | <Mohammad Haquqatkhah/>
یه دوستی بهشون گفته بود که راهش واضحه، Read/Write Splitting. دیتابیس رو Replica بزنید، Readها رو بفرستید روی Replica و Writeها روی Primary، فشار کم میشه، مشکل حله!
من خندیدم گفتم: این روی کاغذ جواب میده، ولی توی یه فروشگاه واقعی به درد نمیخوره. فرض کن یه مشتری یه محصول رو میخره، ولی چون Replica هنوز Sync نشده، توی صفحه محصول هنوز موجود نشون داده میشه. بعد یکی دیگه میاد، خرید میکنه، و یهویی دوتا سفارش برای یه محصولی که فقط یکی ازش مونده ثبت میشه. حالا میخای چیکار کنی؟
پرسید پس چیکار کنیم؟
سه تا راه به ذهنم میرسید برای بهینه کردن.
اول کوئری های سنگین مثل لود محصولات رو redis cache کن، دیتابیس یکم نفس بکشه
دوم شاردینگ رو امتحان کن. جدول های ووکامرس رو روی یه دیتابیس دیگه ببر ببین فرقی میکنه یا نه
۳ اینکه چرا سبد خرید کاربرات رو توی دیتابیس نگه میداری؟ ببرشون روی ردیس
نمیدونم مشکلشون برطرف شد یا نه
ولی تجربه ثابت کرده وردپرس بالای دوهزار تا پست، دردسرش بیشتره تا منفعتش.
همین که بیزینستون بزرگ شد، به مهاجرت از وردپرس اقدام کنید,
@DevTwitter | <Mohammad Haquqatkhah/>
1👍131👎12
لاراول نایتواچ - Laravel Nightwatch
تیلور آتوِل عزیز این ابزار خفنُ برای نظارت بر اپهای لاراولی ساخته که بهت کمک میکنه همیشه حواست به عملکرد و سلامت سیستمت باشه ولی هنوز ریلیز نشده. از درخواستها و لاگها گرفته تا ارورها و مسیرهای کند، همه رو زیر نظر داره و سریع بهت هشدار میده. دیگه Telescope و Pulse رو بنداز دور
https://www.youtube.com/watch?v=-fJnnAm1qBs
@DevTwitter | <Vahid Kaargar/>
تیلور آتوِل عزیز این ابزار خفنُ برای نظارت بر اپهای لاراولی ساخته که بهت کمک میکنه همیشه حواست به عملکرد و سلامت سیستمت باشه ولی هنوز ریلیز نشده. از درخواستها و لاگها گرفته تا ارورها و مسیرهای کند، همه رو زیر نظر داره و سریع بهت هشدار میده. دیگه Telescope و Pulse رو بنداز دور
https://www.youtube.com/watch?v=-fJnnAm1qBs
@DevTwitter | <Vahid Kaargar/>
👍35❤3👎2
🔥30👍9👎2
یه اشتباهی که خیلی ها می کنند اینه که فکر می کنند که Typenoscript یه زبان در مقابل جاوا اسکریپته
مثلا پایتون یه زبانه و جاوا یه زبان دیگه هست و شما تصمیم میگیری که کدت رو به زبان پایتون یا جاوا بزنی
اما رابطه تایپ اسکریپت و جاوااسکریپت به این شکل نیست
یعنی تایپ اسکریپت یه زبان جداگانه و جدید نیست که اومده باشه جاوا اسکریپت رو جایگزین کنه
بلکه تایپ اسکریپت همراه جاوا اسکریپته تا تایپ ها استاتیک باشند و خطا های زمان اجرا به زمان کامپایل بیاد و همینطور دولوپر ها تجربه بهتری هنگام کد زدن داشته باشند و بعد از کامپایل(ترنسپایل) کل کد تایپ اسکریپت به جاوا اسکریپت تبدیل میشه.
یعنی این دو تا زبان همراه هم خواهند بود.
(تا اینکه روزی browser ها به صورت native از تایپ اسکریپت پشتیبانی کنند)
البته تو بک اند deno و bun به صورت native می تونن typenoscript رو اجرا کنن که این خیلی خبر خوبیه
@DevTwitter | <Pouria Jahandideh/>
مثلا پایتون یه زبانه و جاوا یه زبان دیگه هست و شما تصمیم میگیری که کدت رو به زبان پایتون یا جاوا بزنی
اما رابطه تایپ اسکریپت و جاوااسکریپت به این شکل نیست
یعنی تایپ اسکریپت یه زبان جداگانه و جدید نیست که اومده باشه جاوا اسکریپت رو جایگزین کنه
بلکه تایپ اسکریپت همراه جاوا اسکریپته تا تایپ ها استاتیک باشند و خطا های زمان اجرا به زمان کامپایل بیاد و همینطور دولوپر ها تجربه بهتری هنگام کد زدن داشته باشند و بعد از کامپایل(ترنسپایل) کل کد تایپ اسکریپت به جاوا اسکریپت تبدیل میشه.
یعنی این دو تا زبان همراه هم خواهند بود.
(تا اینکه روزی browser ها به صورت native از تایپ اسکریپت پشتیبانی کنند)
البته تو بک اند deno و bun به صورت native می تونن typenoscript رو اجرا کنن که این خیلی خبر خوبیه
@DevTwitter | <Pouria Jahandideh/>
👍76🔥8❤6
Media is too big
VIEW IN TELEGRAM
یک پروژه دیدم امروز روی گیتهاب که یک AI Agent بود که از طریق Whatsapp میتونستی باهاش صحبت کنید. فقط شلوغش کرده بود. فکر کردم یک پروژه مشابه درست کنم با تلگرام. این ویدیوی دمو هست (صدا هم داره قسمتی که ایجنت صحبت میکنه).
فعلا میتونید باهاش چت کنید، عکس generate میکنه و همچین متن به صدا. برای متن به صدا از Kodoro استفاده کردم و کاملا هم لوکال هست . برای عکس هم میشه از Dalle و هم از یک کمپانی/api دیگه به اسم Novita استفاده کنید.
اسم این agent را گذاشتم Nova. بیشتر از ۲ ساعت وقت نذاشتم و هنوز خیلی کار داره تا یک agent کامل بشه. ولی هسته کد آماده است. حتا readme هم کامل نیست. ولی میتونید متوجه بشید و استفاده کنید. pull request بدید اگه دوست داشتید.
Github: https://github.com/mallahyari/nova-assistant
@DevTwitter | <Mehdi Allahyari/>
فعلا میتونید باهاش چت کنید، عکس generate میکنه و همچین متن به صدا. برای متن به صدا از Kodoro استفاده کردم و کاملا هم لوکال هست . برای عکس هم میشه از Dalle و هم از یک کمپانی/api دیگه به اسم Novita استفاده کنید.
اسم این agent را گذاشتم Nova. بیشتر از ۲ ساعت وقت نذاشتم و هنوز خیلی کار داره تا یک agent کامل بشه. ولی هسته کد آماده است. حتا readme هم کامل نیست. ولی میتونید متوجه بشید و استفاده کنید. pull request بدید اگه دوست داشتید.
Github: https://github.com/mallahyari/nova-assistant
@DevTwitter | <Mehdi Allahyari/>
👍36👎4❤3
بچه ها اگه کسی علاقه داره به ترجمه داکیومنت فارسی Vite کمک کنه اینجا درحال توسعه هست و قبل از انتقال به org اصلی نیاز به بررسی داره.
- https://github.com/mostafa-nematpour/vite-docs-fa
- https://vite.liara.run
@DevTwitter | <پویا/>
- https://github.com/mostafa-nematpour/vite-docs-fa
- https://vite.liara.run
@DevTwitter | <پویا/>
👍37❤6👎6
روش درست برنامه نویسی Node.js
۱. برنامه نویسی رویداد محور و asynchronous
در برنامه نویسی node خیلی مهمه که به event loop توجه داشته باشیم و از callback ها و promise ها و async/await موثر استفاده کنیم.
نیازه که از callback hell دوری کنیم و جریان async رو مدیریت کنیم.
۲. استفاده از stream ها و پردازش داده real time
یکی از امکانات استفاده از stream ها هست که کمک داده ها را به صورت بهینه پردازش کنیم و مشکلات حافظه نداشته باشیم.
برای کار کردن با dataset های بزرگ استفاده از stream api خیلی کمک کننده است.
۳. مایکروسرویس ها و معماری Modular
به عنوان برنامه نویس بک اند خیلی خوبه که با modular monolith پروژمون رو شروع کنیم و کم کم تبدیل به microservice های مختلف بکنیم.
برای اینکار نیازه که به معماری های مایکروسرویس ها و همینطور الگو های data در آنها تسلط داشته باشیم.
۴. کار با دیتابیس ها
خیلی مهمه که بدونیم کجا از query استفاده کنیم، کجا query builder و کجا ORM
چطور data model رو برای query هایی که داریم بهینه کنیم و همینطور مطمئن بشیم که در query های زمانبر سیستم از index ها استفاده میشه.
مهمه که روش های مختلف کار با دیتابیس به صورت async رو بدونیم
۵. برنامه نویسی شبکه و TCP/UDP
برنامه نویسی فقط REST و WEB نیست و گاهی برای کاربرد های خاص از سوکت های خام TCP و UDP استفاده می کنیم تا پرفورمنس بالاتری داشته باشیم.
همینطور مهمه که بتونیم از WebSocket ها یا grpc یا http 2 برای پیاده سازی real time استفاده کنیم.
۶. تست نویسی و دیباگ کردن
شناخت ابزار تست نویسی یه بحثه، اینکه چه تست کیس هایی بنویسیم یه مهارته که طی زمان رشد پیدا می کنه.
علاوه بر این مهمه که بتونیم کد node رو دیباگ کنیم برای اینکار میتونیم از node inspector استفاده کنیم.
۷. دیپلوی و scale کردن
در نهایت نیازه که بتونیم کد های node رو به صورت scalable دیپلوی کنیم.
برای scalable بودن می توانیم از استراتژی هایی مانند clustering و load balancing استفاده کنیم.
۸. امنیت
همینطور مهمه که در پیاده سازی authentication از ایجاد آسیب پذیری ها امنیتی جلوگیری کنیم.
مهمه که حملات رایج مانند XSS و CSRF و نحوه جلوگیری را در عمل آنها را بشناسیم.
@DevTwitter | <Pouria Jahandideh/>
۱. برنامه نویسی رویداد محور و asynchronous
در برنامه نویسی node خیلی مهمه که به event loop توجه داشته باشیم و از callback ها و promise ها و async/await موثر استفاده کنیم.
نیازه که از callback hell دوری کنیم و جریان async رو مدیریت کنیم.
۲. استفاده از stream ها و پردازش داده real time
یکی از امکانات استفاده از stream ها هست که کمک داده ها را به صورت بهینه پردازش کنیم و مشکلات حافظه نداشته باشیم.
برای کار کردن با dataset های بزرگ استفاده از stream api خیلی کمک کننده است.
۳. مایکروسرویس ها و معماری Modular
به عنوان برنامه نویس بک اند خیلی خوبه که با modular monolith پروژمون رو شروع کنیم و کم کم تبدیل به microservice های مختلف بکنیم.
برای اینکار نیازه که به معماری های مایکروسرویس ها و همینطور الگو های data در آنها تسلط داشته باشیم.
۴. کار با دیتابیس ها
خیلی مهمه که بدونیم کجا از query استفاده کنیم، کجا query builder و کجا ORM
چطور data model رو برای query هایی که داریم بهینه کنیم و همینطور مطمئن بشیم که در query های زمانبر سیستم از index ها استفاده میشه.
مهمه که روش های مختلف کار با دیتابیس به صورت async رو بدونیم
۵. برنامه نویسی شبکه و TCP/UDP
برنامه نویسی فقط REST و WEB نیست و گاهی برای کاربرد های خاص از سوکت های خام TCP و UDP استفاده می کنیم تا پرفورمنس بالاتری داشته باشیم.
همینطور مهمه که بتونیم از WebSocket ها یا grpc یا http 2 برای پیاده سازی real time استفاده کنیم.
۶. تست نویسی و دیباگ کردن
شناخت ابزار تست نویسی یه بحثه، اینکه چه تست کیس هایی بنویسیم یه مهارته که طی زمان رشد پیدا می کنه.
علاوه بر این مهمه که بتونیم کد node رو دیباگ کنیم برای اینکار میتونیم از node inspector استفاده کنیم.
۷. دیپلوی و scale کردن
در نهایت نیازه که بتونیم کد های node رو به صورت scalable دیپلوی کنیم.
برای scalable بودن می توانیم از استراتژی هایی مانند clustering و load balancing استفاده کنیم.
۸. امنیت
همینطور مهمه که در پیاده سازی authentication از ایجاد آسیب پذیری ها امنیتی جلوگیری کنیم.
مهمه که حملات رایج مانند XSS و CSRF و نحوه جلوگیری را در عمل آنها را بشناسیم.
@DevTwitter | <Pouria Jahandideh/>
👍37❤4👎1🔥1
#کوته_نیوز
شبکه پرداخت
@DevTwitter
شبکه پرداخت
pay.ir تعطیل شد. مدیرعاملش گفته دهنمونو سرویس کردن سر اینترنت و بانک مرکزی هم سرورهامونو برد که روش سالاد درست کنه.@DevTwitter
👍65❤5🔥3👎1
بیا با یه ترفند خفن توی پی اچ پی آشنات کنم؟
خیلی جاها پیش میاد که میخوایم اعضای یک آرایه رو داخل متغیر قرار بدیم. توی تصویر زیر، به دو روش این کار انجام شده و نتیجه یکسان هست.
البته آرایه نباید indexed باشه.
@DevTwitter | <Pouya Farshidnia/>
خیلی جاها پیش میاد که میخوایم اعضای یک آرایه رو داخل متغیر قرار بدیم. توی تصویر زیر، به دو روش این کار انجام شده و نتیجه یکسان هست.
البته آرایه نباید indexed باشه.
@DevTwitter | <Pouya Farshidnia/>
👍45👎11🔥7
اگه تا حالا API زدی، حتماً به این فکر کردی که GraphQL بهتره یا REST؟ هرکدوم یه سری مزایا و معایب دارن،
پس بیاید یه مقایسه ساده کنیم :
RESTful API :
- هر چیزی یه Endpoint داره، مثلاً /users یا /products.
- اگه اطلاعات مختلف بخوای، باید چند تا درخواست بزنی. (گاهی داده اضافی میگیری، گاهی کمتر از چیزی که لازم داری!)
- کشینگش راحتتره، چون روی HTTP سوار شده.
GraphQL :
- فقط یه Endpoint داری، ولی میتونی دقیقاً همون دادهای که لازم داری رو درخواست بدی.
- یه درخواست، چندین جواب! یعنی بهینهتر، مخصوصاً برای اپهای موبایل.
- کشینگش سختتره، ولی Apollo Client کمک میکنه.
- برای کشینگش و ارور های خاص نیاز به تنظیمات داره
پس کدومو انتخاب کنیم ؟
+ اگه API ساده میخوای که سریع بالا بیاد و کشینگ برات مهمه → REST!
+ اگه یه سرویس پیچیده داری که قراره چندین نوع کلاینت (موبایل، وب و ...) بهش وصل شن → GraphQL عالیه!
+ گاهی ترکیبشون هم جواب میده! REST برای بخشهای عمومی، GraphQL برای بخشهای خاص.
در نهایت، انتخاب بین GraphQL و REST به نیازهای پروژه بستگی داره! مهم اینه که بدونیم هر کدوم کجا بهتر عمل میکنن.
@DevTwitter | <Mohsen Abbasi/>
پس بیاید یه مقایسه ساده کنیم :
RESTful API :
- هر چیزی یه Endpoint داره، مثلاً /users یا /products.
- اگه اطلاعات مختلف بخوای، باید چند تا درخواست بزنی. (گاهی داده اضافی میگیری، گاهی کمتر از چیزی که لازم داری!)
- کشینگش راحتتره، چون روی HTTP سوار شده.
GraphQL :
- فقط یه Endpoint داری، ولی میتونی دقیقاً همون دادهای که لازم داری رو درخواست بدی.
- یه درخواست، چندین جواب! یعنی بهینهتر، مخصوصاً برای اپهای موبایل.
- کشینگش سختتره، ولی Apollo Client کمک میکنه.
- برای کشینگش و ارور های خاص نیاز به تنظیمات داره
پس کدومو انتخاب کنیم ؟
+ اگه API ساده میخوای که سریع بالا بیاد و کشینگ برات مهمه → REST!
+ اگه یه سرویس پیچیده داری که قراره چندین نوع کلاینت (موبایل، وب و ...) بهش وصل شن → GraphQL عالیه!
+ گاهی ترکیبشون هم جواب میده! REST برای بخشهای عمومی، GraphQL برای بخشهای خاص.
در نهایت، انتخاب بین GraphQL و REST به نیازهای پروژه بستگی داره! مهم اینه که بدونیم هر کدوم کجا بهتر عمل میکنن.
@DevTwitter | <Mohsen Abbasi/>
👍96🔥8👎3❤1
فرق بین Heap Memory و Stack Memory در جاواسکریپت؟
دیروز با یکی از شرکت ایرانی مصاحبه رفتم فارغ از یه سری سوالات تکراری مباحثی مانند hoisting closure , type vs interface , prototype , hook ها و... از heap و stack مموری ازم پرسیدن و همچنین مدیرت درست heap در جاوااسکریپت!
۱ - Stack Memory
- پشته (Stack) در JS برای ذخیره متغیرهای مقدار (Primitive Values) و فراخوانی توابع استفاده میشود.
- هر تابعی که فراخوانی شود، یک Stack Frame (قاب پشته) دریافت میکند که شامل متغیرهای محلی و پارامترهای آن تابع است.
- تخصیص حافظه در استک سریع و خودکار است.
۲ - Heap Memory
- حافظه هیپ (Heap) برای ذخیره اشیاء (Objects) و دادههای غیر اولیه (Non-Primitive) استفاده میشود.
- حافظه در هیپ داینامیک تخصیص داده میشود و Garbage Collector آن را مدیریت میکند که هندل کردن این بر عهده برنامه نویس هست.
نکته مهم: هنگامی که یک شیء یا آرایه ساخته میشود، مقدار آن در Heap Memory ذخیره شده و آدرس (Reference) آن در Stack Memory قرار میگیرد.
خب نکته مهم دیگر این هست که اگر برنامه نویس داده زیادی را در heap ذحیره کند باید حتما بعد از استفاده مموری را آزاد کند تا سیستم دچار Memory Leak نشود که روش آزاد سازی هم به این شکل هست که اگر دیگر نیازی به داده ندارید، مقدار null یا undefined را به متغیر اختصاص دهید تا ارجاع از بین برود و یا میتونید از WeakMap استفاده کنید که خود به خود ارجاع های بدون استفاده را حذف میکند.
@DevTwitter | <Alireza Majdi/>
دیروز با یکی از شرکت ایرانی مصاحبه رفتم فارغ از یه سری سوالات تکراری مباحثی مانند hoisting closure , type vs interface , prototype , hook ها و... از heap و stack مموری ازم پرسیدن و همچنین مدیرت درست heap در جاوااسکریپت!
۱ - Stack Memory
- پشته (Stack) در JS برای ذخیره متغیرهای مقدار (Primitive Values) و فراخوانی توابع استفاده میشود.
- هر تابعی که فراخوانی شود، یک Stack Frame (قاب پشته) دریافت میکند که شامل متغیرهای محلی و پارامترهای آن تابع است.
- تخصیص حافظه در استک سریع و خودکار است.
۲ - Heap Memory
- حافظه هیپ (Heap) برای ذخیره اشیاء (Objects) و دادههای غیر اولیه (Non-Primitive) استفاده میشود.
- حافظه در هیپ داینامیک تخصیص داده میشود و Garbage Collector آن را مدیریت میکند که هندل کردن این بر عهده برنامه نویس هست.
نکته مهم: هنگامی که یک شیء یا آرایه ساخته میشود، مقدار آن در Heap Memory ذخیره شده و آدرس (Reference) آن در Stack Memory قرار میگیرد.
خب نکته مهم دیگر این هست که اگر برنامه نویس داده زیادی را در heap ذحیره کند باید حتما بعد از استفاده مموری را آزاد کند تا سیستم دچار Memory Leak نشود که روش آزاد سازی هم به این شکل هست که اگر دیگر نیازی به داده ندارید، مقدار null یا undefined را به متغیر اختصاص دهید تا ارجاع از بین برود و یا میتونید از WeakMap استفاده کنید که خود به خود ارجاع های بدون استفاده را حذف میکند.
@DevTwitter | <Alireza Majdi/>
👍47👎9❤4
غروب افتاب Create React App
یادم نمیاد از منسوخ شدن کتابخونه یا فریمورکی ناراحت شده باشم ولی وقتی این رو دیدم خیلی احساساتی و غمگین شدم چون با این که من پنج سال بود که پروژهای رو تحت CRA دولوپ نکرده بودم ولی من با اون بود که عاشق ریاکت شدم.
@DevTwitter | <Mohammad Ebrahimi Aval/>
یادم نمیاد از منسوخ شدن کتابخونه یا فریمورکی ناراحت شده باشم ولی وقتی این رو دیدم خیلی احساساتی و غمگین شدم چون با این که من پنج سال بود که پروژهای رو تحت CRA دولوپ نکرده بودم ولی من با اون بود که عاشق ریاکت شدم.
@DevTwitter | <Mohammad Ebrahimi Aval/>
❤54👍6👎3
حل خطای Reduce unused CSS در وردپرس!
اگه توی ابزارهای بهینهسازی مثل Lighthouse یا PageSpeed Insights با خطای Reduce unused CSS مواجه شدین، یعنی یه سری استایلهای اضافی از پلاگینها و قالبهای آماده داره ناخواسته لود میشه و سرعت سایت رو پایین میاره.
با کدی که براتون ضمیمه کردم، میتونید این استایلهای اضافی رو حذف کنید (تصاویر رو مشاهده کنید)
کافیه لینک فایل رو توی کدها جستجو کنید و id رو جایگزین کنید و کد رو هم توی function.php قرار برید.
@DevTwitter | <Amir hossein Bagheri/>
اگه توی ابزارهای بهینهسازی مثل Lighthouse یا PageSpeed Insights با خطای Reduce unused CSS مواجه شدین، یعنی یه سری استایلهای اضافی از پلاگینها و قالبهای آماده داره ناخواسته لود میشه و سرعت سایت رو پایین میاره.
با کدی که براتون ضمیمه کردم، میتونید این استایلهای اضافی رو حذف کنید (تصاویر رو مشاهده کنید)
کافیه لینک فایل رو توی کدها جستجو کنید و id رو جایگزین کنید و کد رو هم توی function.php قرار برید.
@DevTwitter | <Amir hossein Bagheri/>
❤8👍5👎3
فشرده سازی فایل ها چجوری اتفاق میوفته؟
شاید براتون سوال شده باشه که نرم افزار هایی مثل WinRAR چجوری فایل ها رو فشرده میکنن؟
خیلی ها بر این باورند که فشرده سازی فایل ها با حذف بیت ها اتفاق میوفته که کاملا غلطه
در صورتی که با حذف حتی یک بیت از فایل به طور کل فایل ناقص میسه و دیگه قابل استفاده نیست!
کلی روش و الگوریتم مختلف برای فشرده سازی فایل ها وجود داره اما یکی از پر استفاده ترین روش فشرده سازی فایل ها RLE (Run-Length Encoding) نام داره که با حذف عناصر تکراری فایل های فشرده تولید میکنه.
این الگوریتم با شمارش تعداد تکرار هر المان و ذخیره سازی تعداد اون + المان مربوطه حجم فایل ها رو کم میکنه!
اجازه بدید با مثال توضیح بدم:
مثلا فرض کنیم شما pdf یک کتاب 100 صفحه ای رو دارید و میخواهید این فایل رو فشرده کنید.
طبیعتا موارد تکراری توی فایل شما وجود داره.برای مثال در جاهای مختلف فایل شما کلمه "سلام" چند بار تکرار شده(برای مثال 3 بار) در اینجا این الگوریتم این 3 تا سلام رو تبدیل میکنه به "سلام×3"
نکته : (این عملیات فقط مختص pdf نیست و روی همه نوع فایلی کار میکنه)
این الگوریتم برای خودش یک فایل راهنما میسازه و المان،تعداد تکرار و آدرس ها رو داخل اون ذخیره میکنه تا زمان استخراج فایل فشرده بتونه تمامی فایل ها رو بازیابی کنه
@DevTwitter | <Farzad Ebrahimi/>
شاید براتون سوال شده باشه که نرم افزار هایی مثل WinRAR چجوری فایل ها رو فشرده میکنن؟
خیلی ها بر این باورند که فشرده سازی فایل ها با حذف بیت ها اتفاق میوفته که کاملا غلطه
در صورتی که با حذف حتی یک بیت از فایل به طور کل فایل ناقص میسه و دیگه قابل استفاده نیست!
کلی روش و الگوریتم مختلف برای فشرده سازی فایل ها وجود داره اما یکی از پر استفاده ترین روش فشرده سازی فایل ها RLE (Run-Length Encoding) نام داره که با حذف عناصر تکراری فایل های فشرده تولید میکنه.
این الگوریتم با شمارش تعداد تکرار هر المان و ذخیره سازی تعداد اون + المان مربوطه حجم فایل ها رو کم میکنه!
اجازه بدید با مثال توضیح بدم:
مثلا فرض کنیم شما pdf یک کتاب 100 صفحه ای رو دارید و میخواهید این فایل رو فشرده کنید.
طبیعتا موارد تکراری توی فایل شما وجود داره.برای مثال در جاهای مختلف فایل شما کلمه "سلام" چند بار تکرار شده(برای مثال 3 بار) در اینجا این الگوریتم این 3 تا سلام رو تبدیل میکنه به "سلام×3"
نکته : (این عملیات فقط مختص pdf نیست و روی همه نوع فایلی کار میکنه)
این الگوریتم برای خودش یک فایل راهنما میسازه و المان،تعداد تکرار و آدرس ها رو داخل اون ذخیره میکنه تا زمان استخراج فایل فشرده بتونه تمامی فایل ها رو بازیابی کنه
@DevTwitter | <Farzad Ebrahimi/>
5❤97👍42🔥5👎2
جمعآوری زباله (Garbage Collection) در جاوا یعنی خود زبان حافظهای که دیگه استفاده نمیشه رو پاک میکنه. در C یا C++ باید خودت حافظه رو آزاد کنی، ولی در جاوا Garbage Collector (GC) این کار رو به طور اتوماتیک انجام میده.
@DevTwitter | <Misagh Momeni Bashusqeh/>
@DevTwitter | <Misagh Momeni Bashusqeh/>
👍56👎10❤3
این perplexity یه مدل Deep Research داده بیرون، که تا نزدیک ده دقیقه وقت میگیره جواب بده و به جاش یه مطلب رو دقیق تر با امار و رفرنس درست حسابی تحلیل میکنه تحویلت میده.
جون میده برای ریپورت و پروپوزال و …گرچه که هنوز جای کار داره ولی حداقل دیگه رفرنس سازی فیک نمیکنه
@DevTwitter | <Shana/>
جون میده برای ریپورت و پروپوزال و …گرچه که هنوز جای کار داره ولی حداقل دیگه رفرنس سازی فیک نمیکنه
@DevTwitter | <Shana/>
👍58👎1
با پیشرفت روزافزون agent های کدنویسی هوش مصنوعی، مهندسان نرمافزار باید تواناییهای زیر را داشته باشند:
۱- توانایی بررسی سریع و دقیق کد نوشته شده توسط هوش مصنوعی
۲- توانایی توصیف مشکلات بهصورت واضح و کامل
۳- توانایی انجام همزمان چند کار و تغییر سریع بین زمینههای مختلف
خوب است که از حالا این مهارتها را تمرین کنید!
@DevTwitter | <Mehdi Allahyari/>
۱- توانایی بررسی سریع و دقیق کد نوشته شده توسط هوش مصنوعی
۲- توانایی توصیف مشکلات بهصورت واضح و کامل
۳- توانایی انجام همزمان چند کار و تغییر سریع بین زمینههای مختلف
خوب است که از حالا این مهارتها را تمرین کنید!
@DevTwitter | <Mehdi Allahyari/>
👍80👎17
This media is not supported in your browser
VIEW IN TELEGRAM
با گذاشتنِ http://r.jina.ai قبل از هر URL، محتوایِ اون صفحه رو به صورتِ مارکداون بهتون میده. مثلاً میتونید آخرین نسخهٔ مستنداتِ محصول رو به چتبات بدید تا جوابِ بهروز بده. اگر قبل از لینکِ یک PDF بگذارید متنش رو بهتون میده. رویِ بعضی از PDFهای فارسی هم کار میکنه.
@DevTwitter | <Ayub Kokabi/>
@DevTwitter | <Ayub Kokabi/>
👍24🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
یه اکستنشن نوشتم برای جابهای لینکدین، خودش show more رو کلیک میکنه و لیست کلیدواژههایی که بهش میدی رو سبز یا قرمز میکنه. میشه سریعتر با یه نگاه متوجه شد جاب چقدر به مهارتهای آدم نزدیکه.
https://github.com/ArmanJR/LinkedIn-Job-Skills-Highlighter
@DevTwitter | <Arman/>
https://github.com/ArmanJR/LinkedIn-Job-Skills-Highlighter
@DevTwitter | <Arman/>
👍44
This media is not supported in your browser
VIEW IN TELEGRAM
مایکروسافت ورژن جدید مدل OmniParser داد بیرون. این یک مدل برای فهمیدن اسکرین شات هست. برای مواقعی که ایجنت قراره با browser کار کنه و تسکی را انجام بده، به کار میاد. خیلی هم عالی کار میکنه. ویدیو رو ببینید حتما
@DevTwitter | <Mehdi Allahyari/>
@DevTwitter | <Mehdi Allahyari/>
👍17🔥6