i ++ – Telegram
80 subscribers
55 photos
15 videos
17 files
61 links
Yourself ++
Download Telegram
#network
#switch
#router
#cisco


یه لینک خفن برا کامند‌های سوییچ‌های سیسکو
البته داکیومنت خود سیسکو عه:))
بسی زیبا و لذت‌بخش:))
👍1
#ParallelProcessing
#University
#Cource

نوید ++ های امروز سر درس پردازش موازی:

MPP : Massively Parallel Processor
is a processing paradigm where hundreds or thousands of processing nodes work on parts of a computational task in parallel. Each of these nodes run individual instances of an operating system...Link


Remote Direct Memory Access:
is a technology that enables two networked computers to exchange data in main memory without relying on the processor, cache or operating system of either computer. Link
so interesting ..:)

MPI : Message Passing Interface
MPL: Message Passing Comunication
SSI: Single System Image
#فیلم
#سینمایی
#خارجی
#mad_max

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

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

اگر فیلمو دیده باشین شاید بگین این چرت و پرتا چیه میگم:) ولی هری باید برداشت خودشو بکنه دیگه و بارشو ببینده:) حتی اگه نویسنده اصلا منظورش چنین چیزی نبوده:)
🤔1
#windows
#joke
#fun
:)

windows, am i joke to you? :))
یه دفعه ترکید ماژول وایفای ویندوز 11 و نیست دیگه:))
#filesystem_encryption
#general

Filesystem-level encryption, often called file-based encryption, FBE, or file/folder encryption, is a form of disk encryption where individual files or directories are encrypted by the file system itself. link

#linux
LUKS implements a platform-independent standard on-disk format for use in various tools. This facilitates compatibility and interoperability among different programs and operating systems, and assures that they all implement password management in a secure and documented manner. Link

#windows
The Encrypting File System (EFS) on Microsoft Windows is a feature introduced in version 3.0 of NTFS[1] that provides filesystem-level encryption. The technology enables files to be transparently encrypted to protect confidential data from attackers with physical access to the computer. Link
#watsonx
#IBM

یکی از محصول‌های IBM که عملا داره ai as service میده:)))
Watsonx is IBM's commercial generative AI and scientific data platform based on cloud. It offers a studio, data store, and governance toolkit. It supports multiple large language models (LLMs) including IBM Granite

The platform is described as an AI tool tailed to companies and a one which can be customized for customers' needs and trained on their confidential data, as client data is said to be not collected by IBM for further training of their models. It is also capable of fine-tuning, an approach which makes training pre-trained models on the newly introduced data possible. Link
#منبع
#hpc
#link
#source
یه چیز ناب برا hpc و مخلفاتش
https://en.algorithmica.org/hpc/
#proxmox
امروز پروکماکس رو با موفقیت نصب و راه اندازی کردیم برا درس cloud computing که ماشین بدیم به بچه ها ایشالله:)))
چالش های جالبی داشت در کل که یه سامری بگم اینجا از هرکدوم:
اول اینکه کلا ایپی درست حسابی نداشتیم. جالبیش این بود ایپی ای که گرفته بود لینوکس پروکسماکس (وقتی پروکماکس رو نصب میکنیم باهاش یه لینوکس هم نصب میکنه چون همونطور که میدونین پروکماکس یه hypervisor نوع ۱ هست و عملا همون سیستم عامل رو هایپروایزر میکنه) روی اینترفیس مربوط به خود Lan نبود و مربوط به شبکه vm ش بود. اونو دادیم از dhcp بگیره
بعد برا اضافه کردن یه هارد دیسک ۱ ترابایتی هم اول اونو با پارتیشنینگ LVM ایجاد کردیم و دادیم بهش
بعدم vm ساختیم و کلون گرفتیم و الی آخر...:))

این کورس هم باید ببینم و دیدم یکم:))
لینک
یه ابزار برای DT و مانیتورنیگ و ...
لینک
این تولز اصن یه وعضیه:)
لینک2

داره جالب میشه:))
#string_interning
#dotnet
#C#


Interned strings have the following characteristics:

Two interned strings that are identical will have the same address in memory.
Memory occupied by interned strings is not freed until your application terminates.
Interning a string involves calculating a hash and looking it up in a dictionary which consumes CPU cycles.
If multiple threads intern strings at the same time they will block each other because accesses to the dictionary of interned strings are serialized.
The consequences of these characteristics are:

You can test two interned strings for equality by just comparing the address pointer which is a lot faster than comparing each character in the string. This is especially true if the strings are very long and start with the same characters. You can compare interned strings with the Object.ReferenceEquals method, but it is safer to use the string == operator because it checks to see if the strings are interned first.

If you use the same string many times in your application, your application will only store one copy of the string in memory reducing the memory required to run your application.

If you intern many different strings this will allocate memory for those strings that will never be freed, and your application will consume ever increasing amounts of memory.

If you have a very large number of interned strings, string interning can become slow, and threads will block each other when accessing the interned string dictionary.

You should use string interning only if:

The set of strings you are interning is fairly small.
You compare these strings many times for each time that you intern them.
You really care about minute performance optimizations.
You don't have many threads aggressively interning strings.
#NAT
#network

NAT Table
#web
#server_side
#client_side

In summary, client-side routing is a technique for handling web application navigation and page rendering in the browser using JavaScript frameworks, while server-side routing is a technique for handling navigation and rendering on the server using server-side technologies.

Client-side and server-side routing are two different approaches to handling web application navigation and page rendering:

Client-side routing is a technique where the browser renders the pages and handles navigation without requiring a full page refresh. This is achieved using JavaScript frameworks like React, Angular, or Vue.js. In client-side routing, the browser makes AJAX requests to the server to fetch data, and then the JavaScript framework dynamically updates the content on the page. This approach provides a seamless user experience, as it avoids the delay and flicker associated with full page reloads.

Server-side routing, on the other hand, is a technique where the server is responsible for rendering the pages and handling navigation. This is achieved using server-side technologies like PHP, Ruby on Rails, or Django. In server-side routing, the server generates HTML pages and sends them to the browser for rendering. This approach is more suitable for applications that require strong SEO (Search Engine Optimization) or that need to support older browsers that may not have full support for client-side JavaScript.
#iis
#web


This is a configuration file for Microsoft Internet Information Services (IIS) that sets up URL rewriting rules for a web application built with React.
The <rewrite> section of the configuration file is used to define URL rewriting rules that modify incoming requests to the web server.

The <rules> section contains a single rule with the name "React Routes". This rule matches all incoming requests (<match url=".*" />) and has three conditions:

<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />: This condition checks if the requested file is not a physical file on the server.

<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />: This condition checks if the requested file is not a directory on the server.

<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />: This condition checks if the requested URL does not start with "/api", which is used for API requests.

If all three conditions are met, the request is rewritten to the root URL (<action type="Rewrite" url="/" />). This is useful for React applications that use client-side routing, where all requests are initially directed to the root URL and the React app handles routing based on the URL path.

<?xml version="1.0"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="React Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
#clean_code
#dependency_inversion
#SOLID

The Dependency Inversion Principle (DIP)
The Dependency Inversion Principle (DIP) states that a high-level class must not depend upon a lower-level class. They must both depend upon abstractions. And secondly, an abstraction must not depend upon details, but the details must depend upon abstractions.

// Not following the Dependency Inversion Principle
public class SalaryCalculator
{
public float CalculateSalary(int hoursWorked, float hourlyRate) => hoursWorked * hourlyRate;
}
public class EmployeeDetails
{
public int HoursWorked { get; set; }
public int HourlyRate { get; set; }
public float GetSalary()
{
var salaryCalculator = new SalaryCalculator();
return salaryCalculator.CalculateSalary(HoursWorked, HourlyRate);
}
}


These classes do not follow the “Dependency Inversion Principle” as the higher-level class EmployeeDetails is directly dependent upon the lower-level SalaryCalculator class.
We can fix this issue as below.

// Following the Dependency Inversion Principle
public interface ISalaryCalculator
{
float CalculateSalary(int hoursWorked, float hourlyRate);
}
public class SalaryCalculatorModified : ISalaryCalculator
{
public float CalculateSalary(int hoursWorked, float hourlyRate) => hoursWorked * hourlyRate;
}
public class EmployeeDetailsModified
{
private readonly ISalaryCalculator _salaryCalculator;

public int HoursWorked { get; set; }
public int HourlyRate { get; set; }
public EmployeeDetailsModified(ISalaryCalculator salaryCalculator)
{
_salaryCalculator = salaryCalculator;
}
public float GetSalary()
{
return _salaryCalculator.CalculateSalary(HoursWorked, HourlyRate);
}
}


Benefits of Dependency Inversion Principle in C#:

1. Flexibility: With abstractions in place, swapping implementations becomes seamless, enabling the integration of new modules without affecting existing code.

2. Modularity: Code is divided into smaller, manageable modules, making it easier to understand, maintain, and extend.

3. Testability: Abstractions facilitate easy mocking and unit testing, allowing developers to write robust test suites for their applications.

4. Reduced Coupling: Dependencies between modules are minimized, reducing the overall coupling and enhancing code stability.

Dependency Injection Techniques in C#

1. Constructor Injection: Injecting dependencies through the constructor of a class.
2. Property Injection: Injecting dependencies through public properties of a class.
3. Method Injection: Injecting dependencies as parameters of a method.
#معرفی_فیلم
#maze_runner

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

از دید خیلی بالا بخوام بگم توی قسمت ۱ ش مشخص نشد اصلا هدف کل این همه بلا (که خودشون اسمش رو گذاشته بودن آزمایش:) ) یک سری انسان ها بر روی تعداد دیگه چیه و احتمالا باید توی قسمت‌های بعدیش مشخص بشه. اینو که ایگنور کنیم، میرسیم به چند عنصر که باعث نجات ملت اسیر شده شد.
اولیش قانون شکنی! فیلم کلا قانون رو یک سری چارچوب‌هایی دونسته که مردم بین خودشون برای انجامش به توافق میرسن و بعد از توافقش، دیگه حق ندارن ازش تخطی کنن و بشکننش وگرنه با مجازات روبرو میشن حتی اگر راه نجاتشون در رد کردن اون قانون‌ها باشه. در نهایت هم توی فیلم با شکستن همه قانون‌هایی که بینشون بود، تونستن از مخمصه نجات پیدا کنن. فکر میکنم تا مقدار زیادی درست باشه اگر قانون رو مثلا عرف امروز در نظر بگیریم،‌ لزومی نداره همه کارایی که میکنیم طبق عرف (حتی قانون) باشه.
دومیش رفاقته! این دوستان غربی هرچقدر هم که تونسته باشن مفاهیمی که برای ما پاکه رو به گند بکشن، این یکی رو فکر میکنم هنوز نتونسته و نمیتونن:) دوستی و رفاقت و ارزش‌هاش. یا حداقل توی فیلماشون که براش خیلی ارزش قائل میشن بر خلاف چیزای دیگه.
سومیش هم که تیپیکال این نوع فیلم‌ها هست، جنگیدن برای زنده موندن. این مفهوم شدیدا زیاده توی فیلما. درسته جذابیت فیلم رو میبره بالا ولی چه تاثیری میتونه توی مخاطب داشته باشه؟‌ اخه ۹۹ درصد مخاطبایی که توانایی دیدن این فیلما رو دارن، توی چنین شرایطی نیستن. پس چرا اینقد چنین شرایطی رو نشون میدن و یه جورایی نشون میدن که باید برا زندگی و ادامش، بجنگی، طاقت بیاری، زنده بمونی؟چرا؟
همین تقریبا:) ببینیم کی وقت بشه ۲ش رو ببینیم که ادامش رو بگم:)
خیلی موقع‌ها میخوایم یه بازه زمانی رو توی کدمون اندازه‌گیری کنیم که خب راه‌های زیادی براش هست و معروف‌ترینش هم timer یا timespan هست. ولی از dotnet 7 به بعد یه متد جدید برای StopWatch اومده که اورهد خیلی کمتری داره و توصیه میشه از اون استفاده بشه.

https://www.youtube.com/watch?v=NTz99yN2urc
Forwarded from مشورت کامپیوتری‌ها (Navid)
#database
#elasticsearch

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


توی این پست میخوایم یه اشاره ای به elasticsearch بکنیم و یکسری قابلیت‌های اون رو بررسی و برای ادامه مسیر چند تا منبع معرفی کنیم.
اگه elasticsearch رو توی دسته دیتابیس‌ها قرار بدیم می‌تونیم بهش بگیم یه دیتابیس NoSql هست ولی معمولا از اون به عنوان یک search engine یاد می‌کنند و خب دلیلش هم اینه که مهارت اصلیش توی سرچ‌ کردن سریع و برگردوندن داده مورد نیاز در کمترین زمان ممکنه. از کاربردش بخوام بگم یه جورایی الان دیگه توی هر سایتی که یه سرچ‌ باکسی میبینین که داره روی تعداد زیادی دیتا سرچ میزنه و نتیجه رو باسرعت براتون میاره، به احتمال زیاد اون پشت داده‌ها رو داره از elasticsearch واکشی می‌کنه.
خب حالا به نظرتون لازمه اینکه elasticsearch بتونه جست‌وجوی سریع داشته باشه‌ چیه؟ آفرین. اینه که بتونه یه جوری داده رو ذخیره و ایندکس‌گذاری کنه که با اون نوع ذخیره سازی، با اون ساختمان داده، بتونه بالاترین سرعت واکشی داده رو داشته باشه. elasticsearch برای اینکار از Inverted Index استفاده می‌کنه که می‌تونین جزییاتش رو از این لینک بخونین. با همین روش‌ هست که elasticsearch سرعت جست‌وجوی خودش رو نزدیک به realtime معرفی می‌کنه و خب بیراه هم نیست!
یکی از ویژگی‌های elasticsearch مقیاس‌پذیری بالای اون و قابلیت horizontal scalability هست که باعث میشه از این ابزار توی داده‌ها با اسکیل بالا، به راحتی استفاده بشه و ...
برای آشنایی بیشتر می‌تونین این لینک‌ها رو مطالعه کنین:
لینک ۱
لینک ۲
#csharp
#dotnet
#delegate


Whenever we use delegates, we have to declare a delegate, initialize it, and then call a method with a reference variable.

In order to get rid of all the first steps, we can directly use Func, Action, or Predicate delegates.

- The Func delegate takes zero, one or more input parameters, and returns a value (with its out parameter).
- The action takes zero, one or more input parameters, but does not return anything.
- Predicate is a special kind of Func. It represents a method that contains a set of criteria mostly defined inside an if condition and checks whether the passed parameter meets those criteria or not. It takes one input parameter and returns a boolean - true or false.


//// Func Examples
//1
List<Func<int, int, int>> myActions = new List<Func<int, int, int>>();
myActions.Add(AddNumber);
int result = myActions.First()(10, 20);
Console.WriteLine($"result = {result}");
//2
Func<int, int, int> myAddition = (num1, num2) => num1 + num1;
Console.WriteLine($"result 2 = {myAddition(12, 13)}");
//3
Func<int, int, int> myAddition2 = delegate(int num1, int num2)
{
return num1 + num2;
};
Console.WriteLine($"result 3 = {myAddition2(14, 15)}");
//// Action Examples
//1
Action<int, int> myAction = Printer;
myAction(12, 13);
//2
Action<int, int> myAction2 = (a, b) => Console.WriteLine($"lambda: a = {a}, b = {b}");
myAction2(100, 2);
//3
Action<int, int> myAction3 = delegate(int a, int b)
{
Console.WriteLine($"delegate : a = {a} , b = {b}");
};
myAction3(100, 222);
//// Predicate
//1
Predicate<int> myPre = IsOdd;
Console.WriteLine($"myPre is : {myPre(123)}");
//2
Predicate<int> myPre2 = (a) => a % 2 == 1;
Console.WriteLine($"Lambda: myPre is : {myPre2(123)}");
//3
Predicate<int> myPre3 = delegate(int a)
{
return a % 2 == 1;
};
Console.WriteLine($"delegate: myPre is : {myPre3(123)}");
///////////////
///////////////
int AddNumber(int a, int b)
{
return a + b;
}
void Printer(int a, int b)
{
Console.WriteLine($"a = {a} , b = {b}");
}
bool IsOdd(int a)
{
return a % 2 == 1;
}