Pull to refresh
0
0
Евгений @coller13

User

Send message

Народный измеритель ёмкости батареек BatteryTest

Level of difficultyEasy
Reading time6 min
Views25K
Я разработал дешёвый, точный и максимально простой в использовании прибор, с помощью которого можно измерить ёмкость практически любой батарейки (от микроскопических батареек для слуховых аппаратов до крупных батарей). Повторить мой прибор может любой желающий.



Читать дальше →
Total votes 192: ↑210.5 and ↓-18.5+229
Comments51

PostgreSQL Antipatterns: убираем медленные и ненужные сортировки

Reading time5 min
Views16K
«Просто так» результат SQL-запроса возвращает записи в том порядке, который наиболее удобен серверу СУБД. Но человек гораздо лучше воспринимает хоть как-то упорядоченные данные — это помогает быстро сравнивать соответствие различных датасетов.

Поэтому со временем у разработчика может выработаться рефлекс «Дай-ка я на всякий случай это вот отсортирую!» Конечно, иногда подобная сортировка бывает оправдана прикладными задачами, но обычно такой случай выглядит как в старом анекдоте:
Программист ставит себе на тумбочку перед сном два стакана. Один с водой — на случай, если захочет ночью пить. А второй пустой — на случай, если не захочет.
Давайте разбираться — когда сортировка в запросе точно не нужна и несет с собой потерю производительности, когда от нее можно относительно дешево избавиться, а когда сделать из нескольких — одну.

Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments14

PostgreSQL. Плохие запросы, примеры и их поиск

Reading time9 min
Views28K

При поиске проблем в RDBMs разработчик обычно подозревает медленные запросы. А что, если дело не в них? О том, какого типа запросы дают нагрузку на базу данных, не позволяя вашему приложению работать должным образом, рассказал в своем докладе на конференции Saint HighLoad++ Online 2020 администратор баз данных Data Egret Андрей Сальников. 

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

Читать далее
Total votes 18: ↑18 and ↓0+18
Comments7

Что это за устройство у меня в комнате?

Level of difficultyMedium
Reading time13 min
Views49K
Примерно год назад я переехал в новую квартиру. Одной из причин её выбора стал возраст здания. Строить его закончили в 2015 году, что гарантировало неплохую теплоизоляцию на зиму, а также кучу приятных мелочей наподобие Ethernet-разъёмов в каждой комнате. Однако в квартире обнаружилась одна деталь, слишком новая и умная для меня. Вот эта:


Очевидно, что это некий сенсорный экран, но не было никаких указаний на то, чем он управляет. Арендодатель понятия не имел, что это. На устройстве не было ни кнопок, ни надписей, лишь крошечный жёлтый огонёк, дающий понять, что у него есть питание.
Читать дальше →
Total votes 149: ↑146 and ↓3+143
Comments128

Как завернуть трафик Wireguard через shadowsocks на роутере

Level of difficultyEasy
Reading time2 min
Views34K

Так как есть риск блокировки Wireguard протокола, то рассказываю, как сделать, что бы трафик туннеля шел через shadowsocks.

Пример будет для сервера на Ubuntu 22.04 и роутера кинетик, с установленным на нем Entware. Предполагается, что WG уже поднят и настроен. А так же на роутер установлен Entware.

Читать далее
Total votes 18: ↑18 and ↓0+18
Comments17

Осваиваем чистую архитектуру кода на Golang: практическое руководство по сущностям и слоям моделей

Level of difficultyMedium
Reading time8 min
Views11K

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

Читать далее
Total votes 18: ↑14 and ↓4+10
Comments3

Почему ваш веб-сайт должен быть меньше 14 КБ

Reading time6 min
Views70K

Чем меньше веб-сайт, тем быстрее он грузится, и это неудивительно.

Удивительно то, что страница на 14 КБ может грузиться гораздо быстрее, чем страница на 15 КБ, даже на 612 мс быстрее, хотя разница между страницами на 15 КБ и 16 КБ минимальна.

Так происходит из-за алгоритма медленного старта TCP. В этой статье я расскажу, что это такое, как оно работает и почему это важно. Но сначала мы вкратце расскажем об основах.
Читать дальше →
Total votes 173: ↑170 and ↓3+167
Comments204

Гарвардский курс CS50 на русском. Все серии

Reading time4 min
Views581K


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

Мы писали, что в курсе 24 серии, однако последние две оказались одной и той же лекцией (одна прочитана в Гарварде, а другая в Йеле), поэтому в списке переведённых лекций не 24, а 23.

Список лекций под катом.

Что вы узнаете, прослушав этот курс:
  • Основы компьютерных наук и программирования;
  • Концепции алгоритмов и алгоритмичности мышления. Какие задачи можно решать с помощью программирования и каким образом;
  • Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;
  • Основы языка программирования C и Scratch;
  • Основы баз данных и SQL;
  • Веб-разработка: основы CSS, HTML, JavaScript и PHP;
  • Основы подготовки презентации проектов по программированию.


Курс переведён и озвучен нашей студией по заказу JavaRush, и мы хотим сказать им огромное спасибо за поддержку!
Total votes 40: ↑37 and ↓3+34
Comments34

Проклятые Земли. Освежаем геймплей

Reading time7 min
Views17K

Статья о том, как реверс-инжиниринг может дать новое дыхание старой игре и освежить её геймплей. Обзор уникальных фишек игры Проклятые Земли, изменение механик и добавление новых фишек.

Наверняка многие играли в Проклятые Земли и аддоны к ним лет 15, а то и все 22 года назад. При всех достоинствах этой игры, ей, как мне кажется, не хватало динамики, что мы и попробуем исправить, взяв в руки отладчик.

Читать далее
Total votes 75: ↑75 and ↓0+75
Comments44

Краткий справочник по «всем-всем» командам Linux

Level of difficultyMedium
Reading time74 min
Views151K

Периодически меня на начальном курсе просят дать "список всех-всех команд с кратким описанием что делает"... Ну прям "всех-всех". И ведь если искать в интернете "такие" справочники существуют - либо про "20-30 команд, но самых важных", либо с неточностями и устаревшей информацией. Так что предлагаю вашему вниманию свою версию такого "краткого" справочника (на 300, 515, 612, 716, 842, 1005, 1110 команд) с ссылками на wiki-описание и на cheat.sh-примеры наиболее важных команд.

Справочник по всем-всем командам LINUX
Total votes 126: ↑123 and ↓3+120
Comments114

Босяцкий кластер высокой доступности

Reading time8 min
Views16K

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

Читать далее
Total votes 50: ↑45 and ↓5+40
Comments41

Апериодическая решётка Яндекс Станции 2: история, 3D-модели и акустические эксперименты

Reading time9 min
Views32K

«Не бывает неинтересных задач, бывают неинтересные исследователи».
— Александр Михайлович Гуськов, профессор МГТУ им. Н. Э. Баумана


Привет, меня зовут Григорий Анненков, я тот, кто предложил и внедрил апериодическую решётку для Яндекс Станции 2. Она установлена под тканью, вокруг динамиков и других компонентов.

Кто-то скажет, что работать над формой решётки — никому не нужный перфекционизм. Для меня как для инженера это была интереснейшая задача, результаты которой (и я это сейчас докажу) повлияли на качество звука колонки, пусть и не настолько же сильно, как, скажем, подбор моделей динамиков. Только улучшение это условно-бесплатное, поскольку мы используем тот же объём пластика, разве что формы чуть сложнее привычных.

Под катом — история прототипирования, очень много картинок, гифок и акустических экспериментов. Трёхмерные модели решётки мы выложили на Гитхаб, подробности — в конце поста.
Читать дальше →
Total votes 111: ↑111 and ↓0+111
Comments79

Неожиданная находка, которая освобождает 20 GB неиспользованного индексного пространства

Reading time14 min
Views31K

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

Начнем с конца: в итоге нам удалось освободить более чем 70 GB не оптимизированного и неиспользуемого пространства без удаления индексов и данных. 

Читать далее
Total votes 60: ↑57 and ↓3+54
Comments9

PostgreSQL Antipatterns: когда мешает внешний ключ

Reading time5 min
Views14K

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

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

Читать далее
Total votes 24: ↑24 and ↓0+24
Comments12

Как мы создавали движок на Unity (часть 0)

Reading time8 min
Views8K

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

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

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments7

OpenVPN. Инструкция по применению

Reading time9 min
Views67K

Виртуальные частные сети (VPN) давно вошли в повседневную жизнь. Множество технологий и реализаций сервиса приватных сетей (как для частного применения, так и для использования внутри периметра организаций), обеспечивающих определённый уровень безопасности, доступны для использования широкому кругу ИТ-специалистов.

Не смотря на обилие технологий, предлагаю остановиться на старом добром OpenVPN (в связке с EASY-RSA). Решение от Джеймса Йонана отличается гибкостью, функциональностью, надёжностью и непрерывностью разработки на протяжении приличного временного периода. Так сказать, мастодонт от мира VPN-решений.

Спойлер — ссылка на довольно функциональное решение (ничего особенного, чистый бэкэнд), написанное на bash некоторое время назад, ждёт вас в конце публикации (в виде github-репозитория под именем «openvpn_helper»), а здесь же уделю внимание общей структуре и некоторым аспектам использования набора скриптов и OpenVPN.

***

Список необходимых компонентов (используемая ОС — AlmaLinux 8):

1) OpenVPN 2.4.12;
2) EASY-RSA 3.0.8.

Читать далее
Total votes 13: ↑10 and ↓3+7
Comments10

Как проходить техническое собеседование?

Reading time5 min
Views22K

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

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

Секреты observability. Часть 3: распределённая трассировка с Jaeger и OpenTelemetry

Reading time8 min
Views15K

image
Фото Bertrand Bouchez, Unsplash.com


В прошлой статье мы с помощью Prometheus AlertManager настроили правила, чтобы отправлять уведомления через Slack при срабатывании алертов. И хотя алерты и уведомления — это удобно и полезно, сами по себе метрики не до конца объясняют проблему. Они просто показывают, что значения одного экземпляра вышли за установленные лимиты, но в распределённых системах метрики не могут отследить запрос, который проходит через несколько компонентов. С распространением микросервисов системы усложняются, поэтому мы должны проследить весь путь запроса, чтобы понять, что пошло не так. Для этого можно использовать распределённую трассировку, которая записывает действия, выполняемые в связи с запросом, и дает контекст, который мы не найдем в метриках и логах.


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

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

Работа провайдера: подборка материалов о протоколах, IT- и сетевой инфраструктуре

Reading time3 min
Views9.6K
Наша подборка материалов о старых и новых стандартах: от IPv6 до New IP, а также факторах, влияющих на трафик в сетях мобильных операторов и интернет-провайдеров.

Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments0
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity