Forwarded from DevTwitter | توییت برنامه نویسی
تو پروژههای مختلف خیلی پیش میاد که هعی RAG استفاده بشه. یه سرویس کوچولوی سبک نقلی زدم که لازم نباشه هر سری RAG بنویسیم:
https://github.com/m-hoseyny/rag-aas
@DevTwitter | <Amjad!/>
https://github.com/m-hoseyny/rag-aas
@DevTwitter | <Amjad!/>
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
اینجا میتونید صدای Grok رو در چهار حالت پیشفرض، رمانتیک، Not a Therapist و «دکتر گراک» بشنوید. البته صرفاً به اینها محدود نمیشه و عملاً بعضی حالتهاش بدون سانسوری هر حرفی رو میزنن. درحال حاضر برای بعضی از کاربران iOS اشتراک پریمیومپلاس در دسترس هست.
🔗 techdevnotes
🤓 hadi @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Ninja Learn | نینجا لرن
خب خب خب ارایه ها ⏸
تو پست قبلی گفتیم که آرایه یه ساختمان دادهی خطی هست که دادهها رو پشت سر هم توی حافظه نگه میداره. حالا یه حالت دیگه هم داریم که بهجای خود داده، آدرس (پوینتر) داده ذخیره میشه، که بهش لیست پیوندی میگیم و توی پستهای بعدی بهش میپردازیم.
چطوری یه آرایه بسازیم؟ 🤔
تو بیشتر زبانهای برنامهنویسی، آرایهها باید نوع دادهی یکسانی داشته باشن و معمولا موقع تعریف، نوع دادهشون مشخص میشه. اما تو پایتون این محدودیت وجود نداره و میتونیم آرایهای کاملا داینامیک بسازیم:
مثال از C/C++:
در واقع، لیستهای پایتون جایگزینی برای آرایهها هستن ولی برای راحتی، بهشون آرایه میگیم.
چطور به دادههای آرایه دسترسی داشته باشیم؟ 👀
در بیشتر زبانها این کار خودکار هندل میشه و میتونیم به کمک ایندکس دادهی موردنظرمون رو بخونیم:
ولی بهطور کلی، آدرس یک عنصر در حافظه اینجوری حساب میشه:
Loc = (سایز هر عنصر × ایندکس) + آدرس شروع آرایه
چطور مقدار آرایه رو تغییر بدیم؟ 🔄
🔹 اضافه کردن مقدار جدید:
🔹 حذف مقدار خاصی از آرایه:
🔹 تغییر مقدار یک خانه:
سرعت اجرای عملیاتها ⏳
🔹 خواندن یک مقدار از آرایه:
دسترسی به آرایهها با توجه به فرمول بالا O(1) یعنی ثابت هست، چون مستقیماً به آدرسش توی حافظه دسترسی داریم و با تغییر تعداد داده ها هیج تغییری ایجاد نمیشه.
🔹 اضافه و حذف کردن مقدار:
اگر مقدار رو به آخر آرایه اضافه یا حذف کنیم → O(1)
ولی اگر بخوایم مقدار رو از وسط یا اول آرایه حذف کنیم یا جابهجا کنیم، باید همهی مقدارهای بعدی هم جابجا شن که وابسته به تعداد ایتم هامون هست و هر چی بیشتر باشه سرعت پایینتری داریم → O(n)
جمعبندی ✍
✅ آرایه یه ساختار دادهی خطی برای ذخیره دادههای مشابهه.
✅ خواندن داده از آرایه خیلی سریع انجام میشه.
✅ اضافه/حذف مقدار زمانبر هست، مخصوصا اگر تعداد دادهها زیاد باشه.
✅ آرایه حافظهی از پیش تخصیص دادهشده داره، پس ممکنه فضای اضافی هدر بره.
توی پستهای بعدی میریم سراغ ساختارهای دیگه مثل لیست پیوندی.
➖➖➖➖➖➖➖➖➖
تو پست قبلی گفتیم که آرایه یه ساختمان دادهی خطی هست که دادهها رو پشت سر هم توی حافظه نگه میداره. حالا یه حالت دیگه هم داریم که بهجای خود داده، آدرس (پوینتر) داده ذخیره میشه، که بهش لیست پیوندی میگیم و توی پستهای بعدی بهش میپردازیم.
چطوری یه آرایه بسازیم؟ 🤔
تو بیشتر زبانهای برنامهنویسی، آرایهها باید نوع دادهی یکسانی داشته باشن و معمولا موقع تعریف، نوع دادهشون مشخص میشه. اما تو پایتون این محدودیت وجود نداره و میتونیم آرایهای کاملا داینامیک بسازیم:
my_array = [] # آرایه خالی در پایتون
مثال از C/C++:
int my_array[4]; // آرایهای از ۴ عدد صحیح
در واقع، لیستهای پایتون جایگزینی برای آرایهها هستن ولی برای راحتی، بهشون آرایه میگیم.
چطور به دادههای آرایه دسترسی داشته باشیم؟ 👀
در بیشتر زبانها این کار خودکار هندل میشه و میتونیم به کمک ایندکس دادهی موردنظرمون رو بخونیم:
my_array = [1, 2, 3]
print(my_array[2]) # خروجی: 3
ولی بهطور کلی، آدرس یک عنصر در حافظه اینجوری حساب میشه:
Loc = (سایز هر عنصر × ایندکس) + آدرس شروع آرایه
چطور مقدار آرایه رو تغییر بدیم؟ 🔄
🔹 اضافه کردن مقدار جدید:
my_array.append(4) # اضافه کردن مقدار ۴ به آخر آرایه
🔹 حذف مقدار خاصی از آرایه:
del my_array[2] # حذف مقدار سوم آرایه
🔹 تغییر مقدار یک خانه:
my_array[0] = 6 # مقدار اولین عنصر رو ۶ میکنیم
سرعت اجرای عملیاتها ⏳
🔹 خواندن یک مقدار از آرایه:
دسترسی به آرایهها با توجه به فرمول بالا O(1) یعنی ثابت هست، چون مستقیماً به آدرسش توی حافظه دسترسی داریم و با تغییر تعداد داده ها هیج تغییری ایجاد نمیشه.
🔹 اضافه و حذف کردن مقدار:
اگر مقدار رو به آخر آرایه اضافه یا حذف کنیم → O(1)
ولی اگر بخوایم مقدار رو از وسط یا اول آرایه حذف کنیم یا جابهجا کنیم، باید همهی مقدارهای بعدی هم جابجا شن که وابسته به تعداد ایتم هامون هست و هر چی بیشتر باشه سرعت پایینتری داریم → O(n)
جمعبندی ✍
✅ آرایه یه ساختار دادهی خطی برای ذخیره دادههای مشابهه.
✅ خواندن داده از آرایه خیلی سریع انجام میشه.
✅ اضافه/حذف مقدار زمانبر هست، مخصوصا اگر تعداد دادهها زیاد باشه.
✅ آرایه حافظهی از پیش تخصیص دادهشده داره، پس ممکنه فضای اضافی هدر بره.
توی پستهای بعدی میریم سراغ ساختارهای دیگه مثل لیست پیوندی.
#️⃣ #programming #software
➖➖➖➖➖➖➖➖➖
🥷 CHANNEL | GROUP
Forwarded from DevTwitter | توییت برنامه نویسی
تمپلیت ناکست برای Telegram Mini App
یه سری تغییر باید توی فایل جی اسی که استفاده میکنید برای مینی اپ بدید، که ردیفش کردم و به عنوان تمپلیت براش ریپو ساختم.
دونیشن به من روی شبکه TON
blackestwhite.ton
@DevTwitter | <Mahdi Akbari/>
یه سری تغییر باید توی فایل جی اسی که استفاده میکنید برای مینی اپ بدید، که ردیفش کردم و به عنوان تمپلیت براش ریپو ساختم.
دونیشن به من روی شبکه TON
blackestwhite.ton
@DevTwitter | <Mahdi Akbari/>
Forwarded from DevTwitter | توییت برنامه نویسی
تمپلیت ناکست برای Telegram Mini App
یه سری تغییر باید توی فایل جی اسی که استفاده میکنید برای مینی اپ بدید، که ردیفش کردم و به عنوان تمپلیت براش ریپو ساختم.
https://github.com/blackestwhite/nuxt-telegram-mini-app-template
@DevTwitter | <Mahdi Akbari/>
یه سری تغییر باید توی فایل جی اسی که استفاده میکنید برای مینی اپ بدید، که ردیفش کردم و به عنوان تمپلیت براش ریپو ساختم.
https://github.com/blackestwhite/nuxt-telegram-mini-app-template
@DevTwitter | <Mahdi Akbari/>
Forwarded from Codino School (ایمان غفوری)
شایدم تنبلی خودم هست، الکی ربطش ندیم به ازدواج
ولی قطعا فشار مسائل مالی که بیشتر بشه آدم مجبور میشه از فعالیت هایی که بیشتر جنبه علاقه داشته به مرور فاصله بگیره
تشکیل دادن یک خانواده و زندگی جدید به راحتی فشار یک دکمه نیست.
ایشالا از این مقطع حساس کنونی گذر کردیم دوباره در خدمت عزیزان باشیم
@codino
ولی قطعا فشار مسائل مالی که بیشتر بشه آدم مجبور میشه از فعالیت هایی که بیشتر جنبه علاقه داشته به مرور فاصله بگیره
تشکیل دادن یک خانواده و زندگی جدید به راحتی فشار یک دکمه نیست.
ایشالا از این مقطع حساس کنونی گذر کردیم دوباره در خدمت عزیزان باشیم
@codino
Forwarded from DevTwitter | توییت برنامه نویسی
خب وقتشه از پورتفولیو خودم رو نمایی کنم.صفرتا صد کدشو با vanilla js زدم.
اگ یکم کثیفه به بزرگی خودتون ببخشید من تو فرانت خیلی جونیورم.
لینک دمو : https://srwuix.ir
لینک ریپازیتوری:
https://github.com/srwuix/srwuix.github.io.git
بهتون اجازه میدم از این قالب استفاده کنید برا پورتفولیو خودتون
@DevTwitter | <اراجیف ذهن گوربا/>
اگ یکم کثیفه به بزرگی خودتون ببخشید من تو فرانت خیلی جونیورم.
لینک دمو : https://srwuix.ir
لینک ریپازیتوری:
https://github.com/srwuix/srwuix.github.io.git
بهتون اجازه میدم از این قالب استفاده کنید برا پورتفولیو خودتون
@DevTwitter | <اراجیف ذهن گوربا/>
Forwarded from Laravel News
Eloquent Relationship Queries in Laravel with whereRelation https://laravel-news.com/whereRelation
Laravel News
Eloquent Relationship Queries in Laravel with whereRelation - Laravel News
Unlock the power of Laravel's whereRelation method for streamlined relationship filtering. Build expressive queries that filter models based on related data without complex joins.
Forwarded from Linuxor ?
This media is not supported in your browser
VIEW IN TELEGRAM
با اکستنشن Continue میتونین از مدل آفلاین دیپ سیک توی کد زدن استفاده کنید :
کافیه این مدل دیپ سیک که مخصوص کد زدنه رو دانلود کنید (در حد GPT4-Turbo هستش) :
ollama run deepseek-coder-v2:16b
بعد اکستنشن Continue رو یا روی VsCode یا JetBrains نصب کنید برین توی این لینک آموزش نصبش توی بخش Install و Model Setup هست :
docs.continue.dev
@Linuxor
کافیه این مدل دیپ سیک که مخصوص کد زدنه رو دانلود کنید (در حد GPT4-Turbo هستش) :
ollama run deepseek-coder-v2:16b
بعد اکستنشن Continue رو یا روی VsCode یا JetBrains نصب کنید برین توی این لینک آموزش نصبش توی بخش Install و Model Setup هست :
docs.continue.dev
@Linuxor
Forwarded from DevTwitter | توییت برنامه نویسی
اگر دارید C++ یاد میگیرید و نیاز دارید پروژه های تمرینی داشته باشید و کار کنید
یک پروژه مبتدی مدریت فایل رو نوشتم که میتونید دسترسی به سورس اش داشته باشید
https://github.com/MisaghMomeniB/File-Manager-Cpp
@DevTwitter | <Misagh Momeni Bashusqeh/>
یک پروژه مبتدی مدریت فایل رو نوشتم که میتونید دسترسی به سورس اش داشته باشید
https://github.com/MisaghMomeniB/File-Manager-Cpp
@DevTwitter | <Misagh Momeni Bashusqeh/>
Forwarded from Gopher Academy
https://antonz.org/go-concurrency/
antonz.org
Gist of Go: Concurrency
Interactive book on concurrent programming with many exercises.
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
antonz.org
Gist of Go: Concurrency
Interactive book on concurrent programming with many exercises.
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
Forwarded from Linux Zone | لینوکس زون
چرا میگن بگیم "گنو/لینوکس" و نگیم "لینوکس"؟
با یه پست جدید در خدمتتونیم 😊
یکی از صحبتهایی که همیشه بین حرفهای و تازهکارا شکل میگیره اینه که نباید بگیم
لینوکس بلکه باید بگیم گنو/لینوکس.
خب چرا؟
بیاید برگردیم به 1983، زمانی که گنو (GNU) به عنوان یه پروژه اوپن سورس توسط ریچارد استالمن ایجاد شد. هدف اصلیشونم ساخت سیستم عاملی بود که سورس کد مشخص داشته باشه همچنین متن باز، آزاد، سریع و ایمنی باشه.
پروژه گنو شروع کرد به ساختن بخشهای مختلف سیستم عامل، و خیلی از ابزارها و چیزای مهمی که هنوز بسیار بسیار مهم هستن، مثلا GCC، Bash، emacs، coreutils
اینایی که گفتیم چنتا نمونه از چیزایی بودن که پروژه گنو ساخت.
مثلا coreutils کامندها و دستورات بیسیکی کار با فایلها رو شامل میشه. کامند ls و cp و rm و ... از همین coreutils هستن.
خلاصه که خیلی چیزا ساختن، ولی همچنان یه مشکلی بود...
کرنل که عملا هسته سیستم عامل بود رو نداشتن و کرنلهای موجود رو هم استفاده نکردن به دلایل دیگه.
میرسیم به 1991، یه دانشجوی فنلاندی به اسم لینوس توروالدز میاد و یه کرنل میسازه و توجه پروژه گنو جمع میشه به این کرنل، یه کرنل اوپن سورس و رایگان که همین قضیه هم باعث میشه جای خالی کرنل توسظ لینوکس پر بشه.
وایسا ببینم، مگه لینوکس سیستم عامل نبود؟
خب باید بگم نه :)))
لینوکس در اصل یه کرنله.
در نهایت ابزارهای گنو و کرنل لینوکس ترکیب میشن و گنو/لینوکس متولد میشه.
با ترکیب این دوتا، اولین توزیع گنو/لینوکسی به وجود میاد تو سال 1993 و اسمشم میشه Slackware
احتمالا خیلیا نمیشناسنش ولی یه نام آشنا در همین زمان به وجود میاد که قطعا میدونم میشناسید :)
و دبیان متولد میشه 😄
پس اگر بگیم لینوکس، عملا داریم بخش عظیمی از سیستم عامل رو که گنو تشکیل میده رو زیر سوال میبریم و بیخیال زحماتش میشیم.
یه سوال دیگه هم پیش میاد:
چرا گنو خودش کرنل ننوشت؟
در اصل گنو هم یه کرنل داره!!
یه میکرو کرنل به اسم Mach که فانکشنالیتیهای اصلی و هسته رو انجام میده و hurd هم در اصل چیزای high level تر رو انجام میده.
اما خب باید بگم که اگه پشت گوشتون رو دیدید کرنل کامل hurd رو هم خواهید دید 😁
حدود 30 ساله که داره توسعه پیدا میکنه و هنوزم بدرد استفاده نمیخوره و جای کار داره.
و این بود داستان توسعه لینوکس، گنو، و قضیه نامگذاری گنو/لینوکس که بهش پرداختیم.
امیدوارم روز و شب خوبی داشته باشید
با یه قلب خوشگل خوشحالمون کن 🫡❤️
➖➖➖➖➖➖➖➖➖➖
با یه پست جدید در خدمتتونیم 😊
یکی از صحبتهایی که همیشه بین حرفهای و تازهکارا شکل میگیره اینه که نباید بگیم
لینوکس بلکه باید بگیم گنو/لینوکس.
خب چرا؟
بیاید برگردیم به 1983، زمانی که گنو (GNU) به عنوان یه پروژه اوپن سورس توسط ریچارد استالمن ایجاد شد. هدف اصلیشونم ساخت سیستم عاملی بود که سورس کد مشخص داشته باشه همچنین متن باز، آزاد، سریع و ایمنی باشه.
پروژه گنو شروع کرد به ساختن بخشهای مختلف سیستم عامل، و خیلی از ابزارها و چیزای مهمی که هنوز بسیار بسیار مهم هستن، مثلا GCC، Bash، emacs، coreutils
اینایی که گفتیم چنتا نمونه از چیزایی بودن که پروژه گنو ساخت.
مثلا coreutils کامندها و دستورات بیسیکی کار با فایلها رو شامل میشه. کامند ls و cp و rm و ... از همین coreutils هستن.
خلاصه که خیلی چیزا ساختن، ولی همچنان یه مشکلی بود...
کرنل که عملا هسته سیستم عامل بود رو نداشتن و کرنلهای موجود رو هم استفاده نکردن به دلایل دیگه.
میرسیم به 1991، یه دانشجوی فنلاندی به اسم لینوس توروالدز میاد و یه کرنل میسازه و توجه پروژه گنو جمع میشه به این کرنل، یه کرنل اوپن سورس و رایگان که همین قضیه هم باعث میشه جای خالی کرنل توسظ لینوکس پر بشه.
وایسا ببینم، مگه لینوکس سیستم عامل نبود؟
خب باید بگم نه :)))
لینوکس در اصل یه کرنله.
در نهایت ابزارهای گنو و کرنل لینوکس ترکیب میشن و گنو/لینوکس متولد میشه.
با ترکیب این دوتا، اولین توزیع گنو/لینوکسی به وجود میاد تو سال 1993 و اسمشم میشه Slackware
احتمالا خیلیا نمیشناسنش ولی یه نام آشنا در همین زمان به وجود میاد که قطعا میدونم میشناسید :)
و دبیان متولد میشه 😄
پس اگر بگیم لینوکس، عملا داریم بخش عظیمی از سیستم عامل رو که گنو تشکیل میده رو زیر سوال میبریم و بیخیال زحماتش میشیم.
یه سوال دیگه هم پیش میاد:
چرا گنو خودش کرنل ننوشت؟
در اصل گنو هم یه کرنل داره!!
یه میکرو کرنل به اسم Mach که فانکشنالیتیهای اصلی و هسته رو انجام میده و hurd هم در اصل چیزای high level تر رو انجام میده.
اما خب باید بگم که اگه پشت گوشتون رو دیدید کرنل کامل hurd رو هم خواهید دید 😁
حدود 30 ساله که داره توسعه پیدا میکنه و هنوزم بدرد استفاده نمیخوره و جای کار داره.
و این بود داستان توسعه لینوکس، گنو، و قضیه نامگذاری گنو/لینوکس که بهش پرداختیم.
امیدوارم روز و شب خوبی داشته باشید
با یه قلب خوشگل خوشحالمون کن 🫡❤️
#⃣#gnome #linux
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
Forwarded from Laravel News
Fire Tower: Application & Config Monitoring https://laravel-news.com/fire-tower-application-config-monitoring
Laravel News
Fire Tower: Application & Config Monitoring - Laravel News
Fire Tower is a Laravel package and service to keep tabs on your applications. Let us keep watch on your config, package versions, and more.
Forwarded from DevTwitter | توییت برنامه نویسی
#کوته_نیوز
لاراول 12 ول داده شد.
گفتن که این نسخه دولوپر دوستترین نسخهی لاراوله و کمترین تغییرات مخرب رو داره.
Laravel-12.0.0-no_begaei
@DevTwitter
لاراول 12 ول داده شد.
گفتن که این نسخه دولوپر دوستترین نسخهی لاراوله و کمترین تغییرات مخرب رو داره.
Laravel-12.0.0-no_begaei
@DevTwitter
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 لاراول ۱۲ منتشر شد. 🎉
این نسخه دولوپر دوستترین نسخهی لاراول است و کمترین تغییرات مخرب رو دارد.
https://github.com/laravel/framework/releases/tag/v12.0.0
#لاراول
@TheRaymondDev
این نسخه دولوپر دوستترین نسخهی لاراول است و کمترین تغییرات مخرب رو دارد.
https://github.com/laravel/framework/releases/tag/v12.0.0
#لاراول
@TheRaymondDev
GitHub
Release v12.0.0 · laravel/framework
[12.x] Prep Laravel v12 by @driesvints in #50406
[12.x] Make Str::is() match multiline strings by @SjorsO in #51196
[12.x] Use native MariaDB CLI commands by @staudenmeir in #51505
[12.x] Adds miss...
[12.x] Make Str::is() match multiline strings by @SjorsO in #51196
[12.x] Use native MariaDB CLI commands by @staudenmeir in #51505
[12.x] Adds miss...