کیمیاگر نرم‌افزار
42 subscribers
3 photos
15 links
اینجا کانالیه که مطالب وبلاگم و چیزهایی که به نظرم جالبه رو به اشتراک میذارم.
آدرس وبلاگم: https://hamidreza.tech
یوزرنیم تلگرامم: @mahdavipanah
Download Telegram
جدیدا دارم NotebookLM رو تست میکنم. ازش استفاده میکنم برای خلاصه‌کردن و مرور مطالبی که درمورد سرمایه‌گذاری و بازارهای مالی و ... میخونم. دنیای جدیدیه واسم و بنابراین برام جالبه که بدونم ابزاری مثل NotebookLM چقدر میتونه توی یادگیری یه موضوع جدید کمک کنه.

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

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

https://notebooklm.google.com/
امروز کاربرد خیلی مفیدی از LLM رو توی یه وبسایت دیدم. گوگل برای سرویس‌هاش ابزار جدیدی اضافه کرده به نام Help guide. کارکردش اینجوریه که وقتی دنبال یه چیزی میگردی (مثلا unsubscribe کردن یه سرویس گوگل) و راهتون به یه لینک توی سایت support.google.com میخوره، همونجا کنار اون توضیحات یه صفحه چت باز میشه که میپرسه آیا میخوای کمکت کنم و شروع میکنی باهاش حرف زدن و بهت یه سری دکمه میده که مثلا آیا مطمئنی و میزنی yes و ...
در نهایت اون کار به جای این که ۵ دقیقه زمان بگیره، ۱۰ ثانیه زمان میبره.

از زمانی که کامپیوترهای اولیه درست شدن تا امروز، دائما نحوه‌ی تعامل ما با اونها تغییر کرده. به نظرم LLM ها گام مهمی در تعامل ما با کامپیوترها هستن، جدای کاربردهای دیگه‌ای که دارن (مثلا تحقیقات علمی، هنر و ...).

در آینده‌ی نه چندان دور، سرویس‌های آنلاین و وبسایت‌هایی میان که دیگه نیازی به داشبورد و تنظیمات ندارن و شما صرفا به صورت متنی یا صوتی کاری که میخواین رو انجام میدید.
کیمیاگر نرم‌افزار
امروز کاربرد خیلی مفیدی از LLM رو توی یه وبسایت دیدم. گوگل برای سرویس‌هاش ابزار جدیدی اضافه کرده به نام Help guide. کارکردش اینجوریه که وقتی دنبال یه چیزی میگردی (مثلا unsubscribe کردن یه سرویس گوگل) و راهتون به یه لینک توی سایت support.google.com میخوره،…
در ادامه‌ی این موضوع، نکته‌ی جالبی که به ذهنم رسید اینه که با امکاناتی که LLMهای مختلف در اختیار برنامه‌نویس‌ها میذارن چقدر داشتن یه API تمیز و استاندارد برای وبسایت و سرویسی که میسازی مهم میشه. چون اگه یه REST API خوب داشته باشی خیلی راحت میتونی به یه LLM وصلش کنی و دقیقا شبیه به ابزار Help guide گوگل، یه چت‌بات برای کاربردهای مختلف به وبسایتت اضافه کنی.

چندتا از سرویس‌هایی که قابلیت اضافه کردن chatbot به وبسایتت رو میدن اینها هستن:

- https://www.chatbase.co/
- https://botsonic.com/
- https://www.intercom.com/

این هم یه ویدئوی کوتاه که یاد میده چطوری میشه با Chatbase کار کرد:
https://www.youtube.com/watch?v=SNwqkdhv1HQ
این چهارنفر که توی MIT دوست و هم‌دانشگاهی بودن سال ۲۰۲۳ یه code editor ساختن به نام cursor که یه fork از ادیتور معروف VScodeبود که با LLM ها یه سری قابلیت‌ مثل تولید کد توسط AI و … میداد.

بعد از دو سال ارزش این کمپانی ده میلیارد دلار هست! با کمتر از ۲۰ تا کارمند.

برای این که مقایس این رقم دستتون بیاد هواپیمایی Turkish که چهارمین شرکت باارزش ترکیه هست دوازده میلیارد دلار می‌ارزه! با ۴۰ هزار کارمند!
🤯2
در مطلب جدید بلاگم، به مشکلات رایج در استفاده از this در جاوااسکریپت اشاره کردم و توضیح دادم که چطور استفاده از Arrow Functions می‌تونه مدیریت Context رو ساده‌تر و کدتون رو تمیزتر کنه:

https://hamidreza.tech/javascripts-this-keyword-and-arrow-functions
یه ترفند ساده ولی موثرِ نوشتن prompt برای ChatGPT اینه که از براکت استفاده کنید تا بهش بفهمونید که میخواید context بدید، یعنی مثلا لحن و یا اطلاعات جانبی رو منتقل کنید، برای مثال:

Write a speech [Tone: formal and inspiring] about the importance of teamwork.


Compose a blog post [Style: casual and conversational] about the benefits of remote work.


با این روش ChatGPT اطلاعاتی که داخل براکت میذارید رو با متن خود prompt قاطی نمیکنه.
👍1
کیمیاگر نرم‌افزار
یه ترفند ساده ولی موثرِ نوشتن prompt برای ChatGPT اینه که از براکت استفاده کنید تا بهش بفهمونید که میخواید context بدید، یعنی مثلا لحن و یا اطلاعات جانبی رو منتقل کنید، برای مثال: Write a speech [Tone: formal and inspiring] about the importance of teamwork.…
توی LLM ها یه پارامتری هست به نام temperature که میزان رندوم و متغیر بودن جواب مدل رو تعیین میکنه. این یه عدده بین صفر و یک هست که هرچقدر به صفر نزدیکتر باشه جواب‌هاش قابل‌پیش‌بینی‌تره و به واقعیت نزدیکتره (factual) و هرچقدر به یک نزدیک‌تر باشه جواباش خلاقانه‌تر و
غیرقابل‌پبیش‌بینی‌تره.

اینجوری کار میکنه که با هر ورودی (prompt) که به مدل میدی، دمای خروجی رو هم بهش میدی. برای مثال اگه ازش میخوای که یه شعر بگه بهتره که عدد دما رو نزدیک به یک بدی و اگه ازش یه سوال علمی میکنی عددی رو نزدیک به صفر بدی.

توی API ChatGPT این پارامتر قابل تنظیمه اما برای رابط کاربریش شما نمیتونید این عدد رو خودتون تعیین کنید. حالا یه ترفند وجود داره که با استفاده از براکت و واژه‌ی Temperature به مدل بفهمونی که چقدر خلاقانه‌تر جواب بده یا به واقعیت اهمیت بیشتری بده. مثلا:

Write a story about a robot exploring emotions. [temperature=1, style: imaginative and emotional]


دقت کنید که این Temperature با پارامتر Temperature که یکی از ورودی‌های پایه‌ای مدل هست متفاوته. این واژه فقط داره توی خود ورودی Prompt استفاده میشه که منظور رو به ChatGPT بفهمونه ولی کارکردش مشابه تنظیم کردن پارامتر Temperature در مدل نخواهد بود.
چند وقتی هست که دنبال منابع خوب برای یادگرفتن اقتصاد و فایننس میگردم. وبسایت https://www.investopedia.com/ یه منبع واقعا بینظره برای اینکار. کلی مقالات مختلف داره. از سرمایه‌گذاری گرفته تا بیمه و مدیریت مالی و … . چیزی که نظر منو جلب کرد اینه که ساختار مشابهی به wikipedia داره. به این شکل که وقتی دارید یه مقاله رو داخلش میخونید بسیاری از اصطلاحات و مفاهیم لینک دارن به مقالات دیگه‌ای توی خود سایت. بنابراین میتونید خیلی منعطف توی سایتش بگردید و مطالبش رو بخونید و اینجوری ریز ریز اطلاعاتتون رو زیاد کنید.

بخش اخبار هم داره که من خیلی استفاده نمیکنم ولی میدونم که به عنوان منبع اخبار دنیای اقتصاد و سرمایه‌گذاری معروفه.
یه شبیه‌ساز سرمایه‌گذاری و خرید و فروش سهام و … هم داره که در آینده نزدیک یکم باهاش کار میکنم و اینجا به اشتراک میذارم.
معرفی وبسایت DuoBook.com

توی این وبسایت میتونید با AI خیلی راحت داستان‌های دو زبانه بسازید. میتونید ایده داستان رو وارد کنید و یا از وبسایت بخواید که براساس یه ایده تصادفی داستان رو بسازه.

داستان که ساخته شد، جمله به جمله براتون میخونه و معنیش رو به زبانی که بلدید بهتون نشون میده. حتی بعد از اون میتونید کلمات اصلی داستان رو تمرین کنید.
کیمیاگر نرم‌افزار
یه ویدئوی خیلی خوب راجع به mindset ما در زندگی و یه روش کابردی برای تغییر ذهنیتمون و پیشرفت: https://youtu.be/3Bpv2LbM9-E
طرز فکر یا «مایندست»، دیدگاه پیش‌فرض ما نسبت به دنیاست و بر تصمیم‌ها، روابط، افکار و احساسات‌مان تأثیر می‌گذارد. اگر نسبت به طرز فکر خود آگاه نباشیم، ممکن است زندگی‌مان به صورت ناخودآگاه در مسیرهایی پیش برود که واقعاً انتخاب خودمان نیست. پس اولین قدم، شناخت طرز فکرها و آگاه کردن آن‌هاست. این آگاهی، تفاوت بین زندگی آگاهانه (بر اساس خواسته‌های واقعی خودمان) و زندگی خودکار و هدایت‌شده توسط باورهای ناخودآگاه است.

در زندگی افراد، سه نوع طرز فکر مخرب ناخودآگاه وجود دارد: بدبینانه (cynical)، فرارگرایانه (escapist) و کمال‌گرایانه (perfectionist). طرز فکر بدبینانه یعنی بی‌انگیزگی و بی‌علاقگی؛ فرد فقط اخبار منفی دنبال می‌کند و امیدی به تغییر ندارد. فرارگرایانه یعنی فرد هنوز کنجکاو است، اما انگیزه‌ای برای عمل ندارد و بیشتر به دنبال فرار از مسئولیت است (مثلاً خرید درمانی یا تماشای بیش از حد فیلم). در طرز فکر کمال‌گرایانه، انگیزه بالاست اما کنجکاوی کم؛ فرد مدام کار می‌کند اما هدفش فقط رسیدن به موفقیت بیرونی است، نه یادگیری یا لذت بردن از مسیر.

راه حل خروج از این چرخه، ایجاد «طرز فکر آزمایشی» (experimental mindset) است؛ یعنی همزمان کنجکاوی و انگیزه را بالا ببریم. در این طرز فکر، شکست فقط یک داده است و نه یک پایان؛ هر تجربه و اشتباه، فرصتی برای یادگیری تلقی می‌شود. عملی کردن این رویکرد ساده است: باید با نگاه علمی به زندگی نگاه کنیم؛ یک سؤال پژوهشی طرح کنیم، یک آزمایش کوچک (pact) تعریف کنیم، مدت زمان یا تعداد دفعات آن را مشخص کنیم و فقط بررسی کنیم که آیا عمل انجام شده یا نه.

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

یکی از نکات امنیتی مهمی که در خیلی از سیستم‌های backend رعایت نمیشه، rate limit هست.
به طور خلاصه rate limit مکانیزمیه که اجازه نمیده یه API به تعداد غیرمعمول صدا زده بشه. معمولا این محدودیت در یه بازه زمانی مشخص اعمال میشه. مثلا هر token یا یوزر، یه API خاص رو فقط بتونه ۱۰۰ بار در هر ۱۰ دقیقه صدا بزنه.
اهمیت این مکانیزم برای اینه که اولا سرور شما با بار زیادی روبرو نشه، هزینه‌ی هاست کمتر بشه و حتی تا حد ابتدایی از حملات DDoS در امان باشه.
این مقاله خیلی کوتاه و کاربردی روش‌های پیاده‌سازی rate limit رو توضیح داده:
https://blog.sagyamthapa.com.np/interactive-guide-to-rate-limiting
1
این ویدیوی ۱۲ دقیقی توضیح جالبی میده از نحوه‌ی عملکرد مغز و این مفهوم که درک ما از واقعیت تا چه اندازه تحت تاثیر «پیش‌بینی»های ناخودآگاه ماست.

