Pull to refresh
2
Shishka @Shishkaread⁠-⁠only

ИТ

Send message

Можно ли запеленговать сигнал радиоприемника? История и современность вопроса

Reading time5 min
Views64K
Практически на всех форумах, посвященных радио, периодически возникает вопрос — можно ли запеленговать работающий радиоприемник. Наиболее «продвинутые», кто еще помнит азы физики, отвечают, что можно т.к. в приемнике есть гетеродин, который излучает, другие говорят, что нельзя. Вопрос был актуален лет 30 назад, когда люди тайком слушали «голоса», но и сейчас можно услышать страшилки о том, что если настроить приемник на «милицейскую волну», то за владельцем тут же приедут.

Так можно или нельзя? Попробуем разобраться и проведем эксперимент.

Подробности под катом.
Читать дальше →

Безопасность DevOps. Автоматизация и новые инструменты

Reading time6 min
Views6.1K

Цикл популярности понятий из безопасности приложений, 2022 год. Из одноимённого отчёта Gartner. См. также обновление за 2023 год

В процессе внедрения системы безопасности в DevOps можно использовать многие инструменты, которые уже применяются в компании. Какие-то будут плотно интегрированы в процесс, а другие использоваться периодически.

Кроме старых, внедряются новые инструменты, чтобы устранить пробелы в инструментарии и дополнить возможности для автоматизации. Ключевые инструменты и процессы безопасности показаны на схеме вверху (из доклада Gartner).

Рассмотрим подробнее каждый этап автоматизации и внедрения новых инструментов в существующий рабочий процесс.
Читать дальше →

Жесткие факты о софт скилах

Level of difficultyEasy
Reading time6 min
Views43K

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

Читать далее

WebSocket в Go и причем тут горилла

Level of difficultyMedium
Reading time7 min
Views22K

Привет, Хабр!

WebSocket позволяет открыть интерактивный коммуникационный сеанс между пользовательским браузером и сервером. Здесь большое отличие от традиционного HTTP, который ограничен моделью запрос-ответ и не подходит для сценариев, требующих постоянного обмена данными

Go с помощью своей простоты и поддержкой конкурентности становится хорошим кандидатом для работы с WebSocket.

Читать далее

Проектирование fault-tolerant систем на Go

Level of difficultyMedium
Reading time11 min
Views7.8K

Привет, Хабр!

Fault-tolerant системы — это те, которые способны продолжать функционировать даже в условиях частичных сбоев или неисправностей. Основная фича таких систем заключается в том, чтобы обеспечить непрерывность работы приложения даже при возникновении ошибок или непредвиденных ситуаций. Это достигается за счет ряда архитектурных и программных решений, направленных на предотвращение полного отказа системы при возникновении отдельных сбоев.

Go благодаря своей простоте, производительности и, что наиболее важно, поддержке конкурентности на уровне языка, становится идеальным выбором для создания fault-tolerant систем.

Читать далее

Как и почему в 2024 году мы разрабатываем сайты для крупных клиентов на WordPress?

Reading time10 min
Views23K

WordPress — это изначально блоговый движок, который появился в 2003 году во времена расцвета LiveJournal и MySpace. Благодаря большому количеству внутренних шаблонов, он стал идеальным инструментом индивидуального паблишмента, позволял быстро собрать свой блог и начать писать. 

С тех пор прошло уже 20 лет, WP сильно изменился и стал мощным инструментом для разработки, в том числе коммерческой.

Читать далее

Архивная репликация в PostgreSQL: пошаговая инструкция

Reading time9 min
Views13K

Разбираем c Григорием Тарасенко, инженером команды SQL на примере, как реплицировать базы без использования слотов репликации.

Читать далее

PostgreSQL: вернуть место после delete

Level of difficultyEasy
Reading time3 min
Views12K

У вас есть таблицы, либо ряд таблиц, строки которых нужно очистить и единственный способ, которым вы можете это сделать - это операция DELETE.

Помимо очевидной цели - очистки ненужных данных из таблицы, хотелось бы также увеличить свободное место в области диска, доступного для данных postgresql. Но при определенных условиях - операция DELETE не возвращает место, а операция UPDATE дополнительно его забирает.

Читать далее

Кастомизация бессерверных функций без применения промежуточного ПО

Reading time10 min
Views1.1K
Когда пишешь код для серверного API, часто требуется проделывать схожие шаги: аутентифицировать пользователей, уточнять их роли и выставленные флаги функций, т.д. В большинстве фреймворков для бэкенда безупречно организовано взаимодействие с обработчиками запросов. Часто такой софт называют «промежуточное ПО» (middleware), поскольку он находится между кодом приложений и кодом системы. В этой статье я аргументирую, почему стоит обходиться как можно меньшим объёмом промежуточного ПО, и рассказываю, как при этом не сойти с ума.

Зачем он нам вообще может понадобиться?


На первом этапе работы можно заметить, что каждая функция у вас начинается с множества повторяющихся строк, например:
Читать дальше →

Есть ли Undefined Behavior в Rust?

Level of difficultyMedium
Reading time3 min
Views6.8K

Если вы никогда не сталкивались с Rust-ом, а слышали, что он помогает избежать Undefined Behavior (UB), то отчасти это так. Некоторые делят язык Rust на 2 части: safe и unsafe. Я бы поделил на 4 части: safe, unsafe, const и async. Но нас интересуют safe и unsafe.

Получить UB в Rust-е не сложно - нужно открыть документацию и найти любой метод, помеченный unsafe, например, get_unchecked у Vec. Метод позволяет без проверки границ получить значение из динамического массива. А есть ли UB в safe-подмножестве языка? Есть. Он возможен из-за бага (проблемы) в компиляторе Rust, который живет с 2015 года.

Читать далее

Хостинг по паспорту все ближе: новые изменения в законодательстве

Level of difficultyEasy
Reading time10 min
Views28K

Всем привет! Меня зовут Леонид, я - владелец проекта по подбору виртуальных серверов Поиск VPS, и внимательно слежу за рынком хостинга. В декабре вступил в силу федеральный закон, регламентирующий работу провайдеров хостинга, и организации, в том числе зарубежные, не вошедшие в соответствующий реестр, будут нарушать законодательство после 1 февраля 2024 года, оказывая услуги хостинга. Кроме того, идентификация клиентов становится обязательной, а оказывать услуги можно будет только верифицированным пользователям (верификация проводится методом подтверждения российского номера мобильного телефона или оплаты картой, выпущенной российским банком, или через СБП - систему быстрых переводов, возможны также, например, авторизация через Госуслуги или личная явка с паспортом). Вскоре после этого Hetzner (крупный европейский провайдер хостинга) и GoDaddy (один из крупнейших регистраторов доменных имен и хостинговая компания) начали рассылать своим клиентам из России письма с сообщением о прекращении обслуживания.

Учитывая большие изменения в законодательстве, я решил побеседовать с руководителем LITE.HOST - Евгением @Yoh, чтобы узнать его мнение по этому поводу.

Попробуем разобраться, кого это затронет

Настройки безопасности контейнеров и Kubernetes

Level of difficultyEasy
Reading time11 min
Views6K

В этой статье представлен список инструментов Linux и функционала Kubernetes, регулирующих безопасность контейнеров. Статья имеет описательный характер для базового понимания настроек безопасности, а также для систематизации полезных инструментов и полей спецификации k8s для этих целей. Статья основана на книгах, представленных в главе «Литература».

Безопасность контейнеров в Linux

Основной особенностью контейнеров является изоляция процессов средствами Linux. При этом, приложения в контейнере делят общее ядро операционной системы с другими приложениями. Какие же ограничения применяют контейнеры? 

Контейнеры должны контролировать права процесса, доступ к ресурсам хоста и доступ к другим файлам файловой системы. Разберемся со всем по порядку.

Ограничения прав процесса 

Можно настроить очень простое разграничение доступа для процесса: наличие или отсутствие прав root.

Также можно разрешить запускать некоторые процессы с привилегиями root обычному пользователю, повесив файлу флаг Setuid (если владелец файла -  пользователь root). Setuid позволяет вызвать процесс от имени владельца, а не от имени запускающего пользователя.

Обычно флаг setuid (+s) используют вспомогательные программы для назначения capabilities - возможностей, для которых требуются повышенные привилегии.

Это небезопасно, например, можно задать бит +s для bash-скрипта и через него под привилегиями root выполнить любое содержимое этого скрипта. Но это более правильный вариант, чем давать исполняемому файлу полные права админа. 

Читать далее

Локальные GPT нейронный сети — устанавливаем на домашнем ПК, запускаем и проверяем на адекватность аналоги ChatGPT

Reading time18 min
Views76K

Есть много LLM нейронных сетей, создатели которых говорят, что они аналогичны, а может даже лучше ChatGPT версий 3.5 и 4.0. Давайте попробуем протестировать их, установив их на локальный компьютер, чтобы понять, действительно ли они так хороши.

Читать далее

Почему 4 базовых правила дизайна нужно знать всем, будь ты разработчик, верстальщик или копирайтер

Level of difficultyEasy
Reading time3 min
Views12K

Есть на свете особо ценные приёмы и инструменты, применимые почти к любой профессии. И речь не о пресловутых софт-скилах, с ними всё достаточно очевидно. Куда интереснее поговорить о «жёстких» навыках, которые, за счёт своей универсальности, здорово прокачивают профессиональную эрудицию и не только.

Читать далее

Как создать эффективную посадочную страницу в 2023: всего 3 фактора, от которых зависит конверсионность лендинга

Level of difficultyEasy
Reading time8 min
Views7.5K

Показываю, почему стандартные формулы для оформления лендингов работают не всегда и почему у сайта может быть мало конверсий. В конце — 6 советов о том, как увеличить отдачу от запуска рекламы на лендинг.

Читать далее

За 25 лет я выучил 30 языков программирования. Хочу поделиться своим опытом

Level of difficultyEasy
Reading time10 min
Views56K

Привет, Хабр! Перевели для вас статью программиста-самоучки, в арсенале которого — три десятка языков программирования. Надеемся, она вдохновит вас поделиться собственными историями становления в кодинге не меньше, чем нас в beeline cloud. Приятного чтения!

Всё началось в далёком 1997 году. С тех пор прошло более 25 лет. Свои первые программы я писал еще под ОС Windows 95 и Windows 98. На тот момент мне было около 12 лет – как раз тот возраст, в котором многие из моего поколения начинали знакомство с программированием. Первым моим языком был Logo, используемый в MicroWorlds от LCSI (Logo Computer Systems Inc). Я получил эту программу от родителей в подарок.

Исчерпав возможности Logo в ограниченной среде MicroWorlds, я перешел на Visual Basic. По очень простой причине — он был мне понятен и к тому же доступен прямо в Microsoft Office. Visual Basic 6 стал первым «настоящим» языком программирования, с которым я познакомился.

Читать далее

Продуктовый конкурентный анализ

Reading time9 min
Views12K

В современном мире бизнеса конкуренция становится все более жесткой, а рынки все более насыщенными. В таких условиях успех компании во многом зависит от того, насколько хорошо она знает своих конкурентов и умеет адаптироваться к изменениям на рынке. Один из инструментов, который позволяет собирать и анализировать информацию о продуктах, — продуктовый конкурентный анализ

На этом текст от искусственного интеллекта (ИИ) заканчивается, дальше — авторский материал, так как в описании методологии ИИ не раскрывает ошибки, которые и привели нас к необходимости написать статью.

Читать далее

Виртуальная камера для WebRTC

Reading time5 min
Views6.1K

Технология работы персонифицированной виртуальной вебкамеры для WebRTC: анимирование 3D модели пользователя в браузере для создания видеотрека, заменяющего камеру пользователя и синхронного с аудио от микрофона.

Читать далее

Микросервисы на основе событий с Kafka Streams и Spring Boot

Level of difficultyMedium
Reading time32 min
Views20K

Всем привет! Это моя первая статья на Habr, так что не судите строго за стиль, а вот по содержанию буду рад любой конструктивной критике.

Статья основана на публикациях Confluent о том, как можно реализовать микросервисную архитектуру на основе событий с помощью Kafka Streams и KSQL.

Читать далее

Из Go в Rust или ад generics

Level of difficultyEasy
Reading time3 min
Views11K

В Go ввели generics и он потерял одно из своих основных преимуществ: легкую читаемость.

Как же обходились без шаблонов в Go 13 лет? Это не помешало выпустить отличные библиотеки и сделать хорошую стандартную библиотеку! При этом сохранялась лаконичность и легкость языка. А теперь...

Читать далее

Information

Rating
Does not participate
Location
Макеевка, Донецкая обл., Украина
Date of birth
Registered
Activity