کافه برنامه نویسان | 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗲𝗿s 𝗖𝗮𝗳𝗲 – Telegram
کافه برنامه نویسان | 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗲𝗿s 𝗖𝗮𝗳𝗲
2.75K subscribers
1.08K photos
264 videos
30 files
1.13K links
👈 اینجا جایی است که یاد می‌گیریم و ایده‌هایمان را به واقعیت تبدیل می‌کنیم و در نهایت با هم رشد می‌کنیم

💬 Group : @IRdeveloperchat
تبادل / تبلیغات : @ProgramersCafeSup 🫴


♂️ مالک : @Ali_Rohany ♂️
Download Telegram
📱 اگر دوره آموزشی رایگان فلاتر به صورت انلاین برگذار شود، در این دوره شرکت میکنم و ترجیح میدهم در پلتفرم .......... برگذار شود. « پلتفرم هایی که با پرچم ایران 🇮🇷 مشخص شده اند داخلی هستند و مصرف اینترنت نیم بها دارند »
Anonymous Poll
46%
Google Meet
30%
Skyroom (🇮🇷)
3%
Dana Plus (🇮🇷)
9%
Adobe Connect
3%
Skype
9%
Others ( کامنت )
🔥9
کافه برنامه نویسان | 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗲𝗿s 𝗖𝗮𝗳𝗲 pinned «📱 اگر دوره آموزشی رایگان فلاتر به صورت انلاین برگذار شود، در این دوره شرکت میکنم و ترجیح میدهم در پلتفرم .......... برگذار شود. « پلتفرم هایی که با پرچم ایران 🇮🇷 مشخص شده اند داخلی هستند و مصرف اینترنت نیم بها دارند »»
👾 چطور رایانه ها مک آدرس ما را می دانند؟
💥به طور معمول رایانه ها از مک آدرس گیرنده با خبر نیستند و طی یک پیام همگانی از تمام رایانه های داخل شبکه می پرسند که چه کسی فلان مک آدرس را دارد؟ به من بگوید

نام این نوع پکت ها ARP است
کلمه ARP مخفف عبارت Address Resolution Protocol است و وظیفه یافتن مک آدرس و آیپی مقصد را به عهده دارد.

آرپ بعد از پیدا کردن مک آدرس مقصد آن را در یک فضا مانند کش ذخیره می کند تا در آینده نیاز به دریافت مجدد آنها نداشته باشد برای مشاهده این فضای کش از دستور زیر استفاده کنید:

arp -a

این دستور خروجی مانند زیر به شما خواهد داد:

? (10.0.0.1) at 90:e2:fc:02:03:90 [ether] on wlan0

همانطور که مشخص است این پیام به ما می گوید 10.0.0.1 مک آدرس 90:e2:fc:02:03:90 را دارد و از طریق اینترفیس wlan0 قابل دسترسی است.

همانطور که می بینید این یک آیپی ورژن ۴ است. آیپی ها دو دسته ورژن ۴ و ورژن ۶ هستند که ورژن ۶ چندان محبوب نیست.

✳️ IPv4 : 10.0.0.1
✳️ IPv6 : 2001:db8:3333:4444:CCCC:DDDD:EEEE:FFFF


⚡️ تصویر بالا نمونه ای اژ پکت ارپ است که توسط وایرشارک کپچر شده.

#Network

channel ° @Cafe_Of_Code
👨‍💻62
شی گرایی در جاوا اسکریپت به چه معنا است؟

«برنامه نویسی شی‌گرا» (Object Oriented Programming Principles) نوعی الگو و شیوه تفکر است و به صورت کلی به معنای پرداختن به کدنویسی از جزء به کل است .

🙃 این یعنی برنامه ابتدا با استفاده از واحدهای کوچک ایجاد می‌شود و سپس این واحدهای کوچک با یکدیگر پیوند می‌خورند و برنامه اصلی و بزرگ‌تر را تشکیل می‌دهند. در برنامه نویسی شی گرا دو مفهوم اساسی «کلاس» (Class) و «شی» (Object) مدنظر هستند.

شی‌گرایی در جاوا اسکریپت و در سایر زبان‌های برنامه نویسی موجب ساده‌تر شدن فرآیند کدنویسی می‌شود .
مفاهیم شی گرایی به دنیای واقع نزدیک است


#programming #JavaScript

Channel • @Cafe_Of_Code

Group • @IRdeveloperchat
🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
#This_is_javanoscript
🗿😁

🔆 اولویت اجرا شدن کد ها تو js در پشت صحنه و callstack اینجوریه که:

اول کد های اسکوپ گلوبال اجرا میشن.

بعد microtask queue که به عنوان مثال promise ها و داده هایی که fetch میشن در اون قرار میگیرن.

و در نهایت callback queue که میشه به setTimeout اشاره کرد.

#javanoscript #frontend

Channel ° @Cafe_Of_Code

Group ° @IRdeveloperchat
8
👾 دریافت آدرس آیپی اینترفیس در لینوکس:

برای دریافت آدرس آیپی اینترفیس در لینوکس، میتوان از دو دستور ifconfig و ip استفاده کرد. برای اینکار لازم است تا شما به یک شبکه متصل باشید و پس از آن دستور زیر را در محیط ترمینال لینوکس خود وارد کنید:

✳️ ifconfig
✳️ ip a s


بین دو دستور بالا تفاوت زیادی وجود ندارد اما در اکثر موارد دستور ifconfig نیاز به نصب به صورت دستی دارد و دستور ip به طور معمول در دیوایس های لینوکسی نصب است.

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

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

✳️ ifconfig wlan0
✳️ ip a s wlan0


در دو دستور بالا ما از اینترفیس وایرلس استفاده کردیم که نام آن در اغلب توزیع ها wlan0 می باشد و نام اینترفیس متصل به کابل هم معمولا enp3s0 یا eth0 است.

در زیر نمونه خروجی را از دو دستور بالا می بینیم.

در خروجی های پایین آیپی بعد از کلمه inet نمایش داده شده است.

#Network

@Cafe_Of_Code
👨‍💻9
اگه دارید برنامه نویسی فرانت اند میخونید حتما این دوتا مقاله رو راجب به امنیت سمت کلاینت بخونید که همینجوری پناه بر خدایی نتایج api رو وسط کد نزارید👇

https://systemweakness.com/securing-the-frontend-a-practical-guide-for-developers-fd3b52029b6e

https://medium.com/readytowork-org/frontend-security-best-practices-safeguarding-our-web-applications-5449de2800e1

#javanoscript #frontend #security

Channel ° @Cafe_Of_Code

Group ° @IRdeveloperchat
8
🔥Css Transform Scale 🔥

⚡️در CSS، Transform این امکان را فراهم می‌کند که عناصر HTML را تغییر اندازه دهیم. برای این کار می‌توان از پراپرتی transform: scale() استفاده کرد. این پراپرتی اندازه اولیه عنصر را تغییر داده و آن را بزرگتر یا کوچکتر می‌کند.

استفاده از scale():
- برای تغییر همه ابعاد از scale() استفاده می‌شود. برای مثال transform: scale(2); عرض، ارتفاع و عمق عنصر را دو برابر می‌کند.
- برای تغییر اندازه در جهت افقی یا عمودی می‌توان از scaleX() و scaleY() استفاده کرد. به عنوان مثال transform: scaleX(2); اندازه عرض عنصر را دو برابر می‌کند و transform: scaleY(0.5); ارتفاع عنصر را به نصف کاهش می‌دهد.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<noscript>Scale Example</noscript>
<style>
.scaled {
width: 100px;
height: 100px;
background-color: lightblue;
transform-origin: 50% 50%;
}

.scaled:hover {
transform: scale(1.5); /* تغییر همه ابعاد */
}

.scale-x {
transform: scaleX(2); /* افزایش عرض دو برابر */
}

.scale-y {
transform: scaleY(0.5); /* کاهش ارتفاع به نصف */
}

</style>
</head>
<body>

<div class="scaled">Hover to scale</div>
<div class="scaled scale-x">ScaleX</div>
<div class="scaled scale-y">ScaleY</div>

</body>
</html>

در این مثال، با هاور کردن روی عنصر اول (.scaled)، اندازه آن با ضریب 1.5 افزایش می‌یابد. عناصر دوم و سوم نیز با استفاده از کلاس‌های scale-x و scale-y به ترتیب عرض و ارتفاع را تغییر می‌دهند.
#css #transform #scale

#Ah_sear

Channel° @Cafe_Of_Code
Group° @Irdeveloperchat
8
👾 کنترل تگ های HTML با جاوا اسکریپت:

برای ساخت صفحات پویا یا Dynamic باید از زبان های فرانت اند مانند جاوا اسکریپت استفاده کنید. صفحات پویا صفحاتی هستند که محتوای آن ها با انتخاب های کاربر نغییر می کند.

به عنوان مثال ما می خواهیم صفحه ای بسازیم که به کاربر سلام کند؛‌ برای این کار باید یک ورودی نام برای کاربر بسازیم.

<input type="text" placeholder="Name" name="text" class="input" , id="userName">

در اینجا ما یک ورودی با آیدی userName ساختیم که کاربر نام خود را وارد می کند.

سپس باید مقدار دریافت شده را با Hello جمع کنیم و در یک تگ دیگر نمایش دهیم.
برای اینکار ابتدا یک تگ نتیجه (‌ Result ) میسازیم و به آن آیدی lblResult را اختصاص می دهیم.
<h2 id="lblResult"></h2>

تقریبا همه چیز آماده است اکنون یک تابع برای ساخت پیام سلام می سازیم و مقدار ها را در آن دریافت می کنیم:
 function sayHello()

{
var result = document.getElementById("lblResult");
var userName = document.getElementById("userName").value;
return "Hello" + userName + ", Welcome.";
}

حالا باید دکمه نمایش نتیجه را بسازیم و به آن یک رویداد (‌ Event ) اختصاص بدهیم تا هنگامی که کاربر کلیک کرد نتیجه در تگ lblResult نمایش داده شود.

 <button type="button" onclick="sayHello()">Say Hello</button>

اکنون این صفحه آماده است. کاربر پس از وارد کردن نام خود شاهد پیام زیر خواهد بود:

Hello name , Welcome.

برای دریافت سورس به قسمت کامنت های پست سر بزنید.

#JavaScript

Channel • @Cafe_Of_Code

Group • @IRdeveloperchat
🔥7
🔴امروز 1 July ، روز جهانی جوک گفتن .

+شمام تو کامنتا جوک بگید
5😍2💔1
💠هاب چیست؟

- هاب به وسیله ای در شبکه گفته می شود که برای متصل کردن چند گره ( Node ) یا رایانه به هم استفاده می شود.

- هاب ها دیگر در شبکه های امروزی استفاده نمی شوند چرا که معایب زیادی از نظر امنیتی و از نظر پرفورمنس داشتند.

🔰هاب ها هنگامی که یک پکت به آنها می رسد، آن پکت را به تمام رایانه های متصل به خود ارسال می کند و رایانه مقصد آن پکت را دریافت می کند و سایر دستگاه ها آن را Drop می کنند.

● این موضوع مشکلات زیادی را به وجود می آورد. مثلا اگر پکت را کامپیوتر A برای کامپیوتر D ارسال کند، این پکت را کامپیوتر های B و C نیز می بینند که این موضوع از نظر امنیتی بسیار بد است همچنین ترافیک بسیار زیادی هم ایجاد می کند.

● این موضوع می تواند تصادف پکت ها را هم ایجاد کند، فرض کنید کامپیوتر A و B هم زمان یک پکت را ارسال کنند، این موضوع باعث می شود تا بین پکت ها Collision ایجاد شود و از بین بروند.

🔺️نکته: سرعت هاب ها بین ۱۰ مگابیت تا ۱۰۰ مگابیت خواهد بود و این مقدار به ندرت به بالاترین حد خود می رسد.


پست های مرتبط روز های آینده

#Network


Channel • @Cafe_Of_Code

Group • @IRdeveloperchat
5👨‍💻3
امروز ۱۳ تیرماه ، روز ملی دماونده.❤️‍🔥
🔥72
👾 سوییچ ها و مقایسه آن ها با هاب :

همانطور که قبل تر اشاره شد هاب ها مشکلات بسیار زیادی داشتند و مدت کوتاهی در بین شبکه ها حضور داشتند.
اما کمی بعد سوییچ ها با قابلیت های بیشتر ، سرعت بیشتر ، و ایرادات بسیار کمتر وارد بازار شدند.
سوییچ ها تمامی مشکلات هاب ها را رفع کرده اند و هم اکنون سهم بزرگی را در شبکه دارند.

سوییچ ها بر خلاف هاب دیگر تمام پکت هارا به همه نود های شبکه ارسال نمی کنند و فقط پکت را از مبدا می گیرند و به مقصد تحویل می دهند،‌ شاید برای شما سوال باشد که چگونه می دانند مقصد کجاست؟
سوییچ ها مک آدرس های متصل به پورت های مختلف خود را به خاطر می سپارند تا در آینده برای جا به جایی پکت از آن ها استفاده کنند، در سوییچ ها جدولی در حافظه ای مختصر ذخیره شده که این مک آدرس هارا نگه داری میکند.

این جدول شماره پورت و مک آدرس متصل به آن را ذخیره دارد ،
به این مثال توجه کنید:

            MAC                  |                 Port Number
10:bf:48:82:c9:4e | 1
7c:dd:90:57:9d:dc | 2

اما شاید پکتی ارسال شود که سوییچ نداند مقصد کجاست، آن موقع تکلیف چیست؟
در این موارد سوییچ پکت را بین تمام نود های شبکه پخش می کند ( Broadcast ).

💥مثلا به پکت زیر نگاه کنید :

Source Address (MAC) => 10:bf:48:82:c9:4e 
Destination Address (MAC) => 7c:dd:90:57:9d:dc

سوییچ این پکت را دریافت می کند و به این شکل ارسال می کند:

Source Address (MAC) => 10:bf:48:82:c9:4e 
Destination Address (MAC) => FF:FF:FF:FF:FF:FF

البته راه هایی برای شنود اینگونه شبکه ها وجود دارد، مثلا هکر خود را به جای DHCP جا می زند یا آنقدر درخواست با MAC ادرس های مختلف می فرستد تا جدول پر شود، در این هنگام سوییچ مانند هاب عمل می کند و پکت را به همه می فرستد.

👨‍💻 مزایا Switch نسبت به Hub :

سرعت بالا تر ( تا ۱۰ گیگابیت بر ثانیه )

ترافیک کمتر نسبت به هاب

کالیژن (‌ Collision ) کمتر

#Network

Channel • @Cafe_Of_Code

Group • @IRdeveloperchat
4👨‍💻3
🔥Css Transform Skew 🔥

⚡️قابلیت skew, skewX و skewY در CSS Transform امکان انحراف یک عنصر را در محور X یا Y فراهم می‌کند. این خاصیت‌ها به شما امکان می‌دهند تا یک عنصر را به صورت ناسازگار به سمت راست یا چپ (skewX یا skewY) یا به صورت مورب (skew) دور بزنید.

استفاده از این خاصیت‌ها به صورت زیر است:

استفاده از skew :
.element {
transform: skew(30deg, 20deg);
}

در این مثال ،
عنصر .element با ۳۰ درجه به سمت راست و با ۲۰ درجه به سمت پایین مورب می‌شود.

استفاده از skewX :
.element {
transform: skewX(30deg);
}

در این مثال، عنصر ، element ۳۰ درجه به سمت راست مورب می‌شود.

و استفاده از skewY:
.element {
transform: skewY(20deg);
}

در این مثال، عنصر ، element ۲۰ درجه به سمت پایین مورب می‌شود.

#css #transform #skew

#Ah_sear

Channel ° @Cafe_Of_Code
Group ° @Irdeveloperchat
9
This media is not supported in your browser
VIEW IN TELEGRAM
AJAX Call:

هنگامی که ما از XMLHttpRequest به جای Promise ها در تسک های asynchronous استفاده می کنیم، یک سری توابع بازگشتی ایجاد می کند که به آن callback hell می گویند.

این نه تنها خواندن کد را سخت‌تر می‌کند و قابلیت نگهداری کمتری دارد، بلکه هندل کردن خطاها را برای ما سخت‌تر می‌کند🛠️

#javanoscript #frontend

Channel ° @Cafe_Of_Code

Group ° @IRdeveloperchat
5🔥2
👾 سابنت یا زیر شبکه چیست؟

رایانه ها برای ارسال پکت به یکدیگر نیاز دارند تا دقیقا در یک شبکه باشند ،
اما سوال این است چگونه مشخص می شود در یک شبکه اند؟

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

💥 سابنت ها ساختاری شبیه به این دارند :

⚡️ 255.255.255.0

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

سابنت ها در ساختار باینری بهتر قابل درک خواهند بود؛ اما این مورد با متن قابل توضیح نیست. به زودی یک ویدیو جهت توضیح مبحث سابنت ها خواهم ساخت.

این توضیحات برای تئوری می تواند کافی باشد. به زودی به صورت عملی با آن آشنا خواهیم شد.

#Network

Channel • @Cafe_Of_Code

Group • @IRdeveloperchat
5
پیشتر به کدام زبان برنامه نویسی یا نشانه گذاری فعالیت کنیم
Anonymous Poll
18%
Html Css
34%
JavaScript
8%
Php
35%
Python
4%
Other تو کامنت ها بگید
6