Pull to refresh
Вадим @BigDflzread⁠-⁠only

Пользователь

Send message

Как перестать бояться кодировок в Java — лайфхак для новичков

Reading time5 min
Views3.7K

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

Читать далее

Настройка собственного почтового сервера

Reading time7 min
Views178K

Зачем нужен собственный почтовый сервер можно почитать в оригинальной статье. А поскольку на "habr" обретает надежду всяк сюда входящий, то далее пошаговая инструкция как сделать все настройки, чтобы почтовый сервер функционировал правильно: мог достучаться до любого адресата и сообщения не помечались как спам.

Читать далее

Тактовая кнопка для управления питанием Raspberry Pi

Level of difficultyMedium
Reading time4 min
Views2.8K

Сказ о том, как я реализовал «взрослое» управление питанием одноплатника на одной тактовой кнопке с потреблением в выключенном состоянии 1,2 мкА.

Power On-Off

Да, этот HTML и CSS старый, но всё ещё полезный

Reading time6 min
Views11K

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

Следя за развитием HTML и CSS, очень сложно запомнить всё. Я заметил это, ведя свой канал и общаясь с коллегами. Многие люди не знают про возможности HTML и CSS, которые были внедрены в браузеры 6 лет назад или раньше.

Только их возраст не является недостатком. Они всё ещё полезны в современной разработке. По этой причине я собрал их в небольшой список и на основе его написал эту статью. Надеюсь, найдёте для себя что-то полезное.

Давайте посмотрим, что я подготовил.

Читать далее

ТОП-5 сервисов и программ для бесплатного редактирования PDF-файлов

Level of difficultyEasy
Reading time7 min
Views10K

Когда-нибудь учёные признают PDF одним из самых коварных форматов в истории документов. Особенно если перед вами 120 страниц с таблицами, скриншотами и… одной крошечной ошибкой.

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

Но, к счастью, времена меняются! В этом обзоре мы собрали пять сервисов для различной работы с PDF-документами.

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

Приятного чтения!

Читать далее

Установка Windows через CMD

Level of difficultyMedium
Reading time6 min
Views17K

Приходилось ли вам устанавливать современные версии Windows? Если да, то вам точно знаком установщик, каждый этап которого прогружается несколько секунд, и который яростно навязывает вам использование аккаунта Microsoft, с каждым обновлением делая использование локального аккаунта всё труднее и труднее.

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

Читать далее

Плохие JOIN’ы: приемы, которые (нечаянно) кладут прод

Level of difficultyEasy
Reading time5 min
Views25K

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

В этой статье разбираем один из самых коварных способов убить базу — плохие JOIN'ы. Казалось бы, простое дело: связать пару таблиц — и вперёд. Но если в ON засунуть LOWER(email), забыть про индексы или перепутать LEFT JOIN с INNER — сервер мигом начнет дышать на ладан.

Читать далее

Как спроектировать потокобезопасный класс в Java

Level of difficultyMedium
Reading time7 min
Views4.9K

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

Читать далее

Как переносить «висячие» слова на следующую строку с помощью JavaScript

Level of difficultyEasy
Reading time3 min
Views2.3K

Для автоматического предотвращения переносов после коротких слов можно использовать JavaScript, который заменяет обычные пробелы на неразрывные пробелы ( ) после определённых слов.

Читать далее

document.currentScript: что такое и с чем едят

Level of difficultyEasy
Reading time9 min
Views2.7K


Сначала я недооценил document.currentScript, но оказалось, что он отлично подходит для передачи параметров конфигурации прямо в теги <script> — и это далеко не все.


Порой я натыкаюсь на давно существующие браузерные API в JavaScript, о которых, по идее, я должен был узнать гораздо раньше. Например, window.screen или метод CSS.supports(). К счастью, я понял, что не один такой. Помню, как однажды упомянул window.screen в посте и получил неожиданно много комментариев от людей, которые тоже впервые о нем слышали. Это меня немного приободрило — я почувствовал себя не таким уж глупым.


Видимо, дело не в том, как давно существует API, а в том, насколько он полезен в реальных задачах. Если window.screen почти нигде не используется, о нем легко забыть.


Но иногда все же появляется неожиданный шанс применить одну из этих малоизвестных возможностей. Похоже, я как раз нашел такой случай для document.currentScript — и намерен использовать его по максимуму.

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

Новый способ стилизации отступов в CSS

Level of difficultyEasy
Reading time4 min
Views8.5K

Попрощайтесь с хаками в виде бордеров и псевдоэлементов и поздоровайтесь с CSS gap decorations.

Команда разработчиков Microsoft Edge рада сообщить, что CSS gap decorations - новый способ стилизации отступов между элементами flex, grid и многоколоночных макетах - теперь доступны для пробного использования разработчиками в Chrome и Edge 139!

Попробуйте его и поделитесь своими отзывами, чтобы помочь сформировать будущее этого API.

Читать далее

Netbeans 26 C++ (clang/clangd) + build system

Reading time2 min
Views2.6K

Всем привет. Стал нужен IDE минимальный, и я вспомнил, что есть Нетбинс. Скачал мне он очень понравился - удобный, но чего-то не хватает.

Как сделать рабочим Нетбинс 26(с++, clangd), когда какой-то модуль, который раньше в плагинах работал теперь не работает. Давайте рассмотрим этот нюанс.

Читать далее

Руководство по администрированию Linux для начинающих

Level of difficultyEasy
Reading time7 min
Views22K

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

Читать далее

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

Level of difficultyMedium
Reading time19 min
Views3.4K

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

Читать далее

Отпечаток браузера: принципы, реализация и способы противодействия

Level of difficultyEasy
Reading time9 min
Views3.6K

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

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

Читать далее

Автоматический подбор браузером контрастного цвета в CSS

Level of difficultyEasy
Reading time10 min
Views2.2K

Вам когда-нибудь хотелось, чтобы можно было написать простой CSS для объявления цвета, после чего браузер сам бы определял, чёрный или белый должен сочетаться с этим цветом? Теперь это возможно благодаря contrast-color(). В статье мы объясним, как это работает.

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

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

Читать далее

Компьютерные сети «под капотом»: детальный разбор по уровням OSI и TCP/IP

Level of difficultyMedium
Reading time36 min
Views20K

На собеседованиях часто задают знаменитый вопрос, узнаваемость которому по большей части дал facebook*: «Что происходит после того, как вы вводите URL сайта в адресную строку браузера и нажимаете Enter?». Несмотря на кажущуюся простоту, этот вопрос покрывает широкий спектр тем – DNS, TCP/IP, HTTP, и даже работу браузера. Разработчики разных уровней иногда теряются в деталях ответа. Понимание этого процесса важно для инженеров – оно показывает, как взаимодействуют между собой различные сетевые протоколы и уровни. Ниже мы шаг за шагом рассмотрим, как данные проходят через каждый слой сетевого стека, и проиллюстрируем это примерами.

Читать далее

Как делать внешние редиректы с JavaScript?

Level of difficultyEasy
Reading time5 min
Views5.4K

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

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

Читать далее

Меню для отзывчивого интерфейса без скриптов

Level of difficultyMedium
Reading time12 min
Views3.6K

В этой статье мы расскажем как создать отзывчивое меню по принципу mobile-first, используя только HTML и CSS — без JavaScript. Полный код, используемый в этой статье, доступен в репозитории на GitHub.

Читать далее

Скользящие метрики без тормозов: SQL

Level of difficultyEasy
Reading time4 min
Views1.5K

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

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

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

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Registered
Activity