6 083
Subscribers
No data24 hours
-77 days
-5530 days
Posts Archive
6 083
Различные алгоритмы и структуры данных, которые часто используются в интервью по программированию (описание к предыдущему посту):
1. Clone: Этот паттерн используется для создания точной копии графа. На изображении показано, как оригинальный граф преобразуется в клонированный граф с новыми узлами.
2. Serialize and Deserialize: Этот паттерн позволяет преобразовать структуру данных в последовательность байтов (сериализация) и восстановить её обратно (десериализация). На изображении показан пример сериализации и десериализации дерева.
3. Monotonic Queue: Используется для эффективного поиска минимального или максимального значения в скользящем окне. На изображении показаны гистограммы, иллюстрирующие работу очереди.
4. Segment Tree: Это структура данных, которая позволяет эффективно выполнять запросы на отрезках массива. На изображении показана структура дерева и его узлы.
5. Binary Index Tree: Также известная как дерево Фенвика, используется для эффективного вычисления префиксных сумм. На изображении показан пример дерева.
6. Meet in the Middle: Этот паттерн применяется для оптимизации поиска в больших наборах данных. На изображении показан процесс разделения и объединения данных.
7. Counting: Используется для подсчёта частоты элементов в массиве. На изображении представлена таблица, где ключи — это элементы массива, а значения — их частота.
8. Linear Sorting: Это алгоритмы сортировки, такие как сортировка подсчётом. На изображении показан процесс сортировки массива.
9. Simulation: Используется для моделирования различных процессов, таких как движение объектов. На изображении показаны координаты и направления движения.
6 083
Различные алгоритмы и структуры данных, которые часто используются в интервью по программированию
6 083
Основные типы кибератак (описание инфографики из предыдущего поста):
- Фишинг:
- Китовый фишинг (Whale Phishing) — нацелен на высокопоставленных лиц
- Целевая атака (Spear Attack) — направлена на конкретных пользователей
- Фарминг (Pharming) — перенаправление пользователей на поддельные сайты
- SQL-инъекции:
- Атака, связанная с внедрением вредоносного кода в запросы к базе данных
- Межсайтовый скриптинг (XSS):
- Использование уязвимостей веб-приложений для внедрения вредоносного кода
- Атака «человек посередине» (Man-in-the-Middle):
- Перехват и изменение данных между двумя сторонами
- Включает:
- Перехват сессии (Session Hijacking)
- Спуфинг IP (IP Spoofing)
- Атака воспроизведения (Replay)
- DDoS:
- Направлена на перегрузку серверов или сетей, чтобы сделать их недоступными
- Атаки на пароли:
- Подбирают пароли методом перебора (Brute Force Guessing) или используют словари (Dictionary Attack)
- Атака на устройства:
- Автоматическое заражение устройства при посещении вредоносного сайта
- Ransomware:
- Заражение системы вредоносным ПО, которое блокирует доступ к данным и требует выкуп
- Атака прослушивания (Eavesdropping):
- Перехват данных, передаваемых по сети
- Атаки, управляемые ИИ (AI-Powered Attacks):
- Используют ИИ для автоматизации и усложнения атак
6 083
Изучите HTML и CSS за 5 дней - бесплатно и с ментором!
Попробуйте бесплатно — за 5 дней освоите базу HTML & CSS, напишите свой первый код и поймете, стоит ли погружаться в IT глубже.
Почему стоит попробовать?
✅ Никакой воды — только практика
✅ Проверь профессию до того, как вложить в обучение 150+ тыс.
✅ Убедитесь, что код — это не страшно, даже если раньше не получалось
✅ Реальные навыки — после интенсива вы сможете:
Понимать основы HTML & CSS
Работать с типами данных
Писать простые программы
Что будет в программе?
- Как работает Web
- Что такое HTML & CSS
- Основы и синтаксис
- Структура HTML и CSS документа
⚡ Главное — вы наконец попробуете профессию разработчика!
Попробовать
#реклама 16+
learn.result-university.com
О рекламодателе
6 083
Команда «docker run -it»
Когда контейнеру Docker необходимо запустить интерактивное приложение, такое как оболочка, языковая REPL или текстовый редактор, команде «docker run» требуются два дополнительных флага: -i и -t.
6 083
Реклама для бизнеса любого уровня в Яндекс Директе
Создайте эффективную рекламную кампанию с алгоритмами Яндекс Директа 👌
Начните прямо сейчас ⚡
Зарегистрироваться
#реклама
direct.yandex.ru
О рекламодателе
6 083
8 концепций проектирования систем (продолжение к предыдущему посту):
1. Доступность с балансировкой нагрузки (Availability with Load Balancers):
- Распределяет запросы между несколькими экземплярами сервисов, что повышает доступность системы.
2. Латентность с использованием CDN (Latency with CDNs):
- CDN (Content Delivery Network) сокращает время отклика, кэшируя контент ближе к пользователям.
3. Масштабируемость с репликацией (Scalability with Replication):
- Репликация данных позволяет системе масштабироваться, обеспечивая высокую производительность и доступность.
4. Устойчивость с использованием журналов транзакций (Durability with Transaction Logs):
- Журналы транзакций помогают восстановить состояние системы после сбоя.
5. Согласованность с конечной согласованностью (Consistency with Eventual Consistency):
- Система может достичь согласованности данных со временем, даже если данные временно несогласованы.
6. Модульность с ослабленным связыванием и высокой связностью (Modularity with Loose Coupling and High Cohesion):
- Модульность и ослабленное связывание улучшают гибкость и устойчивость системы.
7. Конфигурируемость с использованием кода конфигурации (Configurability with Configuration-as-Code):
- Конфигурация позволяет динамически управлять инфраструктурой и настройками системы.
8. Устойчивость с использованием очереди сообщений (Resiliency with Message Queue):
- Очередь сообщений помогает системе справляться с отказами и перегрузками, балансируя нагрузку между потребителями.
6 083
Дарим подписку на Яндекс Музыку
Ответьте на 1 вопрос и Яндекс Музыка ваша для вас и 3-х ваших близких.
Кинопоиск и Яндекс Книги тоже в подписке.
Попробуйте бесплатно❤️
Попробовать
#реклама 18+
music.yandex.ru
О рекламодателе
Реклама на Яндексе
6 083
По итогам первого полугодия 2025 г. компании предлагали ИТ-специалистам 96 тыс. руб. (медиана по стране в целом), и это на 10% больше, чем в аналогичный период прошлого года.
Наиболее востребованными в ИТ остаются программисты и разработчики, но их популярность постепенно снижается. Если в 2022 г. было зарегистрировано 102,8 тыс. вакансий для этой категории специалистов, то к 2025 г. их количество сократилось до 62,5 тыс.
На фоне общего падения числа ИТ-вакансий (-12%) и роста резюме (+14%) спрос на ключевые, но широко распространенные технологии резко снизился. По сравнению с 2024 годом, количество вакансий, упоминающих SQL, упало на 30% (до 18 тыс.), Linux — на 20% (до 14 тыс.), Python — на 21% (до 12 тыс.), PostgreSQL — на 20% (до 10 тыс.), а разработку технических заданий (ТЗ) — на 39% (до 8.8 тыс.).
Знания, которые еще недавно были конкурентным преимуществом, такие как Git или ООП, все чаще считаются элементарной «технической грамотностью» и даже не выносятся как отдельные требования в вакансиях.
Работодатели все чаще используют практические тесты, архитектурные кейсы, код-ревью и проблемные собеседования для объективной проверки. Сертификации, особенно по облачным платформам (AWS, Azure, GCP), Agile, DevOps, становятся критически важными, особенно в крупных ИТ-компаниях и финансовом секторе.
Портрет успешного кандидата на высокооплачиваемую позицию — это междисциплинарный специалист-лидер, сочетающий глубокую техническую экспертизу с сильными коммуникативными и управленческими навыками, пониманием полного цикла разработки и бизнес-контекста. Активность в Open Source, содержательное GitHub-портфолио, участие в профессиональных сообществах и менторство становятся серьезными конкурентными преимуществами.
https://www.cnews.ru/news/top/2025-07-24_headhunter_74_it-kompanij_ne
6 083
Пользователи Linux могут столкнуться с препятствием, связанным с Secure Boot —11 сентября истечёт срок действия подписанного Microsoft ключа, используемого многими дистрибутивами для поддержки функции безопасности на базе прошивки. В результате системы, возможно, не получат её необходимое обновление.
Secure Boot — часть унифицированного расширяемого интерфейса прошивки (UEFI), который пришёл на смену базовой системе ввода-вывода (BIOS) в современных системах. В Microsoft объясняют, что это «стандарт безопасности, разработанный представителями компьютерной индустрии, чтобы гарантировать, что устройство загружается только с использованием программного обеспечения, которому доверяет производитель».
Большинство устройств поставляются с предустановленной ОС Microsoft, а это означает, что для установки другой ОС требуется сначала отключить безопасную загрузку. И неясно, можно ли в повторно включить безопасную загрузку после установки другой ОС вместе с Windows или вместо неё.
Это ставит дистрибьюторов операционных систем перед выбором: полностью отказаться от поддержки Secure Boot; ожидать, что пользователи будут генерировать и подписывать собственные ключи; или найти способ использовать контролируемые Microsoft ключи db, dbx и KEK для включения Secure Boot в своих системах. NetBSD, OpenBSD и некоторые из их аналогов остановились на первом варианте, в то время как некоторые дистрибутивы Linux и FreeBSD выбрали третий, используя «прокладку» для создания поддержки Secure Boot поверх инфраструктуры Microsoft.
Теперь же Microsoft прекратит использовать истекающий ключ для подписи «прокладки». «Новый ключ, который доступен с 2023 года, может быть не установлен на многих системах; что ещё хуже, это может потребовать от поставщика оборудования выпуска обновления прошивки системы, что может произойти, а может и не произойти. Похоже, подавляющее большинство систем не будет потеряно в процессе обновления, но это может потребовать дополнительных усилий со стороны дистрибьюторов и пользователей», — отмечается в отчёте LWN.
Производители могут добавить поддержку нового ключа в полное обновление прошивки или путём обновления базы данных KEK. Первый вариант предполагает, что производители будут заинтересованы в распространении обновления прошивки для широкого спектра продуктов, чтобы небольшой процент их пользователей мог использовать Secure Boot с ОС, отличной от Windows; второй вариант — непроверенный механизм, работа которого не гарантирована на всех устройствах. В обоих случаях, по крайней мере, некоторым пользователям придётся искать решение самостоятельно.
https://www.tomshardware.com/tech-industry/cyber-security/microsoft-signing-key-required-for-secure-boot-uefi-bootloader-expires-in-september-which-could-be-problematic-for-linux-users
6 083
Приложение Linux Terminal для Android, выпущенное Google в начале этого года, в новой сборке Android Canary позволяет запускать графические приложения Linux.
Приложение Terminal позволяет загружать экземпляр Debian в виртуальной машине и запускать полноценные приложения Linux, недоступные на Android.
При открытии Terminal в этой сборке можно увидеть в правом верхнем углу новую кнопку, которая запускает действие "Display" приложения Terminal и перенаправляет графический вывод из виртуальной машины Linux на хост Android.
На этом экране можно ввести команду «weston», чтобы открыть графическую среду. Weston — это референсная реализация компоновщика Wayland, современного протокола сервера отображения, и он предустановлен в Linux Terminal для Android.
В графической среде удалось запустить такие приложения, как Gedit, простой текстовый редактор.
https://www.androidauthority.com/linux-terminal-graphical-apps-3580905/
6 083
Промокоды на сервисы Яндекса для вашего бизнеса
Используйте как корпоративные подарки для сотрудников, партнеров и клиентов или как призы в маркетинговых акциях.
Дарите промокоды на Маркет, Плюс, Такси и другие сервисы Яндекса - повышайте лояльность и делайте полезные подарки.
Никаких комиссий.
Узнать больше
#реклама
business.go.yandex
О рекламодателе
Реклама на Яндексе
6 083
Стратегии кэширования (продолжение к предыдущему посту)
Кэширование — это концепция хранения часто используемых данных во временном месте, доступ к которому осуществляется быстрее, чем к исходному источнику.
Базы данных часто являются основой приложений, храня критически важную информацию. Однако получение данных из базы данных может быть относительно медленной операцией, особенно для сложных запросов или больших наборов данных.
Таким образом, если мы используем кэширование данных, мы можем:
1. Значительно улучшить время отклика.
2. Снизить нагрузку на базу данных.
3. Обеспечить более плавный пользовательский опыт.
Стратегии, оптимизированные для чтения
Кэширование в стороне (Cache-Aside)
* Приложение сначала проверяет наличие данных в кэше.
* Если данные найдены (попадание в кэш), они возвращаются.
* Если нет (промах кэша), данные извлекаются из базы данных, сохраняются в кэше и затем возвращаются.
* Известна как «отложенная загрузка» — получение данных по требованию.
* Первый запрос для определённого фрагмента данных всегда приводит к промаху кэша, так как данные ещё не загружены.
* Отличается простотой реализации.
Применение:
* Для нагрузок с преобладанием операций чтения и редко изменяющимися данными.
Чтение через кэш (Read-Through)
* Кэш выступает в качестве основного источника данных.
* Если данных нет в кэше:
* они извлекаются из базы данных;
* сохраняются в кэше;
* возвращаются в приложение.
* По сути, это абстрагирование источника данных от приложения.
Применение:
* Для приложений, где критически важны сверхбыстрые операции чтения (аналитика в реальном времени и т. д.).
Предварительное обновление (Refresh-Ahead)
* Кэш проактивно обновляет данные до их истечения, снижая вероятность промахов кэша.
Применение:
* Для приложений с предсказуемыми шаблонами доступа к данным.
Клиентское кэширование (Client-Side Caching)
* Данные кэшируются на устройстве клиента.
* Повышенная сложность, требуется управление аннулированием кэша на стороне клиента.
Применение:
* Для приложений с часто используемым статическим контентом или когда персонализация не является основной задачей.
Стратегии, оптимизированные для записи
Запись через кэш (Write-Through)
* Данные сначала записываются в кэш, а затем «немедленно» в базу данных.
* Операция записи считается завершённой только после обновления и кэша, и базы данных.
* Обеспечивает строгую согласованность данных между кэшем и базой данных.
Применение:
* Для приложений, где критически важна согласованность данных.
Запись позади (Write-Behind / Write-Back)
* Данные сначала записываются в кэш, а затем «асинхронно» в базу данных.
Применение:
* Для приложений, где производительность записи является приоритетом, и допустима некоторая потеря данных.
Запись в обход (Write-Around)
* Обходит кэш при записи, записывая напрямую в базу данных.
* Кэш обновляется только при последующих операциях чтения.
Применение:
* Для нагрузок с преобладанием операций записи, где большинство данных записывается один раз и редко читается.
