This media is not supported in your browser
VIEW IN TELEGRAM
کمپانی Evidently یک دوره رایگان ۷ روزه عالی گذاشته که از۹ دسامبر شروع میشه. این دوره درباره ارزیابی (evaluation) مدلهای LLM برای تیمهای محصول و AI leaders هست.
نیازی هم به دانستن برنامه نویسی نیست. بعضی از تاپیک ها: observability مدلهای LLM در production
و hallucinations, prompt injection, jailbreaks و...
توی خود وبسایت اطلاعات کامل راجع به همه موضوعاتی که تدریس میشه هست.
https://evidentlyai.com/llm-evaluations-course
@DevTwitter | <Mehdi Allahyari/>
نیازی هم به دانستن برنامه نویسی نیست. بعضی از تاپیک ها: observability مدلهای LLM در production
و hallucinations, prompt injection, jailbreaks و...
توی خود وبسایت اطلاعات کامل راجع به همه موضوعاتی که تدریس میشه هست.
https://evidentlyai.com/llm-evaluations-course
@DevTwitter | <Mehdi Allahyari/>
❤7👍2
تکنیک S3 Bucket Namesquatting چیز جدیدی نیست و چندین سالی است که در بخش Misconfigurations طبقه بندی می شود.
چیزی که دوست داشتم اطلاع رسانی کنم این است که تحت هیچ شرایطی از نامهای قابل پیشبینی برای Bucketها، حتی در حالت Self hosted هم استفاده نکنید!
https://www.securityrunners.io/post/stop-using-predictable-bucket-names-a-failed-attempt-at-hacking-satellites
@DevTwitter | <Vahid Nameni/>
چیزی که دوست داشتم اطلاع رسانی کنم این است که تحت هیچ شرایطی از نامهای قابل پیشبینی برای Bucketها، حتی در حالت Self hosted هم استفاده نکنید!
https://www.securityrunners.io/post/stop-using-predictable-bucket-names-a-failed-attempt-at-hacking-satellites
@DevTwitter | <Vahid Nameni/>
👍14
آقا Andrew Ng یه پکیج معرفی کرده که میتونی به هر LLM ای بخوای به سادگی وصل شی و عملا کار رو راحتتر کرده.
دیگه لازم نیست کد ها رو برای اتصال به LLM های مختلف تغییر بدی
البته الان تمرکزش رو چت بات هاست ولی گفته میخواد گسترشش بده
https://github.com/andrewyng/aisuite
@DevTwitter | <حاجیم/>
دیگه لازم نیست کد ها رو برای اتصال به LLM های مختلف تغییر بدی
البته الان تمرکزش رو چت بات هاست ولی گفته میخواد گسترشش بده
https://github.com/andrewyng/aisuite
@DevTwitter | <حاجیم/>
👍37🤣4
یک ربات تلگرام ساده نوشتم که به زبان فارسی به راحتی میتونید فاکتور فروش بسازید!
با این ربات میتونید آیتمها رو اضافه کنید، اطلاعات فروشگاه رو ذخیره کنید و فاکتور رو به صورت PDF دریافت کنید.
https://github.com/bahramnejhad/Invoice-Generator-Bot-with-Telegram-Integration
@DevTwitter | <BlackFun/>
با این ربات میتونید آیتمها رو اضافه کنید، اطلاعات فروشگاه رو ذخیره کنید و فاکتور رو به صورت PDF دریافت کنید.
https://github.com/bahramnejhad/Invoice-Generator-Bot-with-Telegram-Integration
@DevTwitter | <BlackFun/>
🔥46👍13🤣5
و در آخر منتشر شد، بله vite 6 (وقتی این پست رو می نویسم سه ساعت پیش) نسخه stable ش ریلز شد.
تو گیت هابش changelog ش انقد طولانی لود نمیشه و گفتن که قرار اسپلیتش کنن بزودی.
ولی تو لینک زیر می تونید تغییرات اصلی رو ببینید:
https://vite.dev/blog/announcing-vite6.html#main-changes
@DevTwitter | <Mohammad Abdorrahmani/>
تو گیت هابش changelog ش انقد طولانی لود نمیشه و گفتن که قرار اسپلیتش کنن بزودی.
ولی تو لینک زیر می تونید تغییرات اصلی رو ببینید:
https://vite.dev/blog/announcing-vite6.html#main-changes
@DevTwitter | <Mohammad Abdorrahmani/>
👍15🔥7❤1
هاروارد ۲ تا درس داره به اسمهای Data Systems و Big Data Systems که مطالبشون جالب به نظر میاد.
اولی بیشتر مربوط به بخشهای مختلف دیتابیسه و دومی گستردهتره و سیستمهای ذخیرهسازی، سیستمهای دیتای پشت سر AI، و خیلی مطالب دیگه است.
با اینکه ویدئوهاشون در اینترنت نیست، ولی همون اسلایدها و لیست مقالههایی که در سایتشون هست به نظرم مفیده.
درس اول (CS 165):
http://daslab.seas.harvard.edu/classes/cs165/
درس دوم (CS 265):
http://daslab.seas.harvard.edu/classes/cs265/
برای کسانی که خارج هستند و یا خودشون یا شرکتشون ۳۳۴۰ دلار میتونه خرج آموزشش کنه، درس دوم قراره از ژانویه برای علاقمندان به صورت آنلاین در پلتفرم Harvard Extension School برگزار بشه.
ولی به هر حال خودتون هم میتونید مطالب رو خودآموز جلو برید.
اگه به ویدئو علاقمندید، درس دیتابیس CMU (در https://15445.courses.cs.cmu.edu/fall2024/) و درس سیستمهای توزیعشده MIT (در https://youtube.com/@6.824) کمی با این دروس همپوشانی داره و میتونید به اونا مراجعه کنید.
@DevTwitter | <Hadi/>
اولی بیشتر مربوط به بخشهای مختلف دیتابیسه و دومی گستردهتره و سیستمهای ذخیرهسازی، سیستمهای دیتای پشت سر AI، و خیلی مطالب دیگه است.
با اینکه ویدئوهاشون در اینترنت نیست، ولی همون اسلایدها و لیست مقالههایی که در سایتشون هست به نظرم مفیده.
درس اول (CS 165):
http://daslab.seas.harvard.edu/classes/cs165/
درس دوم (CS 265):
http://daslab.seas.harvard.edu/classes/cs265/
برای کسانی که خارج هستند و یا خودشون یا شرکتشون ۳۳۴۰ دلار میتونه خرج آموزشش کنه، درس دوم قراره از ژانویه برای علاقمندان به صورت آنلاین در پلتفرم Harvard Extension School برگزار بشه.
ولی به هر حال خودتون هم میتونید مطالب رو خودآموز جلو برید.
اگه به ویدئو علاقمندید، درس دیتابیس CMU (در https://15445.courses.cs.cmu.edu/fall2024/) و درس سیستمهای توزیعشده MIT (در https://youtube.com/@6.824) کمی با این دروس همپوشانی داره و میتونید به اونا مراجعه کنید.
@DevTwitter | <Hadi/>
👍13🔥7
کمپانی HuggingFace مدل SmolVLM، که یک مدل پیشرفته ۲ میلیارد پارامتری برای زبان و تصویر که کوچک، سریع، کارآمد در حافظه و کاملاً متنباز است را معرفی کرده.
چرا این مدل مهم هست؟ چون که خوراک دستگاههای با محدودیت منبع یا به اصطلاح on-device و edge است
ویژگیهای SmolVLM:
- کوچک (۲ میلیارد پارامتر)
- استنتاج سریع
- اجرا روی لپتاپ یا دستگاههای edge.
- کاملاً متنباز تحت لیسانس Apache 2.0.
نسخه های SmolVLM:
مدل SmolVLM-Base: مناسب برای آموزش بیشتر.
مدل SmolVLM-Synthetic: آموزشدیده روی دادههای مصنوعی.
مدل SmolVLM-Instruct: آماده برای استفاده تعاملی.
مدلها + دادهها + ابزارها = خوشحالی برای توسعهدهندگان و پژوهشگران!
چه چیزی SmolVLM را متفاوت میکند؟
ساختهشده بر اساس معماری Idefics3، اما با تغییرات:
مدل زبانی: SmolLM2 (۱.۷ میلیارد) بهجای Llama 3.1.
فشردهسازی تصویری قویتر (۹ برابر در مقایسه با ۴ برابر در Idefics).
مدل بصری: SigLIP بهینهشده برای پچهای ۳۸۴×۳۸۴.
نتایج عملکردی:
- دقت رقابتی در بنچمارکهایی مثل DocVQA و TextVQA.
- استفاده کم از حافظه: تنها به ۵ گیگابایت رم GPU نیاز دارد!
مقایسه مصرف رم GPU:
SmolVLM: 5 GB
Qwen-VL 2B: 13.7 GB
InternVL2 2B: 10.5 GB
PaliGemma 3B: 6.7 GB
مزیت سرعت:
معماری بهینه SmolVLM = عملکرد فوقالعاده سریع.
در مقایسه با Qwen2-VL:
-۳.۳ تا ۴.۵ برابر سریعتر در پر کردن اولیه
- ۷.۵ تا ۱۶ برابر سریعتر در جنریشن
اطلاعات بیشتر به همراه کد مثال: https://huggingface.co/blog/smolvlm
دمو: https://huggingface.co/spaces/HuggingFaceTB/SmolVLM
@DevTwitter | <Mehdi Allahyari/>
چرا این مدل مهم هست؟ چون که خوراک دستگاههای با محدودیت منبع یا به اصطلاح on-device و edge است
ویژگیهای SmolVLM:
- کوچک (۲ میلیارد پارامتر)
- استنتاج سریع
- اجرا روی لپتاپ یا دستگاههای edge.
- کاملاً متنباز تحت لیسانس Apache 2.0.
نسخه های SmolVLM:
مدل SmolVLM-Base: مناسب برای آموزش بیشتر.
مدل SmolVLM-Synthetic: آموزشدیده روی دادههای مصنوعی.
مدل SmolVLM-Instruct: آماده برای استفاده تعاملی.
مدلها + دادهها + ابزارها = خوشحالی برای توسعهدهندگان و پژوهشگران!
چه چیزی SmolVLM را متفاوت میکند؟
ساختهشده بر اساس معماری Idefics3، اما با تغییرات:
مدل زبانی: SmolLM2 (۱.۷ میلیارد) بهجای Llama 3.1.
فشردهسازی تصویری قویتر (۹ برابر در مقایسه با ۴ برابر در Idefics).
مدل بصری: SigLIP بهینهشده برای پچهای ۳۸۴×۳۸۴.
نتایج عملکردی:
- دقت رقابتی در بنچمارکهایی مثل DocVQA و TextVQA.
- استفاده کم از حافظه: تنها به ۵ گیگابایت رم GPU نیاز دارد!
مقایسه مصرف رم GPU:
SmolVLM: 5 GB
Qwen-VL 2B: 13.7 GB
InternVL2 2B: 10.5 GB
PaliGemma 3B: 6.7 GB
مزیت سرعت:
معماری بهینه SmolVLM = عملکرد فوقالعاده سریع.
در مقایسه با Qwen2-VL:
-۳.۳ تا ۴.۵ برابر سریعتر در پر کردن اولیه
- ۷.۵ تا ۱۶ برابر سریعتر در جنریشن
اطلاعات بیشتر به همراه کد مثال: https://huggingface.co/blog/smolvlm
دمو: https://huggingface.co/spaces/HuggingFaceTB/SmolVLM
@DevTwitter | <Mehdi Allahyari/>
👍21🔥3❤1👎1
ماجرای کامل Automattic و WP Engine
تو دنیای نرمافزارها ما چیزی داریم به اسم (Fork) که یعنی میتونید یه برنامهرو clone کنید (کپی کنید) و داخلش تغییرات بدید.
این به لطف لایسنس اوپنسورس هست.
بعد خیلی هم پیش میاد، مثلا یه توسعه دهنده یه برنامهرو میسازه ولی رهاش میکنه
اینجا یه توسعه دهنده دیگه میاد همون رو Fork میکنه، مشکلاتش رو برطرف میکنه و بقیه آدما میتونن بیان از نسخه Fork شده استفاده کنن.
یا اینکه مثلا یه توسعه دهنده ویژگیهای بیشتری به ذهنش میرسه و Fork میکنه و نسخه بهتری میسازه.
داستان ما از ۵ اکتبر شروع میشه تیم وردپرس تاریخ ۵ اکتبر گزارش یک آسیبپذیری امنیتی در ACF رو داخل توییتر اعلام میکنه.
این همون پلاگین معروف فیلدهای سفارشی هست که نسخه رایگان و پولی داره.
تیم WP Engine که میشه سازنده همین پلاگین آسیبپذیری ACF رو ۲ روز بعد یعنی ۷ اکتبر برطرف میکنه.
۱۲ اکتبر تیم وردپرس پلاگین ACF رو Fork میکنن و با یه نام جدید یعنی Secure Custom Forms (SCF) منتشر میکنن.
مت مولنوگ که میشه خالق وردپرس میگه ما پلاگین ACF رو فورک کردیم تا در کنار آپدیتهای امنیتی بهتر، تبلیغات تجاری هم نداشته باشید.
یعنی جای ACF بیاید از SCF استفاده کنید.
اونم تازه نه ACF رایگان، بلکه SCF میشه Fork نسخه پولی ACF و در کنارش میگن این بار خود تیم وردپرس پشتیبانیش میکنه.
و میان ACF رو هم از مخزن وردپرس حذف میکنن.
تیم WP Engine هم میگه ما داریم اینجا زحمت میکشیم، یعنی چی که پلاگین پولی مارو تغییر دادی با یه اسم جدید رایگان گذاشتی
بعد WP Engine میاد یه نسخه جدید از ACF میده که دیگه از طریق مخزن وردپرس آپدیت نمیشه و آپدیتهاشو مستقیم از WP Engine میگیره.
این واکنش به خاطر این بود که ACF در کنار اینکه از مخزن وردپرس حذف شد، کاربرها هم بدون اجازه پلاگینشون به SCF تغییر کرد
واکنشها از سمت کاربرهای عادی خوب بوده چون یه پلاگین پولی رو الان به صورت رایگان دارن، اونم با پشتیبانی تیم وردپرس.
ولی واکنشها از سمت توسعهدهندهها منفی.
یکیشون گفته:
«اگه قراره محصولی که میسازی و برای فروش قرار میدی رو کپی کنن دیگه چرا باید به خودت زحمت بدی؟»
البته خود Fork کردن یک کار قانونی و خیلی خوبه، اما نوع روشی که تیم وردپرس یا همون Automattic انجام داده از نظر جامعه توسعهدهندهها غیر اخلاقی بوده و بسیاری اعتقاد دارن این اعتماد به وردپرس رو کاهش داده.
لینک منبع هم میذارم.
https://www.searchenginejournal.com/automattic-receives-backlash-for-cloning-premium-plugin/533589/
@DevTwitter | <Soroush Ahmadi/>
تو دنیای نرمافزارها ما چیزی داریم به اسم (Fork) که یعنی میتونید یه برنامهرو clone کنید (کپی کنید) و داخلش تغییرات بدید.
این به لطف لایسنس اوپنسورس هست.
بعد خیلی هم پیش میاد، مثلا یه توسعه دهنده یه برنامهرو میسازه ولی رهاش میکنه
اینجا یه توسعه دهنده دیگه میاد همون رو Fork میکنه، مشکلاتش رو برطرف میکنه و بقیه آدما میتونن بیان از نسخه Fork شده استفاده کنن.
یا اینکه مثلا یه توسعه دهنده ویژگیهای بیشتری به ذهنش میرسه و Fork میکنه و نسخه بهتری میسازه.
داستان ما از ۵ اکتبر شروع میشه تیم وردپرس تاریخ ۵ اکتبر گزارش یک آسیبپذیری امنیتی در ACF رو داخل توییتر اعلام میکنه.
این همون پلاگین معروف فیلدهای سفارشی هست که نسخه رایگان و پولی داره.
تیم WP Engine که میشه سازنده همین پلاگین آسیبپذیری ACF رو ۲ روز بعد یعنی ۷ اکتبر برطرف میکنه.
۱۲ اکتبر تیم وردپرس پلاگین ACF رو Fork میکنن و با یه نام جدید یعنی Secure Custom Forms (SCF) منتشر میکنن.
مت مولنوگ که میشه خالق وردپرس میگه ما پلاگین ACF رو فورک کردیم تا در کنار آپدیتهای امنیتی بهتر، تبلیغات تجاری هم نداشته باشید.
یعنی جای ACF بیاید از SCF استفاده کنید.
اونم تازه نه ACF رایگان، بلکه SCF میشه Fork نسخه پولی ACF و در کنارش میگن این بار خود تیم وردپرس پشتیبانیش میکنه.
و میان ACF رو هم از مخزن وردپرس حذف میکنن.
تیم WP Engine هم میگه ما داریم اینجا زحمت میکشیم، یعنی چی که پلاگین پولی مارو تغییر دادی با یه اسم جدید رایگان گذاشتی
بعد WP Engine میاد یه نسخه جدید از ACF میده که دیگه از طریق مخزن وردپرس آپدیت نمیشه و آپدیتهاشو مستقیم از WP Engine میگیره.
این واکنش به خاطر این بود که ACF در کنار اینکه از مخزن وردپرس حذف شد، کاربرها هم بدون اجازه پلاگینشون به SCF تغییر کرد
واکنشها از سمت کاربرهای عادی خوب بوده چون یه پلاگین پولی رو الان به صورت رایگان دارن، اونم با پشتیبانی تیم وردپرس.
ولی واکنشها از سمت توسعهدهندهها منفی.
یکیشون گفته:
«اگه قراره محصولی که میسازی و برای فروش قرار میدی رو کپی کنن دیگه چرا باید به خودت زحمت بدی؟»
البته خود Fork کردن یک کار قانونی و خیلی خوبه، اما نوع روشی که تیم وردپرس یا همون Automattic انجام داده از نظر جامعه توسعهدهندهها غیر اخلاقی بوده و بسیاری اعتقاد دارن این اعتماد به وردپرس رو کاهش داده.
لینک منبع هم میذارم.
https://www.searchenginejournal.com/automattic-receives-backlash-for-cloning-premium-plugin/533589/
@DevTwitter | <Soroush Ahmadi/>
👍29🤣7
👍20🤣12🔥4
یه ریپو داشتم که سایت هایی که کار ریموت میدن رو توش مینوشتم
اگر شما جدی تر از منین میتونین ازش استفاده کنین
اگر سایت خوبی هم ببینم بهش اضافه میکنم
البته سایت های کاریابی آلمانی هم توشون بیشتر پیدا میشه
https://github.com/alipalvane/remote-job
@DevTwitter | <Ali Palvane/>
اگر شما جدی تر از منین میتونین ازش استفاده کنین
اگر سایت خوبی هم ببینم بهش اضافه میکنم
البته سایت های کاریابی آلمانی هم توشون بیشتر پیدا میشه
https://github.com/alipalvane/remote-job
@DevTwitter | <Ali Palvane/>
❤31👍8🤣4
در علوم کامپیوتر بهش میگن Quine؛ برنامهای که بدون گرفتن هرگونه ورودی یک کپی از خودشو به عنوان خروجی چاپ میکنه. علت این نامگذاری هم به افتخار ریاضیدان و منطقدان آمریکایی Willard Van Orman Quine هست.
این کلمه رو با زبان برنامهنویسی مورد علاقهتون سرچ کنید مثال زیاد پیدا میکنید.
@DevTwitter | <Mamadou On GameDev/>
این کلمه رو با زبان برنامهنویسی مورد علاقهتون سرچ کنید مثال زیاد پیدا میکنید.
@DevTwitter | <Mamadou On GameDev/>
🤣35🔥11👍7
This media is not supported in your browser
VIEW IN TELEGRAM
یه هموطن عزیز اومده با صدای جنگهای صلیبی برای تایپاسکریپت اکستنشن نوشته
وقتی یه تایپی رو اشتباه اساین کنید ویس "اینجا قرار نمیگیرید” پلی میشه :))
@DevTwitter | <Mohammadreza Hajian/>
وقتی یه تایپی رو اشتباه اساین کنید ویس "اینجا قرار نمیگیرید” پلی میشه :))
@DevTwitter | <Mohammadreza Hajian/>
🤣209👍9
DevTwitter | توییت برنامه نویسی
در علوم کامپیوتر بهش میگن Quine؛ برنامهای که بدون گرفتن هرگونه ورودی یک کپی از خودشو به عنوان خروجی چاپ میکنه. علت این نامگذاری هم به افتخار ریاضیدان و منطقدان آمریکایی Willard Van Orman Quine هست. این کلمه رو با زبان برنامهنویسی مورد علاقهتون سرچ کنید…
این قضیه Quine رو یادتونه؟
این QR Code میتونه باینری خودش رو (یه QR code Generator) تولید کنه که روی لینوکس ۶۴ بیتی اجرا میشه!
سایزش فقط 2953 بایت هست!
سورس:
https://github.com/AlokSwaminathan/QRception
@DevTwitter | <Mamadou On GameDev/>
این QR Code میتونه باینری خودش رو (یه QR code Generator) تولید کنه که روی لینوکس ۶۴ بیتی اجرا میشه!
سایزش فقط 2953 بایت هست!
سورس:
https://github.com/AlokSwaminathan/QRception
@DevTwitter | <Mamadou On GameDev/>
🔥24🤣7👍3
فرض کن یه فرم تماس تو سایت داری. حالا برای اینکه رباتهای اسپم نیان این فرم رو با اطلاعات الکی پر کنن، میای یه تله کوچیک میذاری؛ به این تله میگیم Honeypot یا "تله عسل"
تو این تکنیک، یه فیلد اضافی به فرم اضافه میکنی، اما طوری مخفیش میکنی که فقط رباتها به دامش بیفتن. کاربران واقعی این فیلد رو نمیبینن و نمیتونن پرش کنن، اما رباتها نمیفهمن قضیه چیه و اون فیلد رو هم با اطلاعات الکی پر میکنن.
وقتی فرم ارسال میشه، میری سراغ همین فیلد مخفی و نگاه میکنی؛ اگه پر بود، یعنی یه ربات سعی کرده فرم رو پر کنه، و فرم رو به عنوان اسپم رد میکنی. اینجوری، بدون اینکه کاربر متوجه بشه، فرمهات رو امنتر میکنی و رباتها رو دور میزنی.
برای راحتتر کردن کار هم میتونی از پکیج spatie/laravel-honeypot استفاده کنی که خودش همه این مراحل رو خودکار انجام میده و نیاز نیست خودت فیلد رو دستی بذاری یا چک کنی.
یه قابلیت دیگه هم که داره تایمچکه؛ به این صورت که زمان پر شدن فرم رو میسنجه. اگه یه ربات بخواد فرم رو پر کنه، خیلی سریع انجامش میده، و پکیج از همین زمان کم میفهمه که فرم رو یه ربات پر کرده نه یه آدم واقعی.
@DevTwitter | <Reza Annabestani/>
تو این تکنیک، یه فیلد اضافی به فرم اضافه میکنی، اما طوری مخفیش میکنی که فقط رباتها به دامش بیفتن. کاربران واقعی این فیلد رو نمیبینن و نمیتونن پرش کنن، اما رباتها نمیفهمن قضیه چیه و اون فیلد رو هم با اطلاعات الکی پر میکنن.
وقتی فرم ارسال میشه، میری سراغ همین فیلد مخفی و نگاه میکنی؛ اگه پر بود، یعنی یه ربات سعی کرده فرم رو پر کنه، و فرم رو به عنوان اسپم رد میکنی. اینجوری، بدون اینکه کاربر متوجه بشه، فرمهات رو امنتر میکنی و رباتها رو دور میزنی.
برای راحتتر کردن کار هم میتونی از پکیج spatie/laravel-honeypot استفاده کنی که خودش همه این مراحل رو خودکار انجام میده و نیاز نیست خودت فیلد رو دستی بذاری یا چک کنی.
یه قابلیت دیگه هم که داره تایمچکه؛ به این صورت که زمان پر شدن فرم رو میسنجه. اگه یه ربات بخواد فرم رو پر کنه، خیلی سریع انجامش میده، و پکیج از همین زمان کم میفهمه که فرم رو یه ربات پر کرده نه یه آدم واقعی.
@DevTwitter | <Reza Annabestani/>
👍134❤7🤣7👎5
میدونید چرا PHP ورژن 6 نداره؟
ورژن 5.6 اومد و بعد ورژن 7 منتشر شد، پس ورژن 6 کجا رفت؟
باید بگم که ورژن 6 با شکست مواجه شد و هیچ گفت منتشر نشد.
فیچر اصلی این ورژن پشتیبانی از یونیکد در کور زبان PHP بود، ایده از اینجا بود که با پشتیبانی یونیکد تمام زبان ها دنیا و تمام کاراکتر های آن در خود زبان PHP پشتیبانی شود یعنی برای مثال بتوان از یک اموجی برای نام متغیر یا تابع استفاده کرد.
چرا این ایده شکست خورد؟
یکی از دلایل این بود که باید تغییرات خیلی گسترده ای در این زبان اتفاق می افتاد.
دلیل بعدی پرفورمنس بود، که با پشتیانی از یونیکد دچار چالش های زیادی شده بود.
در نهایت از اضافه کردن این قابلبت و ورژن 6 صرفه نظر شد و دیگر قابلیت های ورژن 6 در ورژن بعدی یعنی ورژن 7 عرضه شد.
@DevTwitter | <Rasoul Esmaeili/>
ورژن 5.6 اومد و بعد ورژن 7 منتشر شد، پس ورژن 6 کجا رفت؟
باید بگم که ورژن 6 با شکست مواجه شد و هیچ گفت منتشر نشد.
فیچر اصلی این ورژن پشتیبانی از یونیکد در کور زبان PHP بود، ایده از اینجا بود که با پشتیبانی یونیکد تمام زبان ها دنیا و تمام کاراکتر های آن در خود زبان PHP پشتیبانی شود یعنی برای مثال بتوان از یک اموجی برای نام متغیر یا تابع استفاده کرد.
چرا این ایده شکست خورد؟
یکی از دلایل این بود که باید تغییرات خیلی گسترده ای در این زبان اتفاق می افتاد.
دلیل بعدی پرفورمنس بود، که با پشتیانی از یونیکد دچار چالش های زیادی شده بود.
در نهایت از اضافه کردن این قابلبت و ورژن 6 صرفه نظر شد و دیگر قابلیت های ورژن 6 در ورژن بعدی یعنی ورژن 7 عرضه شد.
@DevTwitter | <Rasoul Esmaeili/>
👍57🤣28🔥4
کاربرد aspect-square در Next.js با TypeScript: بهینهسازی نمایش تصاویر
در هنگام طراحی وبسایتها، یکی از چالشهایی که پیش میآید، تنظیم ابعاد ثابت برای تصاویر است تا در تمام دستگاهها و اندازههای مختلف صفحه نمایش به خوبی نمایش داده شوند. در اینجا، ویژگی aspect-square در CSS میتواند کمک بزرگی باشد.
در Next.js، همراه با TypeScript، میتوانید این ویژگی را به راحتی برای کنترل نسبت ابعاد تصاویر استفاده کنید. این ویژگی به شما اجازه میدهد تا ارتفاع و عرض یک عنصر را به نسبت یکدیگر قفل کنید، بدون اینکه نیاز به محاسبات پیچیده داشته باشید.
در این مثال:
aspectRatio: '1' ==> مشخص میکند که نسبت عرض به ارتفاع عنصر 1 به 1 است.
layout="fill" ==> به این معنی است که تصویر به طور خودکار ابعاد والد خود را پر خواهد کرد.
objectFit="cover" ==> برای نمایش صحیح تصویر بدون تغییر ابعاد و حفظ کیفیت استفاده میشود.
کوتاه و مختصر و مفید بهتون بگم ویژگی مناسبیه ازش استفاده کنین
@DevTwitter | <Abolfazl Javadineya/>
در هنگام طراحی وبسایتها، یکی از چالشهایی که پیش میآید، تنظیم ابعاد ثابت برای تصاویر است تا در تمام دستگاهها و اندازههای مختلف صفحه نمایش به خوبی نمایش داده شوند. در اینجا، ویژگی aspect-square در CSS میتواند کمک بزرگی باشد.
در Next.js، همراه با TypeScript، میتوانید این ویژگی را به راحتی برای کنترل نسبت ابعاد تصاویر استفاده کنید. این ویژگی به شما اجازه میدهد تا ارتفاع و عرض یک عنصر را به نسبت یکدیگر قفل کنید، بدون اینکه نیاز به محاسبات پیچیده داشته باشید.
در این مثال:
aspectRatio: '1' ==> مشخص میکند که نسبت عرض به ارتفاع عنصر 1 به 1 است.
layout="fill" ==> به این معنی است که تصویر به طور خودکار ابعاد والد خود را پر خواهد کرد.
objectFit="cover" ==> برای نمایش صحیح تصویر بدون تغییر ابعاد و حفظ کیفیت استفاده میشود.
کوتاه و مختصر و مفید بهتون بگم ویژگی مناسبیه ازش استفاده کنین
@DevTwitter | <Abolfazl Javadineya/>
👍28👎2
𝗛𝗼𝘄 𝘁𝗼 𝗠𝗮𝗸𝗲 𝗬𝗼𝘂𝗿 𝗦𝗤𝗟 𝗤𝘂𝗲𝗿𝗶𝗲𝘀 𝗥𝘂𝗻 𝗟𝗶𝗸𝗲 𝗮 𝗟𝗶𝘁𝘁𝗹𝗲 𝗜𝗺𝗽𝗮𝗹𝗮
Sometimes, developers forget the easy and simple things that make SQL queries so much faster.
- Avoid SELECT * always list the columns you need.
- Skip cursors and subqueries when ͟possible JOINs are faster and cleaner.
- Use Indexes to speed up WHERE, JOIN, and ORDER BY operations.
- Run EXPLAIN ANALYZE to see what’s slowing things down.
- Test queries on real data to ensure they work as expected.
@DevTwitter | <Goni Lukov/>
Sometimes, developers forget the easy and simple things that make SQL queries so much faster.
- Avoid SELECT * always list the columns you need.
- Skip cursors and subqueries when ͟possible JOINs are faster and cleaner.
- Use Indexes to speed up WHERE, JOIN, and ORDER BY operations.
- Run EXPLAIN ANALYZE to see what’s slowing things down.
- Test queries on real data to ensure they work as expected.
@DevTwitter | <Goni Lukov/>
👍43👎4
کتابخونهی puppeteer برای نوشتن وب اسکرپر (scraper) در NodeJS :
معمولا برای نوشتن scraper از زبان پایتون استفاده میشه ولی اگه به هر دلیلی خواستین این کار رو با NodeJS انجام بدین میتونین از کتابخونهی puppeteer استفاده کنین.
چرا crul نکنیم؟
خب از اونجایی که اکثر سایتهای مدرن از جاوااسکریپت برای رندن کرن اطلاعات استفاده میکنن و این کار سمت کلاینت انجام میشه وقتی درخواست crul میفرستیم و اطلاعات صفحه رو میگیرم، اطلاعات مورد نظرمون داخل صفحه رندر نشدن
برای این کار puppeteer هم مثل اکثر کتابخونه های دیگه یه مرورگر باز میکنه (نمایش دادن مرورگر یا نمایش ندادنش قابل تنظیم هست) و صبر میکنه سلکتوری که براش معرفی کردیم لود بشه بعد دیتای مورد نظر رو استخراج میکنه
تو این کد ما میریم قیمت (زودپز عظیما مدل H43 گنجایش 9 لیتر) رو در از سایت digikala در میاریم
نکات :
- توی این کد ادرس کالا و سلکتور استاتیک تعریف شده و اگه به هر دلیلی سایت هدف اپدیت بده ممکنه اینها دیگه معتبر نباشن.
- برای جلوگیری از شناسایی به عنوان بات، میتوانید یک User-Agent جعلی به مرورگر اضافه کنید.
- کتابخونهی puppeteer در حالت پیش فرض به صورت headless اجرا میشود و شما اتفاقات رو نمیبینید اینطوری رندر گرافیکی نداره و رم و گرافیک کمتری استفاده میکنه از طرفی معمولا این کدها روی سرور اجرا میشه و خب اونجا اصلا کاربردی نداره.
- برای سایتهایی که بات دیتکشن دارن میشه از کتابخونههای دیگه ای اضافه کرد مثل 2Captcha ،anticaptcha
- اگه تعداد رسکوست هاتون زیاد باشه ممکن هست سایت هدف ip شما رو برای مدتی مسدود کنه
- این کد صرفا یک مثال برای اشنایی هست و با خوندن داکیومنت میتونید اطلاعات بیشتر و بهتری بدست بیارین
- اسکرپ کردن دیتاهای که برای دسترسی عموم ازاد هست در صورتی که برای سایت هدف مشکلی به وجود نیاره عمل غیرقانونی نیست.
@DevTwitter | <Mohsen Zare/>
معمولا برای نوشتن scraper از زبان پایتون استفاده میشه ولی اگه به هر دلیلی خواستین این کار رو با NodeJS انجام بدین میتونین از کتابخونهی puppeteer استفاده کنین.
چرا crul نکنیم؟
خب از اونجایی که اکثر سایتهای مدرن از جاوااسکریپت برای رندن کرن اطلاعات استفاده میکنن و این کار سمت کلاینت انجام میشه وقتی درخواست crul میفرستیم و اطلاعات صفحه رو میگیرم، اطلاعات مورد نظرمون داخل صفحه رندر نشدن
برای این کار puppeteer هم مثل اکثر کتابخونه های دیگه یه مرورگر باز میکنه (نمایش دادن مرورگر یا نمایش ندادنش قابل تنظیم هست) و صبر میکنه سلکتوری که براش معرفی کردیم لود بشه بعد دیتای مورد نظر رو استخراج میکنه
تو این کد ما میریم قیمت (زودپز عظیما مدل H43 گنجایش 9 لیتر) رو در از سایت digikala در میاریم
نکات :
- توی این کد ادرس کالا و سلکتور استاتیک تعریف شده و اگه به هر دلیلی سایت هدف اپدیت بده ممکنه اینها دیگه معتبر نباشن.
- برای جلوگیری از شناسایی به عنوان بات، میتوانید یک User-Agent جعلی به مرورگر اضافه کنید.
- کتابخونهی puppeteer در حالت پیش فرض به صورت headless اجرا میشود و شما اتفاقات رو نمیبینید اینطوری رندر گرافیکی نداره و رم و گرافیک کمتری استفاده میکنه از طرفی معمولا این کدها روی سرور اجرا میشه و خب اونجا اصلا کاربردی نداره.
- برای سایتهایی که بات دیتکشن دارن میشه از کتابخونههای دیگه ای اضافه کرد مثل 2Captcha ،anticaptcha
- اگه تعداد رسکوست هاتون زیاد باشه ممکن هست سایت هدف ip شما رو برای مدتی مسدود کنه
- این کد صرفا یک مثال برای اشنایی هست و با خوندن داکیومنت میتونید اطلاعات بیشتر و بهتری بدست بیارین
- اسکرپ کردن دیتاهای که برای دسترسی عموم ازاد هست در صورتی که برای سایت هدف مشکلی به وجود نیاره عمل غیرقانونی نیست.
@DevTwitter | <Mohsen Zare/>
👍28👎3🤣2
اگه با لاراول کار میکنی، حتماً این پکیج رو امتحان کن!
یکی از کارهایی که همیشه تو پروژههای لاراولی باید انجام بدیم، فیلتر کردن دادهها و فرستادن ریسپانس تمیز و مرتب به کلاینتهاست. برای راحتتر کردن این کار و داشتن کدی تمیز و قابل فهم، پیشنهاد میکنم از پکیج Spatie\QueryBuilder\QueryBuilder
استفاده کنین با این پکیج میتونی خیلی راحت دادهها رو فیلتر و مرتب کنی و دقیقاً
همون دیتایی که لازم داری رو به کلاینت بفرستی. یه نمونه ازش ببینید:
اینطوری نه تنها کدتون مرتبتر میشه، بلکه میتونین با خیال راحت همه جور فیلتر و سرچ رو مدیریت کنین، بدون دردسر نوشتن کلی کوئری اضافه!
@DevTwitter | <Saber Qadimi/>
یکی از کارهایی که همیشه تو پروژههای لاراولی باید انجام بدیم، فیلتر کردن دادهها و فرستادن ریسپانس تمیز و مرتب به کلاینتهاست. برای راحتتر کردن این کار و داشتن کدی تمیز و قابل فهم، پیشنهاد میکنم از پکیج Spatie\QueryBuilder\QueryBuilder
استفاده کنین با این پکیج میتونی خیلی راحت دادهها رو فیلتر و مرتب کنی و دقیقاً
همون دیتایی که لازم داری رو به کلاینت بفرستی. یه نمونه ازش ببینید:
اینطوری نه تنها کدتون مرتبتر میشه، بلکه میتونین با خیال راحت همه جور فیلتر و سرچ رو مدیریت کنین، بدون دردسر نوشتن کلی کوئری اضافه!
@DevTwitter | <Saber Qadimi/>
👍29🔥4👎2🤣1