TECH STASH – Telegram
TECH STASH
212 subscribers
115 photos
5 videos
15 files
254 links
اینجا هر چی رو که یاد میگیرم، به اشتراک میزارم...
هوش مصنوعی، لینوکس، اوپن سورس، برنامه نویسی و...

Admin: @D3F4U1T_ARS
Download Telegram
ویدیو به شدت عالی بود.
راجب اخراج های جدید و داستان هایی که داره اتفاق میفته.
هم از لحاظ اقتصادی، هم AI و ...

Key takeaway:
Don't be hyper-specialized.
Be a great generalist. (And specialized in one of them)

https://www.youtube.com/watch?v=hAwtrJlBVJY
کانال یوتیوب ایرانی بود که جدیدا پیدا کردم و طرف واقعا کارش درسته
- تو پروژه های خارجی شرکت داشته و دورکاری کار میکرده.
- تو زمینه Web Development تخصص داره.
- مطالب مفیدی داره که منحصر فارسی زبان ها هست.

https://www.youtube.com/@kalagar2
ارور هندلینگ به مزه Rust:
این ویدیو راجب یه پترن جالب و منحصر به فرد ارور هندلینگ به اسم Monadic Error Handling صحبت میکنه.

ارور هندلینگ های به سبک exception داخل پایتون یک نقطه قوت یا ضعف محسوب میشن بسته به دید افراد و پروژه استفاده شده.
اما با اومدن زبان Rust و Haskell این نوع جدید از هندل کردن ارور مطرح شده و بعضیا خیلی بیشتر ترجیح میدن.

داخل پایتون هم میشه این نوع ارور هندلینگ رو پیاده کرد. با کمک لایبرری returns.
در واقع این پترن ارور هندلینگ جزو ویژگی های پایتون نیست. اما با انعطاف پذیری که پایتون داره میشه پیاده سازیش کرد.

https://www.youtube.com/watch?v=J-HWmoTKhC8
TECH STASH
ارور هندلینگ به مزه Rust: این ویدیو راجب یه پترن جالب و منحصر به فرد ارور هندلینگ به اسم Monadic Error Handling صحبت میکنه. ارور هندلینگ های به سبک exception داخل پایتون یک نقطه قوت یا ضعف محسوب میشن بسته به دید افراد و پروژه استفاده شده. اما با اومدن زبان…
بهش Railway Oriented Programming هم میگن.
در حالت پیشفرض مقدار خروجی به صورت آبجکت Ok به عنوان خروجی موفق به برنامه برگردانده میشه.
اما اگر به مشکلی بخوره از ریل Ok خارج میشه و وارد ریل Error میشه.

این مقاله انگلیسی بهتر از بنده راجب این پترن توضیح میده.

https://fsharpforfunandprofit.com/posts/recipe-part2/
تو این ویدیو هم راجب composition (ترکیب بندی) صحبت میشه و اینکه چرا بهتر از inheritance (ارث بری) هست.
معمولا استفاده از ارث بری کدبیس هارو اصلا ساده نمیکنه.

چون که وابستگی های داخل به شدت بالا میره و همین باعث سخت شدن توسعه و ماژولار کردن کد میشه.
نمونه داخل ویدیو مثال خیلی خوبی از این وابستگی هاست.
در مثال داخل ویدیو استفاده از پترن ارث بری برنامه نویس رو وادار یا ترغیب میکنه که از ارث بری استفاده کنه.

کد های ماژولار درخت بزرگی از ارث نیستند و برای ارث بری باید حتما دلیل خوبی داشته باشید.
در غیر اینصورت بهتره که از ترکیب بندی استفاده کنید تا بعدا به موارد دردناک refactor کردن نخورید.

https://www.youtube.com/watch?v=0mcP8ZpUR38
واسه دوستانی که میخوان وارد Web Development بشن.
این کتابچه راهنمای Front-end هست و خیلی بدرد میخوره برای دوستان فرانت اند کار که صفر تا صد فرانت رو پیش برن.

https://frontendmasters.com/guides/front-end-handbook/2024/
همینطور یه وبسایتی که بهتون ایده برای پروژه های تمرینی Front-end میده تا روی مهارت هاتون خیلی خوب کار کنید.

https://www.frontendpractice.com/
Forwarded from Linuxor ?
باورم نمیشه برای آموزش systemd هم سایت ساختن

systemd-by-example.com

خیلی خوبه مرحله به مرحله با اجرا بهتون یاد میده

🐧 @Linuxor
Flameshot
برنامه ای برای اسکرین شات که مدت طولانی هست که استفاده میکنم.
روی ویندوز هم خواستم اسکرین شات بگیرم و علایم و mark هایی بزارم و دیدم که این برنامه برای ویندوز هم وجود داره.
بنابراین گفتم که معرفی کنم همتون ازش استفاده ببرید.

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

https://flameshot.org/
آموزش داکر که چند وقت پیش تمومش کردم.

بخش هایی هم داره به زبان JavaScript که یه نمونه پروژه واقعی رو شبیه سازی میکنه و داکر رو کاربردی درس میده.

بخش هایی که پوشش میده شامل دستورات ابتدایی داکر، دیباگ کردن، ران کردن گروهی از container ها به وسیله docker-compose، ساخت image از طریق dockerfile، آپلود کردن ایمیجی که ساختین به ریپو خصوصی و ذخیره پایدار با استفاده از volumes.

جدا از DevOps ها که این مهارت براشون واجب هست خود Developer ها تو شرکت های خفن بهتره که مسلط باشن (مثل گیت).

پی نوشت: dockerhub تو کشور ما تحریم هست. اگر میخواید دسترسی داشته باشید HTTPS_PROXY رو ست کنید یا از proxychains استفاده کنید که در پست بعدی جزییاتش رو خدمتتون میگم.

همینطور بخش آپلود کردن به ریپو خصوصی توسط ما قابل انجام نیست به دلیل نبود دسترسی به سرویس های AWS. (هزینه میخواد فکر کنم)
ولی خب میتونید ریپو لوکال راه بندازید، container اش هست ولی خب خیلی دردسر داشت (از راه اندازی nginx اش گرفته تا authentication اش که من انجام ندادم).

Docker Tutorial for Beginners [FULL COURSE in 3 Hours]
واسه رفع فیلترینگ دو روش داریم تو لینوکس.

1. ست کردن متغییر های محیطی (Environment Variable).
2. و دیگری استفاده از proxychains.

روش اول: Environment Variable

دو تا متغییر داریم.
اولی HTTPS_PROXY که ترافیک های رمزگزاری شده رو میفرسته به پروکسی سرور.
دومی HTTP_PROXY که همون قبلیه ولی برای ترافیک های رمزنگاری نشده (که خیلی کم میبینم همچنین موردی باشه، خودم استفاده نمیکنم).

اولین عیب این روش اینه که برای همه برنامه ها کار نمیکنه. بیشترشون پشتیبانی میکنن.
دومین عیبش هم اینه که فقط پروکسی های http یا https رو ساپورت میکنه. ولی socks رو ساپورت نمیکنه.

تمام سرور های پروکسی که برنامه هایی مثل nekoray یا warp-plus هاست میکنن از قالب http هست. مگر اینکه پروکسی رو روی اینترنت آزاد ران میکنید... یعنی یه سرور روی اینترنت (که نمیکنید قطعا).

حالا برای اینکه بتونید ترافیک رو به سرور پروکسی هدایت کنید. با استفاده از
export HTTPS_PROXY=http://127.0.0.1:PORT
پروکسی رو روی ترمینالتون ست کنید. برنامه هایی که پشتیبانی کنن از این پروکسی استفاده خواهند کرد. جای PORT هم پورت مورد نظرتون رو ست کنید.

توجه کنید که سرور پروکسی شما باید http باشه یا ساپورت کنه.

روش دوم: proxychains

این روش با استفاده از inject کردن به DLL های برنامه هایی که با libc کامپایل شدن تنظیمات شبکه اش رو تغییر میده و کانکشن هارو به سمت پروکسی سرور هدایت میکنه.

معایبی نداره ولی حواستون باشه که یک تعداد کمی برنامه ها ممکنه که تاثیر نپذیرن (که تنها عیب این روش هست).

خب. تو این روش ما باید اول فایل کانفیگ رو تغییر بدیم.
sudo nano /etc/proxychains.conf
أخر فایل یه تنظیمات شبیه این میبینید.
[ProxyList]
# Here are comments
# add proxy here ...
# meanwile
# defaults set to "tor"
# socks5 127.0.0.1 9150
# socks4 127.0.0.1 9050
http 127.0.0.1 4500

اینجا میتونید آدرس و پورت سرورتون رو بنویسید.
و هر کدوم که میخواید فعال باشه رو از کامنت دربیارید یا اضافه کنید.
حواستون باشه که فقط یه سرور فعال باشه.

حالا برای اینکه از proxychains استفاده کنید.
proxychains -q COMMAND
یا اگر دستور روت میخواید اجرا کنید.
sudo proxychains -q COMMAND
جای COMMAND دستور مورد نظرتون رو بزارید.

و فلگ q اطلاعات مربوط به اتصالات اینترنتی رو در ترمینال نشون نمیده (که ترمینال الکی کثیف نشه).
چند وقت پیش آموزش Bash علیرضا امیرصمیمی رو تموم کردم.

اولش که آشنا شدم واقعا زبان حال به هم زن و بی قاعده بود.

همچنان هم همینطوریه. اما با کاربرد هایی مثل build noscript و نوشتن PKGBUILD برای aur، ارزشمند شده.

تازه نگم که چند باری کلی فایل به پستم خورد که باید با ffmpeg تبدیل فرمت میکردم. اونجا خیلی بدرد خورد.
خلاصه اگر از شل لیوکس حسابی استفاده میکنید مثل من میتونید برید سمتش و یادش بگیرید.

https://www.aparat.com/playlist/15494
Forwarded from Python Hints
یک نگاهی به کانال @pytens بندازید (چون جو هوش مصنوعی داغ هست)
توی چندین سال اخیر من مشاور خیلی پروژه‌های داخلی و خارجی بودم توی مواردی که بیزینس یا همکاری با تیم‌های تحقیقاتی بهم یاد داده فهمیدم که تمرکز کسی که میخواد واقعا توی این زمینه کار خوب انجام بده و بدون دردسر مصاحبه‌های شغلی رو پاس کنه باید روی چه مباحثی باشه.

کم نبودند تعداد آدمایی که شخصا و مستقیم بهشون کمک کردم تا برای مصاحبه کاری در زمینه هوش مصنوعی آماده بشوند؛ از تیم‌های استارتاپی و داخلی گرفته تا شرکت‌های بزرگ مثل آمازون؛ نتفلیکس؛ گوگل و متا.

توی دنیای پایتون هم اوضاع همین هست.
حالا چرا اینارو میگم؛ چون خیلی از بچه‌های تازه‌کار و حتی افراد باسابقه کار پیدا کردن و یا حرفه‌ای شدن توی یک زمینه کاری رو مدیون دیدن دوره آموزشی پولی یا شرکت توی همچین دوره‌ای میدونند.

توی همون کانال که بالاتر صحبت کردم؛ من بهترین دوره‌های ویدئویی رو برای Vision, NLP, Transformers معرفی کردم که به جرات میگم هیچ دوره‌ای (دقت کنید) هیچ دوره‌ای بهتر از این ۳ مورد برای Deep learning در این زمینه‌ها پیدا نخواهید کرد.
اما همچنان افرادی هستند که فکر می‌کنند دوره پولی اون یارو هندیه که توش با یک ابزار تعداد گوسفندای توی تصویر رو میشماره بهتر از دوره Yann Lecun خالق و باعث این مباحث هست.
که خب بحثی نیست.

نکته دوم و چیزی که در ادامه بحث اول باید بگم؛ تعداد به اشتراک گذاری و ذخیره پست‌هاست.
همه‌ شما یک کانال برای منابع مهم دارید؛ نه saved message تلگرام بلکه یک کانال خصوصی/عمومی برای فروارد کردن مطالب مهم.

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

تفاوت ذخیره کردن من و شما اینه که؛ من هیچ وقت یک ویدئو و مطلب رو به اون کانال نمیفرستم مگر اینکه اون ویدئو رو دیده باشم و بنظرم واقعا خوب باشه و بخوام یک رفرنس ازش نگه دارم و بلاگ پست یا مطالب رو هم همینطور.


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

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

کسی که نمی‌دونه خودتون یک بررسی بکنید و ببینید چقدر از پست‌هایی که برای خودتون فروارد کردید تا درآینده بخونید رو واقعا خوندید ؟

آمار viewهای یوتیوب و تعداد shareهای کمتر از ۱۰ دقیقه منابع یا پست‌های طولانی کانال های من نشون میده خیلی‌ها درگیر این موضوع هستید که خودتون رو با منابعی که هیچوقت نمی‌خونید دارید بمباران می‌کنیم و همین یعنی به عقب رفتن (به معنای واقعی کلمه این موضوع نه تنها کمکی به پیشرفت شما نمی‌کنه بلکه باعث پسرفت هم میشه)
چون مغزتون رو راحت می‌کنید ازون موضوع و دیگه درگیر اون موضوع نیست که اگر بود شمارو مجبور میکرد اون مبحث رو یادبگیرید.


اگر واقعا می‌خواهید پیشرفت کنید؛ خواهش می‌کنم به این دو موردی که گفتم توجه کنید :

۱- پولی بودن یک دوره دلیل بر خوب بودن یا تضمین سرکار رفتن شما نیست.
۲- اگر عادت کردید پست‌ها؛ دوره‌ها؛ لینک ویدئو؛ کتاب و ... رو سریع توی یک کانال خصوصی فروارد کنید (کانال بدبخت کردن شما) همین الان دست ازین کار بردارید.

بیاید باهم تستش کنیم؛
مثل من عمل کنید؛ یک کانال جدید درست کنید توی این کانال حق ارسال ویدئو - پست - منبع یا ... رو ندارید مگر اینکه اون رو یکبار حتی با سرعت بالا خونده - دیده یا بررسی کرده باشید.
شاید روزها و ماه اول سخت باشه اما بعد از ۶ ماه کانال رفرنس خودتون رو با کانال بدبختی مقایسه کنید.



اضافه کنم:
اولین ویدئو یوتیوب 1300 بازدید داشته که خب حدود 1200 مورد توی ۵ روز اول بوده و ويدئو آخر توی ۲ هفته 183 بازدید داشت.
تعداد private share پست ویدئو اول روی 50 مورد هست و پست ویدئو دیگر روی 300 همین آمار نشون میده چقدر اتفاق بدی داره میوفته.
دلیل مخالفتم با ویدئو گذاشتن همین بود؛ توی لایو شما رو مجبور میکنم حداقل یکبار اون موضوع رو گوش بدید که همین هم تاثیر بزرگی توی پیشرفت هست.
دوستانی که میخوان سریع ترین میرور های Arch رو گیر بیارن.
یا میخوان که مشکل اتصال به مخزنشون رو فیکس کنن

1. اگر reflector رو نصب دارید:

sudo reflector --latest 10 --fastest 10 -p http,https -c de,fr,gb --sort rate --save /etc/pacman.d/mirrorlist


--latest 10
یعنی 10 تای آخرین سرور های سینک شده رو بده.
--fastest 10
10 تای سریع ترین سرور ها از لحاظ سرعت دانلود رو بده.
-p
چه پروتکل هایی؟ http, https, ftp و ...
-c
از چه کشور هایی. آلمان de، فرانسه fr، انگلستان gb.
--sort
با چی صورت sort کن. با سرعت دانلود (rate).
--save
ذخیره کن داخل مسیر خاصی که مسیر ذخیره میرور لیست ها
/etc/pacman.d/mirrorlist
هست.

2. اگر هم که reflector ندارید و حتی نمیتونید نصبش کنید (فیلترینگ یا بسته شدن مخزن):

برید از سایت زیر و پروتکل ها و کشور ها رو انتخاب کنید و یه لیست جنریت کنید:
https://archlinux.org/mirrorlist/

به صورت پیش فرض همشون کامنت هستن. اون تعدادی که نیاز دارید رو از کامنت دربیارید و داخل
/etc/pacman.d/mirrorlist
جایگزین کنید.

بعد میتونید بعد از نصب reflector، راه 1 رو پیش برید.
.
بالاخره دوره Deep Generative Models های استنفورد هم آپدیت شد.
واقعا نباید بهونه آورد بهترین منابع یادگیری دنیا در دسترس نسل جدید هست :

Stanford CS236: Deep Generative Models (2023)

پس با اضافه شدن این دوره محموع دوره‌ها شد :

1) Standford university: Prof. Manning, deep learning for nlp

2) NYU (new york university): Yan Lucan & Alfered canziani. Deep learning course

3) Standord university: Deep Generative Models

4) Stanford University: Transformers United
چند وقتی هست که با academic torrent آشنا شدم.
اسمش و ظاهرش به نظر میاد که فقط دیتاست برای ریسرچ داره ولی کلی آموزش های AI و ML توش ریخته.
حتی طراحی الگوریتم و ساختمان داده.

پی نوشت: لینک هارو حذف کردم ولی داخل کانال دیگه گذاشتم که میتونید ازش استفاده کنید.