Pull to refresh
-1
0.2

User

Send message

Яндекс выложил в опенсорс YDB

Reading time16 min
Views154K
Сегодня мы выложили в опенсорс систему управления базами данных YDB — плод многолетнего опыта Яндекса в разработке систем хранения и обработки данных. Исходный код, документация, SDK и все инструменты для работы с базой опубликованы на GitHub под лицензией Apache 2.0. Развернуть базу можно как на собственных, так и на сторонних серверах — в том числе в любых облачных сервисах.



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

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

Строим эффективный сетевой обмен в PHP-микросервисах

Reading time13 min
Views22K

Микросервисы сейчас — это новый черный. Все больше и больше компаний переходят именно на микросервисную архитектуру. И при переходе ловят самые разные ошибки. Самая популярная происходит из-за того, что люди просто не готовы к тому, что их приложения начинают активно использовать сеть. Потому что IPC и RPC-запросы  — это абсолютно разные вещи.

Я техлид в команде Авито в проекте SLA. Сегодня расскажу, как мы оптимизировали сетевые вызовы, чтобы избежать проблем с сетью при переходе в микросервисный мир. Разговор будет про оптимизацию CURL-запросов, деградацию сервисов и FAIL-FAST-подходы.

Читать далее

Дифференциальные и инкрементальные бэкапы MySQL

Reading time7 min
Views18K

Для MySQL существует широко известный инструмент по созданию резервных копий баз данных — mysqldump, который создаёт дамп посредством записи серии SQL-инструкций для восстановления таблиц и данных целевой базы данных.

Он неплохо подходит для резервного копирования небольших баз данных, но когда база данных набирает приличный «вес» и возникает необходимость резервного копирования чаще, чем раз в сутки, скорость создания и размеры дампов могут стать проблемой. В данном случае на помощь приходят утилиты, создающие копию бинарных файлов баз данных, например, такие как Percona XtraBackup.
Читать дальше →

Типичные ошибки при защите сайтов от CSRF-атак

Reading time5 min
Views84K


В настоящее время в сфере обеспечения безопасности веб-сайтов и приложений возникла очень интересная ситуация: с одной стороны, некоторые разработчики уделяют особое внимание безопасности, с другой, они напрочь забывают о некоторых видах атак и не считают ошибки, позволяющие выполнить данные атаки, уязвимостями. Например, к такой категории можно отнести CSRF (Сross Site Request Forgery). Эта атака позволяет производить различные действия на уязвимом сайте от имени авторизованного пользователя. Если вы не слышали о таком, то я рекомендую прочитать соответствующую статью в Википедии, чтобы иметь общее представление об этом виде атак. Основная часть статьи предназначена тем, кто обеспокоен правильной защитой своих сайтов от CSRF.
Читать дальше →

Стажёр Вася и его истории об идемпотентности API

Reading time11 min
Views261K

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


Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси. Сегодня я поделюсь с читателями Хабра описанием проблем, которые могут возникнуть, если не учитывать идемпотентность распределенных систем в своем проекте. Для этого я выбрал формат вымышленных историй о стажёре Васе, который только-только учится работать с API. Так будет нагляднее и полезнее. Поехали.


image

Читать дальше →

Uber — причины перехода с Postgres на MySQL

Reading time19 min
Views106K


В конце июля 2016 года в корпоративном блоге Uber появилась поистине историческая статья о причинах перехода компании с PostgreSQL на MySQL. С тех пор в жарких обсуждениях этого материала было сломано немало копий, аргументы Uber были тщательно препарированы, компанию обвинили в предвзятости, технической неграмотности, неспособности эффективно взаимодействовать с сообществом и других смертных грехах, при этом по горячим следам в Postgres было внесено несколько изменений, призванных решить некоторые из описанных проблем. Список последствий на этом не заканчивается, и его можно продолжать еще очень долго.


Наверное, не будет преувеличением сказать, что за последние несколько лет это стало одним из самых громких и резонансных событий, связанных с СУБД PostgreSQL, которую мы, к слову сказать, очень любим и широко используем. Эта ситуация наверняка пошла на пользу не только упомянутым системам, но и движению Free and Open Source в целом. При этом, к сожалению, русского перевода статьи так и не появилось. Ввиду значимости события, а также подробного и интересного с технической точки зрения изложения материала, в котором в стиле «Postgres vs MySQL» идет сравнение физической структуры данных на диске, организации первичных и вторичных индексов, репликации, MVCC, обновлений и поддержки большого количества соединений, мы решили восполнить этот пробел и сделать перевод оригинальной статьи. Результат вы можете найти под катом.

Читать дальше →

JavaScript: разрабатываем чат с помощью Socket.io, Express и React с акцентом на работе с медиа

Reading time25 min
Views34K



Привет, друзья!


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


