Forwarded from Meitix (Meiti)
شعر فارسی تو یه لیگ دیگه خوبه، اصن یه جای دیگه است، نمونه اش:
شیخِ ما دِلتَنگِ یار بود،
به خانه یار رِسید،
قَدَّش به پَنجره نَرِسید
سَرِ خویش بُرید و زیرِ پا نَهاد و قَدَّش بِرِسید
معشوق تماشا کرد...
تذکرة اولیا
شیخِ ما دِلتَنگِ یار بود،
به خانه یار رِسید،
قَدَّش به پَنجره نَرِسید
سَرِ خویش بُرید و زیرِ پا نَهاد و قَدَّش بِرِسید
معشوق تماشا کرد...
تذکرة اولیا
Forwarded from Ninja Learn | نینجا لرن
📕 کتاب REST API Design Rulebook
📌 فصل دوم: Identifier Design with URIs
📍پارت: چهارم
#کتاب
💎 URI Path Design 💎
هر قسمت از مسیر URI که با اسلش (/) جدا میشه، یه فرصت طراحی حساب میشه. اگه به هر قسمت از مسیر یه ارزش معنیدار بدیم، میتونیم ساختار سلسلهمراتبی منابع یه REST API رو بهتر نشون بدیم.
شکل 2-1 با استفاده از نشانهگذاری WRML نشون میده که چطور طراحی مسیر URI با مدل منابعی که ارائه میده ارتباط داره.
این بخش قوانینی رو ارائه میده که مربوط به طراحی مسیرهای URI معنیدار هستن.
⭕️ برای نامگذاری اسناد باید از اسم مفرد استفاده بشه.
یه URI که نمایانگر یه سند هست، باید توی قسمت مسیر از یک اسم یا عبارت اسمی مفرد استفاده کنه.
مثال: URI برای یه سند مربوط به یک بازیکن به شکل مفرد خواهد بود:
⭕️ برای نامگذاری کالکشن ها باید از اسم جمع استفاده بشه.
URI که یه مجموعه رو شناسایی میکنه، باید توی قسمت مسیر از اسم یا عبارت اسمی جمع استفاده کنه. نام کالکشن باید طوری انتخاب بشه که نشون بده چه چیزهایی بهصورت یکسان داخلش قرار داره.
مثال: URI برای یه مجموعه از اسناد بازیکنان از فرم جمع اسم منابع استفاده میکنه:
⭕️ برای نامگذاری Store ها هم باید از اسم جمع استفاده بشه. URI که یه Store رو شناسایی میکنه، باید توی قسمت مسیر از اسم یا عبارت اسمی جمع استفاده کنه.
مثال: URI برای یه مخزن لیستهای پخش موسیقی ممکنه از فرم جمع به این شکل استفاده کنه:
⭕️ برای نامگذاری کنترلر باید از یک فعل یا عبارت فعلی استفاده بشه، درست مثل عملکرد یه تابع در برنامهنویسی. URI که یه منبع کنترلر رو شناسایی میکنه، باید بهطوری نامگذاری بشه که نشوندهندهی عملی باشه که قراره انجام بشه.
مثالها:
⭕️ بعضی از بخشهای مسیر URI ثابت هستند؛ یعنی اسمهای مشخصی دارن که توسط طراح REST API انتخاب میشن. اما بقیه بخشهای مسیر متغیر هستن، یعنی بهطور خودکار با یه شناسه پر میشن که به خاص بودن URI کمک میکنه. در نگارش الگوی URI، طراحها میتونن هم بخشهای ثابت و هم متغیر رو مشخص کنن. یک الگوی URI شامل متغیرهایی هست که قبل از استفاده باید جایگزین بشن.
مثال زیر سه متغیر داره: `leagueId`، `teamId`، و `playerId`:
جایگزینی متغیرهای الگوی URI ممکنه توسط REST API یا کلاینتها انجام بشه. هر جایگزینی میتونه از یه شناسه عددی یا الفبایی-عددی استفاده کنه، مثل مثالهای زیر:
در اینجا، مقدار `21` در قسمت متغیر `playerId` قرار گرفته و مقدار UUID در قسمت متغیر `gameId` جایگزین شده.
⭕️ نباید از نامهای توابع CRUD در URIها استفاده بشه. URIها باید برای شناسایی منحصربهفرد منابع استفاده بشن و باید طبق قوانین بالا نامگذاری بشن. همونطور که در بخش «روشهای درخواست» توضیح داده شده، روشهای HTTP برای مشخص کردن عملکرد CRUD استفاده میشن.
مثلاً این طراحی API ارجحیت داره:
در مقابل، الگوهای نادرست (که نباید انجام بشن) به شکل زیر هستن:
@ninja_learn_ir
📌 فصل دوم: Identifier Design with URIs
📍پارت: چهارم
#کتاب
💎 URI Path Design 💎
هر قسمت از مسیر URI که با اسلش (/) جدا میشه، یه فرصت طراحی حساب میشه. اگه به هر قسمت از مسیر یه ارزش معنیدار بدیم، میتونیم ساختار سلسلهمراتبی منابع یه REST API رو بهتر نشون بدیم.
شکل 2-1 با استفاده از نشانهگذاری WRML نشون میده که چطور طراحی مسیر URI با مدل منابعی که ارائه میده ارتباط داره.
این بخش قوانینی رو ارائه میده که مربوط به طراحی مسیرهای URI معنیدار هستن.
⭕️ برای نامگذاری اسناد باید از اسم مفرد استفاده بشه.
یه URI که نمایانگر یه سند هست، باید توی قسمت مسیر از یک اسم یا عبارت اسمی مفرد استفاده کنه.
مثال: URI برای یه سند مربوط به یک بازیکن به شکل مفرد خواهد بود:
http://api.soccer.restapi.org/leagues/seattle/teams/trebuchet/players/claudio
⭕️ برای نامگذاری کالکشن ها باید از اسم جمع استفاده بشه.
URI که یه مجموعه رو شناسایی میکنه، باید توی قسمت مسیر از اسم یا عبارت اسمی جمع استفاده کنه. نام کالکشن باید طوری انتخاب بشه که نشون بده چه چیزهایی بهصورت یکسان داخلش قرار داره.
مثال: URI برای یه مجموعه از اسناد بازیکنان از فرم جمع اسم منابع استفاده میکنه:
http://api.soccer.restapi.org/leagues/seattle/teams/trebuchet/players
⭕️ برای نامگذاری Store ها هم باید از اسم جمع استفاده بشه. URI که یه Store رو شناسایی میکنه، باید توی قسمت مسیر از اسم یا عبارت اسمی جمع استفاده کنه.
مثال: URI برای یه مخزن لیستهای پخش موسیقی ممکنه از فرم جمع به این شکل استفاده کنه:
http://api.music.restapi.org/artists/mikemassedotcom/playlists
⭕️ برای نامگذاری کنترلر باید از یک فعل یا عبارت فعلی استفاده بشه، درست مثل عملکرد یه تابع در برنامهنویسی. URI که یه منبع کنترلر رو شناسایی میکنه، باید بهطوری نامگذاری بشه که نشوندهندهی عملی باشه که قراره انجام بشه.
مثالها:
http://api.college.restapi.org/students/morgan/register
http://api.example.restapi.org/lists/4324/dedupe
http://api.ognom.restapi.org/dbs/reindex
http://api.build.restapi.org/qa/nightly/runTestSuite
⭕️ بعضی از بخشهای مسیر URI ثابت هستند؛ یعنی اسمهای مشخصی دارن که توسط طراح REST API انتخاب میشن. اما بقیه بخشهای مسیر متغیر هستن، یعنی بهطور خودکار با یه شناسه پر میشن که به خاص بودن URI کمک میکنه. در نگارش الگوی URI، طراحها میتونن هم بخشهای ثابت و هم متغیر رو مشخص کنن. یک الگوی URI شامل متغیرهایی هست که قبل از استفاده باید جایگزین بشن.
مثال زیر سه متغیر داره: `leagueId`، `teamId`، و `playerId`:
http://api.soccer.restapi.org/leagues/{leagueId}/teams/{teamId}/players/{playerId}جایگزینی متغیرهای الگوی URI ممکنه توسط REST API یا کلاینتها انجام بشه. هر جایگزینی میتونه از یه شناسه عددی یا الفبایی-عددی استفاده کنه، مثل مثالهای زیر:
http://api.soccer.restapi.org/leagues/seattle/teams/trebuchet/players/21
http://api.soccer.restapi.org/games/3fd65a60-cb8b-11e0-9572-0800200c9a66
در اینجا، مقدار `21` در قسمت متغیر `playerId` قرار گرفته و مقدار UUID در قسمت متغیر `gameId` جایگزین شده.
⭕️ نباید از نامهای توابع CRUD در URIها استفاده بشه. URIها باید برای شناسایی منحصربهفرد منابع استفاده بشن و باید طبق قوانین بالا نامگذاری بشن. همونطور که در بخش «روشهای درخواست» توضیح داده شده، روشهای HTTP برای مشخص کردن عملکرد CRUD استفاده میشن.
مثلاً این طراحی API ارجحیت داره:
DELETE /users/1234
در مقابل، الگوهای نادرست (که نباید انجام بشن) به شکل زیر هستن:
GET /deleteUser?id=1234
GET /deleteUser/1234
DELETE /deleteUser/1234
POST /users/1234/delete
@ninja_learn_ir
Forwarded from Bardiaism
Media is too big
VIEW IN TELEGRAM
آموزش Qt6 - قسمت دوازدهم - Network Requests
در این قسمت درباره ماژول نتورک کیوت صحبت میکنیم و یاد میدیم چطوری به کمک این ماژول روی پروتوکل http ریکوئست ارسال کنیم و جواب اونو بگیرید و اگر json هست خروجی اون رو parse کنید.
این ماژول شامل کلاسهای سطح پایینتر مثل tcp و udp هم میشه که در ویدیوهای بعدی درباره اونها توضیح خواهم داد.
لینک ویدیو در یوتیوب:
https://youtu.be/dnDv5uAcl_Q
@Bardiaism
در این قسمت درباره ماژول نتورک کیوت صحبت میکنیم و یاد میدیم چطوری به کمک این ماژول روی پروتوکل http ریکوئست ارسال کنیم و جواب اونو بگیرید و اگر json هست خروجی اون رو parse کنید.
این ماژول شامل کلاسهای سطح پایینتر مثل tcp و udp هم میشه که در ویدیوهای بعدی درباره اونها توضیح خواهم داد.
لینک ویدیو در یوتیوب:
https://youtu.be/dnDv5uAcl_Q
@Bardiaism
Forwarded from ASafaeirad
Key takeaway from Notion Calendar's poor UX: Avoid using optimistic updates if your system cannot ensure reliable synchronization.
#ux #notioncalendar
#ux #notioncalendar
Forwarded from Syntax | سینتکس (nasrin)
پروکسی (proxy) چیه و به چه دردی میخوره
امروز میخوایم راجع به یه موضوع خیلی پرکاربرد و مهم حرف بزنیم: پروکسی (Proxy).
شاید براتون سوال باشه که پروکسی چیه و دقیقاً چه کاری انجام میده؟ 🤔
بیاید باهم بیشتر بررسی کنیم.
پروکسی یعنی چی؟ 🤷♂️
پروکسی یه نوع واسطهست که بین دستگاه شما (مثلاً کامپیوتر یا موبایلتون) و اینترنت قرار میگیره. وقتی از پروکسی استفاده میکنید، درخواستهاتون (مثل وقتی یه سایت رو باز میکنید) اول به سرور پروکسی میره و بعد از اونجا به مقصد اصلی (یعنی همون سایت) فرستاده میشه. به همین خاطر، سایت مقصد هیچوقت نمیفهمه شما دقیقاً از کجا بهش وصل شدید، چون فقط آیپی سرور پروکسی رو میبینه 😎
پروکسی چه کاربردهایی داره؟ 🤓
دور زدن محدودیتها 🚫:
یکی از معروفترین کاربردهای پروکسی اینه که میتونید باهاش فیلترها و محدودیتهای اینترنتی رو دور بزنید. مثلاً اگه سایتی تو کشور ما فیلتر باشه، ( که ماشالله همه چی فیلتره) میتونید با استفاده از یه پروکسی از کشوری دیگه به اون سایت دسترسی پیدا کنید.
مخفی کردن هویت شما 👻:
همونطور که گفتم، وقتی از پروکسی استفاده میکنید، آیپی شما مخفی میشه و سایت مقصد آیپی پروکسی رو میبینه. این یعنی میتونید تو اینترنت ناشناستر بچرخید و حریم خصوصیتون رو حفظ کنید.
افزایش امنیت 🔒:
بعضی پروکسیها با استفاده از پروتکلهای امنیتی مثل HTTPS، اطلاعات شما رو رمزنگاری میکنن تا هکرها و جاسوسها نتونن به راحتی به دادههاتون دسترسی پیدا کنن.
مدیریت پهنای باند 📊:
توی شبکههای بزرگ (مثلاً تو شرکتها)، مدیران شبکه میتونن از پروکسی برای مدیریت پهنای باند استفاده کنن. اینطوری میتونن ترافیک اینترنت رو کنترل کنن و استفاده از منابع رو بهینه کنن.
انواع پروکسی 🌐
HTTP Proxy:
این نوع پروکسی فقط درخواستهای HTTP رو هندل میکنه. یعنی وقتی شما یه سایت رو با مرورگر باز میکنید، درخواست شما از طریق این پروکسی عبور میکنه. اما این نوع پروکسی نمیتونه درخواستهای
غیر HTTP (مثلاً FTP) رو پشتیبانی کنه.
SOCKS Proxy 🧦:
این یکی از همه خفن تره و تقریباً هر نوع ترافیکی رو پشتیبانی میکنه. میتونید ازش برای ارسال ایمیل، دانلود فایل یا حتی بازیهای آنلاین استفاده کنید. اما باید بدونید که SOCKS پروکسی بهخودیخود اطلاعات رو رمزنگاری نمیکنه و فقط ترافیک رو هدایت میکنه.
Transparent Proxy (پروکسی شفاف) 🛠️:
این نوع پروکسی بدون اینکه شما متوجه بشید، درخواستهاتون رو هدایت میکنه. معمولاً مدیران شبکه یا ارائهدهندگان اینترنت از این نوع پروکسی استفاده میکنن تا ترافیک رو مانیتور یا فیلتر کنن.
Reverse Proxy (پروکسی معکوس) 🔄:
این نوع پروکسی برعکس بقیهست. یعنی به جای اینکه درخواستهای شما رو به اینترنت بفرسته، درخواستهای اینترنت رو به سرورهای داخلی هدایت میکنه. معمولاً برای توزیع بار سرور یا افزایش امنیت سرورها از این مدل استفاده میشه.
مزایا و معایب پروکسی 💡❌
مزایا ✅:
مخفی کردن هویت و آیپی شما
دور زدن محدودیتها و فیلترینگ
مدیریت بهتر پهنای باند تو شبکهها
افزایش امنیت و حفظ حریم خصوصی
معایب ⭕:
بعضی از پروکسیها اطلاعات رو رمزنگاری نمیکنن، پس همچنان امکان لو رفتن اطلاعات وجود داره.
پروکسیهای رایگان معمولاً سرعت پایینی دارن و قابل اعتماد نیستن.
اگه درست تنظیم نشن، میتونن باعث کاهش کارایی و سرعت اینترنت بشن.
جمعبندی 🎯
در کل، پروکسی یه ابزار خیلی کاربردیه که میتونه به شما کمک کنه به اینترنت آزادتر دسترسی داشته باشید، هویتتون رو مخفی کنید و امنیتتون رو افزایش بدید. ولی باید همیشه حواستون باشه که از پروکسی مطمئن و ایمن استفاده کنید، مخصوصاً اگه به حریم خصوصی و امنیتتون اهمیت میدید.
لینک:
https://news.1rj.ru/str/ninja_learn_ir
#proxy
@Syntax_fa
امروز میخوایم راجع به یه موضوع خیلی پرکاربرد و مهم حرف بزنیم: پروکسی (Proxy).
شاید براتون سوال باشه که پروکسی چیه و دقیقاً چه کاری انجام میده؟ 🤔
بیاید باهم بیشتر بررسی کنیم.
پروکسی یعنی چی؟ 🤷♂️
پروکسی یه نوع واسطهست که بین دستگاه شما (مثلاً کامپیوتر یا موبایلتون) و اینترنت قرار میگیره. وقتی از پروکسی استفاده میکنید، درخواستهاتون (مثل وقتی یه سایت رو باز میکنید) اول به سرور پروکسی میره و بعد از اونجا به مقصد اصلی (یعنی همون سایت) فرستاده میشه. به همین خاطر، سایت مقصد هیچوقت نمیفهمه شما دقیقاً از کجا بهش وصل شدید، چون فقط آیپی سرور پروکسی رو میبینه 😎
پروکسی چه کاربردهایی داره؟ 🤓
دور زدن محدودیتها 🚫:
یکی از معروفترین کاربردهای پروکسی اینه که میتونید باهاش فیلترها و محدودیتهای اینترنتی رو دور بزنید. مثلاً اگه سایتی تو کشور ما فیلتر باشه، ( که ماشالله همه چی فیلتره) میتونید با استفاده از یه پروکسی از کشوری دیگه به اون سایت دسترسی پیدا کنید.
مخفی کردن هویت شما 👻:
همونطور که گفتم، وقتی از پروکسی استفاده میکنید، آیپی شما مخفی میشه و سایت مقصد آیپی پروکسی رو میبینه. این یعنی میتونید تو اینترنت ناشناستر بچرخید و حریم خصوصیتون رو حفظ کنید.
افزایش امنیت 🔒:
بعضی پروکسیها با استفاده از پروتکلهای امنیتی مثل HTTPS، اطلاعات شما رو رمزنگاری میکنن تا هکرها و جاسوسها نتونن به راحتی به دادههاتون دسترسی پیدا کنن.
مدیریت پهنای باند 📊:
توی شبکههای بزرگ (مثلاً تو شرکتها)، مدیران شبکه میتونن از پروکسی برای مدیریت پهنای باند استفاده کنن. اینطوری میتونن ترافیک اینترنت رو کنترل کنن و استفاده از منابع رو بهینه کنن.
انواع پروکسی 🌐
HTTP Proxy:
این نوع پروکسی فقط درخواستهای HTTP رو هندل میکنه. یعنی وقتی شما یه سایت رو با مرورگر باز میکنید، درخواست شما از طریق این پروکسی عبور میکنه. اما این نوع پروکسی نمیتونه درخواستهای
غیر HTTP (مثلاً FTP) رو پشتیبانی کنه.
SOCKS Proxy 🧦:
این یکی از همه خفن تره و تقریباً هر نوع ترافیکی رو پشتیبانی میکنه. میتونید ازش برای ارسال ایمیل، دانلود فایل یا حتی بازیهای آنلاین استفاده کنید. اما باید بدونید که SOCKS پروکسی بهخودیخود اطلاعات رو رمزنگاری نمیکنه و فقط ترافیک رو هدایت میکنه.
Transparent Proxy (پروکسی شفاف) 🛠️:
این نوع پروکسی بدون اینکه شما متوجه بشید، درخواستهاتون رو هدایت میکنه. معمولاً مدیران شبکه یا ارائهدهندگان اینترنت از این نوع پروکسی استفاده میکنن تا ترافیک رو مانیتور یا فیلتر کنن.
Reverse Proxy (پروکسی معکوس) 🔄:
این نوع پروکسی برعکس بقیهست. یعنی به جای اینکه درخواستهای شما رو به اینترنت بفرسته، درخواستهای اینترنت رو به سرورهای داخلی هدایت میکنه. معمولاً برای توزیع بار سرور یا افزایش امنیت سرورها از این مدل استفاده میشه.
مزایا و معایب پروکسی 💡❌
مزایا ✅:
مخفی کردن هویت و آیپی شما
دور زدن محدودیتها و فیلترینگ
مدیریت بهتر پهنای باند تو شبکهها
افزایش امنیت و حفظ حریم خصوصی
معایب ⭕:
بعضی از پروکسیها اطلاعات رو رمزنگاری نمیکنن، پس همچنان امکان لو رفتن اطلاعات وجود داره.
پروکسیهای رایگان معمولاً سرعت پایینی دارن و قابل اعتماد نیستن.
اگه درست تنظیم نشن، میتونن باعث کاهش کارایی و سرعت اینترنت بشن.
جمعبندی 🎯
در کل، پروکسی یه ابزار خیلی کاربردیه که میتونه به شما کمک کنه به اینترنت آزادتر دسترسی داشته باشید، هویتتون رو مخفی کنید و امنیتتون رو افزایش بدید. ولی باید همیشه حواستون باشه که از پروکسی مطمئن و ایمن استفاده کنید، مخصوصاً اگه به حریم خصوصی و امنیتتون اهمیت میدید.
لینک:
https://news.1rj.ru/str/ninja_learn_ir
#proxy
@Syntax_fa
Forwarded from Pishro App
تو این نسخه، یه ویژگی جدید به نام رابطه "inverse/chaperone" توی Eloquent معرفی شد.
فرض کنید شما یک مدل پست (Post) و یک مدل کامنت (Comment) دارید. رابطه بین این دو مدل به این صورته که هر پست میتونه چندین کامنت داشته باشه.
توی لاراول، معمولاً این رابطه را بصورت زیر تعریف میکنیم:
public function comments(): HasMany
{
return $this->hasMany(Comment::class);
}
حالا با این قابلیت جدید chaperone()، میشه رابطه را اینطور بنویسیم:
public function comments(): HasMany
{
return $this->hasMany(Comment::class)->chaperone('post');
}
با استفاده از chaperone('post')، لاراول بهطور خودکار اطمینان پیدا میکنه که وقتی رابطه کامنتها از دیتابیس لود میشه، هر کامنت به درستی به مدل پست اصلیاش لینک شده باشه.
این کار باعث میشه که کوئریهای اضافه (N+1 Queries) ایجاد نشه و سرعت و کارایی برنامه بهبود پیدا میکنه.
مزایای این متد:
جلوگیری از کوئریهای اضافی (N+1)
لینک خودکار مدل فرزند به مدل والد
حفظ صحیح محدودیتها (Scopes)
#laravel
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Linuxor ?
یه ویدیو گیم چیتر اومده تجربیاتش از اسمبلی ARMv8 رو در قالب یه آموزش برای تازه کار ها نوشته
https://mariokartwii.com/armv8/
🐧 @Linuxor
https://mariokartwii.com/armv8/
🐧 @Linuxor
Forwarded from ⚝
لشکر سه نفرهٔ ایران در برابر هجوم ارتش شوروی:
یاد و خاطرهٔ شهدای شهریور ۱۳۲۰ گرامی باد.
#note
🄯 CC-BY-SA 4 — w.wiki/B8d4
@amiria703_channel
یاد و خاطرهٔ شهدای شهریور ۱۳۲۰ گرامی باد.
#note
🄯 CC-BY-SA 4 — w.wiki/B8d4
@amiria703_channel
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
SVG to Code
SVG to Code | Online converter
Online tool to convert SVG image to code and vice versa
Forwarded from ⚝
wiki.archlinux.org/noscript/Bash/Prompt_customization
شخصیسازی محیط خطّ دستور بَش:
#article #linux #FLOSS
@amiria703_channel
شخصیسازی محیط خطّ دستور بَش:
#article #linux #FLOSS
@amiria703_channel
Forwarded from ⚝
First off, I'd suggest printing out a copy of the GNU coding standards, and NOT read it. Burn them, it's a great symbolic gesture.
kernel.org/doc/Documentation/process/coding-style.rst
ما هیچ. ما نگاه. :))
#fun #linux
@amiria703_channel
Forwarded from ⚝
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
دستور Neofetch یک ابزار خط فرمان بود (آرشیو شده و دیگه توسعه پیدا نمیکنه)
که مجموعه ای از اطلاعات سیستم را روی یک ترمینال از جمله لوگوی سیستم عامل نمایش میداد
اینقدر این fetch ها معادل دارند که کار کشیده به awesome-fetch
در لینک زیر میتوانید نزدیک به ۱۰۰ تا از انواع fetch پیدا کنید
https://beucismis.github.io/awesome-fetch/
#linux
که مجموعه ای از اطلاعات سیستم را روی یک ترمینال از جمله لوگوی سیستم عامل نمایش میداد
اینقدر این fetch ها معادل دارند که کار کشیده به awesome-fetch
در لینک زیر میتوانید نزدیک به ۱۰۰ تا از انواع fetch پیدا کنید
https://beucismis.github.io/awesome-fetch/
#linux
Forwarded from Ninja Learn | نینجا لرن
سلام دوستان 👋
امروز تو یکی از گروهها یه چیزی دیدم که گفتم بهتره در موردش صحبت کنم. خیلی از دوستانی که اینجا هستن سنشون زیر ۱۸ ساله. خب دوستان، تو این سن استخدام شدن تو یه شرکت خیلی سخته (نمیگم غیرممکنه، ولی خیلی کمه جایی پیدا بشه که با این سن کم استخدام کنه). دلیلش هم واضحه؛ شما نه کارت پایان خدمت دارین، نه وقت کافی چون درگیر درس و مدرسه هستین و...
پیشنهاد من اینه که تو این سن بهجای اینکه دنبال استخدام شدن باشین، بیشتر روی قوی کردن مهارتهای فنی و نرم خودتون کار کنین. اگه بتونین تو این چند سال خوب رو خودتون کار کنین، مهارتهاتون رو بالا ببرین و شبکهسازی کنین، وقتی به سن ۲۰ سالگی میرسین، خیلیها دنبال شما خواهند بود.
پس فعلاً بهجای اینکه دنبال استخدام تو یه شرکتی باشین که به خاطر سن کم ممکنه حقتون رو ضایع کنه، روی رشد شخصی و حرفهای خودتون تمرکز کنین. تو این مدت هم میتونین پروژههای فریلنسری بگیرین و از این راه درآمد داشته باشین. تو دنیای فریلنسری، مهارت از همه چی مهمتره و سن و محل زندگی زیاد مهم نیست.
برای همتون ارزوی بهترین هارو میکنم ❤️
امروز تو یکی از گروهها یه چیزی دیدم که گفتم بهتره در موردش صحبت کنم. خیلی از دوستانی که اینجا هستن سنشون زیر ۱۸ ساله. خب دوستان، تو این سن استخدام شدن تو یه شرکت خیلی سخته (نمیگم غیرممکنه، ولی خیلی کمه جایی پیدا بشه که با این سن کم استخدام کنه). دلیلش هم واضحه؛ شما نه کارت پایان خدمت دارین، نه وقت کافی چون درگیر درس و مدرسه هستین و...
پیشنهاد من اینه که تو این سن بهجای اینکه دنبال استخدام شدن باشین، بیشتر روی قوی کردن مهارتهای فنی و نرم خودتون کار کنین. اگه بتونین تو این چند سال خوب رو خودتون کار کنین، مهارتهاتون رو بالا ببرین و شبکهسازی کنین، وقتی به سن ۲۰ سالگی میرسین، خیلیها دنبال شما خواهند بود.
پس فعلاً بهجای اینکه دنبال استخدام تو یه شرکتی باشین که به خاطر سن کم ممکنه حقتون رو ضایع کنه، روی رشد شخصی و حرفهای خودتون تمرکز کنین. تو این مدت هم میتونین پروژههای فریلنسری بگیرین و از این راه درآمد داشته باشین. تو دنیای فریلنسری، مهارت از همه چی مهمتره و سن و محل زندگی زیاد مهم نیست.
برای همتون ارزوی بهترین هارو میکنم ❤️
Forwarded from Gopher Academy
🔵 عنوان مقاله
State Machines Simplified
🟢 خلاصه مقاله:
متأسفانه شما تنها یک جمله از مقاله فراهم کردهاید که اطلاعات کافی برای تهیه خلاصهای جامع از مقاله را دربرندارد. با این حال، من میتوانم بر اساس اطلاعات داده شده توضیحی ارائه دهم: مقالهای که اشاره شده، به نظر میرسد به معرفی و بررسی "Temporal" میپردازد که یک راهکار برای مواجهه با چالشهای پیچیدهی ماشینهای حالت (state machines) است. Temporal به عنوان ابزاری برای افزایش کارآمدی شناخته شده، تأکید بر سادگی و دوام آن دارد، که میتواند در بهبود فرایندهای مرتبط با مدیریت حالتهای مختلف در سیستمها مفید واقع شود.
🟣لینک مقاله:
https://pages.temporal.io/download-state-machines-simplified-cooperpress.html
➖➖➖➖➖➖➖➖
👑 @gopher_academy
State Machines Simplified
🟢 خلاصه مقاله:
متأسفانه شما تنها یک جمله از مقاله فراهم کردهاید که اطلاعات کافی برای تهیه خلاصهای جامع از مقاله را دربرندارد. با این حال، من میتوانم بر اساس اطلاعات داده شده توضیحی ارائه دهم: مقالهای که اشاره شده، به نظر میرسد به معرفی و بررسی "Temporal" میپردازد که یک راهکار برای مواجهه با چالشهای پیچیدهی ماشینهای حالت (state machines) است. Temporal به عنوان ابزاری برای افزایش کارآمدی شناخته شده، تأکید بر سادگی و دوام آن دارد، که میتواند در بهبود فرایندهای مرتبط با مدیریت حالتهای مختلف در سیستمها مفید واقع شود.
🟣لینک مقاله:
https://pages.temporal.io/download-state-machines-simplified-cooperpress.html
➖➖➖➖➖➖➖➖
👑 @gopher_academy
pages.temporal.io
State Machine Simplified | Whitepaper
Discover how Temporal simplifies application development by replacing complex state machines.
Forwarded from Gopher Academy
الگوهای ورژنبندی (Versioning) در نرمافزار به روشهای مختلفی برای شمارهگذاری و پیگیری نسخههای نرمافزار اشاره دارند. در اینجا برخی از رایجترین الگوهای ورژنبندی آورده شده است:
### 1. Semantic Versioning (SemVer)
- فرمت:
- مثال:
- قواعد:
- MAJOR:
تغییرات ناسازگار که معمولاً با API همراه است.
- MINOR:
افزودن قابلیتهای جدید به شکلی که با نسخههای قبلی سازگار است.
- PATCH:
رفع باگها و مشکلات کوچک بدون تغییرات ناسازگار.
### 2. Calendar Versioning (CalVer)
- فرمت:
- مثال:
- قواعد:
- براساس تاریخ انتشار نسخهها شمارهگذاری میشود.
- مناسب برای نرمافزارهایی که بهصورت دورهای و مرتب آپدیت میشوند.
### 3. Sequential Versioning
- فرمت:
- مثال:
- قواعد:
- شمارههای نسخه بهصورت ترتیبی و بدون توجه به نوع تغییرات افزایش مییابند.
- معمولاً برای نسخههای ابتدایی یا محصولات کوچک استفاده میشود.
### 4. Date-based Versioning
- فرمت:
- مثال:
- قواعد:
- نسخهها بر اساس تاریخ و زمان انتشار شمارهگذاری میشوند.
- مناسب برای نرمافزارهایی که بهطور مداوم آپدیت میشوند و تاریخ نسخه مهم است.
### 5. Pseudo-Versioning
- فرمت:
- مثال:
- قواعد:
- معمولاً در سیستمهای کنترل نسخه مثل Git استفاده میشود.
- زمانی که تگ رسمی وجود ندارد یا نیاز است به یک commit خاص اشاره شود، استفاده میشود.
### 6. Alphanumeric Versioning
- فرمت:
- مثال:
- قواعد:
- از حروف برای نشان دادن مراحل توسعه استفاده میشود (a=alpha, b=beta, rc=release candidate).
- این الگو برای مراحل قبل از انتشار نهایی محصول بهکار میرود.
### 7. Combined Versioning
- فرمت: ترکیبی از الگوهای مختلف، مثل
- مثال:
- قواعد:
- ترکیبی از ورژنبندی تقویمی، ترتیبی، و یا الفبایی به منظور مشخص کردن نوع تغییرات و زمان انتشار.
### 8. Dot Notation Versioning
- فرمت:
- مثال:
- قواعد:
- هر قسمت نشاندهنده یک سطح از تغییرات است، که میتواند مشابه Semantic Versioning باشد، اما با عمق کمتر.
- بیشتر برای پروژههای ساده استفاده میشود.
### 9. Major.Minor Schema
- فرمت:
- مثال:
- قواعد:
- به جای استفاده از PATCH، فقط MAJOR و MINOR مشخص میشوند.
- اغلب برای نرمافزارهایی استفاده میشود که نیاز به پیچیدگی زیادی در ورژنبندی ندارند.
هر کدام از این الگوها بسته به نیاز پروژه و نوع نرمافزار میتواند مورد استفاده قرار گیرد. استفاده درست از الگوی ورژنبندی میتواند به شفافیت در مدیریت نسخهها و بهبود فرآیند توسعه و انتشار نرمافزار کمک کند.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
### 1. Semantic Versioning (SemVer)
- فرمت:
MAJOR.MINOR.PATCH- مثال:
1.4.2- قواعد:
- MAJOR:
تغییرات ناسازگار که معمولاً با API همراه است.
- MINOR:
افزودن قابلیتهای جدید به شکلی که با نسخههای قبلی سازگار است.
- PATCH:
رفع باگها و مشکلات کوچک بدون تغییرات ناسازگار.
### 2. Calendar Versioning (CalVer)
- فرمت:
YYYY.MM.DD یا YYYY.MM یا YYYY.MM.MICRO- مثال:
2024.08.26, 2024.08- قواعد:
- براساس تاریخ انتشار نسخهها شمارهگذاری میشود.
- مناسب برای نرمافزارهایی که بهصورت دورهای و مرتب آپدیت میشوند.
### 3. Sequential Versioning
- فرمت:
1, 2, 3, 4, ...- مثال:
1, 2, 3, 4- قواعد:
- شمارههای نسخه بهصورت ترتیبی و بدون توجه به نوع تغییرات افزایش مییابند.
- معمولاً برای نسخههای ابتدایی یا محصولات کوچک استفاده میشود.
### 4. Date-based Versioning
- فرمت:
YYYYMMDD یا YYYYMMDDHHMM- مثال:
20240826, 202408261230- قواعد:
- نسخهها بر اساس تاریخ و زمان انتشار شمارهگذاری میشوند.
- مناسب برای نرمافزارهایی که بهطور مداوم آپدیت میشوند و تاریخ نسخه مهم است.
### 5. Pseudo-Versioning
- فرمت:
vX.Y.Z-TIMESTAMP-COMMITHASH- مثال:
v1.0.0-202108150915-abcdef123456- قواعد:
- معمولاً در سیستمهای کنترل نسخه مثل Git استفاده میشود.
- زمانی که تگ رسمی وجود ندارد یا نیاز است به یک commit خاص اشاره شود، استفاده میشود.
### 6. Alphanumeric Versioning
- فرمت:
1.0a, 2.0beta, 3.0rc1- مثال:
1.0a, 2.0beta, 3.0rc1- قواعد:
- از حروف برای نشان دادن مراحل توسعه استفاده میشود (a=alpha, b=beta, rc=release candidate).
- این الگو برای مراحل قبل از انتشار نهایی محصول بهکار میرود.
### 7. Combined Versioning
- فرمت: ترکیبی از الگوهای مختلف، مثل
1.0.0-alpha, 2024.1.0- مثال:
1.0.0-alpha, 2024.1.0- قواعد:
- ترکیبی از ورژنبندی تقویمی، ترتیبی، و یا الفبایی به منظور مشخص کردن نوع تغییرات و زمان انتشار.
### 8. Dot Notation Versioning
- فرمت:
1.0, 1.1, 2.0- مثال:
1.0, 2.1- قواعد:
- هر قسمت نشاندهنده یک سطح از تغییرات است، که میتواند مشابه Semantic Versioning باشد، اما با عمق کمتر.
- بیشتر برای پروژههای ساده استفاده میشود.
### 9. Major.Minor Schema
- فرمت:
MAJOR.MINOR- مثال:
3.5- قواعد:
- به جای استفاده از PATCH، فقط MAJOR و MINOR مشخص میشوند.
- اغلب برای نرمافزارهایی استفاده میشود که نیاز به پیچیدگی زیادی در ورژنبندی ندارند.
هر کدام از این الگوها بسته به نیاز پروژه و نوع نرمافزار میتواند مورد استفاده قرار گیرد. استفاده درست از الگوی ورژنبندی میتواند به شفافیت در مدیریت نسخهها و بهبود فرآیند توسعه و انتشار نرمافزار کمک کند.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from محتوای آزاد سهراب
حس میکنم از زمانی که اون نوکیا دکمهای هایی که به اینترنت وصل میشدن رو دستم گرفتم، این مدل شبکه رو ندیده بودم :)))
چرا وسط شهر باید G باشه؟
@SohrabContents
چرا وسط شهر باید G باشه؟
@SohrabContents
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
اگر به طراحی با سبک نئومورفیسم علاقه مندی این سایت بهت کمک میکنه تا هر حالتی که میخوای رو پیاده کنی
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
Forwarded from Bardiaism
Media is too big
VIEW IN TELEGRAM
چرا هزینه ساعتی فریلنسری از هزینه استخدامی بیشتره؟
در پی توییتی در توییتر سوالی پیش اومده بود برای خیلیها که چرا هزینهای که یک فریلنسر بصورت ساعتی اعلام میکنه، از هزینهای که یک نفر وقتی جایی استخدام میشه به مراتب بیشتره؟
این باعث شد به این فکر فروبرم که احتمالا تو ویدیو قبلی درباره محاسبه هزینه پروژه، بخش محاسبه هزینه ساعتی هر نیرو برای هر فرد همچنان ابهام داره و این ویدیو رو به عنوان ویدیو تکمیلی بسازم.
لینک ویدیو در یوتیوب:
https://youtu.be/IzQObgWB1-A
@Bardiaism
در پی توییتی در توییتر سوالی پیش اومده بود برای خیلیها که چرا هزینهای که یک فریلنسر بصورت ساعتی اعلام میکنه، از هزینهای که یک نفر وقتی جایی استخدام میشه به مراتب بیشتره؟
این باعث شد به این فکر فروبرم که احتمالا تو ویدیو قبلی درباره محاسبه هزینه پروژه، بخش محاسبه هزینه ساعتی هر نیرو برای هر فرد همچنان ابهام داره و این ویدیو رو به عنوان ویدیو تکمیلی بسازم.
لینک ویدیو در یوتیوب:
https://youtu.be/IzQObgWB1-A
@Bardiaism