TorhamDev | تورهام 😳 – Telegram
TorhamDev | تورهام 😳
2.83K subscribers
421 photos
49 videos
21 files
591 links
code, linux and anything related.

• YouTube
youtube.com/@techwithtori

• CodeNaline Podcast
@CodeNaline

• Group
@GothamProgrammers

• Github
github.com/TorhamDev

• Email
torhamdev@gmail.com
Download Telegram
تا ابد حق.

@TorhamDevCH
👍7
TorhamDev | تورهام 😳
تاحالا شده دلتون بخواد built-in های پایتون تبدیل به async بشن؟ اگه آره ابزار gevent این کار میکنه!. با استفاده از geven و ایموپرت کردن و صدا زدن مانکی‌پچ میتونید این‌کار انجام بدید. import gevent gevent.monky_patch() با این کار اونها تبدیل میشن به async.…
parallel with gevent

تو پست قبلی گفتم که gevent چی هست و چطور خوبه ازش استفاده و به چه دردی میخوره. یکی از کارهایی دیگه که باهاش میتونید انجام بدید true parallelism هستش. یعنی چندین تسک رو به صورت همزمان اجرا کنید. برای این کار باید از تکنیکی استفاده کنید به اسم prefork (پری‌فورک).

اما prefork چی هست؟
پری‌فورک به شکل ساده میشه زمانی که یک ترد میخاد اجرا بشه و قبل از اجرا شدنش چندین ترد دیگه رو هم اجرا میکنه و این ترد خودش به عنوان ترد master عمل میکنه و بقیه تردها رو کنترل میکنه.

برای مثال ابزار گونیکورن که خیلی‌هاتو باهاش آشنا هستید و داخل پروژه های جنگو و ... ازش استفاده میکنید دقیقا همچین کاری میکنه. زمانی که شما یک پروژه جنگو رو با استفاده از گونیکورن اجرا میکنید به استفاده از کانفیگ‌های شما و کانفیگ‌های پیشفرض و دیفالتش چندتا به اصطلاح خودش worker اجرا میکنه. این ورکرها داخل تردهای مختلف هستند اما همشون به یک پورت گوش میدن و اگر شما گونیکورن رو متوقف کنید اون‌ها هم متوقف میشن و به شکل کلی گونیکورن master اون ورکرها محصوب میشه.

حالا اینارو گفتم که بگم شما میتونید داخل کد همچین کاری رو با فانکشن‌هاتون و ... انجام بدید!

به این شکل چندین wsgi سرور توسط خود یکی از ماژول‌های gevent به اسم pywsgi که از خود gevent ایمپورت میشه انجام بدید و درنهایت تسکهای ساخته شده رو با استفاده از کتابخونه multiprocessing یک پروسس کنید و به هم جوین کنید.

اما شما نه تنها میتونید این کار کنید بلکه میتونید فانکشنا معمولی رو هم به این سبک ران کنید. اما به این کار دیگه true parallelism نمیگن و بهش میگن concurrent I/O و برای مثال اگر بخواییم ۵ تا ریکوئست همزمان با استفاده از requests بزنیم میتونید همچین کاری کنیم:

jobs = [gevent.spawn(fetch, url) for url in urls]
gevent.joinall(jobs)

فزض کنید فانکشنی به اسم fetch داریم که ورودی یک url میگیره و با requests درخواست http میده و urls هم لیست تمام urlهایی که میخواییم درخواست بزنیم.

آره خلاصه ابزار خوبیه gevent :)

@TorhamDevCH
👍5🔥31👎1
الان اگه http بهم نشون بدید جیغ میکشم.‌..
🤣14💋2
Please open Telegram to view this post
VIEW IN TELEGRAM
TorhamDev | تورهام 😳
This media is not supported in your browser
VIEW IN TELEGRAM
تلگرام کسب و کار بات‌های هیدن چت و غیره رو کساد کرد 🥰
👍152🔥1
اگه یادگرفتن با انجام دادن رو دوست دارید ( learn by doing ) و احتمالا میخوایید لینوکس رو از پایه یاد بگیرید و حال نگاه کردن ۱۲ ساعت دوره و این چیزا رو ندارید. دلتون میخوایید بخونید و تست کنید میتونی از اینجا شروع کنید

https://linuxjourney.com/

بعد از این که linux journey رو تموم کردید یا همزمان با اون میتونید برید داخل over the write و چالش لینوکسیش رو انجام بدید.
https://overthewire.org/wargames/bandit/

این طوری دیگه لازم نیست دوره ببینید یک عمر صرفا بخونید تا اخرش یک دستور ببینید و بگید واستا این چی بود؟

خلاصه دیگه دستور بزنید و خراب کاری کنید یاد بگیرید.

@TorhamDevCH
25🔥1🤝1
بچه ها فعلا ssh tunnel خوب جواب میده اگه حتی سرور خارجی دارید که فعلا ip بلاک نشده میتونید بهش ssh tunnel بزنید.
👎9👍4
Forwarded from Seyed Mahdi Notes (Seyed Mahdi)
میرور هامون فعلا وصله :)
توی این شرایط شاید به دردتون بخوره

https://mirrors.kubarcloud.com
4👍2
وصلید؟ اگر هستید بگید که بتونیم به بقیه بگیم وصل بشن.
👍292🥰2
چی از این بهتر که صبح رو با یک مقاله درباره مموری منیجمنت شروع کنید؟

Understanding Memory Management, Part 1: C

https://educatedguesswork.org/posts/memory-management-1


@TorhamDevCH
🥱741👍1
صبح‌تون رو با یک مقاله تقریبا کوتاه درباره استفاده‌های نامرسوم پایتون در کتابخانه‌های مرسوم شروع کنید =)

Uncommon Uses of Python in Commonly Used Libraries (2022)


@TorhamDevCH
👌4👍2
چند وقت پیش CTO کلاودفلر اعلام کرد که از این به بعد بلاک هوش مصنوعی به صورت پیشفرض فعال خواهد بود(خبرش). منظورش چیه؟ شرکت‌های هوش مصنوعی مثل openAI یا حتی گوگل از محتوا نوشته شده توسط بقیه در اینترنت به شکل رایگان استفاده میکنن و با کراول کردنشون اون‌ها جمع آوری میکنن. چند وقت پیش کلاودفلر فیچری رو معرفی کرد که این کراولرها رو داخل یک لوپ از دیتاهایی خودشون با هوش مصنوعی تولید شده که وریفای نشده میندازه تا کراولرها به مشکل بخورن و اطلاعات رو مفتی برندارن. حالا گفته به صورت پیش‌فرض فعال این فیچر.

اما مشکل اینجاست که گوگل رو نمیشه به این راحتیا از کراول کردن وبسایت‌ها منع کرد چرا که همزمان بزرگترین موتور جستجو وب هم هستش. حالا Matthew Prince که cto کلاودفلر باشه گفته که میخوان هوش مصنوعی گوگل رو هم در این بلاک قرار بدن و اولین ایده اش همینه به خود گوگل درخواست داده تا خودشون یک راه برای این کار ارائه بدن یا کلاودفلر خودش یک کاری به زور میکنه 😁

https://www.seroundtable.com/cloudflare-block-google-ai-overviews-39718.html


@TorhamDevCH
🤣8🔥42🤔1
امروز هم میتونیم با مقاله ای درباره اینکه AI قرار نیست شغل جونیورها رو نابود کنه بلکه صرفا قراره تغییرش بده شروع کنیم.

https://addyo.substack.com/p/ai-wont-kill-junior-devs-but-your


@TorhamDevCH
62🗿1
امروز استراحت مقاله نداریم.
👍93👎1
+ ماه اول شرکت جدید چطور گذشت؟
واکنش من:
🤣251👍1