Pull to refresh
-11
0
spanasik @spanasik

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

Send message

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

Reading time8 min
Views2.8K

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

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

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

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

Мы шаг за шагом рассмотрим пример сценария использования и воспользуемся флагами функций, помогающими нам выполнить изменения.

Читать далее

Дистанционная работа из-за границы, Проблемы с налогами

Reading time3 min
Views54K

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

Статья для всех кто прожил или планирует прожить за пределами РФ более 183 дней в течение календарного года.

Читать далее

Kafka, Python и золотая рыбка

Reading time10 min
Views42K

Поймал как-то программист золотую рыбку, а она ему и говорит человеческим голосом: «Отпусти меня в синее море, я исполню любое твоё желание». Программист ЦПУшечкой поскрипел, да и выдал техзадание. «Построй мне», – говорит, – «систему обработки неидемпотентных запросов, да чтоб она была высокопроизводительной, масштабируемой, гибкой и отказоустойчивой!». Охнула сперва золотая рыбка, но взяла себя в плавники и молвила: «Не печалься, ступай себе домой, код написан, система развёрнута. Отпускай меня уже». Удивился программист: «Да ладно? Ну, сейчас проверю и отпущу». «Нет», – возражает рыбка – «пока ты проверяешь, я уж засохну, и всё волшебство исчезнет». Программист задумался: «Что же делать: сначала отпустить, а потом проверить, или сначала проверить, а потом сушёную рыбу к пиву получить?».

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

Читать далее

Создаём личный «Архив интернета»

Reading time7 min
Views31K


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

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

Освежите ваш COBOL: почему на язык 60-летней выдержки вдруг резко возник спрос?

Reading time13 min
Views52K

Давным-давно, когда мир был юн, и компьютеры в нем были в новинку, я учился по программе на младшего сотрудника (Associate Degree) по обработке данных – программ по «компьютерным наукам» тогда не было – и в рамках этой программы преподавались бухгалтерское дело, математика, статистика, а также три языка программирования: ассемблер IBM/360, FORTRAN и COBOL. К 80-м студентам уже рассказывали, что COBOL мертвый язык, и никто его больше не изучают.

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

Читать далее

8 проблем в архитектуре Kubernetes

Reading time7 min
Views16K
Архитектура Kubernetes хорошо подходит для организаций типа FAANG, но может оказаться избыточной и чрезмерно сложной для прочих.

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

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

1. Kubernetes разработан для компаний типа FAANG


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

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

10 антипаттернов деплоя в Kubernetes: распространенные практики, для которых есть другие решения

Reading time21 min
Views12K

Команда Kubernetes aaS от Mail.ru Group продолжает серию переводов о правильном использовании Kubernetes. В этот раз — об антипаттернах разработки на Kubernetes с рекомендациями, как сделать по-другому.

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

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

Читать далее

Факапы миграции: разбираем частые ошибки при переезде инфраструктуры на реальных примерах

Reading time5 min
Views10K

«При переезде оборудования было принято парадоксально глупое решение — перенести сервер между зданиями без выключения, на ИБП. Не добежали… », — неизвестный герой.

Привет! Я Виталий Прокофьев, на Хабре меня знают как исследователя истории техники, но сегодня я пишу в другой роли. В «обычной» жизни я не коллекционер старого железа, а руководитель отдела услуг администрирования (Managed Services) в Selectel. Среди прочего мы помогаем клиентам переехать в наши дата-центры или перейти с выделенных серверов в облако.

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

Кстати, делитесь своими историями успешных (и не очень) миграций в комментариях! Будет интересно почитать.
Читать дальше →

Делаем визуализацию распределения доходов населения России на основе данных Росстата

Reading time5 min
Views44K

По данным Росстта в среднем житель России имеет доход 35 700 ₽ в месяц. Эта цифра мало что говорит о благосостоянии населения. Если взять двух человек — одного с доходом 70 000 ₽ и 1400 ₽, их средний ежемесячный доход будет равен ровно 35 700 ₽. Чтобы лучше продемонстрировать распределение доходов, я смастерил калькулятор, который позволяет посчитать количество людей с заданным диапазоном дохода и наглядно продемонстрировать их вклад в общий уровень доходов.

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

Поехали!

Записи воркшопов для Java-разработчиков по ActiveMQ, RabbitMQ, Apache Kafka

Reading time2 min
Views9.1K

Летом прошёл онлайн-интенсив GET PROF IT: Messaging, посвящённый работе с инструментами, которые пригодятся Java-разработчикам. Для тех, кто только вернулся из отпусков и пропустил это событие, мы решили поделиться записями воркшопов.

Читать далее

Как спарсить любой сайт?

Reading time6 min
Views226K

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

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

Узнать как

Вся правда о когнитивных искажениях

Reading time9 min
Views62K
Всё чаще на Хабре можно встретить выражения типа «типичная ошибка выжившего» или «эффект Даннинга-Крюгера в действии». Предполагается, что авторы таких высказываний достаточно компетентны, чтобы позволять себе подобного рода суждения. Но так ли это? В этой статье мы попробуем копнуть парочку когнитивных искажений чуть глубже, чем они рассматриваются в википедии.

узнать всю правду

Как серверу на Django знать своих клиентов на React в лицо, практическое руководство

Reading time23 min
Views23K

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


Достаточно несложно в React нарисовать форму, где можно позволить пользователям вводить свои учетные данные, включающие в себя логин и пароль. Не стоит практически никаких усилий, чтобы на Django сверить пароль, соответствующий логину в базе данных. Но что дальше? Обзор получился достаточно объемный с примерами кода, которые помогут воссоздать реализацию всех схем аутентификации/авторизации.


main

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

Быстрый, мощный интерфейс на Python

Reading time15 min
Views153K

Dear PyGui принципиально отличается от других фреймворков GUI Python. Рендеринг на GPU, более 70 виджетов, встроенная поддержка асинхронности — это лишь некоторые возможности Dear PyGui. Руководством по работе с этим пакетом делимся к старту курса по разработке на Python.

Читать далее

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон

Reading time16 min
Views45K


Очередная история успеха после череды неудач. Расскажу, чего мне стоило получить офферы от Facebook*, Google, Amazon, JP Morgan в Европе, как я готовился, сколько собесов зафейлил перед тем, как удача повернулась ко мне правильной стороной.


TL;DR. Послал сотни резюме. Прорешал около 100 задач на Leetcode. Прочел книжку по архитектуре (не той, которая про дома, а той, которая system design). Прошел 9 интервью. Получил 4 оффера. Принял 1. Жил, пока что, не очень долго, но, вполне себе, счастливо в Лондоне.
Читать дальше →

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

Reading time5 min
Views25K

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

Читать далее

Лучшие RP2040 платы для ваших проектов в 2021 году

Reading time7 min
Views19K
image

В январе 2021 года Raspberry Foundation впервые представила чип собственной разработки, RP2040. Первая система на его основе — микроконтроллер Raspberry Pi Pico, который сразу же стал конкурентом части устройств на Arduino.

Несколько позже собственные платы на основе этого чипа стали выпускать и другие компании, так что за сравнительно короткое время появилась достаточно обширная ниша новых микроконтроллеров на базе RP2040. В продолжении — список лучших (для разных целей) плат RP2040. На их основе можно создавать самые разные проекты — от простых роботов до базовых ИИ-систем.
Читать дальше →

Как развитие алгоритмов сжатия остановилось 20 лет назад, или о новом конкурсе на 200 тысяч евро

Reading time18 min
Views74K

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

Пост набрал 206 «плюсов», вышел на 2 место топа недели и вызвал оживленную дискуссию, в которой мне больше всего понравился комментарий: «Коммерческого интереса эффективность по сжатию алгоритмов сжатия без потерь сегодня не представляет, в силу отсутствия принципиально более эффективных алгоритмов. Деньги сегодня — в сжатии аудио-видео. И там и алгоритмы другие. Тема сжатия без потерь удобна именно лёгкостью верификации алгоритма, и не слегка устарела. Лет на 20.» 

Поскольку я сам уже 20 лет в области сжатия видео, с ее бурным развитием мне спорить сложно. А вот что сжатие без потерь развиваться перестало… Хотя логика тут понятна каждому. Я до сих пор пользуюсь ZIP, все мои друзья пользуются ZIP с 1989 года — значит, ничего нового не появляется. Так ведь? Похоже рассуждают сторонники плоской земли. ))) Я не видел, знакомые не видели, и даже некоторые авторитеты утверждают, значит, это так! 

О том, как Intel просили меня не прекращать читать курс по сжатию, ибо людей нет новые алгоритмы делать, я в прошлый раз писал. Но тут и Huawei в ту же дуду дует! Вместо того, чтобы раздать призы и должности победителям, а затем успокоиться, поскольку развитие давно встало, эти эксцентричные люди посчитали конкурс крайне успешным и запустили новый с призовым фондом 200 тысяч EUR.

Развивались ли алгоритмы сжатия без потерь в последние 20 лет? Чем закончился прошлый конкурс и на сколько опередили baseline? Сколько денег получили русские таланты, а сколько зарубежные? И есть ли вообще жизнь на Марсе в сжатии без потерь? 

Кому интересно — добро пожаловать под кат! 
Читать дальше →

Начало работы с MongoDB и Redis на Rust

Reading time13 min
Views13K

В этой статье будет показано как создать Rust бэкэнд, который использует MongoDB, документо-ориентированную БД, для хранения данных и Redis для кэширования, ограничения количества HTTP запросов и нотификаций пользователя. Для большей наглядности созданное приложение также будет предоставлять REST API. В итоге будет получена следующая архитектура:


architecture


MongoDB является хранилищем, в то время как Redis используется для следующего:


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

Бесплатно или хотя бы недорого — где взять музыку для коммерческого использования

Reading time3 min
Views11K

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

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

Читать далее

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity