Md Daily – Telegram
Md Daily
725 subscribers
239 photos
15 videos
21 files
283 links
راجب مقالات و مستندات فنی یا غیر فنی که میخونم و علایقم اینجا مینویسم :)


گروه کانال: https://news.1rj.ru/str/MdDailyGap

کورس ها: https://news.1rj.ru/str/MdDaily/395

وبلاگ: https://mddaily.ir
Download Telegram
Md Daily
GIF
+ دواپسمون همش داره ماینکرفت بازی میکنه

- اونایی که میدونن: 💀


داکر یه پروژه ی باحال داره به نام Dockercraft که میتونید مستقیم توی ماینکرفت کانتینر های داکرتون رو مدیریت کنید :)

اما چطوری کار میکنه؟

اومدن از Cuberite، یک سرور ماینکرفت متن‌باز و نوشته‌شده با C++، برای پیاده‌سازی Dockercraft استفاده کردن. این سرور از پلاگین‌های Lua پشتیبانی میکنه، بنابراین یک پلاگین اختصاصی برای تعامل با Docker توسعه دادن.

🔹 اجرای عملیات در سمت سرور

کلاینت ماینکرفت بدون تغییر باقی میمونه و تمام پردازش‌ها سمت سرور انجام میشه. پلاگین Lua که در مسیر world/Plugins/Docker قرار داره، یک تب مدیریتی در WebAdmin سرور ایجاد میکنه:

Plugin:AddWebTab("Docker", HandleRequest_Docker)

این باعث میشه درخواست‌های POST به مسیر http://127.0.0.1:8080/webadmin/Docker/Docker ارسال بشن.

🔹 اتصال به Docker Remote API

رویدادهای داکر از طریق سرویس Goproxy که با Golang نوشته شده پردازش شده و به پلاگین Lua منتقل میشن. این سرویس درخواست‌ها را به سرور ارسال می‌کنه:

func MCServerRequest(data url.Values, client *http.Client) {
req, _ := http.NewRequest("POST", "http://127.0.0.1:8080/webadmin/Docker/Docker", strings.NewReader(data.Encode()))
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
req.SetBasicAuth("admin", "admin")
client.Do(req)
}

🔹 اجرای دستورات از طریق ماینکرفت

پلاگین Lua میتونه از طریق os.execute() با این سرویس ارتباط برقرار کنه. مثلاً موقع ورود یه بازیکن، اطلاعات کانتینرهای داکر بروزرسانی میشن:

function PlayerJoined(Player)
r = os.execute("goproxy containers")
end

این روش امکان مدیریت کانتینرهای Docker را مستقیماً از داخل ماینکرفت فراهم می‌کنه


گیت هاب پروژه:

🔗 https://github.com/docker/dockercraft

---

مثل همیشه کنجکاو بمونید :)

🆔 @MdDaily
❤‍🔥10🤣3👍2🤯2
عشق میاد و میره، اما git commit برای همیشه می‌مونه!

#ولنتاین_برنامه_نویس

🆔 @MdDaily
👍10❤‍🔥22😁2😢21👌1
دانشگاه شاهکاره

دارم با استاد بحث میکنم که BSD هم سیستم عامله و قبول نمیکنه میگه نه نرم افزار کاربردی برپایه ی لینوکسه

بعد خودش لینوکس رو چطوری نوشته؟

Linox

🆔 @MdDaily
🤣22😁1
Forwarded from Python Hints
این موضوع واقعاً گرد ناامیدی نیست، یک نیم‌نگاه به آمار اخراج‌ها یا لیست مشاغلی که دیگه نیروی جونیور نمی‌گیرند بندازید (البته بعضی‌ها زدن جونیور ولی دقت کنید لیست مهارت‌ها رو ببینید.)

مثال بکند میزنم:
قبلاً جونیور رو میاوردند که سنیور وقت آزادتری داشته باشه برای طراحی سیستم و بررسی بخش‌های مختلف و چیزای مهمتر؛ یعنی شرکتی نبود که به سنیور بگه یک لاگین بزن، یک صفحه بزنم اسم کاربر رو برگردونه و ...

این‌ها تسک‌های جونیور بود و سنیور نهایتاً review می‌کرد؛ الان تمام اینکارهارو یک الگوریتم هوش مصنوعی می‌کنه، سنیور در لحظه مسئله رو می‌شکنه و از AI می‌پرسه کد رو تحویل می‌گیره و کپی و تمام ...
همین مسیر رو ادامه میده و در نهایت حالات مختلف تست نویسی که به ذهنش میرسه رو هم دونه دونه از AI می‌خواد بنویسه بازم دابل چک می‌شه و تمام.

بعد هم وقتش رو میذاره روی تسک‌های اصلی؛ طراحی سیستم، طراحی دیتابیس و ... زیر بار بردن پروژه
تست‌های مختلف خارج شدن بخش‌های مختلف سیستم از دسترس و ...

حالا شما بیا به من بگو من جونیور هستم، جنگو و جنگو رست و پستگرس رو بلدم.
اولین سوالاتی که توی ذهن من میاد:
سلری چطور ؟ کار با redis چی ؟ تست نویسی چطور ؟ پروفایلینگ چی میشه پس ؟ لاگ نویسی خوب چی ؟ (دوتا پست قبلتر یک مشکل رو مثال زدم و قدیما یک آموزش گذاشتم) و ...

