Pull to refresh
17
0.1
Юрий Павлов @sparhawk

Ведущий разработчик Java

Send message

Почему СУБД такие медленные

Level of difficultyMedium
Reading time11 min
Views34K


Недавно на Хабре публиковался перевод статьи «Просто выберите Postgres» (оригинал, англ. яз) с аргументами, что Postgres — оптимальная БД для десктопных и мобильных приложений. Аналогичное мнение высказывают в других популярных статьях вроде «До свидания MongoDB, здравствуй PostgreSQL». Главным недостатком SQLite называют то, что данные хранятся в одном файле, а MongoDB (а также DynamoDB и Cassandra) — низкую производительность:

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

…Если паттерны доступа существенно изменятся, то может потребоваться полная повторная обработка всех данных».

Более производительные резидентные БД хранят данные в памяти (Redis, Valkey), но их использование ограничено объёмом ОЗУ.

После такого заявления интересно посмотреть на независимые тесты производительности разных СУБД.
Читать дальше →
Total votes 97: ↑63 and ↓34+55
Comments42

Так ли важен возраст в IT?

Level of difficultyEasy
Reading time4 min
Views46K

Как известно, в Кремниевой долине предпочтение отдаётся молодым специалистам. Амбициозный настрой «двигаться быстро и всё ломать» зачастую подразумевает, что компании заинтересованы в более молодых и легко адаптируемых сотрудниках.

Я пишу эту статью в 30 лет, успев побывать на собеседованиях по обе стороны стола. В течение последнего года я проводил технические интервью и видел как моложавых выпускников, едва достигших возраста, позволяющего арендовать авто, так и бывалых специалистов, проработавших в IT больше лет, чем мне отроду. И этот опыт прекрасно прояснил для меня общую картину.
Читать дальше →
Total votes 52: ↑39 and ↓13+43
Comments278

Внешняя видеокарта backend-разработчика, или как заставить лучшего друга перестать тупить и начать помогать (часть 1)

Level of difficultyEasy
Reading time7 min
Views4.6K

Всем привет! Меня зовут Николай Первухин. Я увлеченный разработчик на GoLang, работаю в Ozon Банке в группе разработки сервисов ЗСК (KYC).

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

Читать далее
Total votes 23: ↑23 and ↓0+26
Comments14

Железные люди Хабра: лига лучших железячных статей

Level of difficultyEasy
Reading time7 min
Views11K

Внимание! Конкурс «Технотекст» открывает железную номинацию. 

Хабр меняется, периодически меняются популярные темы и авторы, уходят одни, приходят другие. Но есть несколько разделов, статьи в которых стабильно пользуются успехом и приковывают внимание как профильных специалистов, так и тех, кто оказался здесь случайно. В основном, содержание этих хабов укладывается в три тематики: железо, DIY и информационная безопасность. И если с последними двумя всё более или менее просто и очевидно, то железо на Хабре имеет драматичную судьбу. 

Читать далее
Total votes 42: ↑39 and ↓3+62
Comments16

Экстремальная оптимизация скорости загрузки Raspberry Pi

Level of difficultyEasy
Reading time11 min
Views9.5K

Некоторое время назад был создан проект SolarCamPi — автономная камера на солнечных батареях с Wi‑Fi.

В этом проекте Raspberry Pi Zero 2 W загружается в Linux, делает снимок, подключается к Wi‑Fi и затем выключается (для экономии энергии). Цикл повторяется каждые несколько минут, чтобы постоянно отправлять актуальные изображения в облачный сервис.

Каждая секунда работы Pi Zero, расходует ценную электроэнергию – ресурс, который постоянно находиться в дефиците у устройств на солнечных батареях (по крайней мере зимой в Западной Европе).

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

Читать далее
Total votes 48: ↑48 and ↓0+57
Comments21

Lock-free структуры данных. Очередной трактат

Reading time16 min
Views53K

Как вы, наверное, догадались, эта статья посвящена lock-free очередям.

Очереди бывают разные. Они могут различаться по числу писателей (producer) и читателей (consumer) – single/multi producer — single/multi consumer, 4 варианта, — они могут быть ограниченными (bounded, на основе предраспределенного буфера) и неограниченными, на основе списка (unbounded), с поддержкой приоритетов или без, lock-free, wait-free или lock-based, со строгим соблюдением FIFO (fair) и не очень (unfair) и т.д. Подробно типы очередей описаны в этой и этой статьях Дмитрия Вьюкова. Чем более специализированы требования к очереди, тем, как правило, более эффективным оказывается её алгоритм. В данной статье я рассмотрю самый общий вариант очередей — multi-producer/multi-consumer unbounded concurrent queue без поддержки приоритетов.
Читать дальше →
Total votes 74: ↑71 and ↓3+68
Comments8

