Search
Write a publication
Pull to refresh
2
0
Константин @ConstOrVar

Разработчик мобильных приложений

Send message

Книга «PostgreSQL 17 изнутри»: заглянем под капот слона

Level of difficultyEasy
Reading time3 min
Views6.1K

Компания Postgres Professional выпустила обновленную книгу Егора Рогова «PostgreSQL 17 изнутри», которая станет настольной для тех, кто хочет понимать, как устроена СУБД. От многоверсионности до типов индексов – все, что нужно для эффективной работы и оптимизации, теперь под рукой.

Читать обзор книги

Тренды Java, часть 2: свой стек или глобальные фреймворки?

Level of difficultyEasy
Reading time4 min
Views3.3K

Продолжаем делиться результатами исследования трендов Java в России. Первую часть о выборе версий Java, систем сборки и IDE, а также использовании ИИ в разработке читайте здесь. Во второй части мы расскажем о том, какие дистрибутивы JDK, фреймворки, языки JVM и профайлеры выбирают Java-разработчики в России.

В исследовании, завершившемся в третьем квартале 2024 года, приняли участие более 500 специалистов из разных отраслей — от финансов и IT до нефтегаза и e-commerce. Более половины респондентов работают в крупных компаниях со штатом более 1000 человек.

Внимание! В 2025 году технологический ландшафт Java в России будет исследовать TechRadar. Присоединяйтесь к анонимному опросу, если хотите повлиять на формирование независимого среза российского рынка Java. Чтобы оставаться востребованным, важно понимать, какие технологии в тренде, а какие уходят.
Спойлер: в конце статьи есть подробности. 

И так, поехали!

Читать далее

Linux-десктоп своими руками: Make Computers Fast Again

Reading time13 min
Views10K

Уже говорил как-то, что в свое время перешел с Windows на FreeBSD в том числе из-за того, что FreeBSD работала быстрее на том же железе, и не требовалось плясок с бубнами, потому что в общем-то всё что нужно - настраивалось от и до.

Потом Linux - потому что лучше поддержка железа, ну и, в общем, никакого желания возвращаться на Windows уже не возникало.

Но время идёт, и вот последние версии Ubuntu до боли напоминают Windows своей неспешностью и сложнопредсказуемостью. А тут еще желание сделать удобный для работы десктоп из TV‑бокса...

В принципе, нашлась уже готовая Armbian‑сборка под мой TV‑бокс, с уже настроенным десктопом XFCE — но несмотря на то, что XFCE считается «легковесной» — она оказалась недостаточно легковесная, не настолько насколько мне бы хотелось.
Заметно подтормаживали окошки, всё в целом как‑то не так...

А ведь несмотря на свою «маленьковость» — компьютер‑то должен быть неплохим: 4Гб RAM, 4 ядра по 1.5ГГц, когда‑то подобные были вообще за пределами доступности, и ведь тогда «всё работало», и работало быстро, на гораздо более медленном железе.
Что же не так, неужели ARM в принципе тормозные процессоры?

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

Читать далее

Книжная полка руководителя: «Нетворкинг для разведчиков»

Level of difficultyEasy
Reading time8 min
Views4.6K

Книга с интригующим названием «Нетворкинг для разведчиков» была написана полковниками СВР Еленой Вавиловой и Андреем Безруковым. Они стали известными в 2010 году после того, как были разоблачены как разведчики‑нелегалы и в том же году в рамках обмена вернулись в Россию. В 2021-м году они решили поделиться своим опытом нетворкинга, опубликовав свою книгу. В этой статье разберем, почему опыт разведчиков‑нелегалов может быть интересен для современных руководителей и приведем основные рекомендации авторов по созданию эффективной сети контактов.

Читать далее

Взлом гиганта: как я нашел уязвимость в поддомене Google и попал в «зал славы» багхантеров

Level of difficultyMedium
Reading time6 min
Views18K

Будни багхантера — это непрерывная охота за уязвимостями, успех в которой зависит не только от опыта и навыков, но и от банального везения. Недавно мне попалась по-настоящему крупная добыча: я обнаружил XSS-уязвимость (межсайтовый скриптинг) в одном из поддоменов Google.

В статье расскажу, как мне удалось заработать на этой находке и оставить свое имя в «зале славы» багхантеров Google.

Читать далее

Rust: объясняем Владение и Субструктурные типы на пальцах

Reading time14 min
Views5.6K

Системы типов помогают разработчикам создавать надежные и безопасные программы. Однако такие термины, как «субструктурные типы» или «владение», нередко кажутся сложными и трудными для понимания, особенно для тех, кто не сталкивался с теорией типов в академической среде.

Новый перевод от команды МойОфис расскажет вам, как субструктурные типы и система владения в Rust помогают создавать безопасные и эффективные программы. Автор разбирает ключевые теоретические аспекты, выясняет, какие преимущества они предоставляют, и показывает, почему их использование становится неотъемлемой частью разработки современных языков. Вы узнаете, как субструктурные типы помогают обеспечивать безопасность и жизнеспособность программ, а также познакомитесь с идеями и проблемами их внедрения на практике.

Читать далее

Идеи ничего не стоят

Level of difficultyEasy
Reading time5 min
Views6.5K

Команда Spring АйО перевела статью одного из создателей Hibernate, в которой он объясняет, почему ему часто приходится отвергать новые и хорошие идеи, и почему это на самом деле не означает, что он является врагом всего нового.

Читать далее

Что помогает разработчику писать безопасный код: обзор инструментов

Reading time10 min
Views5.9K

Современное производство программного обеспечения — сложный процесс, от разработчика требуется не только писать код, но и справляться с целым комплексом сопутствующих задач: отслеживать изменения, проводить тестирование, соблюдать стилистические правила и внутренние стандарты, учитывать безопасность и применять best practices по обеспечению ИБ уже во время написания кода.

Но есть и хорошие новости. Разработчику доступно большое число инструментов, которые упрощают труд: от линтеров до анализаторов и систем автоматизированного тестирования — все они встраиваются в среду разработки и помогают решать сложные задачи, не отвлекаясь от творческой части работы. В этой статье я, Евгений Иляхин, архитектор процессов безопасной разработки в Positive Technologies, как раз расскажу о крайне полезных инструментах, которые автоматизируют рутину и повышают качество кода, позволяя программисту сосредоточиться на разработке новой фичи или поиске оптимального решения.

Читать

Мобильная разработка за неделю #579 (10 — 16 марта)

Reading time4 min
Views1.4K
В новом дайджесте производительный SwiftUI и бесшовное взаимодействие Compose и View, сборка ядра Android и отслеживание угла горизонта, решение задач распознавания, прямые без препятствий, что происходит на рынке разработки, глажка травы и многое другое. Заходите!

Читать дальше →

Notion – это офисный плен! Объясняю, как выбраться с помощью Obsidian

Level of difficultyEasy
Reading time6 min
Views38K

Полгода назад Notion ушёл из России, оставив многих пользователей без удобного инструмента для работы и ведения заметок. Использовать VPN? Не вариант — продуктивность сразу падает. Я тоже столкнулся с этой проблемой, но вместо того, чтобы искать обходные пути, я решил найти достойную замену.

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

Читать далее

Reverse shell на Java или кошмар сисадмина

Level of difficultyHard
Reading time16 min
Views5.7K

По итогам расследований нескольких инцидентов с безопасностью, рассказываю что еще из «зубастого и рогатого» бывает на свете. Еще один повод бросить это ваше ИТ и уйти в монастырь.

Читать далее

План моего курса по основам аналоговой электроники в школе

Level of difficultyEasy
Reading time11 min
Views18K

Эти занятия на правах предмета по выбору я веду в одной из местных школ с 2006 года. Их цель — дать представление юным знатокам — любителям ардуин — некоторое представление о том зачем светодиоду резистор, не говоря уже о пользе транзисторов‑конденсаторов и прочих чудес:‑) Занимаемся в основном на макетных платах, впрочем об организационной стороне дела лучше написать потом отдельно.

Такой список занятий с картинками (!) может быть полезен как тем кто захочет провернуть что‑то подобное в собственной школе (но затрудняется с чего начать) — так и тем кто сам захочет немного освежить понимание всех этих «аналоговых фокусов». Прилагаю и ссылочки на накопившиеся «электронные конспекты» по соответствующим темам. В принципе они годятся и для самообразования:‑)

Тут штук 10 тем и соответствующих схем...

Не только хардкор: что читают R&D-инженеры, когда пытаются отдохнуть

Reading time9 min
Views2K

Привет, хабрчане! Это Миша Степнов, руководитель центра R&D Big Data в МТС Диджитал. Говорят, лучший отдых — это смена деятельности, но полностью уйти от науки и технологий бывает сложно даже в отпуске. Да и зачем уходить, ведь большинство из нас с детства мечтали об этом читая… конечно, научную фантастику. Она позволяет отправиться в путешествие по мирам и вселенным, где работают свои законы физики, математики и логики. В этой подборке — книги, которые мне, как инженеру, понравились. Без магии и мистики, но с крепкой научной основой, живыми идеями и настоящим драйвом. А еще, вы не слышали (если не глубоко в теме) почти ни об одной из них — и зря. Так что, надеюсь, подборка будет полезной!

Читать далее

Как Linux готовится ко сну

Level of difficultyHard
Reading time26 min
Views23K

Статья о том, как Linux переходит в сон, а потом восстанавливает первоначальное состояние. Разбор аспектов перехода системы в гибернацию, расширяющий понимание работы ОС.

Читать далее

Правильный усилительный каскад на биполярном транзисторе

Level of difficultyMedium
Reading time6 min
Views24K
В статье я простыми словами расскажу о схемотехнике однотранзисторного усилительного каскада с улучшенными характеристиками. Рассмотрим назначение каждого элемента схемы. Каскад можно использовать как входную часть усилителя мощности звуковой частоты или как самостоятельный предусилитель с батарейным питанием, например, встроенный в микрофон или в электрогитару. Это позволит улучшить отношение сигнал/шум и упростит задачу оцифровки, так как по сигнальному кабелю будет передаваться сигнал большей амплитуды.


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

Как у нас почти получилось сделать автономного робота для «Битвы Роботов»

Level of difficultyMedium
Reading time13 min
Views3.9K

Базово наш робот не отличался от остальных. Главное отличие состояло в начинке. Роботы на «Битве» — это большие и тяжёлые машинки на радиоуправлении, которых полностью контролирует оператор-человек. Мы собирались сделать автономный «аппарат», который не будет управляться человеком и сможет победить в соревновании.

И у нас практически получилось.

Привет, меня зовут Дмитрий, я аспирант 4-го курса факультета «Систем управления и робототехники» Университета ИТМО. Я расскажу историю, как мы в прошлом году с командой выступили на «Битве роботов» с автономным роботом. Так как подобные роботы на ринге «Битвы» не появлялись, и мы, в свою очередь, ещё не занимались постройкой 160-килограммовых «самодвижущихся» боевых аппаратов, которые управляют «сами собой», опыт был весьма занимательный.

Читать далее

Угон аккаунтов в Telegram: схемы, о которых все должны знать

Reading time21 min
Views144K

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

Читать

Компактные структуры данных

Level of difficultyMedium
Reading time10 min
Views14K

Введение


Несколько месяцев назад в поисках идей по ускорению кода я изучал множество научных статей по computer science. Не буду притворяться, что хорошо их понимал, но меня не пугает непонятное, и я готов признать своё невежество1. Я обнаружил статью, написанную пятнадцать лет назад2, в которой было множество новых для меня концепций. Мне никак не удавалось в них разобраться.

Что же делать дальше? Можно искать другие статьи, чтобы они заполнили мои пробелы. Это рискованное предприятие, потому что они могут запутать ещё больше, но избежать этого нельзя. Я нашёл статью с нужной структурой данных, в которой упоминался исходный код с веб-сайта. Код был написан на C++, а я работаю на Rust, но решил, что всё равно стоит на него взглянуть. Однако зайдя на сайт, я не обнаружил там ресурс, поэтому я написал владельцу веб-сайта, который оказался преподавателем computer science.

Этот преподаватель (Гонсало Наварро) очень тепло меня принял и сразу же ответил мне3 4. И только в процессе общения с ним я осознал, что видел его фамилию на множестве статей в этой области. Оказалось, я познакомился с одним из специалистов мирового уровня в области компактных структур данных (succinct data structure). Невежество может завести очень далеко.

Что же такое компактные структуры данных? Если вы изучали в последние десятилетия computer science, то могли сталкиваться с ними, но мне не доводилось встречаться с ними в процессе работы программистом, а если и доводилось, то я сразу же о них забыл. Но я считаю, что эти структуры данных обладают потрясающими свойствами.

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

Я решил, что стоит немного о них рассказать.
Читать дальше →

Lazarus: история самых успешных хакеров в мире

Level of difficultyEasy
Reading time13 min
Views12K

21 февраля 2025 года, в самую обычную пятницу, тихо и незаметно, произошло крупнейшее ограбление в истории человечества. Выглядело оно под стать времени: неизвестные взломали криптобиржу Bybit и вывели 401 тысячу ETH — эквивалент $1,4 миллиарда. Эксперты уверены, что за преступлением стоят Lazarus — северокорейская группировка, которая уже 16 лет наводит страх на весь мир, и о которой до сих пор толком ничего не известно. Рассказываем историю их деяний.

Среди пользователей взломанной криптобиржи началась настоящая паника: уже в первые 10 часов с момента сообщения о взломе Bybit получила больше 350 тысяч заявок на вывод средств. Последствия от удара по репутации оказались в несколько раз сильнее издержек от самого преступления: уже через три дня, 24 февраля, общие потери средств для Bybit оценивались в $5,5 миллиардов. 

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

Читать далее

Использование неполных объявлений в C++

Level of difficultyMedium
Reading time15 min
Views5.3K


Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это восьмая статья из серии, список предыдущих статей приведен в разделе 6.


C++ относится к языкам со статической типизацией, то есть тип переменных определяется на стадии компиляции, но в ряде случаев компилятору для компиляции без ошибок достаточно знать, что то или иное имя является именем какого-то пользовательского типа (класса, структуры, объединения, перечисления), а полное объявление типа не нужно. В этом случае можно использовать неполное объявление (incomplete declaration), называемое еще упреждающим или предваряющим (forward declaration). Типы с неполным объявлением называются неполными.


Использование неполных объявлений позволяет решить ряд проблем, традиционно свойственных коду, написанному на С++. Отметим следующие:


  1. Можно уменьшить количество включений заголовочных файлов в другие файлы проекта, что сокращает время компиляции, снижает замусоривание пространств имен неиспользуемыми именами, предупреждает потенциальные конфликты имен;
  2. Можно реализовать решения, полностью разделяющие интерфейс и реализацию (непрозрачные указатели);
  3. Можно разрывать циклические зависимости;
  4. Можно снизить использование нетипизированных указателей void*, что повышает надежность и читаемость кода.

Грамотное использование неполных объявлений — один из признаков профессионального кода.

Читать дальше →

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity