-
تعداد ارسال ها
844 -
تاریخ عضویت
-
آخرین بازدید
-
روز های برد
1
نوع محتوا
نمایه ها
تالارهای گفتگو
ثبت نام ها
فروشگاه
وبلاگها
تقویم
تمامی مطالب نوشته شده توسط Integer
-
به نام خداوند جان و خرد سلاممممممممممممم خدمت همه ی شما دوستان عزیز با یه تاپیک آموزنده ی دیگه در خدمتتونم میخوایم بررسی کنیم و ببینیم که چرا نباید با یه اکوسیستم مذخرف به نام نود جی اس و فریم ورک هایی که برای ما مرورگر های به ظاهر اپلیکیشن میسازن, نباید اپلیکیشن های دسکتاپ و موبایل توسعه بدیم بی مقدمه میریم سراغ مطلب اصلی 1- الکترون و آیونیک, چرا نباید ازشون استفاده کنیم؟ مورد 1: مرورگر های به ظاهر اپلیکیشن وقتی که شما اپلیکیشن هاتون رو با الکترون و آیونیک (و حتی React Native) میسازید, در اصل دارید مرورگر کروم و کلا کرومیوم رو میچپونید توی اپلیکیشنتون (وب ویو, کرومیوم) در صورتی که فریم ورک ها و زبان های برنامه نویسی Native (C/C++, C#, Ruby, Go, Java, Kotlin, Python, Erlang, Elixir و...) و خب این افتضاهه و غیر قابل قبول, چون فرض کنید: یه اپلیکیشن هلو ورلد اصلا میخواید بسازید یهو خروجی میگیرید میبینید عه 30 مگابایت فقط واسه ی هلو ورلد در صورتی که اگر با زبان ها و فریم ورک های Native که برای اینکار ساخته شدن بسازید, حجمی معادل 10-20 کیلوبایت فقط میگیره! این به خاطر این هستش که شما با الکترون و آیونیک دارید یه کرومیوم رو میکنید توی اپلیکیشنتون, نتیجه: مروگر های قلابی به ظاهر اپلیکیشن مورد 2: مصرف رم و منابع بیش از حد وقتی که شما با الکترون و آیونیک اپلیکیشن بسازید یه ظاهر خیلی خیلی قشنگی شاید داشته باشید (مثلا! قشنگ تر از اون رو با رندر گرافیکی (OpenGL, Dx, Win32) و کرنل های گرافیکی (CUDA, OpenCL, Vulkan) و بک اند گرافیکی (SDL3, SDL2 و...) و با یه فریم ورک تمیز و جمع و جور مثل Dear ImGui و سی پلاس پلاس/سی و کمی خلاقیت خودتون متونید بسازید!) ولی رم و سی پی یو کاربراتون رو فدا میکنید! مثل مایروسافت (که وی اس کد و اینارو با نود جی اس درست کرده, فقط هم برای اینکه بتونه توی وب هم ازش استفاده کنه! خیلی جالبه), نتیجه: مصرف رم فضایی, پایداری پایین تر مورد 3: تجربه ی کاربری قلابی نتیو یو آی (Native UI) دقیقا با ظاهر و رفتار سیستم عامل هماهنگه (Qt, wxWidgets, JavaFX, WinForms, Cocoa) کاربر حس میکنه که واقعا اپلیکیشن جزو سیستم عاملشه, نه یه مروگر قلابی توی آیونیک و الکترون همه چیز وب ویو هستش با کلی لگ, نتیجه: حتی تجربه ی کاربری هم قلابی مورد 4: دسترسی کامل به API های سیستم عامل با زبان های برنامه نویسی نتیو, شما میتونید کامل به سیستم عامل دسترسی داشته باشید: GPU, CPU, RAM (Memory), Hard, Drivers, Network, و... اما با الکترون, آیونیک و حتی ریکت نتیو در بعضی جاها, فقط دسترسی به API های مروگر رو دارید (اونم تازه همشون, نه فقط اونایی که نیاز دارید) نتیجه: ساخت نرم افزار های ضعیف پ.ن: حتی خود کروم هم با زبان های نتیو (سی سی پلاس پلاس گولنگ (تا جایی که یادمه)) ساخته شدن, چون الکترون و آیونیک برای ساخت نرم افزار های سنگین, و با قابلیت های پیشرفته, مناسب نیستن 2- چرا به اینجا رسیدیم؟ دلیل اینکه الان جاوااسکریپت داره برای دسکتاپ هم استفاده میشه جرقه ی اشتباهی بود که توسط جامعه زده شد: جاوااسکریپت (1995): برای ساخت و اسکریپت نویسی انیمیشن های ساده و تعامل با کاربر در مرورگر (در مرورگر!) بود نود جی اس (2009): جاوااسکریپت سمت سرور (و خارج از مروگر) -> جرقه ی اشتباه از همون شروع, چون فلسفه ی اصلی عه جاوااسکریپت رو زیر سوال برد الکترون (2013): گیت هاب اومد وسط و گفتش (خب, حالا ماهم یه خودی نشون بدیم) و الکترون رو ساخت, ه برای ساخت اپلییشن های دستاپ بود خب, حالا مشکل از کجا بود؟ جاوااسکریپت برای ساخت اپلیکیشن های دسکتاپی و موبایلی ساخته نشده بود (چه سبک, چه سنگین) نتیجه چی شد؟ اپلیکیشن های سبک (Slack, Teams و...) الان سنگین تر از فتوشاپ هستن که با سی/سی پلاس پلاس ساخته شده! این یعنی زیاده روی: زبانی که برای اسکریپت نویسی برای انیمیشن های سبک بود, الان داره سرور, دیتابیس و... رو هندل میکنه این اشتباهه مشکل اصلی کیست و چیست؟ مشکل اصلی اینه که متاسفانه جامعه و شرکت های بزرگ دارن حمایت میکنن از گیت هاب بگیر تااااا مایکروسافت و دیسکورد و بقیه چون که براشون منفعت داره جدیدا هم نگاه کرده باشید توی Visual Studio Build Tools بخش (چطوری استفاد کنیم) مایکروسافت آموزش نود جی اس (نصب و استفاده) رو گذاشته! و خب خیلی جالب بود واسم کسی که خودش یه اکوسیستم عظیم به نام .NET ریز دسشته, داره از یه ران تایم کوچیک که تنها نکته ی مثبتش استفاده از libuv (C/C++) هستش برای Event-Driven, Async و... هستش داره حمایت میکنه! خب دیگه چی؟ خب, فقط حالا که به آخر تاپیک رسیدیم بنده یه ران تایم (در اصل اسمش ران تایم هتش چون میتونه با تمام زبان های برنامه نویسی ارتباط برقرار کنه, وگرنه فریم ورک هستش) برای Stremas (Async, Await, Event Loop, Actor, Parallel (چیزی که نود جی اس نداره), Promise & Future (همون چیزی که Async,Await روش ساخته شدن), Poller, Deadlines, WebSocket, HTTP, TLS و...) ساختم به اسم OLSRT توضیحات اظافه تری نمیدم, خودتون میتونید یه نگاهی بهش بندازید: Click on me شب و روز امیدوارم بر شما خوش باشد خدانگدار یک یک شوما ها
-
داشم AI
-
Raksamp (Rakdroid) رو میتونید نصب کنید، ولی خرید VPS از سایت های معتبر (تک وی پی اس و...) عالیه RSM فقط یه مینجره VPS نیست
-
ببینید نشدنی نیستش، به این کار میگن وب اسکرپینگ، با پایتون به شدت ساده میشه انجامش داد، ولی غیر قانونی هستش، و بعضی از سایت ها میان وب اسکرپینگ رو بن میکنن و ممکنه پیگرد قانونی داشته باشه
-
ای وای ببخشید دیگه بود بهت، آموزشای بعدی هم در راهن هنوز ولتون نکردم...
-
HTML و CSS چی هستند؟ چرا برای طراح وب شدن باید اون هارو یاد بگیریم؟
Integer پاسخی برای Integer ارسال کرد در موضوع : برنامه نویسی
CSS = Counter Strike Source CSS = Cascading Style Sheets -
+ بلی
-
چی بگیم والله بعد ۴ سال کمه هنوز
-
ممنونم
-
ممنونم
-
به نام خداوند جان و خرد سلام عرض میکنم خدمت همه ی شما دوستان و هم وطنان عزیز امیدوارم حال یک یکتون خوب باشه امروز میخوایم ادویه جات های برنامه نویسا رو بررسی کنیم میخوایم ببینیم چقد برنامه نویسا از ادویه جات توی غذاشون (کداشون) استفاده میکنن (تمامی مباحث گفته شده مربوط به امنیت و صفحاتی همچون لاگین و رجیستر هستش) 1- نمک (Salt) چیست؟ در برنامه نویسی و امنیت و کلا کسایی که به این موضوع ها علاقه دارن، نمک یکی از ادویه های مفیدی هستش که به اندازه های مختلف و تصادفی (Random) توی غذا میریزن برنامه نویسا نمک یه متن تصادفی هستش که زمانی که کاربر میخوادش پسوردش رو وارد کنه (فقط وقتی که میخواد رجیستر کنه، توی PHP این اتفاق به صورت اتوماتیک میوفته)، و بعد متن هش میشه و در دیتابیس ذخیره میشه، اینکار امنیت رو از چند لحاظ بالا میبره: 1- یک متن رندوم تصادفی برای هر کاربر میسازه، یعنی اگه چندین کاربر پسوردشون ۱ ۲ ۳ ۴ باشه برای هر کدوم هش جداگانه ای ساخته میشه و اگه دیتابیس دسته هکر بیوفته نمیتونه کار زیادی انجام بده و خیلی طولانی میشه انجام کار ها، حداقل ۲۸ کاراکتر و حداکثر ۱۲۸ کاراکتر باید طول نمک باشه 2- فلفل (Pepper) چیست؟ توی برنامه نویسی به جز نمک یک مبحث دیگه ای داریم تحت عنوان "فلفل تند و آتشین"! قشنگ پدره هکر رو در میاره! طبق محاسبات محققان، اگه فلفل اضافه شه به پسورد عه کاربرا حتی با ابر کامپیوتر و ابر سیستم ها میلیارد ها سال نوری طول میکشه تا هکر بتونه پسورد رو به دست بیاره، (حتی اگه نمک رو نزارین)، اما خب این همه توضیح دادیم درست، فلفل تند و آتشین دقیقا چیه؟ فلفل دقیقا برخلاف نمک یک متن تصادفی نیستش، برای همه ی کاربر ها یکی هستش، اما!!! برخلاف نمک و بقیه مباحث، فلفل مستقیما توی دیتابیس ذخیره نمیشه، فلفل هم مانند نمک به پسورد اضافه میشه، هش میشه و سپس توی دیتابیس ذخیره میشه، طول فلفل از ۱۲۸ کاراکتر تا بینهایت کاراکتر هستش، اگه ۱۲۸ کاراکتر باشه میلیارد ها سال نوری عه، ببینید ۵۷۳۸۳۷ کاراکتر یا بیشتر باشه چی میشه... فلفل یک متنی هستش که توی فایل های حیاطی مثل .env ذخیره میشه و هروقت که کاربر بخواهید رجیستر & لاگین کنه اون به متن کاربر اضافه میشه، اما خب آقا اگه اضافه میشه به صورت سیستمی به چه دردی میخوره توی حملات آنلاین (بروت فورس، رینبو تیبل و...)، دقیقا مبحث فلفل برای بخش آفلاین هستش، نه آنلاین، زمانی که هکر دیتابیس رو بدست آورده باشه، فقط یک پسورد هش شده تحویل میگیره، این پسورد هش شده ترکیبی از پسورد کاربر و فلفل و حتی اگه خواستین نمک هستش، (البته نمک برای جلوگیری از رینبو تیبل (Rainbow Table) هستش بالا یه اشتباهی شد )، و حالا هکر بخواد متن هش شده رو با نرم افزار هایی مثل Hashcat, John The Ripper, و... آن هش کنه و متن اصلی رو بدست بیاره، اینجا فلفل خودشو نشون داده، هکر تا زمانی که متن عه اصلی عه فلفل که توی .env ذخیره شده رو نداشته باشه، ببخشینا هیچ نمیتونن نوش جان فرمایند ، ولی اگه داشته باشه، ببخشینا شما دیگه نمیتونی کاری انجام بدین ، واسه همینه که .env مهم ترین فایل عه همه ی پروژه ها هستش! ۱۰۰٪ مطمعنم هیچکدوم هیچی متوجه نشدین، بدیهی هستش، تا کد رو نبینین اینجور مباحث رو متوجه نمیشید، چون یه مبحثی نیستش که بگید آره مثلا دو تا کلمه میخونم تموم میشه میره، باید به صورت عملی ببینید که چی به چیه تا متوجه بشید: حالا دیگه حرف بسه، کدمون رو نشونتون میدیم! <?php // نمک Salt $password = "Password_Test"; // تابع یه password_hash در PHP میاد و به صورت اتوماتیک نمک رو اظافه میکنه اما خب من باز میگم دیگه $salt = openssl_pseudo_random_bytes(50); //یک قاشق نمک (۵۰ بایت نمک) $passwordWithSalt = $salt . $password; // روش های زیادی برای اطافه کردن نمک وجود داره به پسورد /* روش های اصولی: $salt . $password $password . $salt $salt . $password . $salt */ // اگر نمک رو به صورت دستی بنویسید باید به اندازه ی بایت هایی که برای نمک گذاشتید رو از جاهایی که گذاشتید (اول، اخر یا هردو) حذف کنید و بعد اعتبارسنجی کنید ببینید آیا هش شده ی پسورد عه الان عه کاربر با هش شده ی پسورد قبلیش یکیه یا نه، باید از یک الگوریتم استفاده کنید واسه هم اعتبارسنجی هم رجیستر // پیشنهاد میکنم از password_hash و password_verify توی پی اچ پی استفاده کنید که این کا ها رو (به جز فلفل که خودتون باید اظافه کنید رو) انجام میدن هم اعتبارسنجی هم ساخت نمک هم همه ی کار هایی که بالا گفتم رو // فلفل Pepper $password = "PasswordTEST"; $pepper = "PEPPER_TEXT_HELLO_HOWAREYOUHFNDJDBSHEJDUFH"; // مثال هستش، وگرنه یک متن معنا دار (یا هش شده) هستش که از .env خونده میشه $passwordWithSomePepper = $password . $pepper; // این در دیتابیس ذخیره میشه $passwordHash = password_hash($passwordWithSomePepper, "ARGON2ID"); // Authentication $password = "shsh"; // پسوردی که کاربر وارد کرده (در لاگین) $pepper = $pepper; // همون فلفل تندی که توی .env هستش $passwordWithPepper = $password . $pepper; // پسوردی که کاربر توی لاگین وارد کرده + پسوردی که توی دیتابیس هستش if(password_verify($passwordWithPepper, $passwordHash) { echo "هش ها یکسان هستن و کاربر پسوردش درسته"; } else { echo "هش ها یکسان نیستن پس پسورد اشتباهه"; } این تمام ماجرای فلفل و نمک هستش فقط کد هارو زیادی شور یا تند نکنینا شیطونا امیدوارم که خوشتون اومده باشه، تا تاپیک های بعدی شما رو به خداوند بزرگ میسپارم، خدا یار و نگهدارتون باشه!
- 6 پاسخ
-
- 2
-
-
An Open-Source Real-Time Messanger with C++ & Boost:Asio
Integer پاسخی برای Integer ارسال کرد در موضوع : برنامه نویسی
ممنون -
شرکت های بزرگ از چه زبان برنامه نویسی استفاده میکنن؟
Integer پاسخی برای Integer ارسال کرد در موضوع : برنامه نویسی
ممنون -
شرکت های بزرگ از چه زبان برنامه نویسی استفاده میکنن؟
Integer پاسخی برای Integer ارسال کرد در موضوع : برنامه نویسی
خیلی ممنون -
شرکت های بزرگ از چه زبان برنامه نویسی استفاده میکنن؟
Integer پاسخی ارسال کرد برای یک موضوع در برنامه نویسی
بسمالله رحمان رحیم سلاممممممممممممممممممممممممممممممم عرض میکنم خدمت تمامی شما دوستان عزیز امیدوارم حالتون عالی باشه حال دلتون ااز حال خودتون بهتر توی این تاپیک میخوایم بررسی کنیم که شرکت های بزرگ (Microsoft - Google - LinkedIn - GitHub - GitLab - StackOverFlow - Git - CodePen - Dribbble - Telegram - Instagram - Twitter (X) - xAi - Tesla - SpaceX - NASA - Coursera - Qoura) بررسی کنیم که از چه زبان برنامه نویسی ای استفاده میکنن 1- Microsoft Applications: برای ویندوز و محصولات دسکتاپ ترکیب C++ (هستهها و رانتایمها) و C#/.NET (اپها و UI)، و TypeScript/Electron برای برخی ابزارهای کراسپلتفرم (مثل GitHub Desktop که متعلق به Microsoft است). موبایلهای iOS/Android معمولاً Swift/Objective‑C و Kotlin/Java وقتی محصول رسمی موبایل داشته باشه Microsoft ازش استفاده میکنه Front-End: عموماً JavaScript/TypeScript Back-End: ASP.NET/C# و در مواردی Node.js برای سرویسهای سبکتر CLI-Tools: PowerShell، C# (ابزارهای .NET)، و C++ برای ابزارهای قدیمی/سیستمی 2- Google Applications: Android با Java/Kotlin, iOS با Swift/Objective‑C, دسکتاپ معمولاً بومی با C++ یا کراسپلتفرم بسته به محصول, Flutter/Dart برای برخی محصولات کراسپلتفرم Front-End: عموماً JavaScript/TypeScript Back-End: ترکیبی از C/C++, Go, Java, Python, و در جاهایی Node.js, با ذخیرهسازیهای داخلی مثل Bigtable و MariaDB در برخی سرویسها CLI-Tools: ابزارهای داخلی و متنباز زیاد با Go و Python ساخته شدهاند (اکوسیستم Kubernetes/Docker هم گو-محور است, متن غالب) 3- LinkedIn Applications: موبایلها Swift/Objective‑C و Kotlin/Java؛,دسکتاپ اپهای محدود و بیشتر وب محور Front-End: عموماً JavaScript Back-End: Java و Scala ستون فقراتاند, زیرساختهای داده و سرویسهای درونسازمانی با JVM غالباند CLI-Tools: وجود ندارد 4- GitHub Applications: GitHub Desktop با Electron (JavaScript/TypeScript), برخی اجزای سیستمی با C++/Go Front-End: عموماً JavaScript/TypeScript Back-End: اصلی Ruby on Rails، با سرویسهای مکمل به Go و Python در بعضی دامنهها CLI-Tools: ابزار رسمی gh با Go نوشته شده است 5- GitLab Applications: وب محور Front-End: JavaScript (Vue.js) Back-End: Ruby on Rails؛ کامپوننتهای پرفورمنس مثل Gitaly با Go؛ زیرساختها بعضاً Go و Shell CLI-Tools: ابزارهای اکوسیستم و جامعه (مانند glab) با Go متداولاند 6- StackOverFlow Applications: وب محور Front-End: عموماً JavaScript Back-End: C#/ASP.NET با SQL Server, کل اکوسیستم بر پایهی .NET ساخته شده است CLI-Tools: وب محور 7- Dribbble Applications: وب محور Front-End: عموماً JavaScript Back-End: عمدتاً Ruby on Rails, سرویسهای جانبی ممکن است زبانهای دیگری داشته باشند CLI-Tools: وب محور 8- CodePen Applications: وب محور Front-End: JavaScript Back-End: Ruby on Rails؛ سرویس وبمحور CLI-Tools: وب محور 9- Telegram Applications: Android با Java/Kotlin, iOS با Swift/Objective‑C, Desktop با C++/Qt (Telegram Desktop) سرورها/پروتکل: تمرکز سنگین روی C++ (MTProto و سرورهای پرفورمنس بالا), برخی سرویسها با Go/Python در ابزارهای جانبی Front-End: عموماً JavaScript Back-End: سرویسهای اصلی به C++, و در لایههای سادهتر PHP/Node در برخی محصولات عمومی CLI-Tools: وجود ندارد 10- Instagram Applications: iOS با Swift/Objective‑C, Android با Kotlin/Java, در جاهایی React Native برای فیچرهای کراستیم Front-End: عموماً JavaScript/React Back-End: غالباً Python (Django) با کامپوننتهای C++ برای پرفورمنس, زیرساختهای ذخیرهسازی و کشسازی سفارشی, متا از اکوسیستم گستردهای بهره میگیرد CLI-Tools: وجود ندارد 11- Twitter Applications: iOS با Swift/Objective‑C, Android با Kotlin/Java Front-End: عموماً JavaScript Back-End: تاریخی Ruby on Rails, سپس سرویسهای هسته به Scala و Java مهاجرت داده شدند, امروزه ترکیبی از Scala/Java/C++ با لایههای داده و کش گسترده CLI-Tools: وجود ندارد 12- xAI Applications: تمرکز محصول روی سرویسهای هوش مصنوعی, Python برای ML/LLM, C++ برای بخشهای پرفورمنس, موبایلها اگر اپ عمومی عرضه شود, Swift/Kotlin استاندارد هستند Front-End: عموماً JavaScript Back-End: Python با شتابدهی C++/CUDA برای مدلها CLI-Tools: وجود ندارد 13- Tesla Applications: اپهای موبایل رسمی با Swift و Kotlin/Java, داخل خودروها و فریمور با C/C++, ابزارهای داده/اتوماسیون با Python Front-End: عموماً JavaScript Back-End: ترکیبی از Python/Java/C++ بسته به دامنه (سفارشات، ناوبری، تلهمتری) CLI-Tools: وجود ندارد 14- SpaceX Applications: نرمافزارهای پرواز و کنترل C/C++, ابزارهای مهندسی و داده Python, موبایلها محدود و داخلی Front-End: عموماً JavaScript Back-End: Python/C++ برای سرویسهای داخلی مهندسی. CLI-Tools: وجود ندارد 15- NASA Applications: مأموریتها و سیستمهای نهفته با C/C++ و Ada در برخی پروژهها, ابزارهای علمی و داده با Python و Java Front-End: عموماً JavaScript Back-End: Python/Java برای انتشار دادهها و APIها, پروژههای قدیمیتر با زبانهای متنوع CLI-Tools: وجود ندارد من(ا)بع: Microsoft Copilot خیلی ممنونم دوستان که تا اینجا با من بودید امیدوارم که لذت برده باشید دوستان تا تاپیک های بعدی شما رو به خدای مهرابن و بزرگ میسپارم الله یارتون باشه! -
An Open-Source Real-Time Messanger with C++ & Boost:Asio
Integer پاسخی برای Integer ارسال کرد در موضوع : برنامه نویسی
بله، حتما به فکر موارد بیشتری هم هستم براش، مثل همین مبحث UI، و ویس چت -
سخت ترین چیزی که میتونی توی آرساکیا به دست بیاری چیه؟
Integer پاسخی برای AliExpert ارسال کرد در موضوع : گفتگوی آزاد
من دهن باز کنم نصف سرور به فناست پس مخصوصا هلپر ها اوه اوه -
An Open-Source Real-Time Messanger with C++ & Boost:Asio
Integer پاسخی برای Integer ارسال کرد در موضوع : برنامه نویسی
عشقید
