C#razy
144 subscribers
253 photos
51 videos
2 files
389 links
Путь в IT, рост, менторство, поддержка, прокачка, мотивация

👨‍💻 Senior .NET dev с 12+ лет опыта
📚 Учусь в MIT по Computer Science
🖥 100+ дней подряд LeetCode
⚒️ Работаю на зарубеж
💻 Веду блог про рост в IT с нуля
🧭 Помогаю понять, куда двигаться
Download Telegram
😁2
🤣1
#news

🌊 Microsoft прекращает работу над одним из самых интересных проектов — подводным дата-центром!

Microsoft официально объявила о завершении своего революционного проекта Natick, который был направлен на создание подводных дата-центров. Проект, который продержался всего два года, несмотря на успешные результаты, больше не будет возобновлен.

🛠 Что это был за проект?
Проект Natick представлял собой пилотный запуск дата-центра, который был погружен под воду 🔥. Идея заключалась в том, чтобы использовать прохладу океана для естественного охлаждения серверов, снижая затраты на электроэнергию и минимизируя воздействие на окружающую среду. Это решение обещало быть более экологичным и эффективным по сравнению с традиционными дата-центрами.

📊 Успехи и достижения
Во время реализации проекта Microsoft достигла впечатляющих результатов. Подводный дата-центр продемонстрировал высокую надежность и энергоэффективность. Исследования показали, что он работал с меньшим количеством отказов оборудования и использовал меньше энергии на охлаждение, что сделало его перспективным решением для будущих дата-центров.

🤔 Почему проект был завершен?
Несмотря на успехи, Microsoft решила прекратить дальнейшую работу над проектом. Основная причина — фокус на других стратегических инициативах 😭, которые компания считает более важными на текущий момент. Хотя Natick продемонстрировал значительный потенциал, Microsoft решила, что ресурсы будут лучше использованы в других направлениях.

💡 Будущее технологии
Хотя проект Natick завершен, его наработки могут быть использованы в других инициативах Microsoft. Компания не исключает возможность того, что идеи, заложенные в этом проекте, найдут применение в будущих разработках.

Так что, пока мы прощаемся с подводными дата-центрами, их наследие, безусловно, будет жить дальше в новых инновациях Microsoft 🐈

Подробнее: https://www.techradar.com/pro/goodbye-natick-microsoft-has-given-up-on-one-of-its-coolest-projects-ever-underwater-data-center-pilot-got-canned-after-just-two-years-despite-successful-outcomes-and-wont-come-back

💡 Канал | 💬 Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
😁3
😁1
😱1
😁1
😁3😎1
#humor

Первый hello world в жизни 😮

💡 Канал | 💬 Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
😭2😁1
This media is not supported in your browser
VIEW IN TELEGRAM
#humor

Когда чужой код встал идеально в проект 😅

💡 Канал | 💬 Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3
#humor

А может быть IOS? 👻

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2🤣1
#news

😳 Павел Дуров основатель Telegram был арестован в аэропорту Франции.

📰 Подробности
https://www.theguardian.com/media/article/2024/aug/24/telegram-app-founder-pavel-durov-arrested-at-french-airport

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👀1
#dotnet

🧙🏻‍♂️ C#: Разница между Any() и Exists()

В C# есть два схожих метода для проверки наличия элементов в коллекции — Any() и Exists(). Оба они могут использоваться для поиска элементов, но работают они немного по-разному. Предлагаю быстрый чек.

😐 В чем разница?
Any() — это метод расширения LINQ, который проверяет, есть ли хотя бы один элемент, соответствующий условию
Exists() — это метод класса List<T>, который также проверяет наличие элемента

😮 Benchmark
BenchmarkDotNet v0.14.0, macOS Sonoma 14.6.1 (23G93) [Darwin 23.6.0]
Apple M1 Max 2.40GHz, 1 CPU, 10 logical and 10 physical cores
.NET SDK 8.0.101
[Host] : .NET 8.0.1 (8.0.123.58001), X64 RyuJIT SSE4.2
DefaultJob : .NET 8.0.1 (8.0.123.58001), X64 RyuJIT SSE4.2


| Method | Mean | Allocated |
|------- |---------:|----------:|
| Any | 2.624 ms | 43 B |
| Exists | 1.136 ms | 12 B |


😐 Exists() - а что так можно было?какой ценой?
+ This method performs a linear search; therefore, this method is an O(n) operation, where n is count
+ Использование цикла for позволяет напрямую обращаться к элементам списка по индексу, что может быть быстрее в некоторых случаях, чем использование методов расширения LINQ
- работает только с List<T>
- невозможно проверить, пуст ли список

🐈 Код
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Columns;
using BenchmarkDotNet.Running;

BenchmarkRunner.Run<AnyVsExistsBenchmark>();

[HideColumns(Column.Error, Column.StdDev), MemoryDiagnoser]
public class AnyVsExistsBenchmark
{
private readonly List<int> _numbers = Enumerable.Range(1, 1000000).ToList();

[Benchmark]
public bool Any() => _numbers.Any(x => x > 26082024);

[Benchmark]
public bool Exists() => _numbers.Exists(x => x > 26082024);
}


🏃‍♂️ Запуск
 dotnet run -c Release --project Benchmark


💡 Channel | ✏️ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
C#razy pinned «#dotnet 🧙🏻‍♂️ C#: Разница между Any() и Exists() В C# есть два схожих метода для проверки наличия элементов в коллекции — Any() и Exists(). Оба они могут использоваться для поиска элементов, но работают они немного по-разному. Предлагаю быстрый чек. 😐 В…»