Pull to refresh
0
@Redlumusread⁠-⁠only

User

Send message

Голый Линукс — запуск ядра-одиночки

Reading time11 min
Reach and readers21K

Итак, Linux - не операционная система, а только ядро для неё. Всё остальное приходит от проекта GNU (и других). И вот интересно - на что годится ядро само по себе?

Эта статья - очень "начального" уровня. Устроим маленький эксперимент - создадим чистую виртуальную машину и попробуем запустить ядро Linux "без всего". Или почти "без", т.к. нам понадобится загрузчик ОС - и какая-нибудь "пользовательская программа" (её мы сотворим сами). Конечно, продвинутые пользователи Linux такой "эксперимент" могут провести просто отредактировав параметры запуска при включении - но наш рассказ всё же для тех кто почти (или совсем) не в теме :)

Бонусом чуть-чуть коснёмся системных вызовов и пару слов скажем о других ядрах.

Загружаемся... Погружаемся...

Джедайские техники Kotlin: inline-функции и reified-типы

Level of difficultyMedium
Reading time8 min
Reach and readers7.6K

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

Kotlin радует лаконичным синтаксисом и мощными фичами, но некоторые из них остаются недооценёнными. Сегодня поговорим про две джедайские техники Kotlin, о которых многие слышали, но не все используют в полной мере: это inline-функции и reified-типы.

Прокачать Kotlin

Как я осознал, что не умею кодить

Level of difficultyEasy
Reading time4 min
Reach and readers28K

Вчера мой скрипт завис. Процессор горел на 100%. Я убил процесс.

Я Senior Developer с 10 годами опыта. Пишу на Python, знаю Java и много модных фреймворков. Но в этот момент я понял: я не умею программировать. Точнее, я умею использовать инструменты. Но я не понимаю природу вычислений.

Эта статья — о том, как одна математическая задача изменила моё понимание разработки.

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

Возможно, и тебя тоже.

Читать далее

Теорема Пифагора: великий обман школьной программы. Как абстракция убила смысл

Level of difficultyEasy
Reading time12 min
Reach and readers63K

Все мы знаем эту формулу. a^2 + b^2 = c^2.

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

Но задавали ли вы себе когда-нибудь вопрос: почему именно квадраты?
Почему не кубы? Почему не просто сумма модулей |a| + |b|?

Если вы спросите учителя, он нарисует квадратики на сторонах треугольника. Если вы спросите преподавателя вуза, он напишет определение скалярного произведения.
И оба они, по сути, вас обманут. Или, скажем мягче, недоговорят правду.

Сегодня мы разберем этот «черный ящик» и увидим, что теорема Пифагора — это вовсе не про треугольники. И доказывать её нужно совсем не так, как нас учили.

Школьная программа не дает ответа. Более того, история преподавания теоремы Пифагора — это история того, как живую, наглядную геометрию превращали в сухую, мертвую алгебру. Нас уводили всё дальше от понимания сути в сторону абстракции.

Сегодня мы разберем этот путь деградации и покажем доказательство, которое вернет вас к реальности. Спойлер: теорема Пифагора — это не про треугольники. Она про зеркала.

Приготовьтесь к полному разрыву всех шаблонов!

Читать далее

6 простых вопросов, из-за которых сыпятся даже сильные кандидаты (и как отвечать правильно)

Level of difficultyEasy
Reading time9 min
Reach and readers56K

Почему оффер ломается не на алгоритме, а на вопросе «кем вы видите себя через 5 лет?» — разбираю шесть таких ловушек и показываю сильные ответы.

Читать далее

Что происходит, когда запускается код?

Level of difficultyMedium
Reading time9 min
Reach and readers9.4K

Когда программист пишет код, он редко задумывается о том, что происходит с программой после того, как он её написал. Но понимание этого процесса необходимо для эффективной отладки, оптимизации и написания надёжного кода. А ещё, это просто интересно.

Читать далее

Многопоточность для самых маленьких. Виртуальные потоки. Часть 2

Level of difficultyEasy
Reading time9 min
Reach and readers9.2K

Всем привет!

Многопоточность в Java развивается очень быстро, а многие всё ещё ограничиваются обычными потоками и ключевым словом synchronized. Сегодня я хочу рассказать именно о виртуальных потоках: как с ними работать, почему они меняют подход к многопоточности и какие задачи решают лучше традиционных механизмов. Буду объяснять просто и понятно, чтобы материал был полезен как новичкам, которые только знакомятся с виртуальными потоками, так и опытным разработчикам, которые хотят понять современные практики и возможности Project Loom.

Читать далее

Чтобы тебя не вычислили рекламщики, нужно быть параноиком

Level of difficultyEasy
Reading time9 min
Reach and readers14K

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

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

Читать далее

+30% к скорости написания автотестов и сотни чек-листов в день: как мы внедряем LLM в QA

Reading time8 min
Reach and readers12K

Привет! Меня зовут Владислав Миронов. Я отвечаю за внедрение LLM в процессы QA Яндекса и в этой статье расскажу, каких результатов мы достигли — от генерации тест‑кейсов и автотестов до помощи в ручном тестировании. Поделюсь не только успехами, но и тем, какие компромиссы и организационные решения понадобились, чтобы всё это заработало.

В статье покажу, как мы разрешаем противоречия между командами, уходим от «зоопарка» инструментов и строим централизованную экосистему, где качество остаётся под контролем: реальные схемы, примеры и цифры, без магии и маркетинга.

Спойлер: рассчитывать можно на многое, но и вложиться придётся основательно. Парой промптов тут, к сожалению, не обойтись.

Читать далее

ProSTQB — бесплатная платформа, которая выводит подготовку к ISTQB на новый уровень

Level of difficultyEasy
Reading time4 min
Reach and readers7.8K

Подготовка к ISTQB давно стала своеобразным «обрядом посвящения» для тестировщиков.

Сертификация востребована, работодатели её любят, а многие специалисты воспринимают её как способ структурировать знания и выйти на новый уровень в профессии.

Но есть проблема, о которой вслух говорят редко: готовиться к ISTQB всё ещё неудобно.

Куча устаревших сайтов, странные интерфейсы, вопросы 2011 года, закрытый контент, платные попытки, непонятные подписки, рекламные баннеры — всё это превращает нормальную учебную задачу в мучение.

Именно поэтому я решил сделать тот тренажёр, который мне самому хотелось бы использовать. Так появилась платформа ProSTQB — бесплатный удобный инструмент для подготовки ко всем уровням ISTQB, без рекламы, без paywall’ов и без боли.

Сегодня ProSTQB доступен сразу в трёх форматах: веб-версия, приложение для iOS и приложение для Android, что делает его одной из самых доступных платформ на рынке.

Читать далее

Разработка электропривода. Часть 2. Электронная часть электропривода

Level of difficultyMedium
Reading time32 min
Reach and readers9K

В этой части цикла, посвященного разработке электропривода, мы сосредоточимся на его электронной составляющей. Рассмотрим топологии силовых узлов AC/DC, DC/DC и DC/AC электропривода, подбор электронных компонентов, а также ключевые нормативные стандарты, которых необходимо придерживаться при проектировании. Отдельный раздел будет посвящен выбору вычислительной платформы для управляющей платы — FPGA, DSP, SoC и другие варианты. Кроме того, затронем вопросы функциональной безопасности (safety) в электронике и требования к безопасной работе электропривода.

Читать далее

Основы безопасности веб-приложений: краткий «курс» по выявлению уязвимостей

Level of difficultyHard
Reading time22 min
Reach and readers8.5K

Как выглядит веб-приложение с точки зрения злоумышленника?

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

Вы можете развернуть учебную среду на своей машине, повторять команды и проверять результаты их выполнения на вашем экземпляре приложения. Для демонстрации техник разведки и инструментов я использую общеизвестные уязвимые ресурсы: demo.testfire и testphp.vulnweb. Их URL я положил в workshop/urls.txt в репозитории проекта.

Дисклеймер: статья носит ознакомительный характер, и любые попытки злоупотребления данной информацией незаконны и могут повлечь за собой уголовное преследование в соответствии со статьями 272 и 273 УК РФ.

Читать далее

Почему ваш сайт ломается, когда его трогают пальцем

Level of difficultyEasy
Reading time17 min
Reach and readers13K

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

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

Привет! На связи Полина, фронтенд-разработчик в Selectel. Раньше я тоже думала, что адаптив в десктопном браузере абсолютно такой же, как на телефонах. Да и вообще мобильный браузер — это просто браузер поменьше (спойлер — нет). В этой статье я расскажу об их различиях, что с этим делать, как прокинуть localhost на реальный телефон и получить DevTools от браузера в смартфоне, чтобы ловить поменьше багов на проде.

Читать далее

Как старые учебники по программированию объясняли сложные вещи проще нас — и что будет, если решать задачи их методами

Level of difficultyMedium
Reading time4 min
Reach and readers43K

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

Читать далее

Java. Многопоточность для самых маленьких. Часть 1

Level of difficultyEasy
Reading time9 min
Reach and readers9.4K

Всем привет!

Многопоточность в Java не стоит на месте, а многие до сих пор используют только synchronized и создают потоки через new Thread(). С этого дня я запускаю серию уроков по современной многопоточности: как её правильно строить, в чём преимущества новых подходов по сравнению со старыми и что из классики всё ещё стоит использовать. Постараюсь объяснять максимально просто и наглядно, чтобы уроки были полезны и стажёрам, которые только начинают разбираться в теме, и опытным разработчикам, которым интересно узнать современный стиль работы с потоками.

Поехали!

Читать далее

Лучшие практики в Sequence-диаграммах для системных аналитиков

Level of difficultyMedium
Reading time15 min
Reach and readers8K

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

Я покажу, как некоторые подходы из мира программирования (те самые best practices и идеи из Clean Code) помогают рисовать sequence-диаграммы чище и понятнее. 

Читать далее

Лучшие практики автоматизации тестирования: 9 принципов стабильных автотестов

Reading time16 min
Reach and readers9.2K

Почему автотесты становятся нестабильными и перестают приносить пользу? Разбираем системные причины флаков, бессмысленных ретраев и бесконечных E2E-монстров. Практические принципы: моки, изоляция, атомарность и минимализм — без философии, только инженерия.

Читать далее

Алгоритмы на графах

Level of difficultyMedium
Reading time8 min
Reach and readers11K

Краткое и доступное руководство по базовым алгоритмам на графах: BFS, DFS, топологической сортировке и алгоритму Дейкстры. Чёткие объяснения, примеры и код на C++ — для тех, кто хочет быстро и уверенно освоить фундамент графовых алгоритмов.

Узнать больше об алгоритмах

Превращаем любой текст в модель знаний — и почему это удобно

Level of difficultyEasy
Reading time4 min
Reach and readers8.3K

Вечером я смотрел на черновик аудита банковской системы. Семьдесят страниц текста — аккуратных, умных… и беспомощных. В них было всё, кроме главного: куда ткнуть пальцем, чтобы увидеть причину и связанный с ней риск.

Я открыл диаграмму и сделал то, чего раньше не делал с текстами: расщепил его на смысловые атомы. Первая глава превратилась в объект. Раздел — тоже объект. Абзац с фразой «есть прямой доступ к БД» — отдельный узел с ссылкой на страницу. Рядом появился «Факт». От него пошли ребра к «Риску» и «Рекомендации».
И тут случилось простое озарение: документ перестал быть рассказом, он стал моделью.

На второй главе я заметил повтор: тот же паттерн всплывает в другом отчёте. Раньше я бы копировал текст. В графе я просто переиспользовал раздел как объект. Тот самый «Интеграционный ландшафт» стал шаблоном — и без лишних объяснений собрал вокруг себя факты, метрики, контроли.

Когда всё склеилось, вопросы заказчика сменились: не «где это написано?», а «какие риски подтверждены фактами?» и «что закроем первым?». Мы щёлкнули по узлу — и увидели цепочку от цитаты первоисточника до предлагаемого изменения архитектуры. Трассировка появилась сама собой, просто потому что текст больше не был плоским.

Читать далее

Математика равновесия: как уравнение Ляпунова держит весь мир в узде

Level of difficultyMedium
Reading time28 min
Reach and readers37K

Это пре-релиз статьи для русской Википедии.

Я выкладываю материал на суд сообщества Хабра. Я хочу, чтобы мы вместе сделали лучший материал по этой теме в рунете.

Моя просьба к вам:

Читайте с пристрастием. Если видите математическую неточность или знаете, как объяснить проще — пишите в комменты.

Забирайте код. Он рабочий, его можно использовать для своих лаб или проектов.

Поддержите пост. Если вам нравится идея качественного научпопа — ставьте лайк и стрелку вверх. Чем больше людей увидит, тем качественнее станет статья.

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

Читать далее
1
23 ...

Information

Rating
Does not participate
Registered
Activity