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

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

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

Vue 3 в деле: Как мы обновили большой внутренний сервис и что из этого вышло

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

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

Меня зовут Егор Прокопьев, и я фронтенд-разработчик в Ozon.

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

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

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

Мое обращение в АП РФ по поводу замедления youtube, и ответ из РКН

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

Я получил ответ 8 сентября и выложил у себя в тг канале. Особой реакции мой пост не получил. Но потом мне прислали ссылку на эту статью на хабре https://habr.com/ru/news/843112/ , и я решил поделиться своей перепиской с общественностью.

Читать далее
Всего голосов 121: ↑96 и ↓25+98
Комментарии369

Как удаление isNumber из зависимостей сэкономил 440 Гб еженедельного трафика

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

Недавно наткнулся на занимательный merge request по замене зависимости isNumber. Удивительно было в целом осознавать, что как такого универсального метода по определению числа в переменной нет в базовой концепции JavaScript. И данная проблема породила npm-репозиторий isNumber c почти 72 миллионами еженедельных скачиваний на сентябрь 2024 года. Но стоит ли в очередной раз использовать мизерную зависимость в своём проекте? Предлагаю взглянуть на решение, представленное в ранее сказанном mr-е.

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

Как уменьшить образ Docker для работы с устройствами IoT

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

На устройствах интернета вещей (IoT) зачастую слишком мало ресурсов, и их не хватает, чтобы подтягивать и использовать тяжеловесные образы Docker. В этой статье будет показано, как можно уменьшить образ Docker на 36-91% при помощи инструментов patchelf и strace, не перекомпилируя при этом контейнеризованные приложения. Также рассмотрим, как создавать минимальные образы для собственных приложений, написанных на Rust, Go, C/C++.

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

Три способа оптимизировать работу с памятью на Go с помощью memory pools

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

Привет, Хабр! Меня зовут Александр Иванов, я разрабатываю средства управления сетевыми элементами сотовой связи и пишу на языке Go в YADRO. Однажды я работал над приложением, которое испытывало пиковые нагрузки каждые 10 минут, но выполнить обработку памяти быстро мешал Garbage Collector. Чтобы решить эту проблему, я изучил несколько способов реализации memory pool и провел испытания скорости работы. 

В этой статье расскажу, как уменьшить влияние GC на выполнение программы и покажу бенчмарки для разных memory pools. Объясню, какая из реализаций подойдет вашему проекту, а когда лучше не использовать memory pools и полагаться на встроенные механизмы рантайм-окружения Go.

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

Программирование на C в Linux на примере создания своей командной оболочки

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

Привет, хабр! Язык программирования C — основополагающий, как я считаю. И его знать, нет, не обходимо, но довольно желательно. Большинство языков отсылают к C, и зная C (или C++) другой язык будет даваться намного легче.

Я решил недавно улучшить свой навык владения C, путем написания проектов. Самая первая мысль, которая пришла мне на ум — это командный интерпретатор, командная оболочка, shell проще говоря. А также я расскажу о системе сборки make, и о том, как правильно писать и документировать C-код.

В этом туториале я буду использовать компилятор CLANG, а не GCC, и расскажу его преимущества

Итак, для создания своего шелла на C для Linux вам понадобится простой советский копеечный...

Узнать
Всего голосов 28: ↑25 и ↓3+36
Комментарии42

Многопоточность в играх

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

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

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

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

Индексирование баз данных в PostgreSQL: погружение в тему

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

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

Привет, Хабр! Меня зовут Артур Титаев, я аналитик департамента проектирования и разработки IBS. Недавно наша команда занималась масштабным импортозамещением компонентов системы поддержки принятия решений для крупного российского заказчика. После переезда с Oracle и MySQL на PostgreSQL мы определили, что время выполнения SQL-запросов для показателей хозяйственно-экономической деятельности клиента в PostgreSQL заметно больше, чем время выполнения тех же запросов для тех же показателей в Oracle. Для «тяжелых» показателей разница во времени выполнения запроса могла достигать 20–30 минут. И это несмотря на то, что база данных Oracle не была проиндексированной!

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

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

Python с Yandex music API. Или индекс твоей смерти

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

Делаем, мини-тестового бота для дискорд, что будет проигрывать музыку с yandex.music

Не много ада, не много слёз, Егор Летов и много чая :)

Будь как дома, путник Я ни в чём не откажу
Всего голосов 9: ↑6 и ↓3+6
Комментарии13

«Бобер выдыхай»: Go, WinAPI и ассемблер

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

Что вам приходит в голову при слове «Golang»? Google и микросервисы? Я тоже так думал, но реальность оказалась значительно интересней.

Читать далее
Всего голосов 36: ↑35 и ↓1+40
Комментарии31

Windows — причина медленного интернета. Низкая скорость «загрузки», при нормальной скорости «скачивания»

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

