Search
Write a publication
Pull to refresh
Вадим @BigDflzread⁠-⁠only

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

Send message

Откройте для себя весь потенциал AbortController

Level of difficultyMedium
Reading time6 min
Views8.8K



В этой статье я расскажу об одном из стандартных API JavaScript, о котором, вы, возможно не слышали. Это AbortController.


❯ Что такое AbortController?


AbortController — это глобальный класс в JS, который можно использовать для прерывания любых асинхронных операций.


const controller = new AbortController()

controller.signal
controller.abort()
Читать дальше →

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

Level of difficultyMedium
Reading time22 min
Views8.2K

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

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

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

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

Читать далее

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

Reading time18 min
Views200K

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

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

Читать далее

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

Level of difficultyEasy
Reading time5 min
Views7.9K

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

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

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

Читать далее

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

Reading time5 min
Views5.3K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time5 min
Views12K

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

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

Читать далее

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

Level of difficultyEasy
Reading time4 min
Views21K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time6 min
Views4.9K

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

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

Читать далее

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

Level of difficultyMedium
Reading time11 min
Views14K



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

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

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

Level of difficultyMedium
Reading time12 min
Views19K

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

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

Подробнее

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

Level of difficultyEasy
Reading time2 min
Views14K

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

Читать далее

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

Level of difficultyEasy
Reading time3 min
Views6.3K

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

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

Читать далее

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

Level of difficultyMedium
Reading time28 min
Views28K


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


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

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

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

Level of difficultyMedium
Reading time6 min
Views10K


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


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


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

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

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

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

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

Level of difficultyEasy
Reading time13 min
Views7.1K



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

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

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

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

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

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

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

Level of difficultyHard
Reading time14 min
Views16K

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

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

Читать далее

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

Level of difficultyEasy
Reading time21 min
Views13K

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

Читать далее

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

Level of difficultyMedium
Reading time9 min
Views4.4K

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

Читать далее

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

Level of difficultyMedium
Reading time11 min
Views4K

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

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

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

Настройка Firewall iptables

Настройка Fail2ban

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

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

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

Читать

Information

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