Леонид Павлов. "It specialist's tricks"
14 subscribers
77 photos
7 videos
5 files
59 links
Keep calm, no spam.
Download Telegram
Соцсети для военных? ВК нужно начинать беспокоиться? Или они тоже скоро поддержат эти фичи 😀
❗️Военнослужащие российской армии получат специальное приложение для планшетов с интерактивными картами и другим функционалом, существенно расширяющим возможности боевых подразделений, пишут «Известия».

Оно позволит бойцам не только видеть расположение своих сил или сил противника, но и наносить координаты целей, а также просить поддержки артиллерии или авиации в режиме реального времени. Также приложение позволяет военным напрямую общаться друг с другом в специальных чатах. Оно получило название "Комплекс повышения осведомленности" (КПО-А)".
#tip
Сохранение базового состояния клиента, для воспроизведения багов:

// Export Local Storage
let localStorageData = JSON.stringify(Object.fromEntries(Object.entries(localStorage)));

// Export Session Storage
let sessionStorageData = JSON.stringify(Object.fromEntries(Object.entries(sessionStorage)));

// Export Cookies
let cookies = document.cookie.split('; ').reduce((acc, cookie) => {
let [name, ...rest] = cookie.split('=');
acc[name] = rest.join('=');
return acc;
}, {});
let cookiesData = JSON.stringify(cookies);

console.log('Local Storage:', localStorageData);
console.log('Session Storage:', sessionStorageData);
console.log('Cookies:', cookiesData);
👍1
Опрос StackOverflow за 2024

Выделил интересное для себя (смотрел результаты только среди профи):
🔵34% профессиональных разработчиков не имеют полного высшего образования и 45% имеют хотя-бы бакалавра — напомню, это международный опрос, поэтому могут не получать образование как европейцы, которые считают его ненужным, так и индусы/пакистанцы и пр. у которых нет такой возможности. Но так как топ 10 стран (50%) это европа и сша, из которых 7% — индия, врятли неразвитые страны сильно повлияли на этот показатель, а значит — многие сознательно считают высшее образование для программирования не востребованным.
🔵C# на 9 месте среди популярных языков. Топ 3 — python -> js -> SQL. Забавно, что начали появляться SQL senior разработчики и SQL oriented команды. Т.е. вполне реально заучить только SQL и уже быть каким-никаким senior. (топ не только языков, но и языков разметки и скриптов, так что не удивляемся наличию в топе HTML/CSS и Shell)
🔵Есть большая потребность в frontend/fullstack профессионалах. Как я понял это, если в рейтинге этого нет? Просто потому что несмотря на то, что это один из крупнейших в мире сайтов для разработчиков — всеравно при переключении графиков рейтинга, перестают отрисовываться данные, приходится по нескольку раз перезагружать страницу. И да, в инкогнито и без расширений — то же самое. А так же по сути простейшая лендинг страница, грузится несколько секунд, что явно указывает на плохую оптимизацию, или на подготовку данных на лету, что вполне можно было сделать один раз подготовив данные для выдачи, или хотябы закэшировать в браузере.
🔵Почти 30% отчета посвящено ИИ, практически как и в прошлом году, так что тенденция такая, что никуда это не денется, и нужно учиться с этим работать. Что уж греха таить, мне сильно помогает ИИ анализировать 500 страничные источники, помогая выделять из них основные мысли или конкретные главы, чтобы не читать всё, иначе жизнь пролетит мимо.
🔵Postgres — ❤️
🔵Amazon и Azure — в топе облачных платформ, но Azure при этом уступает Jira и Confluence в качестве управления проектами и командами.
🔵ASP.Net core, родненький, на 5-м месте, после 4-х JS фреймворков. Удивлен, что JQuery еще жив и входит в эти топ 5.
🔵Docker и npm знает и использует каждый 2-й разработчик.
🔵Vim — топ 5, среди IDE для разработки 🤩
🔵Средняя ЗП C# в мире — $5500, делаем поправку на налоги и регион, до 30% в среднем, получаем 330к руб. Учитываем, что разрыв ЗП между джунами и миддлами сильно выше, чем между миддлами и сеньорами, можно делать вывод что такая ЗП соответствует уровню june++, middle-.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
# Принудительный запрос логина и пароля через браузер
Если вам нужно заставить браузер показать стандартный диалог для ввода логина и пароля (например, для базовой аутентификации), при использовании HTTP Basic Authentication сервер может вернуть ответ с заголовком WWW-Authenticate, который заставит браузер показать стандартный диалог ввода логина и пароля. Это делается на уровне сервера, а не клиента.

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="User Visible Realm"
👍1
Прямо сейчас идет презентация MadeByGoogle. И прямо во время живой демонстрации, Gemini AI выдает ошибки при работе. Что может говорить как о сырости продукта или кривости интеграции с Samsung, так и о том, что даже мега-компании делают ошибки. Поэтому не стоит расстраиваться, если совершили ошибку. Главное — какие выводы были сделаны.

https://www.youtube.com/watch?v=N_y2tP9of8A
🤯1
Галеры:
- У нас всё на доверии, главное чтобы задачи выполнялись.

Супер классная компания, мимими:
- Мы же платим за РАБОТУ, а не за то время, которое разраб ходит кофе наливать, он же в это время не работает.
👍1
Начиная с .net 8 появился стандартный шаблон нового проекта "Web API (native AOT)" — это что-то вроде self-contained приложения на выходе, после компиляции, но мелкомягкие привнесли туда несколько фич, связанных с быстродействием и оптимизацией использования ресурсов. Видимо рассчитано на облачный рой микросервисов.

Вот выдержка из оригинальной статьи:

Публикация вашего приложения в качестве нативного AOT позволяет создать автономное приложение, предварительно скомпилированное в машинный код (AOT). Нативные приложения AOT быстрее запускаются и занимают меньше места в памяти. Эти приложения могут запускаться на компьютерах, на которых нет встроенного AOT-интерфейса.Установлена среда NET runtime.

Преимущества встроенного AOT наиболее значимы для рабочих нагрузок с большим количеством развернутых экземпляров, таких как облачная инфраструктура и гипермасштабируемые сервисы. В .NET 8 добавлена ASP.NET Базовая поддержка встроенного AT.

В собственной модели развертывания AOT используется компилятор с опережением времени для компиляции IL в машинный код во время публикации. Собственные приложения AOT не используют JIT-компилятор при запуске приложения. Собственные приложения AOT могут запускаться в ограниченных средах, где JIT не разрешен. Собственные приложения AOT ориентированы на определенную среду выполнения, такую как Linux x64 или Windows x64, точно так же, как публикуются автономные приложения.


https://learn.microsoft.com/ru-ru/dotnet/core/deploying/native-aot/?tabs=net8plus%2Cwindows
🔓 Achievement unlocked:
Найти работу 🏢 за две недели, не откликаясь ни на одну вакансию.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1🤯1
Кстати, столкнулся с неожиданной проблемой, 🙈 на собеседовании в жёлтый банк и голубой маркетплейс: зазубривание ответов на вопросы. При чём ты можешь быть супер крутым специалистом 👩‍🎓 с большим опытом, но тебя завалят просто потому, что ты работал в финтехе на dotnet 3.1 и совершенно не встречал в работе кейсы, когда нужно было бы проектировать модуль с использованием рекордов и структур, для миллиона запросов в секунду 🤯. И дядя собеседующий, которому до лампочки 🧐 пройдешь ты собес или нет — просто поставит галочку ☑️ в свой табличке и перейдет "к следующему вопросу", чтобы успеть за день прособесить побольше и получить зарплатную стимуляцию 🪙.

Очень актуально попался следующий пост где мужика с 25-летним опытом 👨‍💻 бомбит на ту же тему:
https://habr.com/ru/articles/841224/
Please open Telegram to view this post
VIEW IN TELEGRAM
Шта?
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Нашел Regex hack для навигации через Powershell/Windows terminal.

Пишешь звездочку ( * ) везде, где лень писать полный путь, и нажимаешь Tab, чтобы тебе автокомплитнули всё. С подпапками так-же работает.

Например:
🔵 Перейти в папку, которая оканчивается на Dir5:
$ cd *dir5
// Tab
$ cd ./Company2.D̲i̲r̲5


🔵 Перейти в папку, которая начинается на project и в серидине есть dir
$ cd project*dir*
// Tab
$ cd ./P̲r̲o̲j̲e̲c̲t̲2.D̲i̲r̲1.Module2.Dir3
// Tab
$ cd ./P̲r̲o̲j̲e̲c̲t̲4.D̲i̲r̲1.Module5


🔵 Перейти в подпапку, которая начинается на module
$ cd */module*
// Tab
$ cd ./Company3.Module3/M̲o̲d̲u̲l̲e̲3
// Tab
$ cd ./Project2.Dir1.Module2.Dir3/M̲o̲d̲u̲l̲e̲2.Dir1.Dir3
Please open Telegram to view this post
VIEW IN TELEGRAM
random_structure.ps1
1.6 KB
Скрипт, которым нагенерировал себе структуру:
👍1
С тех пор, когда я в последний раз интересовался синхронизацией многопоточности, примерно 5 лет назад, прочел Metanit, на котором были локи, мьютекс и семафор[слим].

И на собесах и в работе всегда этого хватало.

И либо dotnet так сильно разросся, начиная с 3.1, либо это уже продвинутая магия.

Или возможно это прерогатива хайлоада, где доп запрос в брокер слишком долго и дорого.
Да, лишние 15мс, когда у тебя требование на 10к запросов в секунду с максимальным временем отклика 200мс — суперважно, учитывая что этих запросов может быть около 10, а это уже +150мс, не считая даже запросы в БД.

Небольшой списочек того, что нашел:
🔴 Блокирующие
🔵 Mutex
🔵 Semaphore
🔵 SemaphoreSlim
🔵 EventWaitHandle
🔵 AutoResetEvent
🔵 ManualResetEvent

🔴 Синхронизаторы
🔵 Monitor
🔵 SpinLock
🔵 ReaderWriterLockSlim

🔴 Общение между потоками
🔵 Barrier
🔵 Interlocked
🔵 SpinWait

⭐️ Бонус:
🌟 System.MarshalByRefObject
🌟 WaitHandle
🌟 Thread.Join
🌟 EventWaitHandle
🌟 CountdownEvent
Please open Telegram to view this post
VIEW IN TELEGRAM
Интересный опыт разницы разработки с тестами и без.
🔵 Скрин №1: до имплементации интеграционных тестов. Среднее число измененных строк в день ~500.
🔵 Скрин №2: после имплементации интеграционных тестов. Среднее число измененных строк в день ~3 000.

Субъективный вывод, также основанный на опыте: тесты хоть и забирают на себя часть времени, но позволяют гораздо быстрее менять код, так как снимают нагрузку на оперативку разработчика — сильно реже перепроверяешь и сильно меньше беспокоишься, об остальных участках кода и структуре проекта в целом, когда спину прикрывают тесты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
GigaCode фигни не посоветует
😁2
Он следит. Если не 🟢 озеленить тесты, то он достанет свой серебряный меч против скуфов нечисти. Мотивация.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩1
Короче, есть такая штука — BFG. Это типа как git-filter-branch, только круче. С ней можно легко и быстро удалить ненужные данные из истории репозитория.

Как это работает:
- Клонируешь репозиторий с флагом --mirror, чтобы сделать копию.
- Запускаешь BFG, чтобы обновить коммиты и ветки.
- Удаляешь ненужные данные с помощью git gc.
- Снова запускаешь BFG, чтобы обновить ссылки на git сервере.

BFG может удалять файлы с именами id_rsa или id_dsa, большие двоичные файлы больше 50 мегабайт, пароли, папки или файлы с именем .git.

BFG работает в 10–720 раз быстрее, чем git-filter-branch и не трогает последний коммит.

https://rtyley.github.io/bfg-repo-cleaner/