Если Вы являетесь клиентом провайдера МТС «домашний интернет» и у вас проблемы со скоростью «загрузки» — это статья для Вас.

И если Вы проверили всё, что могло быть причиной медленной скорости загрузки: интернет-кабели, роутер, патч-корды, а в вашей Windows проблема осталась, не спешите паниковать, проблема не у Вас, а у вашего провайдера.

Читать далее
Всего голосов 97: ↑93 и ↓4+106
Комментарии61

Go: жарим общие данные. Атомно, быстро и без мьютексов

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


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

Но в этой статье мы поговорим о другом. Современные процессоры имеют поддержку атомарных операций, что позволяет на основе них организовывать работу с общими данными до нескольких раз быстрее, чем с помощью общепринятых вариантов. Так как мьютексы реализованы на основе ОС, каналы сделаны на основе внутреннего кода Go с использованием тех же мьютексов из ОС под капотом, а атомарные операции делает сам процессор аппаратно за существенно меньшее количество тактов.
Пожарим омлет по атомному?
Всего голосов 41: ↑40 и ↓1+52
Комментарии29

О блокировке Youtube

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

Комментарий активиста Профсоюза IT насчёт блокировки Youtube и об ограничении свободного доступа к информации вообще. Коллектив профсоюза полностью разделяет это мнение.

Я работаю в IT уже 17 лет (написал и сам ужаснулся). Я начинал с протирания доски в кабинете информатики (должность называлась «лаборант»), сейчас работаю в достаточно крупной IT-компании.

С самого начала я жадно впитывал знания. Интернет, коллеги, собственный опыт. Любой источник знаний был хорош, любая информация годилась. Я читал книги на экране размером 128х128 точек. Я качал учебники по dial-up. Я просил коллегу научить меня обжимать коннектор RJ-45. Я купался в море информации. С каждым новым местом работы, с каждой новой областью деятельности становилось всё труднее находить рядом того, кто может расширить мой кругозор достаточно для удовлетворения неутихающей жажды. Жажды знать больше. Всё чаще и чаще я слышал «загугли». И гуглил, гуглил, читал и снова искал новое. Это как дышать, как пить воду. Я потребляю информацию утром, во время обеда и перед сном. Со временем я понял, что для большей эффективности нужно потреблять информацию разного профиля. Плотницкое, слесарное, столярное дело, электрика, физика, сельское хозяйство, история, логика, философия. Всё это — информация. Всё это может утолить жажду. И я искал. Разумеется, для того, в чём не нужна справочная точность, я стал использовать Youtube.

Читать далее
Всего голосов 465: ↑436 и ↓29+480
Комментарии1072

HowTo: базовая геоаналитика

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

Хочу поделиться примером‑инструкцией как получить инсайты из геоданных без регистрации, смс (только open‑source и бесплатные инструменты: OSM, python, Портал открытых данных Правительства Москвы, DataLens).

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

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

История оптимизации Python сервиса: пара простых системных улучшений

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

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

Читать далее
Всего голосов 22: ↑21 и ↓1+24
Комментарии6

Замедление YouTube с технической стороны: ограничение и обход

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

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

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

Сразу скажу, что буду говорить обо всём, что известно на данный момент. Понятно, что с этим разбирался далеко не один я: огромное спасибо обывателям ntc party форума за проделанный ресёрч.

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

UPD 10.08.2024 Многие жалуются на недоступность ютуба в целом: не грузит домашнюю страницу. Переживать не стоит, оно обрабатывается всё тем же ТСПУ по всё той же стратегии, обходы должны работать.

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

Поиск по префиксу или тайные операторы PostgreSQL

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

В статье описывают различные (все известные мне) способы поиска строки по префиксу (по началу строки), которые можно ускорить индексами. Привожу скрипты для тестирования быстродействия и анализирую результат тестов: какой метод и индекс даёт наибольшую эффективность.

Интересно, что там?
Всего голосов 15: ↑15 и ↓0+20
Комментарии8

Ускорение Python в 2 раза с помощью multiprocessing, async и MapReduce

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

Python действительно может считаться относительно медленным языком программирования по сравнению с некоторыми другими языками, такими как C++ или Java. Однако, существуют различные библиотеки и инструменты, которые позволяют ускорить выполнение счетных задач в Python. Рассмотрим как можно ускорить анализ данных в 2 раза!

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

Что я думаю о Lua после релиза проекта на 60,000 строчек кода?

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

Интервью-ретроспектива с ведущим программистом видео-игры Craftomation 101 о использовании Lua как основного языка в проекте на 60,000 строчек кода.

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

Анти-паттерны в Go Web Applications

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

В какой-то момент моей карьеры меня перестало радовать ПО которое я разрабатывал.

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

Читать далее
Всего голосов 14: ↑13 и ↓1+15
Комментарии8
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность