Как стать автором
Обновить
2
0

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

Отправить сообщение

Тестируем отечественную виртуализацию: итоги и выводы

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 10K

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

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

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

Читать далее
Всего голосов 21: ↑18 и ↓3 +15
Комментарии 12

Тормозящая виртуализация на x86. Небольшая попытка разобраться. Часть 1: Общий обзор

Уровень сложности Сложный
Время на прочтение 10 мин
Количество просмотров 13K

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

Про что текст. Я знал, что виртуализация «тормозит по сравнению с baremetal», но заметил, что я, и не только я, порой не понимают «почему» и списывают это на превратности климата, кривой код в кровавом энтерпрайзе, и просто на «так устроен мир». Но ведь так нельзя (можно), надо примерно представлять — почему тормозит, и насколько тормозит.

Читать далее
Всего голосов 54: ↑44 и ↓10 +34
Комментарии 25

Тормозящая виртуализация на x86. Небольшая попытка разобраться. Часть 2: ESXi by Broadcom

Уровень сложности Сложный
Время на прочтение 8 мин
Количество просмотров 8K

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

Часть 2. Что из этого следует, и как устроен планировщик в Broadcom ESXi. Тут не будет ничего нового для тех, кто открывал документацию про изменение модели планировщика side-channel aware scheduler (SCA) - SCAv2, и дополнительно читал Performance Optimizations in VMware vSphere 7.0 U2 CPU Scheduler for AMD EPYC Processors и Optimizing Networking and Security Performance Using VMware vSphere and NVIDIA BlueField DPU with BWI

Читать далее
Всего голосов 37: ↑27 и ↓10 +17
Комментарии 7

Тестирование производительности 1С на СУБД MSSQL 2022 и PostgreSQL 15 (на 20, 40, 60,80, 100 пользователей)

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 13K

В начале 2024 года мы решили провести новое исследование производительности 1С:Предприятие на СУБД MSSQL и PostreSQL и вот что получилось...

Читать далее
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 22

Лучшее соединение враг хорошего?

Время на прочтение 5 мин
Количество просмотров 3.7K

Некоторые структурные проблемы в запросах 1С поменять невозможно без изменения платформы. Сколько производительности мы на этом теряем? На примере простого регистра сведений видно, что достаточно много.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 15

TypeScript тип any против всех

Время на прочтение 3 мин
Количество просмотров 8.3K

В жизни каждого разработчика на TypeScript наступает момент, когда ему хочется рвать с все связи с типом any. А ведь по началу, он казался таким милым! Сделай переменной аннотацию типа any и используй любое свойство и метод этой переменной так, как привык работать в JavaScript. Никаких тебе ошибок, все чинно и спокойно, по-старому.

Документация TypeScript оправдывает использование any только на время переноса кодовой базы из JavaScript в TypeScript, но считает постыдным его использование в полноценном проекте. Казалось бы, все хорошо, только в описании типов библиотечных функций самого TypeScript аннотации any встречаются. Очень полезный JSON.parse, один из таких методов. Мы можем каждый раз писать as unknown, а можем доопределить библиотечный интерфейс.

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 10

5 причин почему Playwright лучше Cypress

Время на прочтение 6 мин
Количество просмотров 13K

Перевод статьи Alister ScottFive reasons why Playwright is better than Cypress

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

Читать далее
Всего голосов 25: ↑25 и ↓0 +25
Комментарии 6

Обработка ошибок в Rust

Время на прочтение 12 мин
Количество просмотров 13K

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

Читать далее
Всего голосов 40: ↑38 и ↓2 +36
Комментарии 23

Vite.js и Vue.js

Время на прочтение 7 мин
Количество просмотров 41K

Я нашёл только 3 статьи по Vite.js на Хабр, там были некие обзоры функционала и описание фишек данного инструмента.

Хорошо, тогда вопрос, что же это за инструмент такой и в чем преимущества использовать его при разработке? Если мы зайдем на официальный сайт - то здесь выделяется 6 основных фишек:

Читать далее
Всего голосов 8: ↑5 и ↓3 +2
Комментарии 5

Websocket API на nodejs по новому

Время на прочтение 5 мин
Количество просмотров 19K

О чем эта статья?

1. uWebsockets.js - высокопроизводительная реализация http/websocket сервера для nodejs

2. AsyncAPI - спецификация для асинхронного API, с помощью которой можно создать описание Websocket API

3. Простой пример websocket API с использованием библиотеки wsapix:
- создадим websocket сервер, используя uWebsockets.js
- настроим валидацию получаемых и отправляемых сообщений
- добавим генерацию документации из кода

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Комментарии 9

«Состояние повышенной вздрюченности» сотрудников: проблематика и последствия

Время на прочтение 7 мин
Количество просмотров 16K

"Каждый день ругают и почти не хвалят, ищут только, чтобы найти что-то… . Еще я заметил, что начальники, зная о возможной ошибке, специально ждут пока она случится, чтобы потом, как они говорят, “на личном опыте показать, как неправильно я поступил". В "мордоре", мне кажется, было повеселее..."

Читать далее
Всего голосов 18: ↑15 и ↓3 +12
Комментарии 17

Генерация документации с использованием JSDoc

Время на прочтение 8 мин
Количество просмотров 43K

JSDoc - это язык разметки, используемый для аннотирования исходного кода JavaScript с использованием комментариев. Аннотации обрабатывается различными инструментами для создания документации в доступных форматах, таких как HTML и Rich Text Format.

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 6

Повышение скорости написания кода: Emmet и его использование в VSCode

Время на прочтение 6 мин
Количество просмотров 69K

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

Читать далее
Всего голосов 14: ↑12 и ↓2 +10
Комментарии 23

Вышла Vue 3.2

Время на прочтение 3 мин
Количество просмотров 12K

Эта статья — перевод оригинальной статьи Evan You "Vue 3.2 Released!"

Мы рады объявить о выпуске Vue.js 3.2 "Quintessential Quintuplets"! Этот релиз включает в себя множество значительных новых функций и улучшений производительности и не содержит критических изменений.

Читать далее
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 30

Руководство по цвету в UX/UI-дизайне

Время на прочтение 8 мин
Количество просмотров 27K

Цвет — одна из важнейших составляющих UI-дизайна. Благодаря цвету один и тот же продукт может казаться сложным и крутым или сумасшедшим. И задача дизайнера здесь — не найти и смешать красивые цвета, а создать определенную систему. В этой статье мы начнем с основ и постепенно дойдем до профессионального уровня.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 2

Обход 802.1х в LAN

Время на прочтение 10 мин
Количество просмотров 28K

Внимание! Данная статья носит исключительно информационный характер и предназначена для образовательных целей.

Представим себе типичный внутренний пентест. Вы приезжаете к заказчику, подключаетесь к Ethernet-розетке.Вы заранее предупредили о своём приезде, попросили себе рабочее место с Ethernet-розеткой и договорились отключить 802.1x. В итоге нашли тонну критических уязвимостей и в деталях расписали, как всё плохо исправить. Вы выдали красивый отчёт, оценили риски и составили рекомендации. Заказчик смотрит в отчет, хмурит брови и выдает непробиваемый довод: просто я отключил 802.1х. Добились бы вы таких же результатов без доступов к сети?

В этом посте я продемонстрирую, как легко можно обойти 802.1x на внутреннем пентесте. За редкими исключениями, но их мы тоже обсудим.

Читать далее
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 11

Карманная книга по TypeScript. Часть 6. Манипуляции с типами

Время на прочтение 18 мин
Количество просмотров 24K

image


Мы продолжаем серию публикаций адаптированного и дополненного перевода "Карманной книги по TypeScript".

Другие части:



Обратите внимание: для большого удобства в изучении книга была оформлена в виде прогрессивного веб-приложения.
Система типов TS позволяет создавать типы на основе других типов.


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


Дженерики


Создадим функцию identity, которая будет возвращать переданное ей значение:


function identity(arg: number): number {
 return arg
}
Читать дальше →
Всего голосов 21: ↑19 и ↓2 +17
Комментарии 1

Карманная книга по TypeScript. Часть 1. Основы

Время на прочтение 7 мин
Количество просмотров 63K

Обратите внимание: для большого удобства в изучении книга была оформлена в виде прогрессивного веб-приложения.



С сегодняшнего дня мы начинаем серию публикаций адаптированного и дополненного перевода "Карманной книги по TypeScript".


Каждое значение в JavaScript при выполнении над ним каких-либо операций ведет себя определенным образом. Это может звучать несколько абстрактно, но, в качестве примера, попробуем выполнить некоторые операции над переменной message:


// Получаем доступ к свойству `toLowerCase`

// и вызываем его

message.toLowerCase()

// Вызываем `message`

message()

На первой строке мы получаем доступ к свойству toLowerCase и вызываем его. На второй строке мы пытаемся вызвать message.


Предположим, что мы не знаем, какое значение имеет message — обычное дело — поэтому мы не можем с уверенностью сказать, какой результат получим в результате выполнения этого кода.


  • Является ли переменная message вызываемой?
  • Имеет ли она свойство toLowerCase?
  • Если имеет, является ли toLowerCase вызываемым?
  • Если оба этих значения являются вызываемыми, то что они возвращают?

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

Читать дальше →
Всего голосов 35: ↑30 и ↓5 +25
Комментарии 18

ReeePlayer – интервальное повторение фрагментов видео для изучения иностранных языков

Время на прочтение 7 мин
Количество просмотров 5.7K

Начать смотреть видео на иностранном языке не просто. Этим объясняется большое количество статей с самыми разными советами:

• Смотреть с русскими субтитрами и не париться.

• Смотреть с иностранными субтитрами и переводить на паузе, если не понятно.

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

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

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 22

VueUse — обязательная библиотека для Vue 3

Время на прочтение 6 мин
Количество просмотров 13K

Для тех, кто незнаком с этой библиотекой, советую попробовать, так она может де-факто стать стандартом для использования в проектах на Vue 3, как, например, в свое время была библиотека lodash для почти любых проектов на js.

Остальные наверное уже успели заценить весь обширный функционал, который она предоставляет. Некоторые уже использовали ее на Vue 2, но далеко не все новые функции поддерживают старую версию. Арсенал библиотеки впечатляет, тут и простые утилиты вроде клика вне элемента, и различные интеграции с Firebase, Axios, Cookies, QR, локальным хранилищем, браузером, RxJS, анимации, геолокации, расширения для стандартных Vue-хуков, медиа-плеер и многое другое. Среди спонсоров отмечен сам Эван Ю, что как бы намекает. Библиотека регулярно получает обновления, баги закрываются, а сообщество растет. В общем у нее есть все для успеха.

Update: Исправлен баг очистки предыдущей истории изменений.
Update 2: Добавлен более актуальной код примеров.

Читать далее
Всего голосов 16: ↑10 и ↓6 +4
Комментарии 17

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность