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

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

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

Разбираемся с сетевым программированием на Rust

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

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

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

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

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

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

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

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

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

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

Погружение в Web RTC или пишем SFU своими силами

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

Web RTC уже давно имеет поддержку в большинстве браузеров, поэтому обходить стороной технологию довольно глупо. Вот и я так подумал, поэтому в качестве пет-проекта решил написать sfu-сервер на golang.

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

Оптимизация, которая невозможна в Rust

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

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

Читать далее
Всего голосов 37: ↑36 и ↓1+43
Комментарии4

Что должен знать каждый разработчик о вычислениях на GPU

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

Большинство программистов отлично разбираются в работе процессоров и последовательном программировании, поскольку с самого начала пишут код для CPU. Однако многие из них меньше знают о том, как устроены графические процессоры (GPU) и в чем заключается их уникальность. За последнее десятилетие GPU стали чрезвычайно важны благодаря широкому применению в глубоком обучении, и сегодня каждому разработчику необходимо обладать базовыми знаниями о том, как они работают. Цель этой статьи — дать вам это понимание. 

Читать далее
Всего голосов 35: ↑33 и ↓2+41
Комментарии6

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

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



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

Читать дальше →
Всего голосов 32: ↑32 и ↓0+42
Комментарии5

Необычные приёмы отладки, которые браузер от вас скрывает

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

Список неочевидных, но при этом полезных хаков, которые позволят использовать отладчик вашего браузера1 более полноценно. Для понимания материала статьи потребуется как минимум средний уровень владения инструментами разработчика.
Читать дальше →
Всего голосов 70: ↑69 и ↓1+94
Комментарии12

Как максимально сконцентрироваться на работе

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

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

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

Как я ускорила парсинг строк в serde_json на 20%

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

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

serde — основной фреймворк для сериализации и десериализации в Rust. Его используют как крейт по умолчанию во всей экосистеме. serde_json — это официальный serde-миксин для JSON, так что каждый раз, когда нужно что-то парсить, люди обращаются именно к нему. Конечно, есть и другие библиотеки, специализующиеся на парсинге JSON, например simd-json, но популярность у них, мягко говоря, удручающая. serde_json значительно популярнее: на момент написания от него зависят аж целых 26916 крейта, а от simd-json — всего 66.

Это делает serde_json хорошей мишенью (не как у Jia Tan) для оптимизаций. Велик шанс того, что многим из тысяч пользователей переход на simd-json позволил бы добиться ускорения, но, пока они этого не делают, более мелкие оптимизации — лучше, чем совсем ничего, и такие улучшения — глобальный выигрыш для экосистемы.

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

Даты в Javascript наконец-то пофиксят

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

В чём состоит проблема​

Из всех последних изменений, которые будут внедрены в ECMAScript, моим любимым с большим отрывом от остальных стало предложение Temporal. Это предложение очень прогрессивное, мы уже можем воспользоваться этим API при помощи полифила, разработанного командой FullCalendar.

Этот API настолько невероятен, что я, наверно, посвящу несколько постов описанию его основных возможностей. Однако в первом посте я расскажу об одном из его главных преимуществ: у нас наконец появился нативный объект, описывающий Zoned Date Time.

Но что же такое Zoned Date Time?

Читать далее
Всего голосов 29: ↑26 и ↓3+37
Комментарии56

Как понять, что твой мидл готов стать сеньором? Гайд для тимлида (и не только)

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров23K
Новый грейд — это не просто лычка IT-спеца. По сути, это кульминация работы над задачами и решений различных кейсов, которыми он занимался на своей позиции. Но на этот новый уровень айтишник переходит не один.



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

В «Лаборатории Касперского» существует устоявшийся и прозрачный пайплайн повышения мидлов — промоушен-комитет. В этой статье я подробно расскажу об этом процессе с точки зрения руководителя: от подготовки и сбора кейсов до получения кандидатом заветного грейда.

Читать дальше →
Всего голосов 47: ↑35 и ↓12+27
Комментарии66

Кратко про сетевые протоколы в Golang: TCP, QUIC и UDP

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

Сегодня мы кратко рассмотрим то, как реализовать такие протколы, как TCP, UDP и QUIC в Golang.

Начнем с TCP.

Читать далее
Всего голосов 19: ↑13 и ↓6+11
Комментарии3

Как мы уменьшили количество кода для генерации графиков в 10 раз, сделав Vue-компонент

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

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

Читать статью →
Всего голосов 9: ↑5 и ↓4+5
Комментарии5

Компилятор за выходные: наконец-то ассемблер

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

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

Ну а когда оно заработает, предлагаю решить задачу: как сэмулировать побитовые операции and-not-xor-or при помощи четырёх арифметических.

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

Книга: «Реальная криптография»

Время на прочтение22 мин
Количество просмотров8.5K
image Привет, Хаброжители!

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

Изучите приемы, которые используют разработчики, системные администраторы и специалисты по безопасности в своей повседневной работе. Вы не встретите ни сложных математических выкладок, ни умопомрачительного жаргона: современные криптографические методы рассматриваются с помощью понятных графиков и практических примеров. Познакомьтесь с хеш-функциями и подписями, криптографическими протоколами и безопасным обменом сообщениями, а также с передовыми достижениями, такими как постквантовая криптография и криптовалюты. Читать «Реальную криптографию» одно удовольствие и, возможно, она спасет, когда в следующий раз злоумышленники покусятся на ваши данные.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+17
Комментарии1

Андреас Клинг, его операционная система SerenityOS и браузер Ladybird

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


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

Взять к примеру шведского программиста Андреаса Клинга (Andreas Kling). В 2018 году он вышел из государственной клиники реабилитации наркоманов после трёхмесячного курса — и в качестве хобби начал разработку операционной системы SerenityOS. Нужно было чем-то занять свободное время и избавиться от посторонних мыслей. Создание новой ОС вполне подходит для такой задачи.

За несколько лет SerenityOS стала одним из крупнейших опенсорсных проектов в мире с тысячами контрибуторов. Приятный интерфейс в стиле 90-х, Unix-подобное ядро и лучшие идеи из других ОС — вот рецепт успеха.
Читать дальше →
Всего голосов 58: ↑56 и ↓2+73
Комментарии23

Почти все, что вы хотели бы знать про Docker

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

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

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

Читать далее
Всего голосов 65: ↑60 и ↓5+65
Комментарии57

Краеугольные камни ClickHouse

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

Привет, Хабр! Меня зовут Артемий Кравцов, я работаю инженером в Wildberries. Сегодня расскажу про то, что люблю – про ClickHouse. Моя цель – осветить некоторые ключевые особенности в архитектуре ClickHouse и в том, как он хранит данные.

Что такое куски и слияния? Как быть с частыми вставками? Как обновлять значения в строках? Что не так с точечными чтениями? Как сделать тяжёлый JOIN?

Статья рассчитана на тех, кто только знакомится с ClickHouse.

Читать далее
Всего голосов 35: ↑34 и ↓1+37
Комментарии3

Как избежать когнитивной перегрузки: способы оптимизации кода для разработчиков

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

По мнению Артема Закируллина*, одна из фундаментальных проблем, с которой сталкиваются разработчики при анализе кода – высокая когнитивная нагрузка. Это не абстрактное, а реальное ограничение возможностей, которое стоит времени и денег. На чтение и понимание кода, тратится больше времени, чем на его написание. Поэтому, разработчику нужно постоянно задаваться вопросом: не пишет ли он код, чтение которого создает чрезмерную когнитивную нагрузку?

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

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Всего голосов 55: ↑54 и ↓1+61
Комментарии20

Книга «Микросервисы и API»

Время на прочтение16 мин
Количество просмотров11K
image Привет, Хаброжители!

Простые и понятные API — необходимое условие успеха микросервисных приложений. Хорошо продуманные API гарантируют надежную интеграцию сервисов и помогают упростить сопровождение, масштабирование и дальнейшее совершенствование. Познакомьтесь с паттернами, протоколами и стратегиями, которые помогут вам проектировать, реализовывать и развертывать эффективные микросервисы с REST и GraphQL API.

Книга наполнена проверенными советами и примерами кода на языке Python. Авторы фокусируются на реализации, а не на философии. Изучите проверенные методы проектирования простых в использовании API для микросервисных приложений. Создавайте надежные API микросервисов, тестируйте, защищайте и развертывайте их в облаке, следуя принципам и шаблонам, применимым в любом языке программирования.
Читать дальше →
Всего голосов 5: ↑4 и ↓1+5
Комментарии1

Информация

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