Функционал нашего приложения будет следующим:


  • при первом запуске приложение предлагает пользователю ввести свое имя;
  • имя пользователя и его идентификатор записываются в локальное хранилище;
  • при повторном запуске приложения имя и идентификатор пользователя извлекаются из локального хранилища (имитация системы аутентификации/авторизации);
  • выполняется подключение к серверу через веб-сокеты и вход в комнату main_room (при желании можно легко реализовать возможность выбора или создания других комнат);
  • пользователи обмениваются сообщениями в реальном времени;
  • типом сообщения может быть текст, аудио, видео или изображение;
  • передаваемые файлы сохраняются на сервере;
  • путь к сохраненному на сервере файлу добавляется в сообщение;
  • сообщение записывается в базу данных;
  • пользователи могут записывать аудио и видеосообщения;
  • после прикрепления файла и записи аудио или видео сообщения, отображается превью созданного контента;
  • пользователи могут добавлять в текст сообщения эмодзи;
  • текстовые сообщения могут озвучиваться;
  • и т.д.

Репозиторий с исходным кодом проекта.


Если вам это интересно, прошу под кат.

Читать дальше →

Просмотр HTML-кода — не преступление

Reading time3 min
Views56K
В последнюю версию браузера Chrome 98 добавили функцию, с помощью которой администратор локальной сети может блокировать просмотр HTML-кода страниц в браузере.



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

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

Невыдуманные истории из телекома начала 2000-х

Reading time14 min
Views46K

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

Так вот, эти истории произошли в одном небольшом провинциальном городе в начале-середине 2000-х годов. Что такое ИТ и интернет в начале 2000-х в провинции? Домашний десктоп с Pentium 2 и 64 мегабайтами ОЗУ – весьма неплохая машина. Pentium 3 и 128 Мб – уже очень даже мощная. Основная ОС для домашнего пользователя – Windows 98, а те, кто посмелее и поподкованее используют прекрасную Windows 2000, которая в отличие от старой NT4 повернута к пользователю лицом, а не чем-то еще, а в отличие от линейки 95/98/ME не падает в синий экран от неудачного щелчка мышкой.

Читать далее

Критерии качества вёрстки 2021

Reading time32 min
Views52K

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

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

Сейчас пришло время обсудить с сообществом обновлённые критерии.

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

Читать далее

В русском языке не менее 15 падежей (к международному дню русского языка)

Reading time2 min
Views45K

А ЗНАЕТЕ ЛИ ВЫ, что в русском языке не менее 15 падежей. Не только было, а всё ещё есть. Не верите?

«… и никогда не теряйте дара речи» - этой фразой я заканчивала каждую телепрограмму «Знают ли русские русский?»

Как странно, есть же фраза «он просто ДАР речи потерял», но при это «не теряйте ДАРА речи». Почему «дара»? Почему одно и то же существительное с тем же глаголом даёт две разные формы? Потому что это лишительный падеж, он используется с глаголами с частицей «не». «Я не хочу знать правды» (сравним: «хочу знать правду»), «он не имеет права» (а когда имеет, то «право»)

Помните фразеологизм «Врачу, исцелися сам!» (это на церковно-славянском, на латыни: Medice, cura te ipsum)? Что это за «врачу»? Это звательный падеж! В некоторых языках, например, в чешском, он сохранился в полной мере.

Несколько лет назад я услышала, как моя чешская знакомая зовёт своего пса по кличке Арчик:

- Арчику! Арчику!

- В чешском есть звательный падеж? – сразу заинтересовалась я.

Оказалось, да, есть и он образуется так же, как «врачу» из фразеологизма.

Звательный падеж: «Отче, княже, старче...» «Что тебе надобно, старче?» - это как раз из Пушкина, чей день рождения сегодня отмечаем.

Сейчас, конечно, чаще используется новозвательный падеж: «мам, пап, Танюш, Саш...»

«Баллотироваться в мэры. Взять в жёны. Пойти в лётчики…» Что это за форма? Это же не множественное число в именительном падеже)) Это превратительный (включительный) падеж. Он пошёл «превращаться» в лётчика, включаться в категорию «лётчики»

Счетный падеж — встречается с числительным, когда мы что-то считаем: «машины едут в два рядА» (родительный падеж: «из левого рЯда»), «а до смерти четыре шагА» (не «шАга»).

Читать далее

Практическое руководство по анонимности в онлайне

Reading time9 min
Views214K

Направленная антенна для удалённого доступа к публичному Wi-Fi

Обеспечить собственную безопасность (анонимность) в онлайне — тяжкий труд, требующий массивного объёма знаний. Даже лучшие профессионалы не всегда справляются.

Но это возможно.

Предупреждение. Для усвоения информации в полном объёме требуется несколько недель.
Читать дальше →

Какой предел у предсказателя ветвлений? Проверили на x86 и M1

Reading time13 min
Views36K

Некоторое время назад я смотрел на высоконагруженную часть кода и обратил внимание на это:

if (debug) {
    log("...");
}