https://youtu.be/wo_e0EvEZn8?si=wRm9ti_RBsKX_nxp

🧠 ادراک ما واقعیت خام نیست، بلکه ساخته‌ی پیچیده‌ی مغز است.

🔹 مغز اطلاعات حسی را ویرایش می‌کند و شکاف‌های ادراکی (مثل ۲ ساعت کوری روزانه هنگام حرکات سریع چشم) را پر می‌کند.
🔹 حتی می‌تواند آینده را پیش‌بینی کند تا تجربه‌ای پیوسته بسازد.
🔹 این پیش‌بینی‌ها فقط درباره‌ی محرک‌های بیرونی نیستند؛ بلکه احساسات و حالات بدنی را هم بر اساس گذشته و نیازهای آینده شکل می‌دهند.
🔹 خودآگاه لحظه به لحظه کنترل‌کننده نیست، اما مثل یک قصه‌گو عمل می‌کند که برنامه‌ریزی بلندمدت و تفکر انتزاعی را ممکن می‌سازد.
🔹 همین روایت‌گری ذهن، واقعیت شخصی ما را شکل می‌دهد و گاهی حتی پیش‌بینی‌های ناخودآگاه مغز را نادیده می‌گیرد.
1
طبق آزمایشی کوانتومی چیزی به نام واقعیت عینی یا Objective Reality وجود ندارد!

آزمایشی ذهنی وجود داره به نام «دوست ویگنر» که مربوط میشه به فیزیک کوانتوم و در واقع داره یه تناقض در فرضیات علمی رو مطرح میکنه. اما پارسال دانشمندان توستند که این آزمایش رو به شکل واقعی در آزمایشگاه انجام بدند و نتیجه آزمایش فرضیات مهمی رو که متد علمی به اون تکیه میکنه به چالش میکشه. طبق نتایج این آزمایش یکی از این فرضیات باید غلط باشه:

۱. این که واقعیتی عینی وجود داره که همه‌ی ما میتونیم بر سرش توافق داشته باشیم
۲. این که ما آزادی انتخاب داریم
۳. اصل موضعیت که در فیزیک می‌گوید هر شی تنها تحت تاثیر اشیایی قرار می‌گیرد که به‌طور بلافصل در محدوده اطراف آن قرار دارند.

(بعضیا هم معتقدند که این آزمایش loopholeهایی داره که اگه رفع بشه این تناقضات برطرف میشه، اما تا الان کسی loopholeی پیدا نکرده براش!)

https://www.technologyreview.com/2019/03/12/136684/a-quantum-experiment-suggests-theres-no-such-thing-as-objective-reality/amp/
برای مبارزه با فساد دولتی و پیوستن سریعتر به اتحادیه اروپا، نخست‌وزیر آلبانی درمورد استفاده گسترده از هوش‌مصنوعی در سیاست و دولت آلبانی ایده‌های عجیب و غریبی مطرح کرده. در این حد که گفته باید به سمتی حرکت کنیم که کل کابینه‌ی دولت و وزرا از هوش‌‌های مصنوعی تشکیل بشن!
این یه مقاله خوبه که دیدگاه جالبی ارائه میکنه از تغییرات بازار شغلی برنامه‌نویسی در آینده:

https://www.xipu.li/posts/the-last-programmers
(کامپیوتر) این مقاله‌ی ویکیپدیا خیلی جذابه، داره اصل locality رو در علوم کامپیوتر توضیح میده:

https://en.wikipedia.org/wiki/Locality_of_reference