Как стать автором
Обновить
0
@kPavel0206read⁠-⁠only

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

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

PostgreSQL. Устройство карты свободного пространства

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

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

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

Читать далее
Всего голосов 10: ↑10.5 и ↓-0.5+11
Комментарии2

Шардирование (sharding). Эпизод 1: Начало и шардирование по идентификатору

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

Divide et impera (разделяй и властвуй) – древний принцип для управления чем-то большим и сложным.

Многие из нас программируют. Многие из нас делают системы, сложные системы. Но некоторым повезло работать в ситуации, когда объёмы по-настоящему огромны и требования кажутся невыполнимыми. Шардировние – один из излюбленных счастливчиками, которых зовут приключения, приемов.

Что-нибудь разбить на кусочки – это круто! Переходите на сторону шардирования у нас есть печеньки!

За кусочками!!!
Всего голосов 22: ↑22 и ↓0+22
Комментарии7

Разница между pool.map и pool.map_async в Python

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

Еще одна статья-шпаргалка о модуле multiprocessing в Python, без воды, от новичка для новичков многопроцессорного программирования.

pool.map и pool.map_async являются методами модуля multiprocessing.Pool в Python, которые позволяют параллельно выполнять функции на нескольких процессах.

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

Модули multiprocessing и threading в Python

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

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

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

Xv6: учебная Unix-подобная ОС. Глава 6. Блокировки

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

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

Потоки конкурируют за доступ к структуре данных. Ядро кишит структурами, которые потоки используют совместно. Блокировки защищают данные при конкурентном доступе.

Глава расскажет, зачем нужны блокировки, как xv6 реализует и использует блокировки.

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

Мини история Биткоина для чайников и возможные идеи для роста

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

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


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


Дальнейший крупный рост цены биткоина был вызван ажиотажем вокруг незаменимых токенов NFT на базе смарт контрактов. В то же время были запущены стейбл коины на USDC и USDT, которые явно конкурировали с биткоином как платежное средство, имеющие большое преимущество в скорости транзакции и стабильности курса почти 1 к 1 к USD. Как результат, произошел новый приток инвесторов и пользователей на крипторынок.

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

На будущий курс биткоина могут повлиять:

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


Читать далее
Всего голосов 7: ↑1 и ↓6-5
Комментарии8

Я в благородство играть не буду: как производители дешевых смартфонов закладывают срок службы в свои устройства

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

Во все времена существования мобильных телефонов, дешевый сегмент всегда оставался одним из самых прибыльных и массовых направлений мобильного бизнеса. Помимо «простозвонилок» в духе Nokia 1100 или 1202, на рынке есть огромный спрос к ультрабюджетным смартфонам ценой до 10 тысяч рублей. И если с дешевыми девайсами у локальных ритейлеров всё понятно (чипсеты 5+ летней давности, минимальный объём ОЗУ и ПЗУ, простенькие TN-матрицы низкого разрешения), то китайские магазины готовы предложить по этой цене устройства с небывало щедрыми характеристиками — и 8Gb RAM, и 512Gb ROM, и Snapdragon 888+. Для большинства покупателей неочевидно, что эти характеристики — обман, а девайс будет обладать лишь базовыми параметрами. Но что самое обидное, производитель закладывает программный и аппаратный срок службы в такие устройства, из-за чего более половины смартфонов выходят из строя через 4-5 месяцев после покупки, а в СЦ за ремонт просят половину цены от нового. Около года назад я купил почти новую китайскую реплику Huawei P30 Pro с родной коробкой и заводской плёнкой всего за 400 рублей, которая уже была не рабочей. Сегодня мы с вами: узнаем о том, как производители экономят и закладывают срок службы в бюджетные мобилки, на практике отремонтируем подобный девайс своими руками (причём ремонт обойдется нам в 70 рублей) и посмотрим, можно ли пользоваться таким бюджетником за 470 рублей на в 2023 на практике. Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 172: ↑162 и ↓10+152
Комментарии163

SQL в Фокусе: Полное Руководство. 100 ключевых Вопросов с собеседований

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


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

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

Читать
Всего голосов 34: ↑23 и ↓11+12
Комментарии27

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

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

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

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Всего голосов 216: ↑214 и ↓2+212
Комментарии77

Итак, вы думаете, что знаете Git? Часть первая: старый добрый Git

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

Автор оригинала Скотт Чакон — сооснователь GitHub и основатель нового клиента GitButler. Этот клиент ставит во главу угла рабочий процесс и удобство разработки, в том числе код-ревью, и не является просто очередной обёрткой над CLI git.


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



Давайте покопаемся!
Всего голосов 25: ↑24 и ↓1+23
Комментарии6

Управление памятью в Linux

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

Управление памятью (memory management) является важной подсистемой операционной системы Linux, которая обеспечивает эффективное использование ресурсов физической и виртуальной памяти. В Linux управление памятью в основном подразумевает обработку запросов к памяти от процессов, выделение и освобождение блоков памяти, а также обеспечение ее эффективного использования.

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

Обзор языка Erlang и его синтаксиса

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

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

История Erlang 80-х годах прошлого века в стенах шведской компании Ericsson. Он был разработан первоначально для нужд телекоммуникаций, Erlang задумывался как инструмент для создания распределенных, отказоустойчивых систем с возможностью быстрого обновления кода. :

В этой статье кратко рассмотрим его синтаксис и основные возможности.

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

Next.js. Технология современной веб-разработки

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

Современная веб-разработка требует эффективных инструментов, способных справляться с высокими стандартами производительности и пользовательского опыта. В этой статье мы рассмотрим Next.js, мощный JavaScript-фреймворк и новаторское решение для создания современных веб-приложений на основе React, созданный компанией Vercel. Узнаем, как он помогает разработчикам создавать высокопроизводительные, масштабируемые и SEO-дружественные веб-приложения. Мы также глубоко погрузимся в его функциональность, рассмотрим особенности, такие как серверный рендеринг и генерация статических сайтов, и предоставим примеры использования. Давайте разберем, как Next.js становится ключевым инструментом в современной веб-разработке, обеспечивая идеальный баланс между разнообразием функций и оптимальной производительностью.

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

Миграция микросервисной архитектуры на API Gateway

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

Микросервисная архитектура Amediateka была спроектирована более 6 лет назад предыдущей командой разработки. С тех пор добавилось много новых микросервисов, но фундаментальная часть архитектуры осталась прежней. В этом году мы решили внедрить несколько глобальных изменений, одно из которых - API Gateway. Статья расскажет о том, что это такое, какие преимущества дает, как просто и безопасно мигрировать функционирующую систему на API Gateway и сделает обзор готовых решений.

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

Как я уменьшил размер образа docker на 40%

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

Ежедневно по работе я сталкиваюсь с Dockerfile, написал несколько из них самостоятельно, создавал контейнеры и всё такое. Но я никогда не публиковал их в реестре docker hub. Мне хотелось создать ugit — инструмент для отмены команд git (написанный в виде шелл-скрипта), который бы могли использовать люди, не любящие устанавливать случайные шелл-скрипты из Интернета.

Да-да, знаю. НАДО ПЕРЕПИСАТЬ ЕГО НА GO/RUST/ЕЩЁ КАКОМ-ТО ВОЛШЕБНОМ ЯЗЫКЕ. Сейчас скрипт состоит из пятисот с лишним строк Bash, поэтому я перепишу его на другой язык только под страхом смертной казни. Кроме того в ugit уже есть практически все функции (осталось реализовать отмену лишь небольшого количества команд, используемых не так часто).

В этой статье я расскажу о том, как написал официальный Dockerfile для ugit (шелл-скрипта) и снизил размер образа почти на 40% (с 31,4 МБ до 17,6 МБ), выполняя пошаговые попытки работы по инструкции. Надеюсь, это замотивирует других любителей шелла тоже публиковать свои скрипты в виде образов docker!

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

Практическое руководство по Rust. 1/4

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



Hello world!


Представляю вашему вниманию первую часть практического руководства по Rust.



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


Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владеют любым современным языком программирования. Еще раз: это руководство не рассчитано на тех, кто только начинает кодить 😉

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

Шардирование: с нуля до Яндекс Диска

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

Меня зовут Андрей Колнооченко. Я отвечаю за ядро файловой системы Яндекс Диска. Когда мы запускали сервис, то сразу ориентировались на рост и приняли решение шардировать базу метаданных о файлах. Но за 11 лет Яндекс Диск настолько вырос, что нам пришлось трижды менять подход к шардированию. В статье расскажу, с какими проблемами мы сталкивались по мере роста сервиса и как от MongoDB пришли в итоге к PostgreSQL.

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

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

В новый год с новым ядром: что нового и интересного в Linux 6.7?

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

Начало 2024 года приятное — вышел релиз ядра Linux 6.7. Как всегда, есть новости, изменения, кроме того, из ядра убрали устаревшие компоненты. Среди новинок можно отметить прекращение поддержки архитектуры Itanium, добавление ФС Bcachefs, а также P futex в io_uring.

Что касается статистики, то в новом релизе сразу 18405 исправлений от 2066 разработчиков. Размер патча составляет 72 МБ (изменения затронули 13467 файлов, добавлено 906147 строк кода, удалено 341048 строк). Как всегда, больше всего изменений связанных с драйверами устройств, их около 45%. Гораздо меньше — в обновлениях, которые имеют отношение к поддержке архитектур, сетевому стеку, файловым системам и внутренним подсистемам ядра — 14%, 13%, 5% и 3% соответственно. Подробности — под катом.
Читать дальше →
Всего голосов 69: ↑67 и ↓2+65
Комментарии2

Знакомство с WebTransport API

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


Hello world!


На днях я прочитал статью о WebTransport API как будущей альтернативе или даже замене WebSockets. Мне стало интересно, что это такое и с чем его едят. Давайте разбираться вместе.

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

Почему B-деревья быстрые?

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

B-дерево — это структура, помогающая выполнять поиск в больших объёмах данных. Она была изобретена более сорока лет назад, однако по-прежнему используется в большинстве современных баз данных. Хотя существуют и более новые структуры индексов, например, LSM-деревья, B-дерево пока никто не победил в обработке большинства запросов баз данных.

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

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

Информация

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