سلام دنیا
محمدمهدی کاشانی هستم با نام مستعار متین، متولد شهریور ۱۳۸۵ در شهر اصفهان
حدود ۴ ساله که بهصورت حرفهای در زمینهی برنامهنویسی بکاند و توسعهی سمت سرور با زبان پایتون و PHP فعالیت میکنم و همچنین تا حدودی در حوزهی DevOps تخصص دارم
طرفدار پر و پا قرص نرمافزار آزاد و گنو/لینوکس هستم و با اشتیاق دنبال یادگیری و فعالیت بیشتر در این مسیرم.
الان که این کانال رو میسازم در شرایط مناسبی نیستیم و اینترنت وضعیت پایداری نداره، ولی با این حال برای مشغول نگه داشتن خودم تا جایی که میشه به فعالیتم ادامه میدم
اینجا از تجربههام در پروژهها مینویسم، گاهی هم آموزش و مسائل فنی میزارم و بعضی وقتها هم چیزهایی روزمره و غیرمرتبط با کار.
از طریق لینک زیر میتونید به شبکههای اجتماعی، استکهایی که توشون فعالیت داشتم و پروژههای متنباز من دسترسی داشته باشید:
https://mkaaf.ir
اگر مطالب براتون مفید بود و دوست داشتید ازم حمایت کنید:
daramet.com/devmmk
حمایت شما باعث میشه بتونم با انگیزهی بیشتر و استمرار بالاتر به تولید و اشتراک محتوای آزاد و فعالیت در این زمینه ادامه بدم
برای ارتباط با من میتونید مستقیما بهم پیام بدید
یا اگر ریپورت هستید میتونید از طریق ربات باهام در ارتباط باشید
محمدمهدی کاشانی هستم با نام مستعار متین، متولد شهریور ۱۳۸۵ در شهر اصفهان
حدود ۴ ساله که بهصورت حرفهای در زمینهی برنامهنویسی بکاند و توسعهی سمت سرور با زبان پایتون و PHP فعالیت میکنم و همچنین تا حدودی در حوزهی DevOps تخصص دارم
طرفدار پر و پا قرص نرمافزار آزاد و گنو/لینوکس هستم و با اشتیاق دنبال یادگیری و فعالیت بیشتر در این مسیرم.
الان که این کانال رو میسازم در شرایط مناسبی نیستیم و اینترنت وضعیت پایداری نداره، ولی با این حال برای مشغول نگه داشتن خودم تا جایی که میشه به فعالیتم ادامه میدم
اینجا از تجربههام در پروژهها مینویسم، گاهی هم آموزش و مسائل فنی میزارم و بعضی وقتها هم چیزهایی روزمره و غیرمرتبط با کار.
از طریق لینک زیر میتونید به شبکههای اجتماعی، استکهایی که توشون فعالیت داشتم و پروژههای متنباز من دسترسی داشته باشید:
https://mkaaf.ir
اگر مطالب براتون مفید بود و دوست داشتید ازم حمایت کنید:
daramet.com/devmmk
حمایت شما باعث میشه بتونم با انگیزهی بیشتر و استمرار بالاتر به تولید و اشتراک محتوای آزاد و فعالیت در این زمینه ادامه بدم
برای ارتباط با من میتونید مستقیما بهم پیام بدید
یا اگر ریپورت هستید میتونید از طریق ربات باهام در ارتباط باشید
❤8
⌨️ Combiz
کار این ابزار ساده تولید مسیج گیت کامیت با استفاده از AI هست
میتونید از Ollama و یه مدل سبک متنی مثل phi3:mini استفاده کنید :)
@mat_log
کار این ابزار ساده تولید مسیج گیت کامیت با استفاده از AI هست
https://github.com/devmmk/ComBiz
میتونید از Ollama و یه مدل سبک متنی مثل phi3:mini استفاده کنید :)
@mat_log
❤11
امروز خیلی یهویی به سرم زد که برم و یبار دیگه با cloudflare workers ور برم
(شاید باهاش کار کرده باشید؛ ولی یه بستر رایگانه برای میزبانی کردن پروژه های کوچیک).
و متوجه شدم که میتونید بصورت کاملا رایگان و با محدودیت بسیار کمی، از یسری LLM از پیش میزبانی شده توسط کلودفلر داخل پروژه های Workers و حتی جاهای دیگه استفاده کنید
همچنین برای مدل های Beta کلاً محدودیت نورونیای وجود نداره و هر تعداد درخواست که خواستید میتونید بفرستید:)
برای کارایی که نیاز به یه مدل خیلی قوی ندارن، یا استفادهی زیاد خیلی مناسبه
برای مثال میشه با استفاده از همین Workers یه چتبات ساخت که میتونید ازش برای پرسیدن سوال های برنامه نویسی استفاده کنید، یهجور Code Assistant ساده و بدون محدودیت
یا کارای پیچیده تر مثل Scrape کردن محتوای وب و تحلیل دادهی بدست اومده و کارای اینطوری که نیاز به درخواست های زیادی دارن
یه نقطه ضعفی که داشت و متوجهش شدم این بود که OpenAI API Compatible نیست بهطور کامل و توی خیلی از پروژه ها نمیشه بهطور مستقیم ازش استفاده کرد.
در کل چیز فان و کار راه بندازی بود و شخصا خیلی باهاش حال کردم
اینم لینک tutorialش هست که با چند تا نمونه و تمرین نحوه استفاده ازش رو بهتون نشون میده:
https://developers.cloudflare.com/workers-ai/guides/tutorials/
@mat_log
(شاید باهاش کار کرده باشید؛ ولی یه بستر رایگانه برای میزبانی کردن پروژه های کوچیک).
و متوجه شدم که میتونید بصورت کاملا رایگان و با محدودیت بسیار کمی، از یسری LLM از پیش میزبانی شده توسط کلودفلر داخل پروژه های Workers و حتی جاهای دیگه استفاده کنید
همچنین برای مدل های Beta کلاً محدودیت نورونیای وجود نداره و هر تعداد درخواست که خواستید میتونید بفرستید:)
برای کارایی که نیاز به یه مدل خیلی قوی ندارن، یا استفادهی زیاد خیلی مناسبه
برای مثال میشه با استفاده از همین Workers یه چتبات ساخت که میتونید ازش برای پرسیدن سوال های برنامه نویسی استفاده کنید، یهجور Code Assistant ساده و بدون محدودیت
یا کارای پیچیده تر مثل Scrape کردن محتوای وب و تحلیل دادهی بدست اومده و کارای اینطوری که نیاز به درخواست های زیادی دارن
یه نقطه ضعفی که داشت و متوجهش شدم این بود که OpenAI API Compatible نیست بهطور کامل و توی خیلی از پروژه ها نمیشه بهطور مستقیم ازش استفاده کرد.
در کل چیز فان و کار راه بندازی بود و شخصا خیلی باهاش حال کردم
اینم لینک tutorialش هست که با چند تا نمونه و تمرین نحوه استفاده ازش رو بهتون نشون میده:
https://developers.cloudflare.com/workers-ai/guides/tutorials/
@mat_log
Cloudflare Docs
Tutorials · Cloudflare Workers AI docs
View tutorials to help you get started with Workers AI.
❤7
یهسری مدل دیگه هم که معمولاً کمتر بهشون اشاره میشه ولی توی خیلی از پروداکتها استفاده میشن، مدلهای Text Embedding هست.
کار این مدلهای نسبتاً سبک اینه که یه ورودی متنی میگیرن و یه آرایه عددی (مثلاً ۱۰۲۴ تایی، بسته به مدل) تحویل میدن.
حالا کاربردشون چیه؟
توی مواردی مثل جستوجوی معنایی (Semantic Search)، ریکامندیشن سیستمها، دستهبندی، فیلتر محتوا و... کاربرد دارن.
ایده کلیشون اینه که بهجای کار با خود دیتای متنی، متنها رو به یهسری عدد معنادار تبدیل میکنن، بعد با یه ضرب برداری ساده میتونید میزان شباهت معنایی بین دو تا متن رو حساب کنید :)
نمونه تست و مدلی که روی لپتاپ خودم اجرا کردم رو توی تصویر میتونید ببینید.
پ.ن: ممنون از کارفرما که اینو معرفی کرد؛ چیز باحالی بود.
🔗 https://platform.openai.com/docs/guides/embeddings
@mat_log
کار این مدلهای نسبتاً سبک اینه که یه ورودی متنی میگیرن و یه آرایه عددی (مثلاً ۱۰۲۴ تایی، بسته به مدل) تحویل میدن.
حالا کاربردشون چیه؟
توی مواردی مثل جستوجوی معنایی (Semantic Search)، ریکامندیشن سیستمها، دستهبندی، فیلتر محتوا و... کاربرد دارن.
ایده کلیشون اینه که بهجای کار با خود دیتای متنی، متنها رو به یهسری عدد معنادار تبدیل میکنن، بعد با یه ضرب برداری ساده میتونید میزان شباهت معنایی بین دو تا متن رو حساب کنید :)
نمونه تست و مدلی که روی لپتاپ خودم اجرا کردم رو توی تصویر میتونید ببینید.
پ.ن: ممنون از کارفرما که اینو معرفی کرد؛ چیز باحالی بود.
🔗 https://platform.openai.com/docs/guides/embeddings
@mat_log
❤7
اگه پایتون کد میزنید یه نکتهای که باید حواستون باشه، مخصوصاً وقتی دارید یه ماژول و لایبرری مینویسید، اینه که اسم فایلهاتون رو با اسم ماژولهای عمومی یا پرکاربرد پایتون تداخل ندید.
مثلاً یه اشتباه رایج اینه که یه فایل یا پوشه به اسم utils درست میکنید، و بعد یه پکیج خارجی که importش میکنید هم داخلش فایلی به همین اسم داره، و متأسفانه گاهی وقتا اون پکیج بهجای import نسبی که به این شکله؛
از import مطلق یا همون بدون دات
استفاده کرده.
در این حالت ماژول خارجی سعی میکنه از لایبرری داخل پروژه استفاده کنه و کل پروژه میره رو هوا!
نمونهش SDK پایتون درگاه پرداخت زرین پال (zarinpal-py-sdk) هست که بخاطر رعایت نکردن استاندارد Packaging مجبورم کردن توی پروژهی خودم همه جاهایی که از اسم utils استفاده کرده بودم به یه چیز دیگه تغییرش بدم، که خب منطقی نیست.
+آپدیت: تیکت زدیم و مشکل رو رفع کردن🦥
⚠️ برای اینکه از این دردسرها دور بمونید:
همیشه داخل پکیجها از import نسبی استفاده کنید
از اسمهایی مثل utils, helpers, main, test, email, json و ... که یا کلیان یا با استانداردهای پایتون تداخل دارن، پرهیز کنید یا حداقل خاصترش کنید
از ابزارهایی مثل isort, flake8, pylint یا pyright کمک بگیرید تا مشکلات import رو زودتر متوجه شید
بستهبندی پایتون قلق داره؛ ازش غافل نشید.
@mat_log
مثلاً یه اشتباه رایج اینه که یه فایل یا پوشه به اسم utils درست میکنید، و بعد یه پکیج خارجی که importش میکنید هم داخلش فایلی به همین اسم داره، و متأسفانه گاهی وقتا اون پکیج بهجای import نسبی که به این شکله؛
from .utils import *
از import مطلق یا همون بدون دات
from utils import *
استفاده کرده.
در این حالت ماژول خارجی سعی میکنه از لایبرری داخل پروژه استفاده کنه و کل پروژه میره رو هوا!
نمونهش SDK پایتون درگاه پرداخت زرین پال (zarinpal-py-sdk) هست که بخاطر رعایت نکردن استاندارد Packaging مجبورم کردن توی پروژهی خودم همه جاهایی که از اسم utils استفاده کرده بودم به یه چیز دیگه تغییرش بدم، که خب منطقی نیست.
+آپدیت: تیکت زدیم و مشکل رو رفع کردن🦥
⚠️ برای اینکه از این دردسرها دور بمونید:
همیشه داخل پکیجها از import نسبی استفاده کنید
از اسمهایی مثل utils, helpers, main, test, email, json و ... که یا کلیان یا با استانداردهای پایتون تداخل دارن، پرهیز کنید یا حداقل خاصترش کنید
از ابزارهایی مثل isort, flake8, pylint یا pyright کمک بگیرید تا مشکلات import رو زودتر متوجه شید
بستهبندی پایتون قلق داره؛ ازش غافل نشید.
@mat_log
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
🕹 رباتی که مینروب بازی میکنه!
حالا از اونجایی که تکنیک های ساده ای برای تشخیص مین های احتمالی وجود داشت، گفتم یه کار فان بکنم و ربات و الگوریتمی بنویسم که خودش نوبت رو تشخیص بده، برد رو آنالیز کنه و بهترین حرکت ممکن رو انجام بده
این هم شد نتیجهاش که خب برای خودم خیلی لذت بخش و باحال بود :)
https://github.com/devmmk/minroob-expert
و اگه خوشتون اومد خوشحال میشم توی گیتهاب استار بدید
@mat_log
مینروب (minesweeper) یک بازی ساده و در عین حال جذاب هست که هر از گاهی توی تلگرام با رفقا بازی میکنم و هرکس که مین های بیشتری پیدا کنه برنده میشه
این بازی تا حدودی شانسیه ولی از یهجایی به بعد بستگی به میزان دقتتون داره!
حالا از اونجایی که تکنیک های ساده ای برای تشخیص مین های احتمالی وجود داشت، گفتم یه کار فان بکنم و ربات و الگوریتمی بنویسم که خودش نوبت رو تشخیص بده، برد رو آنالیز کنه و بهترین حرکت ممکن رو انجام بده
این هم شد نتیجهاش که خب برای خودم خیلی لذت بخش و باحال بود :)
https://github.com/devmmk/minroob-expert
و اگه خوشتون اومد خوشحال میشم توی گیتهاب استار بدید
@mat_log
❤6
Forwarded from جادی | Jadi
https://youtube.com/shorts/RDEjHeHmciQ?feature=share
یکی از منابع رنج روزمره ما اینه که یادمون میره انسان هستیم و برای یاد گرفتن زمان خاصی نیازه، برای جابجا شدن زمان خاصی نیازه، برای آرامش زمان لازمه، برای خوردن زمان لازمه و ... ما درگیر چیزی به اسم «تله بهرهوری» میشیم و برامون تکرار می شه که می تونیم سریع و سریعتر باشیم و رنج بیشتری می کشیم و اتفاقا هر چقدر بیشتر می دویم، کمتر جلو می ریم. قدم های دقیق و پیوسته ما رو به جاهای بهتری می رسونن.
یکی از منابع رنج روزمره ما اینه که یادمون میره انسان هستیم و برای یاد گرفتن زمان خاصی نیازه، برای جابجا شدن زمان خاصی نیازه، برای آرامش زمان لازمه، برای خوردن زمان لازمه و ... ما درگیر چیزی به اسم «تله بهرهوری» میشیم و برامون تکرار می شه که می تونیم سریع و سریعتر باشیم و رنج بیشتری می کشیم و اتفاقا هر چقدر بیشتر می دویم، کمتر جلو می ریم. قدم های دقیق و پیوسته ما رو به جاهای بهتری می رسونن.
YouTube
قدم های آروم و دقیق و پیوسته ما رو به جای بهتری میرسونن تا دویدن بی و سر ته؛ گپی در باب زمان
یکی از منابع رنج روزمره ما اینه که یادمون میره انسان هستیم و برای یاد گرفتن زمان خاصی نیازه، برای جابجا شدن زمان خاصی نیازه، برای آرامش زمان لازمه، برای خور...
❤2
یکی از کارهایی که خیلی برام جذابه، ور رفتن با گوشی موبایله؛ از روت کردن گرفته تا نصب کاستومرام و دستکاری کلی سیستم.
گوشیای که توی تصویر میبینید Redmi 9A هست؛ یه مدل قدیمی و ضعیف با ۲ گیگ رم و ۳۲ گیگ حافظه داخلی.
اول از همه رفتم سراغ آنلاک بوتلودر و نصب کاستومرام LineageOS که یه اندروید خام و بدون Bloatware اضافیه، ولی وسط کار گوشی بریک شد.
بریک شدن یعنی گوشی به هیچچیزی واکنش نشون نده؛ نه دکمهها، نه شارژر، نه حتی یه ویبره یا نور کوچیک. عملاً یه گوشی مرده با صفحهی کاملاً خاموش.
با باز کردن گوشی، قطع و وصل کردن باتری و فلش مجدد، تونستم دوباره برگردونمش.
بعد از کلی دردسر، کاستومریکاوری و کاستومرام نصب شد، روتش کردم و در نهایت Nethunter رو روش بالا آوردم که همون Kali Linux نسخهی موبایله.
اگه وقت کنم، بعداً راجعبه همهی این مراحل مفصلتر توضیح میدم.
@mat_log
گوشیای که توی تصویر میبینید Redmi 9A هست؛ یه مدل قدیمی و ضعیف با ۲ گیگ رم و ۳۲ گیگ حافظه داخلی.
اول از همه رفتم سراغ آنلاک بوتلودر و نصب کاستومرام LineageOS که یه اندروید خام و بدون Bloatware اضافیه، ولی وسط کار گوشی بریک شد.
بریک شدن یعنی گوشی به هیچچیزی واکنش نشون نده؛ نه دکمهها، نه شارژر، نه حتی یه ویبره یا نور کوچیک. عملاً یه گوشی مرده با صفحهی کاملاً خاموش.
با باز کردن گوشی، قطع و وصل کردن باتری و فلش مجدد، تونستم دوباره برگردونمش.
بعد از کلی دردسر، کاستومریکاوری و کاستومرام نصب شد، روتش کردم و در نهایت Nethunter رو روش بالا آوردم که همون Kali Linux نسخهی موبایله.
اگه وقت کنم، بعداً راجعبه همهی این مراحل مفصلتر توضیح میدم.
@mat_log
❤4