اگر شما نتونی اینکارها رو انجام بدی و نشناسی؛ خب تمام مدل‌های AI از شما بهتر کد می‌زنند و وقت کمتری هم میگیره اگر قرار باشه من هی برم سراغش و بهش بگم چیکار کنه و چطوری بزن و ...


دو گروه اینجا بهشون بر میخوره (توی آمار‌های مختلف هم همین رو نشون داده؛ به دیتاهای آمریکای شمالی نگاه کنید) :

۱- پکیج فروش‌ها: دیگه پکیجی که فقط جنگو یاد بده بدون پروژه‌ای که استاندارد باشه بی‌ارزش می‌شه و کاسبی خراب (این نیروها استخدام نمی‌شوند و کمتر کسی سراغ این آموزش‌ها میره)

۲- افرادی که شغل برنامه‌نویسی رو برای راحتی استفاده کردند؛ جدی میگم بسیار شنیدم که می‌گن بابا کار شما که چیزی نیست ۸ ساعت پشت کامپیوتر می‌شینی بعدم میری خونه ۱۲ ساعت عشق و حال و پارتی و ....

والا ما یک مهمونی هم میخوایم بریم باید ۷ روز قبل خبر داشته باشیم که بتونیم اون ۴-۵ ساعت مهمونی رو توی ۷ روز جبران کنیم تسک عقب افتاده نداشته باشیم.

چرا اینارو مجدداً اینجا می‌گم:

من از آموزش دادن به کسی سودی نمی‌برم، هرکسی هم با من کار کرده می‌دونه تمام دانشم تمام وقت در دسترس تمام نیروهای زیردستم هست، هیچ ترسی ازینکه کسی جام رو بگیره ندارم و ازین موضوع و رشد کردن نیروهام بسیار لذت می‌برم.

برای همین بجای اینکه بگم آقای X خانم Y بیاید برنامه‌نویسی یاد بگیرید ماهی ۲۰۰ میلیون درآمد دارید (دیدی اینو میگه بعد پکیج آموزشی ۳۰۰ هزارتومنی میذاره) میگم این مسیر سختی‌هاش زیاد شده، دیگه فقط با سینتکس یاد گرفتن نمی‌تونید شغل پیدا کنید، کسی که الان شروع می‌کنه از صفر حداقل ۲ سال وقت می‌ذاره. اگر قرار نیست جدی بگیرید برنامه‌نویسی رو پیشنهاد می‌کنم برید دنبال کار مورد علاقتون.

مکانیک - برق کار - آشپز - باریستا و ... همگی مشاغل کاملاً قابل احترام هست و توی ۲ سال وقتی علاقه‌ هم باشه قطعاً موفق تر خواهید بود.


در نهایت، این متن باید به شمایی که برنامه‌نویسی رو انتخاب کردید انگیزه بده که برنامه‌نویسی رو جدی بگیرید و از وقت اینستاگرام و پارتی و ... بزنید و روی تخصص تمرکز کنید.
اگر نه که رشته یا تخصص رو اشتباه انتخاب کردید.
🔥5👍4👏1👌1
#میم

قبل و بعد یادگیری برنامه نویسی:

🆔 @MdDaily
🤣15👍6😁2🔥1
به طور کلی System Design چیه؟

طراحی سیستم یا System Design، فرآیند برنامه‌ریزی و ایجاد ساختاری برای یک سیستم نرم‌افزاری یا سخت‌افزاریه که بتونه نیازهای مشخصی رو برآورده کنه. این فرآیند شامل تعیین معماری سیستم، اجزا، نحوه‌ی ارتباط بین اون‌ها و تکنولوژی‌های مورد استفاده است.

چرا باید System Design رو یاد بگیریم؟

1. حل مسائل پیچیده: در پروژه‌های بزرگ، طراحی سیستم کمک می‌کنه تا با تقسیم مسئله به بخش‌های کوچکتر، راه‌حل‌های مؤثرتری پیدا کنیم.

2. بهینه‌سازی منابع: طراحی مناسب سیستم باعث می‌شه از منابعی مثل زمان، هزینه و نیروی انسانی بهینه استفاده کنیم.

3. مقیاس‌پذیری: با طراحی درست، سیستم می‌تونه با افزایش کاربران یا داده‌ها به‌خوبی سازگار بشه.

4. ارتباط بهتر تیمی: طراحی شفاف سیستم، فهم مشترکی بین اعضای تیم ایجاد می‌کنه و همکاری رو بهبود می‌ده.

5. آمادگی برای مصاحبه‌های شغلی: بسیاری از شرکت‌ها در مصاحبه‌ها سوالاتی درباره‌ی طراحی سیستم می‌پرسن.

اما System Design شامل چه مؤلفه‌هایی میشه؟

1. معماری سیستم (System Architecture): ساختار کلی سیستم و نحوه‌ی تعامل اجزا با هم.

2. مقیاس‌پذیری (Scalability): توانایی سیستم در مدیریت افزایش بار کاری و تعداد کاربران.

3. توازن بار (Load Balancing): توزیع متعادل ترافیک بین سرورها برای جلوگیری از بارگذاری بیش از حد.

4. ذخیره‌سازی داده‌ها (Data Storage): انتخاب نوع پایگاه داده و طراحی ساختار داده‌ها.

5. کشینگ (Caching): ذخیره‌سازی موقت داده‌ها برای افزایش سرعت دسترسی.

6. مدیریت تراکنش‌ها (Transaction Management): اطمینان از اجرای صحیح و کامل تراکنش‌ها.

7. امنیت (Security): حفاظت از داده‌ها و سیستم در برابر تهدیدات.

8. مانیتورینگ و لاگینگ (Monitoring and Logging): نظارت بر عملکرد سیستم و ثبت رویدادها.

9. پشتیبان‌گیری و بازیابی (Backup and Recovery): تدوین راهکارهایی برای حفظ و بازیابی داده‌ها در صورت بروز مشکل.

10. تست و ارزیابی (Testing and Evaluation): انجام تست‌های مختلف برای اطمینان از عملکرد بهینه سیستم.

توی منابع یادگیری سیستم دیزاین:

برای آشنایی با مفاهیم و مقدمات ویدیوی یک ساعت Learn System Design از freecodecamp:
🔗 https://www.freecodecamp.org/news/learn-system-design-principles/

مستندات متنی و رودمپ ها :

🔗 https://www.karanpratapsingh.com/courses/system-design

🔗 https://www.geeksforgeeks.org/complete-roadmap-to-learn-system-design/

خبر نامه ها و وبلاگ ها :

🔗 https://www.quastor.org/

🔗 https://blog.quastor.org/

🔗 https://blog.bytebytego.com/
کانال های یوتیوب:

🔗 https://www.youtube.com/ByteByteGo

🔗 https://www.youtube.com/c/SystemDesignInterview

پ ن :
عضو شدن تو خبرنامه ها را بهتون توصیه میکنم تجربیات باحالی از شرکت های مختلف میفرستند و در کل منابعی که معرفی کردم منابعی بودند که برای یادگیری ازشون استفاده کردم، اگه شما منابع دیگه ای هم میشناسید خوشحال میشم تو کامنت ها معرفی کنید :)


---

مثل همیشه کنجکاو بمونید :)

🆔 @MdDaily
👍4🔥3👏1
This media is not supported in your browser
VIEW IN TELEGRAM
با معرفی شدن Claude 3.7 Sonnet به گیت هاب کوپایلت هم اضافه شد ولی به نظر فعلا برای مشترکین pro فعال شده‌.

🆔 @MdDaily
👍1
راز موفقیت WinRAR: چطور با دوره آزمایشی بی‌پایان، پول درمیاره؟

نرم‌افزاری که بهمون یه دوره آزمایشی ۴۰ روزه میده، ولی بعدش می‌تونیم تا ابد با زدن دکمه "بستن" روی پاپ‌آپ‌ها ازش رایگان استفاده کنیم. اما نکته شگفت‌انگیز اینجاست که این شرکت با همین روش عجیبش تونسته سال گذشته ۲۱ میلیون دلار درآمد داشته باشه! حالا بیاید ببینیم چطور این کار رو کرده.

استراتژی منحصر به فرد WinRAR

این نرم افزار از یه مدل لایسنسینگ استفاده میکنه که همیشه اجازه دسترسی به آزمایشی دائمی اپ رو میده . تو این روش، بعد از ۴۰ روز دوره آزمایشی، نرم‌افزار همچنان کار می‌کنه و هیچ محدودیتی برای کاربرا نمی‌ذاره. این شرکت به کاربرا اعتماد داره که خودشون برای حمایت از نرم‌افزار لایسنس بخرن. این استراتژی باعث شده WinRAR به یه ابزار معروف تبدیل بشه و کاربراش به ۵۰۰ میلیون نفر برسن. این روش همچنین به بازاریابی ویروسی (Viral Marketing) کمک کرده؛ کاربرایی که از نرم‌افزار راضین، اونو به بقیه پیشنهاد میدن و این یعنی رشد طبیعی از طریق تبلیغات دهان به دهان (Word-of-Mouth Promotion). پس یعنی در آمد winrar از طریق کاربران رندومی که اونو میخرن تامین میشه؟

جواب کوتاه: نه

جواب بلند تر:

منبع اصلی درآمد: شرکت‌ها

در حالی که کاربرای عادی می‌تونن تا ابد از نسخه رایگان استفاده کنن، درآمد اصلی WinRAR از فروش به شرکت‌ها (B2B Sales) تأمین می‌شه. شرکت‌های بزرگ مثل آمازون یا مایکروسافت نمی‌تونن ریسک استفاده از نرم‌افزار بدون لایسنس رو بپذیرن، چون ممکنه با مشکلات قانونی یا حتی آسیب به اعتبارشون مواجه بشن. برای همین، این شرکت‌ها ترجیح میدن لایسنس بخرن. WinRAR هم با قیمت مناسب (۳۰ دلار برای هر لایسنس) و تخفیف‌های حجمی (Volume Discounts) برای خریدهای عمده، خودشو به گزینه‌ای جذاب برای کسب‌وکارها تبدیل کرده. این جریان درآمدی پایدار، بدون فشار آوردن به کاربرای عادی، WinRAR رو سرپا نگه داشته. پس در اصل در آمد winrar از طریق شرکت های رندومی که اونو میخرن تامین میشه :)

تبلیغات و ترفندهای نرم‌افزاری

حالا WinRAR تو نسخه موبایلش از تبلیغات استفاده می‌کنه و کاربرا می‌تونن با خرید لایسنس، تبلیغات رو حذف کنن. این یه مدل رایج به اسم Freemium هست، یعنی نرم‌افزار به صورت رایگان ارائه می‌شه، ولی برای حذف محدودیت‌ها یا تبلیغات، باید پول پرداخت بشه. از طرف دیگه، پاپ‌آپ‌هایی که بعد از ۴۰ روز ظاهر می‌شن و تمومی هم ندارن، آزاردهنده هستن. این ترفند باعث می‌شه بعضی کاربرا برای خلاصی از این یادآوری‌ها، تصمیم به خرید لایسنس بگیرن.

---

مثل همیشه کنجکاو بمونید :)

🆔 @MdDaily
👍9❤‍🔥6🔥1👏1
معمولا از این کارا نمیکنم یعنی کلا نمیکنم ولی از سر کنجکاوی دیدم یکی از کانال های تلگرامی یه تبلیغی گذاشته: آموزش رایگان در آمد دلاری با هوش مصنوعی.

کنجکاو شدم ببینم دقیقا چی میخواد آموزش بده

وارد کانالش شدم یه کانال پرایوت بود که ممبر هاش از 10k بعد از یه مدت رسیدن به 34k و هر پستی هم حداکثر 5k ویو میخورد.

تا اینجا و در شروع فعالیت مدرس شروع به ارسال ویس کرد که میخوام یه چیزی بهتون آموزش بدم که ۲ هزار دلار با هوش مصنوعی توی ۳۰ روز در بیارید و فرصتیه که فقط یک بار در خونتون رو میزنه.

پ ن:
د آخه شیر پاک خورده خود سم آلتمن نمیتونه ادعا کنه open ai ماهی ۲ هزار دلار داره سود میده همش تو ضررن

بگذریم.

بعد از گذشت یک هفته به مدت ۶ شب هر شب یه ویدیو آموزشی به نام دوره ی money master میذاشت که هر ویدیویی اش هم تقریبا ۴۰ دقیقه بود

مدرس کت و شلوار پوشیده به همراه یه گوشی آیفون، روی میز دلار و در یک لوکیشن باغ

هرچه همه کلاه برادران داشتن این عزیز یکجا داشت

حدس بزنید تو این ۶ قسمت چی یاد داد؟
.
.
.

درسته، هیچی :)))
عملا هیچییی، صرفا داشت نوار خالی پر میکرد و مدام تکرار میکرد که با هوش مصنوعی می تونید برید تمام پروژه های خارجی رو از سایتای فریلنسری بگیرید و لوگو و تیزر براشون تولید کنید. نهایت دمویی هم که انجام داد این بود که رفت توی کوپایلت یه لوگو ساخت. گفت ببینید این لوگو ۲۰۰ دلار قیمتشه xD

با کمی سرچ تونستم رد پای طرف رو تو شبکه های مجازی پیدا کنم.

سال ۲۰۲۰ فعالیتشو با آموزش های کپ کاتو در آمد با موبایل شروع کرده تا رسیدیم سال ۲۰۲۴ که اول فقط ابزار هوش مصنوعی معرفی میکرده بعد از یه جایی به بعد به ذهنش زده، عه چرا رویا فروشی نکنم رو موجی که راه افتاده؟

شاید بپرسید سرنوشت دوره ی money master چیشد؟

بعد از ۶ تا ویدیو نوار خالی پر کردن و ایجاد احساس نیاز به یک استاد هوش مصنوعی گفت یه دوره میخواد بذاره به نام money maker ظرفیتش ۱۰۰ نفره به قیمت ۴ و ۸۹۰

حدس بزنید چی میشه؟

قطعا ۱۰۰ نفر پیدا میشن که این دوره رو بخرن و من میگم حتی بیشتر.

مدرس نه ببخشید رویا فروش ما چیزی حدود ۵۰۰ میلیون یعنی با دلار ۹۰ تومن تقریبا ۶ هزار دلار در میاره که بهشون یاد بده چطوری ۲ هزار دلار در بیارن

از این داستان چه درسی میتونیم بگیریم؟

برندینگ توی کار واقعا چیز مهمیه جدیش بگیرید

به قول یه سنیوریی میگفت:

سعی کنید تو کار و برندینگتون مثل پورن استار ها بشید همه دوستشون دارن

---

خلاصه که این بار علاوه بر اینکه کنجکاو بمونید از ترفند های برندینگ به شیوه ی مثبتش الهام بگیرید :)


🆔 @MdDaily
1👍7👌3
یکی از اتفاق های خوبی که توی بازنویسی Typenoscript با Golang میوفته علاوه بر افزایش ۱۰ برابری سرعت خود تایپ اسکریپت، اینکه به زودی شاهد افزایش پرفورمنس زیادی توی تجربه ی توسعه هستیم و پروژه هایی مثل Vscode و Playwright که با تایپ اسکریپت نوشته شدن خیلی سریع تر از قبل کامپایل میشن.

https://devblogs.microsoft.com/typenoscript/typenoscript-native-port/

🆔 @MdDaily
👍7🔥2👌1😐1
داشتم مقاله It’s Not A.I. — Junior Developers Have Always Struggled to Code از Walter G. رو میخوندم و دیدگاه خیلی جالبی داشت به هوش مصنوعی. توی مقاله میگه :

این هوش مصنوعی نیست — دولوپرهای تازه‌کار همیشه با کد زدن مشکل داشتن

اخیراً هوش مصنوعی رو مقصر کدنویسی بد تازه‌کارها می‌دونن، ولی این آدم با ۲۰ سال تجربه می‌گه تازه‌کارها همیشه مشکل داشتن.

دهه‌هاست جونیورها به استک اورفلو، آموزش آنلاین و سنیورها تکیه کردن. ابزارهای هوش مصنوعی مثل کوپایلوت، جای یادگیری عمیق رو نمی‌گیرن — فقط دارن چیزی رو که همیشه بخشی از فرآیند یادگیری بوده، ساده‌تر می‌کنن.

قبل از دوران هوش مصنوعی


قبل استک اورفلو، کتابای سنگین، یادداشتای ناقص و انجمنایی داشتیم که جواب گرفتن روزها طول می‌کشید. سال ۲۰۰۳، این روش کار بود. و بیشتر اوقات، کار راه میوفتاده. قرار نبود یه شبه بشیم برنامه‌نویس شماره یک دنیا، ولی قرار بود دربارهٔ الگوریتم‌ها، ساختمان‌های داده، سیستم‌های عامل و یه کم هم SQL یاد بگیریم.

بعد استک اورفلو اومد — و حدس بزنید چی شد؟ همون انتقادهایی که الان به ابزارهای هوش مصنوعی می‌شه، به اون هم شد. می‌گفتن دولوپرها تنبل می‌شن. دانشگاه‌ها ممنوعش کردن. مردم می‌گفتن مهندس‌ها بدتر می‌شن، چون مجبور نیستن برای پیدا کردن جواب‌ها اینقدر تقلا کنن.

آیا تقلا کردنِ اجباری دولوپرهای بهتری می‌سازه؟
شاید. سخته بگیم.

ولی نویسنده می‌گه — حتی با اون همه یادگیری "خالص"، من یه دولوپر افتضاح بودم و هیچ‌کس تعجب نکرد یا ناراحت نشد. چون یادگیری همین‌جوریه.در محیط کار، استک اورفلو بسیار مفید بوده و نیاز به جستجو در انجمن‌های قدیمی را از بین برده.

معمولاً شرکت‌ها پروژه‌های ۲۰ میلیونی رو به تازه‌کار نمیدن.

آیا خوندن روزانهٔ استک اورفلو دولوپر بهتریش یا بدتر کرد؟. شاید جواب هر دو باشه.

ولی واقعیت اینه که جوابا معمولاً تا وقتی کار کنن، کپی‌پیست می‌شن. اکثر دولوپرها هم همین کار رو می‌کردن.

هدف در نهایت تسلط به یه زبان برنامه‌نویسی نبود. هدف این بود که لیست کارهای هفتگی‌ رو تیک بزنن و امیدوار باشن که به اندازهٔ کافی خوب کار کردن.

نقش سنیور ها


نویسنده می‌گه پنج سال اول کارم، خیلی به سنیورها تکیه می‌کردم. نه فقط به خاطر اینکه بهتر از من کد می‌زدن — که قطعاً می‌زدن — بلکه چون این فقط یه بخش از قضیه بود.

اونا تجربه داشتن. با کد کارهایی کرده بودن که من نه توی دانشگاه ازم خواسته بودن و نه توی هیچ آموزشی. و وقتی نوبت کار واقعی می‌رسید، این چیزی بود که کم داشتم.

هنوز اولین باری رو یادمه که مجبور شدم از راه دور به یه سرور لینوکس لاگین کنم تا یه سری پارامترهای شبکهٔ مبهم رو برای مهاجرتِ یه وب‌سایت تنظیم کنم.

دو سال از شروع کارم می‌گذشت. من اصلاً تا حالا از راه دور به هیچی لاگین نکرده بودم. مخفف‌هایی که مدیرم به کار می‌برد، انگار یه زبان باستانی بودن. و تنها جواب من این بود: "اوکی، حله!".

خوشبختانه، یه سنیور کنارم بود. وقتی دید دو ساعته دارم توی صندلیم عرق می‌ریزم، قدم به قدم کل فرآیند رو بهم نشون داد.

و این الگو بارها توی سال‌های اول کارم تکرار شد.

در مواقع ضروری، سنیور با سرعت و توضیح کار رو انجام می‌داد.

خلاصه اینکه، چه از استک اورفلو استفاده کنید، چه از چت‌جی‌پی‌تی، کوپایلوت یا یه پست انجمن از سال ۲۰۰۱، همه‌شون یه چیزن. یه ابزارن برای کمک به شما که یه کاری رو انجام بدید.

یادگیری و تجربه واقعی از تکرار و راهنمایی کسی می‌آید که کار را انجام داده و راه رو بهتون نشون میده.

آیا هوش مصنوعی بیشتر ضرر می‌زنه یا کمک می‌کنه؟


جواب این سوال کاملاً بستگی به دولوپری داره که ازش استفاده می‌کنه و هدفش چیه.

همهٔ دولوپرها نمی‌خوان همهٔ الگوریتم‌های جستجو، ساختمان‌های داده یا رمزنگاری‌ها رو حفظ کنن. خیلی‌ها فقط می‌خوان چیزهای باحال بسازن، تا جایی که می‌تونن، و در عین حال حقوق بگیرن.

و این هم مشکلی نداره.

واقعیت اینه که هوش مصنوعی دولوپرهای بد رو بدتر نمی‌کنه — فقط شکاف‌هایی رو نشون می‌ده که همیشه وجود داشتن. یه دولوپر خوب از هوش مصنوعی به عنوان ابزاری برای تسریع یادگیری، خودکارسازی کارهای خسته‌کننده و بهبود کارایی استفاده می‌کنه. یه دولوپر بد، کورکورانه کپی و پیست می‌کنه، همون‌طور که همیشه می‌کرد، چه از هوش مصنوعی باشه چه از استک اورفلو.

فرق بین این دو تا چیه؟ تجربه. کنجکاوی. تمایل به یادگیری.

هوش مصنوعی جای تجربهٔ دنیای واقعی رو نمی‌گیره. به شما یاد نمی‌ده که چرا یه چیزی کار می‌کنه یا شما رو از یه کابوس دیباگ کردنِ ساعت ۲ صبح نجات نمی‌ده. و قطعاً جای مهندس ارشدِ کنار دستتون رو نمی‌گیره که بهتون نشون می‌ده کارها واقعاً چطوری انجام می‌شن.

پس آیا هوش مصنوعی ضرر می‌زنه یا کمک می‌کنه؟


این به ابزار بستگی نداره. این به دولوپر بستگی داره پس مثل همیشه کنجکاو بمونید :)


🆔 @MdDaily
👌13👍5
وای به حال روزی که سرورای سرویس پزشک و مشاور اسنپم دیگه healthy نباشن :)

🆔 @MdDaily
🤣73😁11
🎶 میخواستم برای فان و بدون استفاده از AI و یا راهنمایی های موجود یه کلاینت SoundCloud با 🚀 بنویسم. پس Burp Suite عزیز رو باز کردم و شروع کردم به دیدن رکوئست هایی که داره ارسال و دریافت میشه. خبر خوب این بود که همه چیز به صورت api کار میکرد و نیازی به استفاده از چیزی مثل selenium نبود ولی توی تمام درخواست هایی که نیاز به احراز هویت داشت یه چیزی مشترک بود و اون چیزی نبود جز client_id. ولی یه نکته ای وجود داشت. توی هیچ کدوم از درخواست هایی که دریافت میشد چیزی نبود که بره client_id رو بگیره، پس احتمال دادم که client_id توی یکی از فایل های ,js مخفی شده. شروع کردم به باز کردن تک تک لینک های .js ای که توی html لود شده ی صفحه ی soundcloud.com وجود داشتن و بوم :)

چیزی که ما میخواستیم تو یکی از فایل های .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

ولی بریم برای توضیح بخش های مهمش:

✔️ تابع fetchHTML:

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() باعث می‌شه بعد از تموم شدن کار، اتصال بسته بشه تا منابع سیستم آزاد بشه.

✔️ استخراج لینک‌ها و کدهای جاوااسکریپت (extractJSSources)

این تابع HTML رو پارس می‌کنه و همه تگ‌های <noscript> رو پیدا می‌کنه. دو نوع جاوااسکریپت رو جدا می‌کنه: لینک‌های خارجی (با src) و کدهای داخلی (inline).
از پکیج golang.org/x/net/html برای پارس کردن HTML استفاده می‌کنه. لینک‌های نسبی رو با resolveURL به آدرس کامل تبدیل می‌کنه و فقط فایل‌هایی که به .js ختم می‌شن رو نگه می‌داره.

✔️ گرفتن محتوای فایل‌های جاوااسکریپت (fetchJSContent)

برای هر لینک .js که پیدا شده، یه درخواست HTTP می‌فرسته و محتوای فایل رو می‌گیره.

✔️ و در نهایت جستجوی client_id با Regex برای (findClientIDs)

پکیج 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
1👌881
سلام سلام 💖

اول از همه 🎆🎆🎆🎆🎆. سالی پر از اتفاقات خوب و پر از Notification's واریزی💸 و از همه مهم تر حال خوب و سلامتی به همراه باگ 🪲 های کمتر براتون آرزو میکنم :)

امیدوارم وقتی آخر سال ۱۴۰۴ رسید به لیست کار هاتون که نگاه می کنید همه ی هدف هاتون رو تیک زده باشید

تقریبا سه سال پیش بود که یه گروهی شیش نفره با دوستام داشتیم و خب هنوزم داریم و توی گروه مقالاتی که میخوندم و برام جالب بود رو مینوشتم بعد گفتم خب چرا براش یه کانال نزنم و عمومی ترش نکنم ؟ روزی که این کانال رو با هدف انتشار چیزایی که بلدم و میخونم زدم (۵ آذر ۱۴۰۱) اولین عضو های کانال بچه های همون گروه بودن و الان به لطف شما عزیزان و در کنارتون خانوادمون روز به روز بزرگتر شده و از همتون ممنونم ❤️

