IT Kniga
Интернет-магазин компьютерной литературы

Компьютерные новости

Как мы мертвый код убивали

JavaScript - habr.ru - Втр, 27/05/2025 - 05:49

В апреле я съездил на HolyJS. Еще до поездки в расписании конференции моё внимание привлек доклад Виктора Хомякова «Удаление мертвого кода в проекте: практическое руководство». Послушав его, я понял, что могу использовать полученные знания в своем текущем проекте, при этом не затрачивая много усилий. В этой статье я расскажу, что у меня получилось.

Читать далее
Категории: HTML, CSS, Javascript

Pocupochki: когда лень писать список покупок, но есть 2 часа и доступ к Gemini

JavaScript - habr.ru - Втр, 27/05/2025 - 04:28

Рассказываю, как с помощью Google Stitch за 30 секунд получил готовый дизайн приложения, а потом с Gemini за пару часов превратил его в работающий сервис с голосовым вводом.

Посмотреть
Категории: HTML, CSS, Javascript

Устанавливаем Qt на Windows без регистрации и vpn (почти). Часть 2. В мире зеркал

C++ - habr.ru - Пнд, 26/05/2025 - 23:33

Последние время установка фреймворка Qt через официальный qtinstaler у пользователей из России несколько осложнена. Однако, существует ряд альтернативных вариантов получения необходимых библиотек (методы отсортированы от сложного и долгого к простому и быстрому):

Читать далее
Категории: C, C++

Как пропатчить Intellij Idea для FreeBSD

Java - habr.ru - Пнд, 26/05/2025 - 16:32

Здравствуйте, эта статья не про аниме, но мы точно знаем как пропатчить Intellij Idea для FreeBSD. И не боимся об этом рассказывать.

Читать далее

Как я открыл WebSocket для Сомников из Чёрного Зеркала, а они начали водить хороводы

Java - habr.ru - Пнд, 26/05/2025 - 13:24

С приходом популярности генеративных нейросетей, другие виды искусственного интеллекта тоже получили своё место под солнцем. Однако, ещё до этого уже существовали проекты, где искусственный интеллект играет в различные игры, получает очки за достижение целей и обучается на основе своих результатов. При этом, у каждого игрового ИИ есть свой массив доступных ему действий, который может быть постоянным или изменяемым согласно правилам. Я решил собрать небольшой проект, описать механизм взаимодействия ИИ с игровым пространством, а уже потом наполнить игру правилами и смыслом.

Читать далее

Middle JavaScript: как избежать ловушек hoisting'а, объектов и связных списков на собеседованиях

JavaScript - habr.ru - Пнд, 26/05/2025 - 12:34

Привет, Хабр! После успеха прошлого поста делюсь новым разбором задач с собеседований. Сегодня разберём три ключевые темы: поднятие (hoisting), работу с объектами и реализацию связного списка. Погнали!Для кого эти задачи и что проверяют?

Эти вопросы часто встречаются на собеседованиях для Middle JavaScript-разработчиков. Через них проверяют:

➕ Понимание «подводных камней» языка (hoisting, TDZ, ссылочные типы);
➕ Умение работать с низкоуровневыми структурами данных;
➕ Способность предвидеть edge-кейсы.

Читать далее
Категории: HTML, CSS, Javascript

Нативная мощь: Flutter SDK на C++ ядре. Часть 2

C++ - habr.ru - Пнд, 26/05/2025 - 12:00

На связи тимлид Mobile SDK в 2ГИС Александр Максимовский и Flutter-разработчик Михаил Новосельцев (@Sameri11). Наша команда разработала собственный продукт для генерации платформенного Dart-кода на базе публичного C++ API, и мы уже рассказали об основных принципах его работы.

Эта статья — про то, как на основе сырого сгенерированного кода реализовать SDK, готовый к внедрению в пользовательские Flutter-приложения.

Читать далее
Категории: C, C++

Как мы уменьшали размер базы данных

MySQL - habr.ru - Пнд, 26/05/2025 - 07:33

Больше года назад мы в LEADS.SU задумались над высокодоступностью нашей БД и начали искать различные варианты. Круг решений сужало то, что мы используем TokuDB, который уже не поддерживается. Вариантов было несколько, но точно было понятно что запуск кластера повлечет за собой полное клонирование файлов /var/lib/mysql, к тому моменту размер этой директории уже перевалил за пару сотен гигабайт и мы задумались над ревизией данных, что привело к долгоиграющему процессу по уменьшению размера БД.

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

Читать далее
Категории: Базы данных

85 вопросов на собеседовании разработчика QlikView/Qlik Sense (с ответами)

SQL - habr.ru - Пнд, 26/05/2025 - 07:30

Всем привет! Меня зовут Александр Андреев, я старший SRE дата-инженер и бывший BI/DWH-разработчик с многолетним опытом работы с BI‑платформой QlikView/Qlik Sense. В своей статье‑шпаргалке я хочу поделиться с вами практически всеми возможными вопросами и ответами с собеседований на должность Qlik‑разработчика. Данная шпаргалка гарантированно закроет 99% возможных вопросов на собеседованиях на позиции, где упоминается Qlik в качестве BI‑системы. Таких позиций с каждым годом все больше, причем знание Qlik в качестве BI‑системы требуют как с чистых «биайщиков», так и с дата‑инженеров на некоторых сеньорских и lead позициях.

Подготовка к собеседованию на позицию с QlikView/Qlik Sense в качестве BI‑системы требует глубокого понимания как базовых концепций, так и продвинутых техник работы с платформой. В этой статье я собрал 85 наиболее важных вопросов, которые помогут вам систематизировать знания и успешно пройти техническое интервью.

Читать далее
Категории: Базы данных

[Перевод] Как использовать любой CSS-фреймворк в вашем проекте — Часть 5

Компоненты Bootstrap удобны, но не всегда соответствуют нужному дизайну. Чтобы избежать несогласованности и ручного редактирования в каждом проекте, важно выстроить чёткую систему кастомизации. В этой статье рассматривается пошаговая настройка компонента Alert — с использованием SCSS-переменных и структуры дизайн-системы.

Читать далее
Категории: HTML, CSS, Javascript

Python vs Java: кто быстрее и дешевле

Java - habr.ru - Пнд, 26/05/2025 - 07:00

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

Возглавляя бэкенд-команду витрины в KION, я, Леша Жиряков, постоянно балансирую между скоростью вывода фичей и стабильностью работы системы. Сегодня решил перевести абстрактные технические дискуссии в конкретные цифры. А еще — поделиться расчетами, которые помогут принять экономически обоснованное решение: что выбрать для следующего проекта — Python или Java?

Читать далее

Двоичная Java: CDS, CRaC и AOT для ускорения запуска и прогрева JVM

Java - habr.ru - Вс, 25/05/2025 - 07:30

Это текстовая версия доклада с HighLoad++ 2024, с которым выступал один из наших бывших девелопер-адвокатов @RustamKuramshin Также есть отдельная запись доклада, сделанная силами участников программного комитета HighLoad++.

Читать далее

Java Highload и сборка мусора

Java - habr.ru - Вс, 25/05/2025 - 06:16

Разработка HL-решения со строгим SLA по RPS и latency затрагивает множество аспектов. В частности OLTP, мультиплексирование запросов, неблокирующий I/O и прочее. В данной статье хотел бы поговорить про сборку мусора. Мы не будем погружаться в цитирование спецификации. Напротив, взглянем на сборку глазами инженера, перед которым стоит задача оптимизировать процесс с минимальными издержками.

Читать далее

Механика эволюции домов в Pharaoh (1999)

C++ - habr.ru - Сб, 24/05/2025 - 20:52

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

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

В этой статье попробую рассказать, как устроена эволюция домов, какие требования стоят за каждым уровнем жилья и как это было реализовано в оригинальной игре. Если вы вдруг пропустили встречу нашего жреческого круга... простите, предыдущие статьи про восстановление исходников этого старого ситибилдера, — обязательно найдите время, чтобы взглянуть на пару интересных моментов (Добро пожаловать в Древний…, ecs, dynvtbl, логические потоки и Фараоне, Как построить мастабу, Как рисуется карта в Фараоне, Новый дом для Фараона)

Все скриншоты в статье сделаны уже на рендере проекта, исходники на github

To build, or not to build...
Категории: C, C++

Docker в песочнице: Запуск контейнеров без root-прав и привилегий

Java - habr.ru - Пт, 23/05/2025 - 16:54

Приветствую всех! В своей прошлой и по совместительству первой статье я рассказывал про упаковку приложения в докер контейнеры. В комментариях мне сделали замечание, что я не упомянул про защиту приложения и запуск от non-root. Что ж, исправлюсь и сделаю это в отдельной статье. Напомню, что я написал простое приложение для голосование за лучший ресторан и попытался по простому объяснить как произвести его контейнеризацию. Также уточню, что упор я делаю именно упаковку приложения в докер контейнеры, а не на бизнес-логику и UI.

Читать далее

[Перевод] Сервер, которому не суждено было жить

Linux для всех - habrahabr.ru - Пт, 23/05/2025 - 13:01

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

Это история о доверии, технологиях… и задачах, которые не всегда можно решить.

Где-то 16 лет назад со мной связался давний друг. Его беспокоила ситуация, связанная с одним общим знакомым.

Если в двух словах, то дело было в том, что один наш знакомый предприниматель — администратор и владелец нескольких компаний — внезапно скончался. Это был человек, который рулил всеми процессами, и его уход поставил жену с детьми в затруднительное положение. Читать дальше →
Категории: Linux

Опрос: тестовое покрытие — must-have или bullshit

Java - habr.ru - Пт, 23/05/2025 - 10:02

Всем привет! Судя по ответам, которые мы получили от посетителей конференций Joker, Heisenbug и JPoint, примерно в половине компаний есть требования по набиванию тестового покрытия (обычно 60-70% кода должно быть покрыто тестами).

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

Кто отвечает за тестовое покрытие? Должны его набивать разработчики или эта задача ложится на плечи тестеров? Будем благодарны, если ответите на 1 (один) вопрос. Если хочется поговорить о наболевшем и рассказать, как у вас в проекте обстоят дела с тестовым покрытием, пишите в комментарии.

Всем хорошей пятницы и классных выходных!

Скачать последнюю версию Explyt Test плагина можно на сайте или напрямую с GitHub.

Для обратной связи и сообщений об ошибках: GitHub Issues

Для общения: t.me/explyttest

Опрос в один вопрос

Переосмысляя Serverless. Парадигма хранения и обработки данных

MySQL - habr.ru - Пт, 23/05/2025 - 08:24

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

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

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

Читать далее
Категории: Базы данных

Сегодня — Java 30 лет: ретроспектива выдающейся экосистемы разработки

Java - habr.ru - Пт, 23/05/2025 - 07:06

Сегодня Java исполняется 30. Три десятилетия — это эпоха. За это время технологии успели смениться кардинально, а некоторые модные языки — появиться, поиграть мускулами и тихо исчезнуть. А Java по-прежнему тут. Она не просто "ещё жива" — она стабильно занимает лидирующие места в рейтингах, используется в крупнейших корпорациях и продолжает эволюционировать. Как так получилось?

В этой статье я расскажу, почему Java прожила 30 лет и всё ещё чувствует себя уверенно: как она развивалась, как решаются проблемы производительности JVM, и почему на неё до сих пор делают ставку разработчики, архитекторы и CTO.

Предаться воспоминаниям

[Перевод] Стратегическое партнёрство Kotlin и Spring

Java - habr.ru - Пт, 23/05/2025 - 07:04

Команда Spring АйО перевела новость о стратегическом партнёрстве Kotlin и Spring. Полная null-безопасность, официальные обучающие материалы, мощная рефлексия и выразительный DSL — звучит многообещающе.

Читать далее

Большая распродажа компьютерной литературы

Полный список здесь

RSS-материал