Syntax | سینتکس – Telegram
Syntax | سینتکس
http://meet.google.com/wbf-ywnx-dao لینک میت 🔥 جوین شید
خیلی ممنون از عزیزانی که حضور داشتن🙏

فردا شب ساعت هفت در خصوص کار ریموت و ادامه مباحثی امشب صحبت می شه
8
چند نکته وقتی که دارید از gunicron به عنوان wsgi application server استفاده می کنید:

امکان استفاده از چند پروسس: gunicorn هم مانند uWSGI امکان استفاده از چند پروسس و ترد همزمان را فراهم می کنه

- می‌توانید با پارامتر -w تعداد رکوئست هندلرها (workers) را مشخص کنید.

- پیشفرض تعداد ورکر ها یکی هست.

- می‌توانید این تعداد را بر اساس مقدار CPUها یا میزان ترافیک تنظیم کنید.

- هر worker می‌تواند چند تا ترد برای هندل کردن رکوئست‌ها داشته باشد که با -t تنظیم می‌شود.

بنابراین gunicorn قادر است به طور موازی از چند پروسس و ترد برای اسکیل مناسب سرویس خود استفاده کند.

https://docs.gunicorn.org/en/stable/design.html

#بک_اند

@khat_academy
👍82
چهار تا زبان پرکاربر برنامه نویسی که شاید خیلیا اسمشم نشنیده باشن !

Elixir:
Designed by: José Valim
First appeared: 2012; 11 years ago
زبان برنامه نویسی Elixir یک زبان برنامه نویسی کاربردی، همزمان و عمومی است که بر روی ماشین مجازی Erlang اجرا می شود . Elixir از Erlang تولید می شود و از همان انتزاع برای ساخت برنامه های توزیع شده و مقیاس پذیر استفاده می کند. Elixir همچنین یک ابزار تولیدی و یک طراحی گسترده را فراهم می کند. زبان برنامه نویسی Elixir برای توسعه وب توسط شرکت هایی مانند Bleacher Report، Discord و Inverse و همچنین برای ساخت سیستم های تعبیه شده مورد استقاده قرار می گیرد.
طبق گزارش Stackoverflow زبان‌ Elixir یکی از پر درآمدترین زبان‌های برنامه‌نویسی در سال ۲۰۱۹ در سطح دنیا بوده.


Clojure:
Designed by: Rich Hickey
Family: Lisp
First appeared: 2007; 16 years ago
کلوژر (Clojure) گویشی از زبان برنامه‌نویسی لیسپ است که توسط ریچ هیکی ایجاد شده‌است. این زبان، یک زبان همه‌منظوره تابعی است. کد کلوژر به بایت‌کد ماشین مجازی جاوا کامپایل می‌شود، بنابراین می‌تواند از کتابخانه‌های جاوا استفاده کند.
طبق گزارش Stackoverflow زبان‌ Clojure یکی از پر درآمدترین زبان‌های برنامه‌نویسی در سال ۲۰۱۹ در سطح دنیا بوده.


Scala:
Designed by: Martin Odersky
First appeared: 20 January 2004; 19 years ago
طی سال‌های اخیر توجه شرکت‌ها و مؤسسات بیشتری به سمت اسکالا جذب شده‌است. بلوغ اسکالا باعث شده تا نه تنها شرکت‌های پیشرو در صنعت IT (همچون Twitter، LinkedIn و ...) بلکه شرکت‌های ریز و درشت بسیاری که تنها مصرف کنندگان محصولات فناوری هستند نیز به استفاده از این زبان و بستر منحصر به فرد آن رو بیاورند. ابزارهای Build و Test، کتابخانه و چارچوب‌های منحصر به فردی همچون Scalaz، Play، Akka و ... در کنار دسترسی به طیف گستردهٔ کتابخانه‌های جاوا، اسکالا را به یکی از بهترین گزینه‌ها برای تولید انواع محصولات نرم‌افزاری تبدیل کرده.
طبق گزارش Stackoverflow زبان‌ scala یکی از پر درآمدترین زبان‌های برنامه‌نویسی در سال ۲۰۱۹ در سطح دنیا بوده.


Lua:
First appeared: 1993; 30 years ago
این زبان در بسیاری از برنامه های کاربردی صنعتی مانند Adobe Photoshop مورد استفاده قرار گرفته است. این زبان در حال حاضر پیشگام زبان اسکریپت در بازی است و دارای یک راهنمای مرجع کامل و جامع و چندین کتاب در مورد آن است.

سرعت: این زبان شهرت خوبی در عملکرد و کارایی دارد و ادعا می کند که سرعت آن، آرزوی دیگر زبان های برنامه نویسی است. معیار های چندگانه Lua نشان می دهند که این زبان سریع ترین زبان در حوزه زبان های اسکریپت تفسیر شده است.

@khat_academy
👍6👎2
کامپیوتر کوانتومی

قراره درباره کامپیوتر صحبت کنم😁
بریم ببینیم چیه تا برسیم به کامپیوتر های کوانتومی

کامپیوتر از کلمه computing میاد یعنی محاسبه کردن

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

تنها کاری که ما کردیم اینه که ترانزیستور رو بوجود بیاریم

ترانزیستور هم کارش قطع و وصل کردن جریان برقه

یعنی اگه برقو از خودش عبور بده کامپیوتر میفهمه 1 هستش و اگه عبور نده میشه 0

توی سال 1958 یک مدار مثلا خیلی کوچیکی یک سانتی متر در یک سانتی متر دو تا ترانزیستور توش بوده یعنی برای ما می تونسته فقط چهار تا محاسبه رو یا چهار تا حالتو به نمایش بذاره.

تو سال 2020 یک چیپ ساده IBM بیشتر از یک بیلیون ترانزیستور داره !!
خودتون تصور کنید چقدر حالت می تونه داشته باشه و چقدر محاسبه بیشتر

ولی ما رسیدیم به یه حد و مرز!
(ادامه توکامنت)

#computer

@khat_academy
🔥4👏3😍1
چند تا عکس ببینید از کوانتوم کامپیوتر

دمای هستش باید یچی در حد صفر مطلق یعنی -273 باشه 😱

این مقاله رو بخونید:
https://www.thebroadcastbridge.com/content/entry/14159/instant-answers-from-the-universe

#computer

@khat_academy
😱4
دارم #کتاب زندگی ایلان #ماسک رو می‌خونم. اولش به نظرم کتاب جذابی نیومد ولی بعد بهتر شد؛ بخصوص که به خاطر فصل‌های کوتاه کتاب راحت خونی است. اما اینبار منتظر نموندم تا کل کتاب رو بخونم و به شکل خلاصه نظرم رو بگم. اینبار تست می‌کنم که توی چند تا ویدئو، تیکه تیکه براتون کتاب و جاهای جالبش رو تعریف کنم و ببین مچی می‌شه.

در قسمت اول، از کودکی تا رفتن به کانادا و تاسیس شرکت زیپ ۲ و رسیدن به اولین میلیون‌ها حرف می‌زنم.

https://youtu.be/TLwZ6kyBu90

[جادی دوست داشتنی]
🔥7👍2
Gunicorn with Uvicorn

گونیکورن یه عالمه فیچر و پراسس منیجر خیلی خوبی داره به همین دلیل خیلی خوب می شد از ویژگی های خوب gunicron توی ASGI application server استفاده کنیم.
برای این مورد Uvicorn یک worker class گونیکورن در اختیار ما قرار داده که به ما این امکان رو میده برنامه های ASGI رو با تموم مزایای Uvicorn اجرا کنیم در حالی که مدریت ترافیک و در کل process management با ویژگی های بالغ و عالیه گونیکورن انجام بشه.

همچنین پیشنهاد خود Uvicorn اینه که تو حالت پروداکشن با gunicorn اجراش کنیم.

داکیومنت Fastapi راجب Gunicorn with Uvicorn رو براتون میگم:
خب تا اینجا شما احتمالا با یک server program مانند Uvicorn برنامه رو بصورت single process اجرا کردید.

در زمان دپلوی کردن اپلیکیشن شما ممکنه بخواید اپلیکیشنتون رو بجای single process به حالت multiple cores اجراش کنید تا بتونید ریکوئست های بیشتری رو هندل کنید(البته اگه شما میخواید توی کوبرنتیز اجرا کنید احتمالا ترجیح میدید توی هر کانتینر با uvicorn و بصورت single process اجراش کنید)

با استفاده از این ترکیب،‌Gunicorn به عنوان process manager عمل می کنه و پشت پورت listening رو انجام میده اما ارتباط رو با ورکر کلس Uvicorn برقرار می کنه.

نحوه استفاده:
اول از همه guncorn و uvicorn رو نصب می کنیم
مثال نحوه اجرا کردن:
gunicorn main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind :8000

تعداد ورکر رو چند تا بذارم؟
تعداد ورکر هارو بر اساس تعداد کلاینت هایی که دارید سعی نکنید خداتوکلی تقسیم کنید یچیزی در بیارید قرار بدید😕 gunicron برای رسیدگی صد یا هزاران درخواست تو ثانیه فقط به 4 الی 12 تا ورکر نیاز داره.
اینم یه فرمول برای اینکه تعداد ورکر رو چقدر بذارید
تعداد هسته رو ضربدر دو می کنیم سپس به علاوه یک می کنیم.

منابع این پست:
https://fastapi.tiangolo.com/deployment/server-workers/

https://www.uvicorn.org/#running-with-gunicorn

https://docs.gunicorn.org/en/stable/design.html#:~:text=Gunicorn%20should%20only%20need%204,workers%20to%20start%20off%20with.

#python #backend

@khat_academy
2👍2🥰1
برای آشنایی با grpc این ویدیو رو حتما ببینید:

https://bugeto.net/tv/what-is-grpc

یادگیرش برای بک اند کارا داره جز واجبات میشه.
اگه به یادگیریش علاقه دارید تو کامنتا بگید میتونم تو آینده بیشتر دربارش پست بذارم یا شایدم ویدیو آموزشی(grpc در پایتون).

#grpc

@khat_academy
👍4🔥32🥰1🎉1
تو پایتون اگه قراره چیزی که return می کنید فانکشن و در کل قابل صدا زدن باشه، می تونید نوع تایپش رو Callable قرار بدید.
برای مثال:
from typing import Callable


def get_function() -> Callable:
...


#python

@khat_academy
👍15
کی گفته برنامه نویسا ورزش نمی کنن؟ 😕

https://news.1rj.ru/str/Zyzz_Playlist

اینم لینک کانال یکی از دوستای فرانت اند کارم که موزیک مناسب باشگاه و ویدیو و پادکست های علمی میذاره.
🔥7🤣3👎1
مژده برای تازه کارا 🔥

تا الان آموزش های کانال همشون نسبتا تخصصی بودن.

از الان به بعد قراره بصورت پایه و مبتدی هم آموزش های ویدیوی، وبینار و مقاله قرار بدیم

البته مطالب تخصصیم قراره بیشتر گذاشته بشه

@khat_academy
🔥5😍21👎1🎉1👀1
معماری RPC
4
Syntax | سینتکس
معماری RPC
معماری RPC

معماری RPC پنج تا کمپوننت اصلی رو داره که اینها هستن:
1. Client
2. Client Sub
3. RPC Runtime
4. Server Stub
5. Server

خب حالا RPC چجوری کار می کنه؟
Following steps take place during the RPC process:

Step 1) The client, the client stub, and one instance of RPC run time execute on the client machine.

Step 2) A client starts a client stub process by passing parameters in the usual way. The client stub stores within the client’s own address space. It also asks the local RPC Runtime to send back to the server stub.

Step 3) In this stage, RPC accessed by the user by making regular Local Procedural Cal. RPC Runtime manages the transmission of messages between the network across client and server. It also performs the job of retransmission, acknowledgment, routing, and encryption.

Step 4) After completing the server procedure, it returns to the server stub, which packs (marshalls) the return values into a message. The server stub then sends a message back to the transport layer.

Step 5) In this step, the transport layer sends back the result message to the client transport layer, which returns back a message to the client stub.

Step 6) In this stage, the client stub demarshalls (unpack) the return parameters, in the resulting packet, and the execution process returns to the caller.

کلاینت stub کلاینت را می‌خواند. فراخوانی یک فراخوانی رویه محلی با پارامترهایی است که به روش معمولی روی پشته افزوده می‌شود.

بعد stub کلاینت پارامترهای رویه را در یک پیام جمع می‌کند و برای ارسال پیام یک فراخوانی سیستمی برقرار می کند. بسته بندی پارامترهای رویه را مارشالینگ(marshalling) می‌گویند.
سیستم عامل محلی کلاینت پیام را از دستگاه مشتری به دستگاه سرور راه دور ارسال می کند.

سیستم عامل سرور بسته های دریافتی را به stub سرور ارسال می کند. stub سرور پارامترهایی را – که unmarshalling نامیده می شود – را از پیام باز می کند.

هنگامی که روال سرور به پایان رسید، به stub سرور باز می گردد، که مقادیر بازگشتی را به یک پیام تبدیل می‌کند. سپس stub سرور پیام را به لایه انتقال، می‌دهد.

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

https://www.guru99.com/remote-procedure-call-rpc.html

#RPC

@khat_academy
👍7