~> چرا از صفر؟ 🤔
شمارش از صفر که تو اکثر زبانهای برنامهنویسی رایجه، یهسری دلایل فنی و تاریخی داره. این روش با آدرسدهی حافظه کامپیوتر هماهنگه که از صفر شروع میشه. وقتی با آرایهها کار میکنیم، ایندکس صفر به اولین خونه حافظه اشاره میکنه که محاسبات جابجایی (offset) رو سادهتر میکنه.
زبان C که دنیس ریچی در دهه ۱۹۷۰ اون رو توسعه داد، نقش مهمی در رواج این قرارداد داشته. سی به برنامهنویسها کنترل دقیق روی حافظه میده و روی زبانهای بعدی تأثیر گذاشته.
از نظر ریاضی، شروع از صفر توی کار با مجموعههای پیمانهای (modular sets) و الگوریتمهایی مثل جستجوی دودویی (binary search) مفیده. Edsger Dijkstra در سال ۱۹۸۲ یادداشتی نوشت که مزایای نوشتاری و ریاضی شروع از صفر رو توضیح میده. [مطالعهٔ بیشتر]
البته همه زبانها این قاعده رو رعایت نمیکنن. مثلا لوآ، R و فورترن از یک شروع میکنن که این موضوع گاهی باعث سردرگمی برنامهنویسها میشه.
شروع از صفر چالشهایی هم داره. برای افراد غیرفنی گیجکنندهس و میتونه باعث خطاهای اختلاف یک (off-by-one) بشه، جایی که برنامهنویسها در محاسبه تعداد عناصر یا ایندکسها اشتباه میکنن.
#علوم_کامپیوتر #نرم_افزار #فکت #نوشته
~> @PinkOrca🩷
شمارش از صفر که تو اکثر زبانهای برنامهنویسی رایجه، یهسری دلایل فنی و تاریخی داره. این روش با آدرسدهی حافظه کامپیوتر هماهنگه که از صفر شروع میشه. وقتی با آرایهها کار میکنیم، ایندکس صفر به اولین خونه حافظه اشاره میکنه که محاسبات جابجایی (offset) رو سادهتر میکنه.
زبان C که دنیس ریچی در دهه ۱۹۷۰ اون رو توسعه داد، نقش مهمی در رواج این قرارداد داشته. سی به برنامهنویسها کنترل دقیق روی حافظه میده و روی زبانهای بعدی تأثیر گذاشته.
از نظر ریاضی، شروع از صفر توی کار با مجموعههای پیمانهای (modular sets) و الگوریتمهایی مثل جستجوی دودویی (binary search) مفیده. Edsger Dijkstra در سال ۱۹۸۲ یادداشتی نوشت که مزایای نوشتاری و ریاضی شروع از صفر رو توضیح میده. [مطالعهٔ بیشتر]
البته همه زبانها این قاعده رو رعایت نمیکنن. مثلا لوآ، R و فورترن از یک شروع میکنن که این موضوع گاهی باعث سردرگمی برنامهنویسها میشه.
شروع از صفر چالشهایی هم داره. برای افراد غیرفنی گیجکنندهس و میتونه باعث خطاهای اختلاف یک (off-by-one) بشه، جایی که برنامهنویسها در محاسبه تعداد عناصر یا ایندکسها اشتباه میکنن.
#علوم_کامپیوتر #نرم_افزار #فکت #نوشته
~> @PinkOrca
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥5❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣25😁3💔3👍2
~> OSI Model
مدل OSI یا Open Systems Interconnection یه استاندارد بینالمللی هستش که سال 1984 توسط ISO معرفی شد. این مدل شبکه رو به هفت لایه تقسیم میکنه که هر کدوم وظایف خاص خودشون رو دارن.
لایه 1: لایه فیزیکی (Physical Layer) پایینترین لایه هستش که با سیگنالهای الکتریکی و مکانیکی سر و کار داره. این لایه مسئول انتقال بیتهای خام از طریق کابلها و وایرلس هستش. مثل: کابلهای Ethernet، هابها، ریپیترها و کانکتورهای RJ-45.
لایه 2: لایه دیتالینک (Data Link Layer) وظیفه فریمینگ (framing) دیتا و کنترل خطا رو به عهده داره. پروتکلهای مهم این لایه مثل MAC و LLC مسئول ارتباط نقطه به نقطه (point-to-point) بین دستگاهها هستن. مثل: سوئیچهای شبکه و کارتهای شبکه (NIC).
لایه 3: لایه شبکه (Network Layer) که IP توش کار میکنه، مسیریابی (routing) پکتها رو انجام میده. روترها و آدرسدهی IP از وظایف اصلی این لایه هستن. مثل: پروتکل ICMP برای پینگ و پروتکل OSPF برای روتینگ.
لایه 4: لایه انتقال (Transport Layer) با پروتکلهایی مثل TCP و UDP کار میکنه و کنترل جریان (flow control) دیتا رو انجام میده. این لایه اطمینان میده که دیتا بدون خطا منتقل میشه. مثل: پورتهای TCP/UDP مثل پورت 80 برای HTTP.
لایه 5: لایه سشن (Session Layer) ارتباط بین اپلیکیشنها رو مدیریت میکنه. این لایه سشنها رو راهاندازی (setup)، مدیریت (manage) و خاتمه میده (terminate). مثل: NetBIOS و پروتکلهای RPC.
لایه 6: لایه پرزنتیشن (Presentation Layer) مسئول فرمتکردن (formatting) و رمزنگاری (encryption) دیتا هستش. این لایه دیتا رو به فرمتی تبدیل میکنه که برای لایه اپلیکیشن قابل فهم باشه. مثل: SSL/TLS برای رمزنگاری و JPEG یا GIF برای فرمت تصاویر.
لایه 7: لایه اپلیکیشن (Application Layer) بالاترین لایه هستش که پروتکلهای کاربردی مثل HTTP برای وب، FTP برای انتقال فایل و SMTP برای ایمیل توش کار میکنن.
یه نکته جالب اینه که TCP/IP که امروزه استاندارد اینترنت هستش، از یه مدل چهار لایهای استفاده میکنه که سادهتر از OSI هستش. با این حال، مدل OSI هنوز به عنوان یه رفرنس مهم برای درک مفاهیم شبکه استفاده میشه.
هر لایه OSI میتونه مستقل کانفیگ و دیباگ بشه، که این موضوع عیبیابی و troubleshooting مشکلات شبکه رو راحتتر میکنه. همچنین هر لایه با لایههای بالا و پایین خودش از طریق رابطهای استاندارد (interfaces) ارتباط برقرار میکنه.
#شبکه #علوم_کامپیوتر #نوشته
~> @PinkOrca🩷
مدل OSI یا Open Systems Interconnection یه استاندارد بینالمللی هستش که سال 1984 توسط ISO معرفی شد. این مدل شبکه رو به هفت لایه تقسیم میکنه که هر کدوم وظایف خاص خودشون رو دارن.
لایه 1: لایه فیزیکی (Physical Layer) پایینترین لایه هستش که با سیگنالهای الکتریکی و مکانیکی سر و کار داره. این لایه مسئول انتقال بیتهای خام از طریق کابلها و وایرلس هستش. مثل: کابلهای Ethernet، هابها، ریپیترها و کانکتورهای RJ-45.
لایه 2: لایه دیتالینک (Data Link Layer) وظیفه فریمینگ (framing) دیتا و کنترل خطا رو به عهده داره. پروتکلهای مهم این لایه مثل MAC و LLC مسئول ارتباط نقطه به نقطه (point-to-point) بین دستگاهها هستن. مثل: سوئیچهای شبکه و کارتهای شبکه (NIC).
لایه 3: لایه شبکه (Network Layer) که IP توش کار میکنه، مسیریابی (routing) پکتها رو انجام میده. روترها و آدرسدهی IP از وظایف اصلی این لایه هستن. مثل: پروتکل ICMP برای پینگ و پروتکل OSPF برای روتینگ.
لایه 4: لایه انتقال (Transport Layer) با پروتکلهایی مثل TCP و UDP کار میکنه و کنترل جریان (flow control) دیتا رو انجام میده. این لایه اطمینان میده که دیتا بدون خطا منتقل میشه. مثل: پورتهای TCP/UDP مثل پورت 80 برای HTTP.
لایه 5: لایه سشن (Session Layer) ارتباط بین اپلیکیشنها رو مدیریت میکنه. این لایه سشنها رو راهاندازی (setup)، مدیریت (manage) و خاتمه میده (terminate). مثل: NetBIOS و پروتکلهای RPC.
لایه 6: لایه پرزنتیشن (Presentation Layer) مسئول فرمتکردن (formatting) و رمزنگاری (encryption) دیتا هستش. این لایه دیتا رو به فرمتی تبدیل میکنه که برای لایه اپلیکیشن قابل فهم باشه. مثل: SSL/TLS برای رمزنگاری و JPEG یا GIF برای فرمت تصاویر.
لایه 7: لایه اپلیکیشن (Application Layer) بالاترین لایه هستش که پروتکلهای کاربردی مثل HTTP برای وب، FTP برای انتقال فایل و SMTP برای ایمیل توش کار میکنن.
یه نکته جالب اینه که TCP/IP که امروزه استاندارد اینترنت هستش، از یه مدل چهار لایهای استفاده میکنه که سادهتر از OSI هستش. با این حال، مدل OSI هنوز به عنوان یه رفرنس مهم برای درک مفاهیم شبکه استفاده میشه.
هر لایه OSI میتونه مستقل کانفیگ و دیباگ بشه، که این موضوع عیبیابی و troubleshooting مشکلات شبکه رو راحتتر میکنه. همچنین هر لایه با لایههای بالا و پایین خودش از طریق رابطهای استاندارد (interfaces) ارتباط برقرار میکنه.
#شبکه #علوم_کامپیوتر #نوشته
~> @PinkOrca
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍6❤4
حملات فیشینگ QR کد: دور زدن MFA با quishing
یک حمله جدید فیشینگ با استفاده از QR کد داره سیستمهای MFA (Multi-Factor Authentication) رو دور میزنه. سوفوس (Sophos) اخیراً جزئیات این حمله رو که به یکی از کارمندانش شده منتشر کرده. به این نوع حمله "quishing" میگن که ترکیبی از QR و فیشینگ هستش.
- quishing چیه؟
- مطالعهٔ بیشترِ خبر
#اخبار_تکنولوژی #هک_و_امنیت #نوشته
~> @PinkOrca🩷
یک حمله جدید فیشینگ با استفاده از QR کد داره سیستمهای MFA (Multi-Factor Authentication) رو دور میزنه. سوفوس (Sophos) اخیراً جزئیات این حمله رو که به یکی از کارمندانش شده منتشر کرده. به این نوع حمله "quishing" میگن که ترکیبی از QR و فیشینگ هستش.
ماجرا از این قراره که کارمندهای سوفوس یه ایمیل دریافت میکنن که به نظر میرسه از اسکنر شرکت اومده و یه فایل PDF مربوط به مزایای کارمندان داخلش هستش. این PDF شامل لوگوی سوفوس و یه QR کد میشه که ظاهراً به یه لینک DocuSign اشاره میکنه و ادعا میکنه که فایل تا ۲۴ ساعت منقضی میشه.
وقتی کاربر QR کد رو اسکن میکنه، به یه صفحه لاگین فیک مایکروسافت ۳۶۵ هدایت میشه. نکته جالب اینجاست که این صفحه کاملاً شبیهسازی شده و حتی MFA رو هم ساپورت میکنه. وقتی کاربر اطلاعات رو وارد میکنه، هکر در لحظه از توکن MFA دزدیده شده برای دسترسی به سیستمهای داخلی استفاده میکنه.
این حمله چند نکته قابل توجه داره:
- نام فایل توی متن ایمیل با PDF پیوست شده مچ نمیشه.
- سابجکت ایمیل "Remittance Arrived" هستش که برای یه اسکنر عادی منطقی نیست.
- صفحه لاگین فیک روی موبایل کاربر باز میشه که معمولاً URL فیلترینگ نداره.
- QR کدها معمولاً از فیلترهای امنیتی ایمیل رد میشن چون image-based هستن.
طبق گزارش سوفوس، سرویسهای PhaaS (Phishing-as-a-Service) مثل ONNX Store دارن حملات مبتنی بر QR کد رو به محصولاتشون اضافه میکنن. اندرو برنت، محقق ارشد تهدیدات سوفوس میگه که اگرچه در ابتدای همهگیری کووید نگرانیهایی درباره QR کدها وجود داشت، اما ریسک واقعی کم بود. حالا هکرها دارن از این تکنیک برای حملات فیشینگ هدفمند استفاده میکنن که متأسفانه خیلی هم مؤثر هستش.
جالب اینجاست که با کیتهای quishing، هکرها میتونن ایمیلهای فیشینگ رو به صورت انبوه برای کارمندان شرکتهای مختلف کاستومایز کنن. اگر موفق به دزدیدن اطلاعات لاگین و توکن MFA بشن، میتونن به سیستمهای حساس نفوذ کنن.
- quishing چیه؟
- مطالعهٔ بیشترِ خبر
#اخبار_تکنولوژی #هک_و_امنیت #نوشته
~> @PinkOrca
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡4🤯2👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁22🤣9
~> ACID Properties
ACID یه سری خصوصیات کلیدیه که تو دیتابیسهای رابطهای برای تضمین صحت تراکنشها (Transactions) استفاده میشه. این مفهوم اولین بار سال 1983 توسط Theo Härder و Andreas Reuter معرفی شد.
حالا ACID مخفف چیه؟!⬇️
Atomicity (اتمی بودن): یعنی یه تراکنش یا باید کامل انجام بشه یا اصلا انجام نشه. مثلا وقتی پول از یه حساب بانکی به حساب دیگه منتقل میشه، یا باید هم کم شدن از حساب اول و هم اضافه شدن به حساب دوم انجام بشه، یا هیچکدوم انجام نشه. حالت نصفه و نیمه نداریم. اگه وسط کار مشکلی پیش بیاد، عملیات Rollback میشه.
Consistency (سازگاری): یعنی دیتابیس باید همیشه تو حالت معتبر (valid) باشه، چه قبل تراکنش و چه بعدش. مثلا اگه قانون داریم که موجودی حساب نباید منفی بشه، هیچ تراکنشی نمیتونه این قانون رو نقض کنه. اگه تراکنشی بخواد این کار رو بکنه، کامل کنسل میشه.
Isolation (انزوا): یعنی تراکنشهای همزمان نباید روی هم تاثیر بذارن. مثلا اگه دو نفر همزمان از یه حساب برداشت میکنن، سیستم باید طوری مدیریت کنه که نتیجه نهایی درست باشه. این کار با مکانیزمهای مختلف Locking انجام میشه.
سطوح مختلف Isolation وجود داره:
- Read Uncommitted: کمترین سطح ایزوله بودن.
- Read Committed: فقط تغییرات تایید شده دیده میشن.
- Repeatable Read: خوندنهای تکراری نتیجه یکسان میدن.
- Serializable: بالاترین سطح ایزوله بودن.
Durability (ماندگاری): یعنی وقتی تراکنشی موفق انجام شد (Commit شد)، تغییراتش باید دائمی باشه و حتی با قطع برق یا کرش سیستم هم از بین نره. این کار معمولا با Write-Ahead Logging (WAL) انجام میشه.
تو دنیای واقعی گاهی باید بین این خصوصیات تعادل برقرار کرد. مثلا NoSQLها معمولا از مدل BASE استفاده میکنن که Basically Available, Soft State, Eventually Consistent هستش و سازگاری کمتری داره ولی در عوض مقیاسپذیری (Scalability) بیشتری داره.
PostgreSQL یکی از بهترین پیادهسازیهای ACID رو داره و میتونه همه سطوح Isolation رو ساپورت کنه. MySQL هم ACID رو پشتیبانی میکنه ولی فقط با موتور InnoDB، موتور MyISAM این قابلیت رو نداره.
یه نکته جالب اینه که پیادهسازی ACID روی عملکرد (Performance) دیتابیس تاثیر منفی میذاره. به همین خاطر بعضی سیستمها مثل Redis از تکنیکهای خاصی مثل AOF (Append-Only File) استفاده میکنن تا تعادل بهتری بین کارایی و تضمینهای ACID برقرار کنن.
#نرم_افزار #علوم_کامپیوتر #نوشته
~> @PinkOrca🩷
ACID یه سری خصوصیات کلیدیه که تو دیتابیسهای رابطهای برای تضمین صحت تراکنشها (Transactions) استفاده میشه. این مفهوم اولین بار سال 1983 توسط Theo Härder و Andreas Reuter معرفی شد.
حالا ACID مخفف چیه؟!⬇️
Atomicity (اتمی بودن): یعنی یه تراکنش یا باید کامل انجام بشه یا اصلا انجام نشه. مثلا وقتی پول از یه حساب بانکی به حساب دیگه منتقل میشه، یا باید هم کم شدن از حساب اول و هم اضافه شدن به حساب دوم انجام بشه، یا هیچکدوم انجام نشه. حالت نصفه و نیمه نداریم. اگه وسط کار مشکلی پیش بیاد، عملیات Rollback میشه.
Consistency (سازگاری): یعنی دیتابیس باید همیشه تو حالت معتبر (valid) باشه، چه قبل تراکنش و چه بعدش. مثلا اگه قانون داریم که موجودی حساب نباید منفی بشه، هیچ تراکنشی نمیتونه این قانون رو نقض کنه. اگه تراکنشی بخواد این کار رو بکنه، کامل کنسل میشه.
Isolation (انزوا): یعنی تراکنشهای همزمان نباید روی هم تاثیر بذارن. مثلا اگه دو نفر همزمان از یه حساب برداشت میکنن، سیستم باید طوری مدیریت کنه که نتیجه نهایی درست باشه. این کار با مکانیزمهای مختلف Locking انجام میشه.
سطوح مختلف Isolation وجود داره:
- Read Uncommitted: کمترین سطح ایزوله بودن.
- Read Committed: فقط تغییرات تایید شده دیده میشن.
- Repeatable Read: خوندنهای تکراری نتیجه یکسان میدن.
- Serializable: بالاترین سطح ایزوله بودن.
Durability (ماندگاری): یعنی وقتی تراکنشی موفق انجام شد (Commit شد)، تغییراتش باید دائمی باشه و حتی با قطع برق یا کرش سیستم هم از بین نره. این کار معمولا با Write-Ahead Logging (WAL) انجام میشه.
تو دنیای واقعی گاهی باید بین این خصوصیات تعادل برقرار کرد. مثلا NoSQLها معمولا از مدل BASE استفاده میکنن که Basically Available, Soft State, Eventually Consistent هستش و سازگاری کمتری داره ولی در عوض مقیاسپذیری (Scalability) بیشتری داره.
PostgreSQL یکی از بهترین پیادهسازیهای ACID رو داره و میتونه همه سطوح Isolation رو ساپورت کنه. MySQL هم ACID رو پشتیبانی میکنه ولی فقط با موتور InnoDB، موتور MyISAM این قابلیت رو نداره.
یه نکته جالب اینه که پیادهسازی ACID روی عملکرد (Performance) دیتابیس تاثیر منفی میذاره. به همین خاطر بعضی سیستمها مثل Redis از تکنیکهای خاصی مثل AOF (Append-Only File) استفاده میکنن تا تعادل بهتری بین کارایی و تضمینهای ACID برقرار کنن.
#نرم_افزار #علوم_کامپیوتر #نوشته
~> @PinkOrca
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥11❤3👍3
Pink Orca | پینک اورکا
~> Z-Library (Z-Lib) 😬 همونطور که میدونید چند وقتیه وبسایت رسمی Z-Lib توسط FBI بسته شده... 💢 اگه نمیدونید Z-Lib چیه، خیلی مختصر بگم که بزرگترین کتابخونهی آزاد و البته غیر قانونی تو دنیاست. ❌ هر دامنهای تحت عنوان Z-Lib که با سرچ بهش میرسید جعلیه و اسکم.…
بازم دامنههای Z-Lib رو مسدود کردن،
آدرس جدیدشون اینه:
https://z-library.sk
بقیه اسکم هستن...
#معرفی #اخبار_تکنولوژی
~> @PinkOrca🩷
آدرس جدیدشون اینه:
https://z-library.sk
بقیه اسکم هستن...
#معرفی #اخبار_تکنولوژی
~> @PinkOrca
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤13⚡3
This media is not supported in your browser
VIEW IN TELEGRAM
~> Ollama
🧠 سادهترین راه استفاده از Ollama و دسترسی آفلاین و آسون به انواع LLMها.
⚡️ https://Ollama.com/ ⚡️
🔗 لیست مدلهای موجود
نصب Ollama:
اجرا:
نصب و استفاده از مدل مورد نظر در کامندلاین:
مثل:
💥 اکستنشن page-assist که یه UI جمع و جور و کاربری برای استفاده از Ollama هستش:
گیتهاب | فایرفاکس | کرومیوم
✨ کافیه طبق ویدیو پیش برید.
نکته ۱:
از مدلهای با پارامترهای خیلی زیاد رو سیستمهایی که high-end نیستن استفاده نکنید.
نکته ۲:
میتونید کلی کار باحال با همین Ollama انجام بدید، مثلا اونطوری که دوست دارید برای خودتون باهاش ابزار توسعه بدید یا ازش به عنوان یه api لوکال استفاده کنید و ...
#هوش_مصنوعی #ترفند #اپن_سورس
~> @PinkOrca🩷
⚡️ https://Ollama.com/ ⚡️
🔗 لیست مدلهای موجود
نصب Ollama:
curl -fsSL https://ollama.com/install.sh | sh
اجرا:
ollama serve
نصب و استفاده از مدل مورد نظر در کامندلاین:
ollama run model.name
مثل:
ollama run qwen2.5:7b
💥 اکستنشن page-assist که یه UI جمع و جور و کاربری برای استفاده از Ollama هستش:
گیتهاب | فایرفاکس | کرومیوم
✨ کافیه طبق ویدیو پیش برید.
نکته ۱:
از مدلهای با پارامترهای خیلی زیاد رو سیستمهایی که high-end نیستن استفاده نکنید.
نکته ۲:
میتونید کلی کار باحال با همین Ollama انجام بدید، مثلا اونطوری که دوست دارید برای خودتون باهاش ابزار توسعه بدید یا ازش به عنوان یه api لوکال استفاده کنید و ...
#هوش_مصنوعی #ترفند #اپن_سورس
~> @PinkOrca
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡5👍4🔥2👎1
~> چالشهای یادگیری Go برای برنامهنویسهای تازهکار 🔥
یکی از مهمترین چالشهایی که برنامهنویسهای جدید موقع یادگیری Go باهاش روبرو میشن، درک مفهوم کانکارنسی هستش. Go با معرفی goroutines و channels سعی میکنه مدل سادهای برای برنامهنویسی همروند ارائه بده، اما درک عمیق این مفاهیم برای افرادی که تازه شروع کردن سخت میشه.
ارور هندلینگ در Go هم چالش دیگهای هستش که برنامهنویسهای جدید باهاش درگیر میشن. برخلاف زبانهایی مثل Java که از try-catch استفاده میکنن، Go از یک پترن سادهتر با استفاده از مقادیر error استفاده میکنه. این روش باعث میشه کد تمیزتر بشه، اما نیاز به چک کردن مکرر خطاها داره که میتونه برای تازهکارها گیجکننده باشه.
درک سیستم تایپهای Go برای برنامهنویسهایی که از زبانهای شیگرا میان میتونه چالشبرانگیز باشه. Go اصلاً یک زبان شیگرا نیست و به جای کلاس و آبجکت، از type برای تعریف structها و interfaceها استفاده میکنه. این structها و interfaceها صرفاً تایپ هستن و برای داک تایپینگ استفاده میشن. یا نداشتن inheritance و استفاده از composition به جای اون... این تفاوت پارادایم برای کسایی که با OOP آشنا هستن میتونه گیجکننده باشه.
پوینترها توی Go یکی دیگه از نقاط چالشبرانگیز هستن. اگرچه Go نسبت به C مدیریت حافظه رو سادهتر کرده، اما هنوز هم درک اینکه کی باید از پوینتر استفاده کرد و کی نباید، برای برنامهنویسهای جدید سخت میشه.
سیستم پکیجهای Go و نحوه مدیریت dependencyها هم میتونه گیجکننده باشه. از Go 1.11 به بعد، سیستم module معرفی شد که اگرچه مشکلات قبلی GOPATH رو حل کرده، اما یادگیری نحوه کار با go.mod و go.sum برای تازهکارها زمانبر هستش.
یکی از ویژگیهای خاص Go که درکش برای برنامهنویسهای جدید سخت میشه، interfaceها هستن. Go از implicit interface implementation استفاده میکنه که با زبانهای دیگه متفاوت هستش و نیاز به تغییر دیدگاه داره.
نکته دیگهای که برای برنامهنویسهای تازهکار چالشبرانگیز میشه، عدم وجود جنریکها تا قبل از Go 1.18 بود. حالا که جنریکها اضافه شدن، یادگیری syntax و best practiceهای مربوط به اونها خودش یه چالش جدید محسوب میشه.
همچنین، Go یه سری قوانین سختگیرانه در مورد code formatting و نامگذاری داره. مثلاً اگه یه متغیر exported تعریف کنی، حتماً باید با حرف بزرگ شروع بشه. کامپایلر Go خودش به صورت اتوماتیک semicolonها رو جایی که نیاز باشه اضافه میکنه - و این یکی از دلایلیه که چرا مثلاً opening brace نمیتونه توی خط جدید باشه. این قوانین اگرچه به خوانایی کد کمک میکنن، اما رعایت کردنشون برای تازهکارها میتونه سخت باشه.
👀 شاید مفید باشه براتون:
• یه فکت جالب در مورد گو.
• یه ارائهی مفید دربارهٔ انواع ساختارها برای برنامههای گو.
• کتابی کاربردی برای آشنایی با سینتکس گو.
#نرم_افزار #برنامه_نویسی #نوشته
~> @PinkOrca🩷
یکی از مهمترین چالشهایی که برنامهنویسهای جدید موقع یادگیری Go باهاش روبرو میشن، درک مفهوم کانکارنسی هستش. Go با معرفی goroutines و channels سعی میکنه مدل سادهای برای برنامهنویسی همروند ارائه بده، اما درک عمیق این مفاهیم برای افرادی که تازه شروع کردن سخت میشه.
ارور هندلینگ در Go هم چالش دیگهای هستش که برنامهنویسهای جدید باهاش درگیر میشن. برخلاف زبانهایی مثل Java که از try-catch استفاده میکنن، Go از یک پترن سادهتر با استفاده از مقادیر error استفاده میکنه. این روش باعث میشه کد تمیزتر بشه، اما نیاز به چک کردن مکرر خطاها داره که میتونه برای تازهکارها گیجکننده باشه.
درک سیستم تایپهای Go برای برنامهنویسهایی که از زبانهای شیگرا میان میتونه چالشبرانگیز باشه. Go اصلاً یک زبان شیگرا نیست و به جای کلاس و آبجکت، از type برای تعریف structها و interfaceها استفاده میکنه. این structها و interfaceها صرفاً تایپ هستن و برای داک تایپینگ استفاده میشن. یا نداشتن inheritance و استفاده از composition به جای اون... این تفاوت پارادایم برای کسایی که با OOP آشنا هستن میتونه گیجکننده باشه.
پوینترها توی Go یکی دیگه از نقاط چالشبرانگیز هستن. اگرچه Go نسبت به C مدیریت حافظه رو سادهتر کرده، اما هنوز هم درک اینکه کی باید از پوینتر استفاده کرد و کی نباید، برای برنامهنویسهای جدید سخت میشه.
سیستم پکیجهای Go و نحوه مدیریت dependencyها هم میتونه گیجکننده باشه. از Go 1.11 به بعد، سیستم module معرفی شد که اگرچه مشکلات قبلی GOPATH رو حل کرده، اما یادگیری نحوه کار با go.mod و go.sum برای تازهکارها زمانبر هستش.
یکی از ویژگیهای خاص Go که درکش برای برنامهنویسهای جدید سخت میشه، interfaceها هستن. Go از implicit interface implementation استفاده میکنه که با زبانهای دیگه متفاوت هستش و نیاز به تغییر دیدگاه داره.
نکته دیگهای که برای برنامهنویسهای تازهکار چالشبرانگیز میشه، عدم وجود جنریکها تا قبل از Go 1.18 بود. حالا که جنریکها اضافه شدن، یادگیری syntax و best practiceهای مربوط به اونها خودش یه چالش جدید محسوب میشه.
همچنین، Go یه سری قوانین سختگیرانه در مورد code formatting و نامگذاری داره. مثلاً اگه یه متغیر exported تعریف کنی، حتماً باید با حرف بزرگ شروع بشه. کامپایلر Go خودش به صورت اتوماتیک semicolonها رو جایی که نیاز باشه اضافه میکنه - و این یکی از دلایلیه که چرا مثلاً opening brace نمیتونه توی خط جدید باشه. این قوانین اگرچه به خوانایی کد کمک میکنن، اما رعایت کردنشون برای تازهکارها میتونه سخت باشه.
👀 شاید مفید باشه براتون:
• یه فکت جالب در مورد گو.
• یه ارائهی مفید دربارهٔ انواع ساختارها برای برنامههای گو.
• کتابی کاربردی برای آشنایی با سینتکس گو.
#نرم_افزار #برنامه_نویسی #نوشته
~> @PinkOrca
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤5
💢 "فقط دو چیز در علوم کامپیوتر سخت است:
cache invalidation و نامگذاری چیزها."
- Phil Karlton
#علوم_کامپیوتر #نقل_قول
~> @PinkOrca🩷
cache invalidation و نامگذاری چیزها."
- Phil Karlton
#علوم_کامپیوتر #نقل_قول
~> @PinkOrca
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥4❤2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
~> iota
تو این ویدیو بهتون نشون میدم که iota چیه و چطور میتونیم از این ویژگی جالب تو گولنگ برای تولید مقادیر متوالی و حل مسائل به شکل بهینهتر استفاده کنیم.
راستی در مورد iota یادم رفت بگم که برای کار با Enumها (چون به شکل built-in وجود ندارن) هم استفاده میشن تو ترکیب با constها...
چیز سادهایه ولی من باهاش آشنا نبودم تا امروز🙄
#برنامه_نویسی
~> @PinkOrca🩷
تو این ویدیو بهتون نشون میدم که iota چیه و چطور میتونیم از این ویژگی جالب تو گولنگ برای تولید مقادیر متوالی و حل مسائل به شکل بهینهتر استفاده کنیم.
راستی در مورد iota یادم رفت بگم که برای کار با Enumها (چون به شکل built-in وجود ندارن) هم استفاده میشن تو ترکیب با constها...
چیز سادهایه ولی من باهاش آشنا نبودم تا امروز
#برنامه_نویسی
~> @PinkOrca
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣19👍4😁4
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15🔥6👍2
This media is not supported in your browser
VIEW IN TELEGRAM
~> آراسته
چند وقت پیشا تعدادی از دوستان تو کامیونیتی یه ابزار معرفی کرده بودن که یهجور figlet فارسیه و خیلی باحاله.
اسمش آراسته هستش و میتونید از [این صفحه] بیشتر باهاش آشنا بشید.
اگه توزیع بر پایه آرچ دارید هم میتونید با AUR پکیج
#معرفی #لینوکس
~> @PinkOrca🩷
چند وقت پیشا تعدادی از دوستان تو کامیونیتی یه ابزار معرفی کرده بودن که یهجور figlet فارسیه و خیلی باحاله.
اسمش آراسته هستش و میتونید از [این صفحه] بیشتر باهاش آشنا بشید.
اگه توزیع بر پایه آرچ دارید هم میتونید با AUR پکیج
araste-git رو به سادگی نصب کنید.#معرفی #لینوکس
~> @PinkOrca
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥4❤2
رباعیات خیام
t.me/PinkOrca
~> رباعیات خیام
❤️ خیام یکی از محبوبترین چهرههای زندگی منه و شاید اگه ایرانی نمیبود هم طرفدارش میشدم.
🔥 امروز مجموعه رباعیات این دانشمند و متفکر ایرانی رو بهتون پیشنهاد میکنم که در ترکیب زیبایی شعری با عمق فلسفی و نگاه انتقادی به هستی، بینظیره.
🔗 منبعی که ازش این فایل صوتی رو دانلود کردم
🔗 رباعیات خیام در گنجور
#متفرقه #پادکست
~> @PinkOrca🩷
❤️ خیام یکی از محبوبترین چهرههای زندگی منه و شاید اگه ایرانی نمیبود هم طرفدارش میشدم.
🔥 امروز مجموعه رباعیات این دانشمند و متفکر ایرانی رو بهتون پیشنهاد میکنم که در ترکیب زیبایی شعری با عمق فلسفی و نگاه انتقادی به هستی، بینظیره.
🔗 منبعی که ازش این فایل صوتی رو دانلود کردم
🔗 رباعیات خیام در گنجور
#متفرقه #پادکست
~> @PinkOrca
Please open Telegram to view this post
VIEW IN TELEGRAM
168❤19🔥3🍾3👍1😍1
This media is not supported in your browser
VIEW IN TELEGRAM
~> xkill
🧟 ابزاری ساده برای از بین بردن Zombie Processها، مثلا وقتی یه برنامه بسته نمیشه، پراسسِ اون رو
🪓 کافیه
روشهای دیگهای هم هست ولی این خیلی راحته...
همونطور که از اسمش مشخصه برای xorg هستش، روی ویلند کار نمیکنه.
#ترفند #لینوکس
~> @PinkOrca🩷
kill میکنید ولی بازم از نظر گرافیکی یه چیزی ازش مونده و از بین نرفته...🪓 کافیه
xorg-xkill رو نصب کنید، xkill رو اجرا و بعد روی پنجره مورد نظر کلیک کنید.روشهای دیگهای هم هست ولی این خیلی راحته...
همونطور که از اسمش مشخصه برای xorg هستش، روی ویلند کار نمیکنه.
#ترفند #لینوکس
~> @PinkOrca
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍9👎6❤2🤣1
Forwarded from Hades bey
ایران همیشه یک کشور تحت حاکمیت تورکیک ها بوده و حتی هست
جانفشانی برای وطن چه ربطی داره به انکار تورک بودن؟
جانفشانی برای وطن چه ربطی داره به انکار تورک بودن؟
🤣19