پ ن :
دوستان از چند روز قبل تذکر دادن با ۴۰۴ شوخی نکنم. منم گفتم حله با ۴۰۳ شوخی میکنم. توی ۴۰۳ همه چیز forbidden، پارتنر پیدا نکردم، ۴۰۴ هم که باهاش شوخی نمیکنیم ایشالا همین جمع ۴۰۵ .


ارادتمند شما
ماهان

---

امسال بیشتر از پارسال کنجکاو باشید :)

🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
1092
بعد از اینکه از سفر برگشتیم ما بودیم و کلی دنگی که باید حساب میشد، هرکی یه جا را حساب کرده بود، یه سری جاها هزینه ها ریز میشدن و احتمال خطای محسابه ی دستیش زیاد بود، پس سریع copilot رو باز کردم و دنگی رو ساختم .

تقسیم دنگ رو براتون انجام میده، خروجی اکسل ریز هزینه ها رو هم بهتون میده و میگه کی چه قدر باید به کی پرداخت کنه.

با js خام نوشته شده ، کد پروژه پیچیده نیست ولی کار سختیو راحت کرد :)

👩‍💻 سورس کد پروژه:

https://github.com/mdpe-ir/dongy

👩‍💻 نسخه ی دیپلوی شده:

https://dongy.mddaily.ir/


ایده های باحالی میشه روش پیاده کرد و تبدیلش کرد به PWA ولی خب فعلا داره کار میکنه.


🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
👌163👎2🔥1
Forwarded from Abrha
⭕️ سیزدهمین صبحانه کاری ابرها تهران

🔥 قهوه، صبحانه، ارائه و گفتگوی کاری در کنار متخصصین

🎤 ارائه‌ تجربه محور توسط مصطفی افزونی



👇👇👇
🔗 abrh.ir/enjoy 🔗
👆👆👆


در کانال ابرها عضو شوید: ✌️

📣@abrhacom
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣7👍2
گنوم 48 با نام “Bengaluru” عرضه شده و این یکی از بزرگترین آپدیت های این میزکار دوس داشتنی حساب میشه.

تقریبا توی این چندین سالی که گنو لینوکس رو با میزکار گنوم به عنوان os اصلیم داشتم. توی این نسخه ی گنوم علاوه بر کلی فیچر باحالی که اضافه شده مثل:


- اعلان‌های مرتب‌تر: اعلان‌ها حالا به‌صورت گروهی نمایش داده میشن و مدیریتشون ساده‌تر شده.

- عملکرد بهتر: با dynamic triple buffering، انیمیشن‌ها روون و مصرف منابع کمتر شده و شاهد تجربه ی کاربری روون تری توی سیستم های ضعیف تر هستیم و همچنین لود پوشه‌ها توی Files تا ۵ برابر سریع‌تره!

- ویرایشگر تصویر جدید: برش، چرخش و زوم هوشمند به نمایشگر تصاویر اضافه شده.

- فونت‌های تازه: فونت قبلی Cantarell با Adwaita Sans جایگزین شده.

- سلامت باتری: گزینه جدید برای محدود کردن شارژ به ۸۰٪ و افزایش عمر باتری.

- پخش‌کننده جدید صوتی: اپلیکیشن مینیمال برای پخش فایل‌های صوتی با کنترل سرعت.

- تقویم هوشمند: پشتیبانی از منطقه زمانی برای رویدادها.

- و بالاخره پشتیبانی از HDR (High Dynamic Range): شروع پشتیبانی از نمایشگرهای HDR .


✔️ ولی جذاب ترین بخش این آپدیت اضافه شدن سلامت دیجیتال یا همون Digital Wellbeing به تنظیمات هست. (تصویر توی پست)

این قابلیت‌ طراحی شده تا به کاربرا کمک کنه عادت‌های سالمی موقع کار با کامپیوتر داشته باشن. شامل:

میزان استفاده از صفحه نمایش:
می‌تونید ببینید هر روز چقدر پای صفحه نمایش وقت می‌گذرونید و این مقدار رو با روزها و هفته‌های قبل مقایسه کنید.

محدودیت زمانی صفحه نمایش:
می‌تونید برای کل زمانی که هر روز از صفحه نمایش استفاده می‌کنید، یه سقف تعیین کنید. وقتی به این محدودیت زمانی رسیدید، یه اعلان بهتون نشون داده می‌شه و یه گزینه هم وجود داره که صفحه رو سیاه و سفید می‌کنه.

یادآور استراحت:
می‌تونید برای خودتون یادآور تنظیم کنید تا طبق توصیه‌های استاندارد بهداشتی، مرتب به چشم‌هاتون استراحت بدید و کمی هم بلند شید و حرکت کنید.

---

💡 مثل همیشه کنجکاو بمونید :)

🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍32🐳1🤣1
چند وقتی بود میخواستم راجب موضوعاتی بنویسم که به دلیل محدودیت های پست های تلگرامی امکانش نبود و باید به صورت وبلاگ نوشته میشد. قبلا یک وبلاگ ایستا و اپن سورس با استفاده از Hugo ایجاد کرده بودم که میتونید از طریق این لینک :

🌐 https://mddaily.web.app

به پست های منتشر شده در این وبلاگ دسترسی پیدا کنید.

ولی یه مشکلی وجود داشت و اونم مدیریت وبلاگ استاتیک بود ، برای همین تصمیم گرفتم تا از نسخه ی بعدی وبلاگ کانال رو نمایی کنم و تشکر میکنم از تیم خوب kubarcloud 🟢 که اسپانسر زیر ساخت شدند.

اولین پست وبلاگ با عنوان "یادگیری Big O یک بار برای همیشه" منتشر شده که توی پست بعدی معرفیش میکنم :)

🌐 https://mddaily.ir/
---

💡 مثل همیشه کنجکاو بمونید :)

🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1🐳1
یادگیری Big O یک بار برای همیشه

کاور پست با GPT تولید شده :)


توی این پست حالت های مختلفی از Big O به همراه کد نمونه بررسی شدن. از ساده ترین حالت یعنی O(n) شروع میکنیم و قدم به قدم تا حالت های پیجیده تری مثل O(n log n) رو بررسی میکنیم.

پیچیدگی زمانی Big O چیه؟
توی علم کامپیوتر، از علامت‌گذاری Big O استفاده می‌شه تا الگوریتم‌ها رو بر اساس اینکه زمان اجرا یا میزان حافظه مورد نیازشون با بزرگ‌تر شدن ورودی چطوری زیاد می‌شه، دسته‌بندی کنن. یا به عبارت دیگه، یه راهیه برای اینکه تحلیل کنیم چقدر زمان می‌بره تا الگوریتم ما با بزرگ‌تر شدن ورودی اجرا بشه. منظور از ‘O’ کل عملیاته، و ‘n’ هم ورودی.

بیاین چند تا مثال رو ببینیم تا قضیه روشن‌تر بشه.

حالت O(n)
شاید ساده‌ترین مثالی که بشه فهمید، همون O(n) باشه، جایی که نرخ رشد خطیه.

یه آرایه نامرتب n رو در نظر بگیرین، یه تابعی بنویسین که بزرگترین مقدار رو برگردو...



لینک کامل مقاله در وبلاگ Mddaily:

🔗 https://mddaily.ir/یادگیری-big-o-یک-بار-برای-همیشه/

---

💡 مثل همیشه کنجکاو بمونید :)

🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
👍531🆒11
کاری بسیار پسندیده از شهرداری اصفهان برای کودکان :)


🆔 @MdDaily
🤣1843🐳1
🤔 شاید جا های مختلفی مثل ویدیو های یوتیوب Vibe Coding رو دیده باشید ولی Vibe Coding چیه؟

این یه روش فکر جدیده برای ساختن نرم‌افزار با کمک هوش مصنوعی. این اصطلاح رو آندری کارپاتی (Andrej Karpathy) ساخته و «وایب کدینگ» رو اینجوری توصیف می‌کنه: «خودت رو بسپر به حس و حالت، پذیرای رشد نمایی باش، و اصلاً یادت بره که کدی هم وجود داره».

اما خود Andrej Karpathy کیه؟

رزومه ی کامل و پروژه هاشو میتونید از وبسایت خودش karpathy.ai ببینید ولی به طور خلاصه جزو موسس ها و بخش تحقیقاتی OpenAI بوده بعد به عنوان مدیر ارشد هوش مصنوعی میره تسلا و بعد از چند سال مجدد بر میگرده به OpenAI.

کارپاتی از یه دستیار کدنویسی هوش مصنوعی استفاده می‌کنه و فلسفه‌اش اینه که «همه چیز رو قبول کن». اون فرض می‌کنه که این دستیار هوش مصنوعی، نرم‌افزاری که داره می‌سازه رو هم می‌نویسه و هم مشکلاتش رو حل می‌کنه.

با اینکه این روش کدنویسی خیلی وسوسه‌انگیزه، ولی آیا با توجه به محدودیت‌های فعلی مدل‌های زبانی بزرگ (LLM) و این اوضاعی که همه‌چیز داره تغییر می‌کنه، نتیجه‌اش به اندازه کافی دقیق هست؟ می‌شه با وایب کدینگ یه اپلیکیشن کامل رو بدون مشکل بالا آورد؟ می‌شه ازش خواست که تست‌ها رو هم بنویسه؟ با ناهماهنگی‌ها توی طراحی چیکار می‌کنه؟ این فقط یه چیز زودگذره (فَد fad) یا یه استراتژی بلندمدت واقعیه که برنامه‌نویس‌ها باید یاد بگیرن و ازش استفاده کنن؟

اکه علاقه داشتید:

📱 پست Andrej در X:

https://x.com/karpathy/status/1886192184808149383

📱 ویدیوی یوتیوب Fireship:

https://www.youtube.com/watch?v=Tw18-4U7mts

🌐 مقاله What I Learned from Vibe Coding:

https://dev.to/erikch/what-i-learned-vibe-coding-30em


---

💡 مثل همیشه کنجکاو بمونید :)

🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
62🐳11