И тут я задумался. Это — часть цикла, от которого требуется высокая производительность, но этот фрагмент выглядит как пустая трата времени, ведь мы никогда не устанавливаем флаг отладки. Нормально ли иметь в коде условные операторы, которые никогда не выполняются? Уверен, это влияет на производительность программы…
Читать дальше →

Что такое автоматизация маркетинга и как она влияет на развитие бизнеса

Reading time8 min
Views10K

Сегодня различные предприятия активно внедряют автоматизацию маркетинга в свой бизнес. По данным компании по распространению пресс-релизов Cision PR Newswire к 2027 году отрасль автоматизации маркетинговых процессов достигнет отметки 8,42 миллиарда долларов. Это говорит о том, что автоматизация станет важной составляющей продвижения брендов на рынке, и без нее компании перестанут быть конкурентоспособными.

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

Читать далее

Владельца Bitcoin Fog выдал анализ блокчейна от 2011 года

Reading time3 min
Views53K


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

Bitcoin Fog — один из ведущих миксеров. Он работал десять лет. И всё-таки в конце концов предположительного админа сервиса идентифицировали и задержали.

Это история показывает, насколько сложно сохранить анонимность в онлайне. И способ деанонимизации в данном случае особенно показателен.
Читать дальше →

Пиринговые мессенджеры — враг государства?

Reading time7 min
Views84K


В случае полного отключения интернета одна из главных проблем — общение с товарищами и родственниками. Опыт Гонконга показывает, что для этого хорошо подходят децентрализованные P2P-мессенджеры, которые работают без интернета, используя mesh-сеть по протоколам Wi-Fi Direct, Bluetooth, Apple Multipeer Connectivity Framework, ANT+, LoRa и др.

Для эффективной коммуникации приложение нужно скачать максимальному количеству человек до начала блокады интернета. Иначе придётся искать файлы после блокады. Человек с нужными файлами станет настоящим авторитетом в офисе или в классе (как это было в Беларуси в августе 2020 года — за файлами Psiphon люди реально приезжали из других микрорайонов города).

Вообще, вся история сетей wireless mesh намекает на то, что эта технология крайне не нравится правоохранительным органам.

Использование быстрых клавиш в командной строке Linux (BASH)

Reading time14 min
Views105K

Эта статья посвящена наиболее часто используемым комбинациям клавиш при работе в командной строке Linux (в основном в командном интерпретаторе bash).

Она точно будет полезна начинающим своё знакомство с Linux и, уверен, пригодится тем, кто уже имеет опыт (не всегда годы практики учат работать быстрее).

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

Я попытался продемонстрировать многие примеры при помощи анимированных gif'ок – иногда несколько кадров больше скажут, чем несколько абзацев текста.

Читать далее

MySQL: казнить нельзя помиловать

Reading time9 min
Views18K


Сайт и интернет-магазин «Эльдорадо» — это около 40 тысяч покупок ежедневно. Объяснять, что это значит для бизнеса компании, наверное, не надо.

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

Монолитные приложения есть у значительного числа компаний, и работать с ними приходится очень многим. Способов борьбы с монолитом предостаточно, вот только про удачные, к сожалению, пишут мало. Надеюсь, что рассказ о том, как мы подпираем наш монолит (пока его не распилили) будет вам интересен.
Читать дальше →

Я купил 300 казахских доменных имён с эмодзи и создал свой почтовый сервис

Reading time6 min
Views45K
Если вкратце: я скупил 300 казахских доменных имён, состоящих из эмодзи, и сделал сервис, который регистрирует адреса почтовых ящиков с эмодзи. По ходу дела я завирусился на TikTok, заработал тысячу долларов за неделю, нанял японского актёра для озвучки ролика и многое узнал об удивительном мире доменов с именами-эмодзи.

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

В наше время и дня не проживёшь, чтобы не столкнуться в Интернете с каким-нибудь эмодзи, но вот домены подобного рода мне до сих пор не попадались. И мне стало интересно: а можно ли зарегистрировать такой домен?
Читать дальше →

Чем email-маркетологу полезен постмастер?

Reading time5 min
Views4.4K

Рассказываем о статистике, которую предоставляют постмастеры от Mail.ru и Gmail.com: зачем она нужна, как интегрирована с сервисом DashaMail.

Подготовка рассылки позади: чтобы подписчики открыли письмо, маркетолог выбрал оптимальные тему, прехедер, время и имя отправителя; чтобы совершили целевое действие – поработал над дизайном и содержанием. Но пользователи не смогли оценить результат, ведь вместо папки «Входящие» рассылка улетела в спам.

У сервисов email-рассылок (ESP) нет информации, в какую именно папку попадает письмо. Если оно не было отклонено СПАМ-фильтром, то оно доставлено. При этом открытия из папки СПАМ не отслеживаются, так как, как правило, в этой папке отключены картинки, а именно по их загрузке трекается прочтение письма.

Чтобы видеть распределение доставленных писем по папкам, следует контролировать свою почтовую репутацию с помощью сервисов аналитики доставляемости – постмастеров.

Читать далее

Information

Rating
3,447-th
Registered
Activity