T-test. Зависимость от независимости

Reading time16 min
Views4.7K

Привет, Хабр! В статье подробно рассмотрим область применения самого базового статистического критерия Стьюдента. Посмотрим, как он ведёт себя, когда мы не хотим отдавать качество подбора наших групп на волю случая.

Читать далее
Total votes 5: ↑5 and ↓0+6
Comments0

Java Digest #15

Level of difficultyEasy
Reading time5 min
Views4.4K

Всем привет! 👋 👋 👋 👋

Мы Java-разработчики Т-Банка: Андрей, Арсений, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске у нас много материалов, посвященных развитию Java. Коснемся и Leyden, и Valhalla, и Loom, и GC в JDK 23. За прошедший месяц вышло много интересных докладов с последнего JPoint, некоторые из них мы осветили в этом выпуске. А в разделе со статьями собрали много туториалов и обзоров. Dev-контейнеры от JetBrains, реализация Transactional Outbox с использованием Spring Boot, отслеживание вызова Deprecated-методов, история сбоя в Netflix, связанного с виртуальными тредами, — вот далеко не полный список. И на сладкое — пара свежих выпусков подкастов JavaHut и javaswag. Приятного чтения 😉

Читать выпуск 15
Total votes 17: ↑17 and ↓0+21
Comments5

Как советская машина всех в шахматы обыграла

Reading time7 min
Views12K
image
Источник

«Каисса» — одна из первых прикладных программ, которая показала результат лучше 99,9 % людей-профессионалов в мире. В 1974 году в Стокгольме прошёл знаменательный шахматный чемпионат: впервые в истории за звание чемпиона мира сражались не люди, а машины — 13 компьютерных программ из восьми стран.

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

Советский Союз на этом турнире представляла «Каисса» — программа, в судьбе которой переплелись атомная промышленность, битва с коллективным разумом читателей «Комсомольской правды» и шахматисты-любители.
Читать дальше →
Total votes 66: ↑64 and ↓2+81
Comments31

Эффективность Spring-приложений в рантайме. Текущее состояние дел и планы на будущее

Level of difficultyMedium
Reading time12 min
Views9K

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

Себастьян Делойзе, контрибьютор Spring Framework, делится обзором усилий команды Spring по оптимизации эффективности приложений во время выполнения. Он рассматривает Virtual Threads, GraalVM Native Image, Project CRaC, Project Leyden и всё это в контексте Spring!

Читать далее
Total votes 19: ↑18 and ↓1+18
Comments0

Знакомство с PowerPC

Level of difficultyMedium
Reading time11 min
Views9.7K
Приветствую всех!

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

И так уж вышло, что начал я с PowerPC, а точнее — с компьютеров Apple на базе PowerPC G4.



Итак, в данной статье поговорим о том, что обычно никогда не упоминают в статьях про такое железо: как его запустить тому, кто до этого никогда не имел с ним дела. Попутно узнаем, чем примечателен этот компьютер и на что он вообще способен. Как обычно, будет много интересного.
Читать дальше →
Total votes 54: ↑53 and ↓1+67
Comments30

Автостарт android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому

Level of difficultyMedium
Reading time7 min
Views7.8K

Обычно Android-устройства принято считать «бесполезными» через 5-10 лет после выхода. Особенно, это касается бюджетных моделей, которые "не тянут" современные сервисы или те девайсы, которые по каким-то причинам физически пострадали в процессе своей жизни. Но пока одни выкидывают смартфоны и планшеты, считая их электронным хламом и засоряя мир, другие стараются найти применение всему подряд и оказывается, что Android-устройства ещё вполне себе могут оказаться полезными. Однако порой необходимо реализовать автоматическое включение устройства при подключения к зарядке и вот здесь многие впадают в ступор — ведь замкнуть кнопку включения зачастую недостаточно! В сегодняшнем материале я расскажу свои кейсы запитывания устройств от блоков питания, а также реализацию автовключения на разных чипсетах. Интересно? Тогда добро пожаловать под кат!

Читать далее
Total votes 38: ↑37 and ↓1+52
Comments28

Как я проходил собеседование в Тинькофф

Level of difficultyEasy
Reading time10 min
Views58K

Привет %user_name%! Сегодня я хочу поделиться своим опытом, как я проходил собеседование в Тинькофф в несколько этапов. На просторах Хабра периодически встречаются статьи на тему HR и там либо рассказывают как успешно пройти собеседование и что нужно HR специалистам услышать, чтобы вас принять на работу или же совсем обратное где специалисты разного уровня и мастей жалуются на работу тех самых HR! Но сегодня будет не про это! И так если стало интересно, добро пожаловать подкат. Осторожно, много текста.

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

Сейчас я больше года не преподаю в Нетологии, но продолжаю это делать в компании Отус, так вот сложилось так, что этот вопрос актуален для студентов и на этой площадке тоже. Скажу сразу у меня богатый опыт прохождения собеседований в несколько этапов, в Рамблер например я едел 3 или 4 раза, где меня собеседовало сразу около 4-5 человек. Чуть больше полугода назад я проходил собеседование в Яндекс, где успешно завалил алгоритмическое программирование, но прошел все остальные этапы, и даже пообщался с руководителем Яндекс Облака где поделился своим мнением по факту прохождения этапов. Все закончилось на том, что меня ждут ровно через пол года на алгоритмической секции и если я ее пройду, то дойдет дело до офера, но я не пошел. У меня нет желания решать задачи с LetCode для прокачки этого не нужного мне скила. 

Читать далее
Total votes 52: ↑28 and ↓24+11
Comments107

Режим 9/9/6, джуны-расходники и никакой кошкожены: как устроено IT в Китае

Level of difficultyEasy
Reading time5 min
Views56K

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

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

Читать далее
Total votes 50: ↑42 and ↓8+43
Comments66

Управляем умным домом Home Assitant через Алису и без интернета. Часть 1

Level of difficultyMedium
Reading time5 min
Views44K

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

Читать далее
Total votes 38: ↑37 and ↓1+38
Comments49

Когда вендор не защитил — защищаем вашу Станцию, Капсулу и A113X

Level of difficultyMedium
Reading time6 min
Views5.3K

Приветствую!

В нашем несовершенном мире «умных домов» и повсеместного IoT с относительно недавних пор стало модным производить (да и покупать домой) очередного разговорчивого электронного друга, а именно: Яндекс Станции, VK Капсулы и тому подобные девайсы.

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

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

Защитить мою колонку!
Total votes 25: ↑25 and ↓0+25
Comments18

Как протестировать Android-приложение, которому требуются разрешения

Level of difficultyMedium
Reading time19 min
Views3.3K
Часто для корректной работы приложению нужен доступ к определенным функциям мобильного устройства: к камере, записи голоса, совершению звонков, отправке SMS-сообщений и т. д. Приложение может получить доступ к ним и использовать только в том случае, если пользователь даст на это разрешение.

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



В этой статье мы покажем, как данные проблемы решает библиотека Kaspresso — популярный (1,7 тысячи звезд на Github) open-source-фреймворк для автотестов.
Читать дальше →
Total votes 22: ↑22 and ↓0+23
Comments3

Полигон для творчества за 1500 р. Ч1: Позовите Кряка

Level of difficultyHard
Reading time10 min
Views11K

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

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

Проведём расследование, поищем JTAG, узнаем способы и отследим разводку BGA, поработаем с ПЛИС, … и много других действительно интересных вещей. Кряк уже заинтересовался!

Как там у нас обычно? «Сломать, а потом читать инструкцию». Инструкций и документации нет, поэтому будем экспериментировать ломать! ☺
Читать дальше →
Total votes 65: ↑65 and ↓0+65
Comments8

Изучаем сетевой стек докера в rootless mode

Level of difficultyMedium
Reading time16 min
Views5.7K


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

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

Слабые модели памяти: буферизации записи на x86

Reading time6 min
Views8.9K

Об авторе


Антон Подкопаев является постдоком в MPI-SWS, руководителем группы слабых моделей памяти в лаборатории языковых инструментов JetBrains Research и преподавателем Computer Science Center.

Еще в 1979 году Лесли Лампорт в статье «How to make a multiprocessor computer that correctly executes multiprocess programs» ввел, как следует из названия, идеализированную семантику многопоточности — модель последовательной консистентности (sequential consistency, SC). Согласно данной модели, любой результат исполнения многопоточной программы может быть получен как последовательное исполнение некоторого чередования инструкций потоков этой программы. (Предполагается, что чередование сохраняет порядок между инструкциями, относящимися к одному потоку.)

Рассмотрим следующую программу SB:



В этой программе два потока, в каждом из которых первая инструкция — инструкция записи в разделяемую локацию (x или y), а вторая — инструкция чтения из другой разделяемой локации. Для этой программы существует шесть чередований инструкций потоков:


Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments21
1
23 ...

Information

Rating
3,309-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity