en
Feedback
Айтигребец

Айтигребец

Open in Telegram

Айтигребец - канал душного сеньора помидора. Ссылочки, мысли и прочая IT-годнота. Технологии, статьи, интервью etc. Расширяем кругозор и гребём тугеза. Немного о весле : 15 лет фуллстека (85% бэк и 15% фронт), 9 лет .net, 6 лет nodejs Связь : @ytrihT

Show more
846
Subscribers
No data24 hours
-47 days
-1330 days
Posts Archive
У Dev Jungles вышло очень крутое трёхчасовое видео в стиле "вопрос-ответ" по .net/C#. Имеет смысл смотреть всем дотнетчикам от middle+, много хардовых вопросов. Было интересно, допустим, почему нельзя делать lock на string и в целом про интернированные строки, и например то, что
string s = "qwe"+"rty"+"uio";
будет на этапе компиляции развёрнуто в string.concat (есть нюансы, не всегда). Или по какой причине нельзя лочиться на структуры. + типичные области применения TCP vs UDP. В общем, много интересных моментов. Единственное что, заметил, что перепутан ответ на вопрос про "Аутентификацию/Авторизацию/Идентификацию" - первое и второе нужно местами поменять в ответе. Авторизация - роли, Аутентификация - проверка логина/пароля. Маст си, добавляйте в закладки, редкий контент. Ну и подписывайтесь на автора - хоть канал и молодой, незаслуженно мало подписоты. #csharp #библиотека_знаний https://www.youtube.com/watch?v=M32SEu0hY7w

Немного из мира сигналов. Которые по проводам бегают. Если кто-то увлекается автомобилями и подписан на ютуб канал "ИЛЬДАР АВ
Немного из мира сигналов. Которые по проводам бегают. Если кто-то увлекается автомобилями и подписан на ютуб канал "ИЛЬДАР АВТО-ПОДБОР", те знают, что у него есть рубрика "оживление мертвеца". Её суть в двух словах : ребята выезжают на сложные "баги" в автомобилях и стараются найти их причину/пофиксать. Вы все понимаете, что более ли менее современный автомобиль состоит из сотен электронных систем/схем/блоков и так далее. И зачастую, по очень разным причинам это всё ломается и сбоит. Особенно со временем. И вроде бы казалось где тут айтишка, но вот же она! Ведь по сути, поиск таких багов в электронике - такая же сложная задача, как и выискивание багов в нашем коде. В данном ролике ребята оживляют BMW x5 e53, и используют осцилограф для дебага! Тут же и разъясняют как это всё работает. Оч крутой контент, имхо. Советую к просмотру :) Таймкод проставлен, длительность просмотра ~5 минут. https://youtu.be/06cWmc2Zpnk?t=1359

photo content

Про goto: помнят многие олды (привет turbo pascal!) , но есть ещё более весёлая штука 😁😁 #радиот

Очередное крутое интервью. Про работу в гугле, пет-проекты ну и в первую очередь личная история. https://www.youtube.com/watch?v=53nKPT7L0Do #video

#humor
#humor

+1
Ну и на чем написан этот фронт? 😂

Виктория Бородина сделала неплохую базовую табличку по иммиграции, довольно интересно глянуть. Тема, конечно, сложная и много нюансов по каждому из пунктов, но в целом - маст си. Польша улыбнула. Всё в целом закономерно и в двух словах - лучше там, куда сложнее всего уехать. Законы конкуренции они такие. [20min] : https://www.youtube.com/watch?v=5aexqRQeLNE #иммиграция

Aspect Oriented Programming (AOP) Аспектно ориентированное программирование? WTF!? Мало нам аббревиатур и концепций, подавай больше. На самом деле штука очень крутая и перспективная - расскажу в двух словах на примере C#. Задача Есть, допустим, репозиторий. К примеру UserRepository. Со стандартными CRUD операциями. Положить пользователя, вытащить по ID, удалить - ну вот это вот всё. И нужно вот нам собрать метрики - хотим видеть время выполнения каждого похода в субд. Т.е. метрика, которая будет содержать название метода и время исполнения к примеру. Как это сделать? Решение 1) Пойдём от решения "в лоб". Пишем в начале каждого метода StopWatch.Start, а в конце StopWatch.ElapsedMilliseconds и пушаем метрику. CreateUser(User user){ StopWatch sw = new StopWatch(); sw.Start(); //поход в базу sw.Stop(); Metrics.Add('UserRepository.CreateUser',sw.ElapsedMs); } и что дальше? Будем нарушать DRY (don't repeat yourself) и вставлять данный кусок ВО ВСЕ МЕТОДЫ? Можно, но ... не можно. Очевидно, что нужно это куда-то выносить. Куда и как? 2) Окей, тут у нас развилочка по решениям. Более топорный способ - создадим базовый класс/хелпер, где сделаем метод-враппер, который будет в себя принимать некий Action (делегат), исполнять его и обернув тем же самым кодом - успокаиваемся. Или нет?
class RepositoryBase : {

CallWithMetric(Action act){ StopWatch sw = new StopWatch(); sw.Start(); act.Invoke(); sw.Stop(); Metrics.Add('UserRepository.CreateUser',sw.ElapsedMs); } } и получается что-то такое : CreateUser(User user){ CallWithMetric(() => { //идём в базу }) } неплохо, но не сказать, что красиво. коллбековая джаваскриптщина какая-то. 3) Третья стадия уже более generic-like подход и в целом скорее уже ближе к AOP, хотя по факту скорее ООП. Мы можем вынести из репозитория интерфейс и создать декоратор для репозитория. Оборачивать все репозитории им и "под капотом" вызывать метрики. Код приводить не буду, телега не предполагает длинных постов :) (можете глянуть на MSDN - понятная и коротенькая статейка). Это уже взрослый подход. Но всё еще хочется немного магии. 3) И так. А вот и дошли до AOP. А что если нам создать атрибут, который будет сам оборачивать наш метод в нужный код? Звучит-то клёво, но как? Ведь атрибуты это про метаданные, они не являются декораторами сами по себе. В C# есть пару классных библиотек. Самые известные это PostSharp и Fody. Они на этапе компиляции могут менять IL код. Это значит, вы можете пометить, допустим специальным атрибутом вам класс/метод и уже после компиляции в него вставится нужный код. В нашем случае - вызов метрик будет выглядеть уже как-то так :
[TimeElapsedMetric]
CreateUser(User user){
       //поход в базу      
}

Удобно. Красиво. Магия! Но... есть нюансы :) Во-первых, PostSharp, говорят, хорош, но стоит по 700$ per developer. Цена - 🐴. Есть фри версия, но с ограничениями. Не интересно. Fody же - бесплатный и с открытым кодом. Наш кейс он отлично покрывает (см. MethodTimer), + умеет навешивать "хуки" на методы из коробки. Но и тут есть нюансы. Например, он не позволяет делать re-execute методов, т.е. какой-нибудь Retry Policy уже не навесишь. Так же есть нюансы по работе с async/await - он не везде поддерживается и судя по вкладке Issues на гитхабе - есть баги. В качестве остаточных решений еще можно подумать в сторону молодого Roslyn, но это уже заморачиваться нужно. Есть еще старый добрый T4 темплейтинг. И пару встроенных классов в .net, которые позволяют переписывать метод в рантайме, но не изменять его. Что ж. Штука классная, но ждём развития. Надеюсь, в ближайшие пару лет появится что-то "из-коробки". Пара общих статей с рефами : Aspect Oriented Programming (AOP) через исходный код Теория и практика AOP. Как мы это делаем в Яндексе Aspect-Oriented Programming : Aspect-Oriented Programming with the RealProxy Class #csharp #библиотека_знаний #авторское

Основы Linux (обзор с практическим уклоном) https://habr.com/ru/post/655275/ - хорошая входная статья в мир Linux. Рекомендую
Основы Linux (обзор с практическим уклоном) https://habr.com/ru/post/655275/ - хорошая входная статья в мир Linux. Рекомендую тем, кто хочет начать разбираться в unix системах, подойдёт даже джунам :) Время чтения ~20 минут #библиотека_знаний #habr

Сколько человек работает в тиктоке? 😜 #радиоТ

У АйтиБороды вышел видос, где он рассказывает что будет с контентом и его каналом, а так же выражает и объясняет свою позицию
У АйтиБороды вышел видос, где он рассказывает что будет с контентом и его каналом, а так же выражает и объясняет свою позицию. Имхо, большой респект ему, т.к. реально по пальцам одной руки можно пересчитать публичных блогеров и так называемых "лидеров мнений" из СНГ, которые рискуя своей "долей пирога" - остаются людьми с большой буквы. В ролике он в том числе упоминал кейс, когда ему писали по поводу рекламы из РФ, он отказывался, а на вопрос "почему" - уже начинало гореть. Отлично понимаю. Вспомнил как 4-ого марта мне написал HR из РФ с дефолтным "привет, не хотел бы [вакансия]?". Я прогуглил человечка и удостоверившись, что их hr-агенство действительно базируется в Питере, ответил, что не хочу иметь дел с HR из РФ. Собственно, ответ на это письмо на скриншоте. Бывает и так, поэтому старайтесь не делить людей по паспорту. Делите по личным качествам конкретного человека. 🇺🇦❤️

Какая точность у timestamp в sqlite? Забавный баг с #радиоТ

Впны, тележка и авито. Иран становится ближе, чем кажется. К слову, если кто-то ещё раздумывает какой впн выбрать/не выбрать
Впны, тележка и авито. Иран становится ближе, чем кажется. К слову, если кто-то ещё раздумывает какой впн выбрать/не выбрать - из всего списка лично я знаю и рекомендую Proton VPN - проверенные ребята, которые не будут (по крайней мере с высокой долей вероятности) смотреть ваш трафик и имеют хоть какую-то репутацию. Это те же ребята, что и протон мейл делают.

Лучше всего положение белорусского ПВТ описывает сам сайт ПВТ
Лучше всего положение белорусского ПВТ описывает сам сайт ПВТ

Немного опросов и статистики с джинни.
+4
Немного опросов и статистики с джинни.

чык
чык

Лан, не поленюсь и закину сюда ссылочки. Поставил плюсик тем докладам, которые интересны лично мне. 1) +"Где деньги, Лебовски?", или Почему пора перейти на FinOps / Александр Токарев, Павел Журов 2) Использование телеметрии с клиентских инсталляций для предиктивного решения проблем / Максим Лапшин 3) Нагрузочное тестирование с K6 / Дмитрий Самиров 4) +Есть ли жизнь без ELK? Как снизить стоимость Log Management / Денис Безкоровайный 5) Внедрение SRE. Итоги 5 лет опыта / Павел Притчин 6) Концентрируемся на бизнес-модели данных: от ETL к ELT / Иван Зерин 7) Techtalk с Ильей Таратухиным (2ГИС) 8) Синхронная репликация и выборы лидера в Tarantool / Сергей Петренко 9) +Мониторинг как процесс, или Как перестать бояться и начать спать по ночам / Виталий Медведев 10) Techtalk с Николаем Кнышом (Почтатех) 11) +Мифическая миллисекунда, или Как ускоряют движки OLAP баз данных / Роман Кондаков 12) Tarantool: от коммита до прода за 20 минут / Роман Проскин 13) Techtalk с Владимиром Наумовым (РСХБ) 14) Точные рекомендации для пользователя: как мы научили систему выбирать контент / Даниил Бурлаков 15) В поисках идеальной кластерной ФС: опыт использования LINSTOR / Андрей Квапил (kvaps) 16) Высоконагруженная Платформа 1С / Антон Дорошкевич 17) +Архитектура рекомендательной системы Дзена / Дмитрий Кондрашкин 18) Techtalk с Сергеем Луговым (ЦФТ) 19) +Инфраструктура как микросервисы. Зачем и почему? / Алексей Шарапов 20) +Теория программирования: пакетные принципы и метрики / Александр Макаров 21) Технический директор: вроде бы ему все можно, но нельзя... / Артем Каличкин 22) +Авито IaaS: как мы управляем инфраструктурой / Юрий Дзюбан 23) +Сквозное логирование с использованием транзакционных логов в Росгосстрахе / Александр Крылов 24) +Отказ в обслуживании: как положить высоконагруженную систему / Алексей Бабенко 25) Как мы перевели десятки миллионов пользователей на новый сетевой протокол / О.Смирнов, А.Никитин 26) Techtalk с Никитой Гордиенко (Дойчетелеком) 27) Повседневная практическая векторизация / Ignas Bagdonas 28) Бесфайловая система хранения. Почему YDB работает с дисками напрямую / Владислав Кузнецов 29) Json or not Json. Плюсы и минусы использования Json в PostgreSQL / Олег Бартунов, Никита Глухов 30) Techtalk с Денисом Рылеевым (РСХБ) 31) Раздача контента с HDD: быстро, увлекательно и надежно / Кирилл Шваков 32) +Ускорь это немедленно, или Легкая сеть тяжелого бэкенда / Илья Щербак 33) Транспорт будущего, или Как мы ускорили ВКонтакте в 1,5 раза / Александр Тоболь 34) Миграция приложения Oracle PL/SQL на Postgres pl/pgSQL / Анатолий Анфиногенов 35) +Безопасность DNS / Филипп Кулин 36) +Service Mesh на стероидах. Часть 1 / Алексей Ефимов 37) TLA+/TLC: формальный метод верификации конкурентных алгоритмов для инженеров / Алексей Найденов 38) Что нового в плане мониторинга в PostgreSQL / Алексей Лесовский 39) Хранение графов в Tarantool: реальность или миф? / Александр Горякин 40) +Облака для самых маленьких / Алексей Учакин 41) +Ubisoft в Google Cloud: автомасштабирование игрового кластера / Владислав Шпилево 42) Технология распределенного реестра R3 Corda и CBDC / Марина Кудрявцева 43) Симуляция боевой инсталляции MySQL/ MariaDB/ Postgresql/ MongoDB / Николай Ихалайнен 44) Kafka. Как мы строили корпоративную шину данных, которая обрабатывает до 3 млн сообщ./сек. / И.Гаас 45) Tarantool Cartridge: кластер из коробки / Игорь Золотарев 46) +Как снизить накладные расходы на добавление +1 микросервиса / Руслан Сафин 47) +Что такое хорошая интеграция / Максим Цепков 48) +Киберучения: методы проведения и реализация / Лука Сафонов 49) +Экономика железа для облачных услуг, старое дешевое против нового мощного / П.Леонтьев, С.Наумов 50) MPP СУБД на примере Vertica: архитектура и способы достижения производительности / А. Скоробогатов 51) Возможности Spark Streaming для аналитики данных в потоковом режиме / Артем Гогин 52) Как построить высоконагруженное и отказоустойчивое S3-хранилище / Дмитрий Анисов 53) Ускорение разработки с Rust / Олег Уткин 54) «Get Real»: как я в финтехе машинное обучение растил / Иван Комаров

Контентик с конфы Highload++ подъехал. Налетай! https://www.youtube.com/c/HighLoadChannel/videos 🚣🚣🚣
Контентик с конфы Highload++ подъехал. Налетай! https://www.youtube.com/c/HighLoadChannel/videos 🚣🚣🚣