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

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

Send message

Паттерны применения многопоточности на коммерческом проекте (на примере Java)

Level of difficultyMedium
Reading time22 min
Views1.7K

После прочтения у вас сложится понимание того как работать с многопоточностью на реальном проекте

Список рассмотренных паттернов:

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

При этом в статье я намеренно не касался низкоуровневых механизмов, таких как synchronized, lock, volatile, барьеров (разве что semaphore), потому что они значительно реже применяются в работе

Читать далее
Total votes 7: ↑7 and ↓0+10
Comments0

Выгодоприобретатели блокировки Youtube

Reading time18 min
Views143K

Недавно возникшая тема с блокировкой (замедлением) Youtube коснулась практически каждого жителя РФ. При этом до сих пор нет ни одного прямого официального заявления о причастности к этой блокировке. Ни одно государственное ведомство не созналось в блокировке, открестился Google, открестились провайдеры интернета. На этом фоне мне показалось важным не только выявить и указать всех причастных, прямых и косвенных, но и установить, кто и в каком отношении является выгодоприобретателем от этой блокировки. Выявить, о каких денежных потоках идет речь и куда они в конечном итоге идут.

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

Читать далее
Total votes 379: ↑364 and ↓15+420
Comments402

Улучшение производительности рендеринга с помощью CSS content-visibility

Level of difficultyEasy
Reading time5 min
Views6K

Недавно я обнаружил интересную ошибку в работе emoji-picker-element:

Я работаю на экземпляре fedi с 19 тыс. пользовательских эмодзи [...], и когда я открываю панель выбора эмодзи [...], страница замирает как минимум на целую секунду, а после этого на некоторое время замирает общая производительность.

Если вы не знакомы с Mastodon или Fediverse, то на разных серверах могут быть свои собственные эмодзи, как в Slack, Discord и т.д. Наличие 19k (на самом деле ближе к 20k в данном случае) крайне необычно, но не является чем-то неслыханным.

Читать далее
Total votes 10: ↑10 and ↓0+15
Comments3

Слово this: управление контекстом выполнения в JavaScript

Reading time5 min
Views3.7K

Привет, Хабр! Сегодня мы поговорим о this, потому что без четкого понимания, как работает this, ваш код может стать источником путаницы и ошибок.

this в JS — это ключевое слово, которое ссылается на текущий контекст выполнения. Его значение зависит от того, где и как была вызвана функция, а не от того, где она была определена.

В этой статье мы разоберем все способы работы с контекстом выполнения, чтобы вы могли уверенно использовать this в любом сценарии.

Читать далее
Total votes 15: ↑10 and ↓5+11
Comments6

Настройка автовакуумирования в PostgreSQL

Level of difficultyEasy
Reading time5 min
Views4.8K

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

Сегодня поговорим о том, как правильно настраивать автовакуумирование в PostgreSQL — одном из механизмов, который позволяет базе данных оставаться "в форме" и поддерживать производительность на должном уровне. Если неправильно подойти к настройке, можно столкнуться с деградацией скорости обработки запросов и внезапным ростом объема данных.

Читать далее
Total votes 16: ↑14 and ↓2+18
Comments12

7 продвинутых приёмов JavaScript, которые должен знать каждый разработчик

Level of difficultyEasy
Reading time4 min
Views17K

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

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

Давайте разберём 7 продвинутых техник в JavaScript, которые помогут вам вывести свои навыки на новый уровень.

Читать далее
Total votes 31: ↑23 and ↓8+21
Comments10

Управление памятью в JavaScript с помощью WeakRef и FinalizationRegistry

Level of difficultyEasy
Reading time6 min
Views3.9K

Сегодня мы рассмотрим тему управления памятью в JavaScript — и речь пойдет не о классическом сборщике мусора, а о возможностях с WeakRef и FinalizationRegistry. Эти инструменты помогают работать со слабыми ссылками и асинхронной финализацией объектов, открывая дорогу к более тонкой работе с памятью.

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

Читать далее
Total votes 17: ↑13 and ↓4+16
Comments10

Шаблоны для эффективной работы с DOM с помощью современного чистого JavaScript

Level of difficultyMedium
Reading time11 min
Views9.2K



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

Читать дальше →
Total votes 32: ↑32 and ↓0+42
Comments5

Обзор криминалистических артефактов Windows

Level of difficultyMedium
Reading time13 min
Views12K

При расследовании инцидентов информационной безопасности на хостах под управлением Windows, специалистам приходится искать свидетельства и доказательства вредоносной активности. В типичной ситуации аналитик сталкивается с физическим диском или его образом, содержащим множество артефактов операционной системы, которые не всегда легко интерпретировать. Иногда стандартный набор артефактов может не обеспечить полный ответ на вопрос: «Что произошло в системе?». Например, если настройки аудита неправильно настроены, то необходимые события в журналах безопасности могут не записаться, или злоумышленник может успеть очистить наиболее популярные артефакты, или данные в процессе сбора или передачи могут повредиться.

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

Подробнее
Total votes 7: ↑7 and ↓0+8
Comments1

DIY устройство в подрозетник с датчиками окружающей среды в комнате

Level of difficultyEasy
Reading time2 min
Views13K

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

Читать далее
Total votes 13: ↑12 and ↓1+15
Comments28

Как загружать большие файлы в телеграмм бота с помощью aiogram 3.x.x

Level of difficultyEasy
Reading time3 min
Views1.9K

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

В этой статье мы рассмотрим, как организовать работу с большими файлами в Telegram-ботах, используя фреймворк aiogram 3.x.x, и как можно развернуть локальный сервер для тестирования и разработки бота. Так же приведу пример простейшего телеграмм бота.

Читать далее
Total votes 4: ↑3 and ↓1+4
Comments5

Как я пришёл к пониманию основ создания Live-дистрибутивов Linux, решив починить свой старый SSD

Level of difficultyMedium
Reading time28 min
Views21K


Был у меня старенький SSD объёмом 240 Гбайт от Kingston, который внезапно перестал работать, вообще перестал распознаваться в системе. Попробовал я подключить SSD к другому компьютеру, попробовал использовать как внешний диск, ничего не дало результата. Поэтому я купил новый, а этот разобрал.


Внешних признаков, указывающих на то, что SSD сгорел, я не заметил, а интуиция говорила: «Проблема программная». Выбрасывать диск не хотелось, поэтому он остался пылиться до «лучших» времён. И вот недавно захотелось попробовать его починить. К своему удивлению, я достаточно быстро нашёл необходимую статью на Хабре, где рассказывалось, как можно оживить SSD на том же контроллере, что и мой, отдельную тему на форуме Ru-Board, а также статью с подробной инструкцией, по ней я и восстановил свой SSD. Но кроме восстановленного SSD я еще приобрёл и закрепил знания по Linux, которые изложил в этой статье. Всем, кому интересно, добро пожаловать под кат.

Читать дальше →
Total votes 46: ↑46 and ↓0+63
Comments10

Неизвестно полезный CSS. Часть 4

Level of difficultyMedium
Reading time6 min
Views8K


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


Неважно, верстаете ли вы сайт для малого бизнеса или создаёте супермодное React приложение. Они поддерживаются большинством браузеров. Отдельно отмечу, что я не считаю IE11 современным браузером. По этой причине я не учитывал его.


Сегодня мы рассмотрим:

  • сброс стилей до значений, взятых из веб-стандартов;
  • возврат значений свойств, установленных в браузере;
  • что можно сделать с прыжками контента при открытии и закрытии модального окна;
  • возможность отобразить текст «красиво» с помощью ключевого слова system-ui;
  • способ стилизации элементов на языке, отличающимся от основного.

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

Читать дальше →
Total votes 36: ↑36 and ↓0+53
Comments16

Как Google обрабатывает JavaScript в процессе индексации веб-страниц

Level of difficultyEasy
Reading time13 min
Views5.4K



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

Читать дальше →
Total votes 23: ↑23 and ↓0+35
Comments7

Сравнение структур разделов GPT и MBR

Reading time11 min
Views679K
Вы когда-нибудь задумывались о том, как загружается компьютер? Независимо от аппаратуры и операционной системы, все компьютеры при загрузке используют или традиционный метод BIOS-MBR, или более современный UEFI-GPT, реализованный в последних версиях ОС.

В этой статье мы сравним структуры разделов GPT и MBR; GPT означает GUID Partition Table, а MBR — Master Boot Record. Начнём с того, что разберём сам процесс загрузки.

В следующих главах выделяются различия между стилями разделов GPT и MBR, в том числе приводятся инструкции, как осуществить преобразование между двумя стилями, и советы, какой из них выбрать.
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments38

Как сделать безопасную загрузку с полностью зашифрованным диском на Linux без загрузчика на UEFI

Level of difficultyHard
Reading time14 min
Views12K

Наша новая статья — для довольно искушённых пользователей Linux. В ней DevOps-инженер Алексей Гаврилов разобрал, как установить Debian или аналогичный дистрибутив на полностью зашифрованный диск без загрузчика на UEFI с включённым Secure Boot. 

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

Читать далее
Total votes 45: ↑45 and ↓0+57
Comments21

Ручная установка Arch Linux для кибербулочек с капустой

Level of difficultyEasy
Reading time21 min
Views7.2K

Подробный туториал посвящённый установке Arch Linux для абсолютных новичков. Проведём тебя за ручку, от начала и до конца.

Читать далее
Total votes 11: ↑10 and ↓1+12
Comments22

Как подружить веб-компоненты и JS-фреймворки

Level of difficultyMedium
Reading time9 min
Views4.1K

Всем привет, я Роман Троицкий. Очень люблю веб-разработку; участвовал в проектах, попавших на Awwwards, Tagline и GoldenSite; помогаю организовывать митап Moscow CSS; участвовал в записи и разработке курса по фронтенду для Skillbox. На примере своего проекта я расскажу о сложившейся с Web Components ситуации, опишу их достоинства и недостатки. 

Читать далее
Total votes 20: ↑19 and ↓1+28
Comments7

Как протестировать и обезопасить почтовый сервер в Debian и Ubuntu с ispmanager

Level of difficultyMedium
Reading time11 min
Views2.5K

Это вторая часть статьи о настройке почтового сервера. Расскажу о тестировании настроек почтового сервера и настройке его безопасности с помощью AppArmor, iptables и Fail2ban. Инструкция применима для Debian Linux и дистрибутива Ubuntu.

В этой статье:

Тестирование настроек почтового сервера

Настройка Firewall iptables

Настройка Fail2ban

Безопасность RoundCube

Создание профилей AppArmor

Процесс установки и настройки почтового сервера описал в первой части статьи — «Как настроить почтовый сервер в Debian и Ubuntu с ispmanager, чтобы защититься от спама»

Читать
Total votes 6: ↑5 and ↓1+6
Comments0

Как синхронизировать потоки в Java

Level of difficultyEasy
Reading time6 min
Views3.3K

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

Всё начинается с потребности в быстродействии и масштабируемости. C несколькими потоками можно обрабатывать больше операций одновременно.

В этой статье мы рассмотрим, как синхронизировать потоки в Java.

Читать далее
Total votes 15: ↑12 and ↓3+13
Comments9

Information

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