
Быстрая сборка кубика Рубика

User
Знакомо ли вам чувство, когда на поддержке есть сервис, о принципах работы которого знает буквально пара человек? В таких условиях очередная задача по миграции с одного решения на другое эквивалентна по-дурацки спродюсированному квесту из ролевой игры: ищем документацию, просматриваем глазами код, вызваниваем тех немногих, кто посвящен в таинства организации компонента системы.
В какой-то момент порог негодования в нашей команде достиг критической отметки. Количество сервисов на поддержке приближалось к двум десяткам. Сами же сервисы не развивались, а просто существовали как есть. Более того, никакой общей доменной области, никаких актуальных описаний архитектуры.
Мы решили навести порядок и разметить сервисы для понимания их архитектурных компонентов. После обсуждения взяли прицел на автоматизируемый процесс описания системы, а не на ручную поддержку документации. Добро пожаловать под кат — рассказываю о нашем пути, а в конце делюсь ссылкой на библиотеку.
Привет, Хабр! Меня зовут Асхат, я работаю в Yandex Infrastructure — инженерной команде, которая делает фундаментальные технологии для работы Яндекса. Иногда натренированный взгляд инженера может пригодиться и в личных делах. Позапрошлой осенью на мой День рождения автомобиль Tesla model S сделал мне подарок. Он просто перестал ехать и сыпал ошибками. Утром ничего не предвещало беды, а вечером сел в автомобиль, и на экране замелькало: «Низкое напряжение», «Требуется обслуживание», «Невозможно ехать».
Это превратилось в историю непростого инженерного расследования, отчаяния, поиска очевидных и неочевидных решений. Но всё‑таки дело завершилось новогодним чудом: благодаря моим стараниям машина ожила. Если и вам хоть раз приходилось самостоятельно чинить подобное и хочется побольше историй со счастливым концом — добро пожаловать под кат.
Но осторожно, не пытайтесь повторять это самостоятельно!
Я давно хотел реализовать этот проект. Цель заключалась в создании маски, покрытой светодиодами и выполненной из печатных плат. Я использовал 16 отдельных матричных панелей с общим количеством 2960 адресных светодиодов, которые позволяют отображать на маске всё, что только захочется.
Это довольно трудоёмкая работа, конструкция хрупкая и нагревается при использовании. Однако, если вы готовы к вызову, попробуйте. Этот проект подходит только для опытных пользователей.
Иногда сложно справиться с большим потоком задач и информации, особенно если это касается работы. Поэтому создание персональной базы знаний для своих текущих дел становится весьма актуальным. Но простая фиксация данных не всегда эффективна: легко потеряться в куче заметок. Различные методики помогают правильно организовать процесс. Вместе с тем информация не существует сама по себе, она, как правило, неразрывно связана со всеми нашими проектами, задачами и другими событиями. Если это учитывать, то проще оперировать данными, находить нужные факты. Через задачу легко выйти на связанную с ней информацию или, наоборот, через данные можно найти проект или задачу, в рамках которых они появились. Однако на практике все это будет эффективно работать, если получится создать единую среду для ведения дел и хранения всех связанных с ними данных.
Существующие приложения, как правило, не могут предоставить готовое решение для работы в таком контексте. Приходится придумывать или создавать что-то свое. Самое простое — это начать с каких-то стандартных заметочников, например Evernote или OneNote, и приспособить их под себя. Однако с появлением Roam-подобных программ пришло понимание, что можно создать очень гибкую систему, которую легко настроить под ведение любого вида задач, проектов и хранение различного типа связанной с ними информации. В этой статье познакомимся с примером настройки и практического использования маркдаун-заметочника Obsidian совместно с методологией Getting Things Done (GTD) Дэвида Аллена.
Книга Google о SRE, статьи экспертов, документация и обучающие курсы дают исчерпывающие знания о том, как в идеале должен работать SRE в компаниях. Правда, ключевое здесь – «в идеале». Работа с метриками и управление инцидентами в командах может сильно различаться по ряду причин: количество людей в команде, скорость выкатки нового функционала, число микросервисов, распределение компетенций и тд.
Когда переходишь от теории к реалиям жизни непременно возникают тупики и вопросы: как внедрить бюджет ошибок, кто за него будет ответственен, как договориться с разработкой, должны ли SRE-инженеры лезть в код при инцидентах и многое другое. В этой статье мы поговорим о выстраивании рабочего процесса на старте, когда вам нужно выставить первый SLO, рассчитать бюджет ошибок и мирно обо всем договориться с командой разработки и бизнесом.
Привет, Хабр!
Меня зовут Рожнев Андрей, участник профессионального сообщества NTA.
Делюсь личным опытом по настройке терминала в Unix‑подобных ОС (macOS, Fedora, Ubuntu и так далее).
Когда я только залетал в отрасль софтверной разработки, первое, что меня напрягло — конечно же терминал и его неотвратимость. По итогу же оказалось, что терминал — это твой верный друг и соратник на тернистом, но таком интересном пути в мир IT. Один из вариантов полюбить терминал — потратить какое‑то время, немного разобраться в теме и настроить всё это дело под себя любимого.
В ClickHouse постоянно возникают задачи, связанные с обработкой строк. Например, поиск, вычисление свойств UTF-8 строк или что-то более экзотическое, будь то поиск типа учёта регистра или поиск по сжатым данным.
Всё началось с того, что руководитель разработки ClickHouse Лёша Миловидов o6CuFl2Q пришёл к нам на факультет компьютерных наук в НИУ ВШЭ и предложил огромное количество тем для курсовых и дипломов. Когда я увидел «Умные алгоритмы обработки строк в ClickHouse» (я, человек, который увлекается разными алгоритмами, в том числе экспериментальными), сразу же настроил планов, как сделаю самый крутой диплом. Мою радость и выражение лица можно описать следующей картинкой:
Wireshark – это широко распространённый инструмент для захвата и анализа сетевого трафика, который активно используется как для образовательных целей, так и для устранения неполадок на компьютере или в сети. Wireshark работает практически со всеми протоколами модели OSI, обладает понятным для обычного пользователя интерфейсом и удобной системой фильтрации данных. Помимо всего этого, программа является кроссплатформенной и поддерживает следующие операционные системы: Windows, Linux, Mac OS X, Solaris, FreeBSD, NetBSD, OpenBSD.
Я постоянно пишу заметки. В общей сложности занимаюсь этим уже 4+ года. Сперва был приверженцем бумажных заметок, так как мало информации "для изучения" туда попадало. Потом появилась потребность в навигации в своих записях, поэтому ушёл в цифру.
Сначала пробовал ноуш для личных записей + Confluence для записей по личным проектам + Saved Messages в тг для ссылок .
Оказалось сложно и не удобно. Год назад открыл для себя Obsidian.
Перенёс туда всю инфу со всех пространств и было ОК несколько месяцев. Но информация всё копилась и копилась.
И тут пришло время усложнений и планирования...
Бросание монеты - дело не хитрое да и оборудование для экспериментов не очень дорогое. Бросай себе и бросай. Этот простой эксперимент дает неожиданно много следствий, многие из которых не очевидны, а порой и контринтуитивны.
Моя интуиция с завидным постоянством подсказывает мне неверное решение поэтому я собрал замечательную коллекцию грабель на которые я наступал и хотел бы ее показать публике. Я не буду использовать формул и законы больших чисел, эти столпы теорвера нам не понадобятся. Обойдемся только граблями их будет много и разных.
Привет, Хабр!
В прошлой статье меня знатно разбомбили в комментариях, где-то за дело, где-то я считаю, что нет. Так или иначе, я выжил, и у меня есть чем с вами поделиться >:)
Напомню, что в той статье я рассказывал, каким я вижу идеальное собеседование и что я нашёл компанию, которая так и делает - и я туда прошёл, хотя это был адский отбор. Я, довольный как слон, везде отметил, что я не ищу работу, отовсюду удалился и стал работать работу.
Как вы думаете, что делают рекрутеры, когда видят "Alexandr, NOT OPEN FOR WORK"? Правильно, пишут "Алексей, рассматриваете вариант работать в X?" Я обычно игнорирую это, но тут мне предложили попытать счастья с Яндекс.Лавкой, и я не смог пройти мимо - интересно было, смогу ли я устроиться куда-нибудь, когда введут великий российский файерволл. К тому же за последние 3 года я проходил только два интервью, и мне показалось, что я не в теме, что нынче требуется индустрии. Блин, я оказался и вправду не в теме. И вы, скорей всего, тоже - об этом и статья.
Редко когда кандидат проходит только одно техническое собеседование — обычно их несколько. Среди причин, почему человеку они могут даваться непросто, можно назвать и ту, что каждый раз приходится общаться с новыми людьми, думать о том, как они восприняли твой ответ, пытаться интерпретировать их реакцию. Мы решили попробовать использовать формат контеста, чтобы сократить количество итераций для всех участников процесса.
Для Блица мы выбрали исключительно алгоритмические задачи. Хотя для оценки раундов и применяется система ACM, в отличие от спортивного программирования все задания максимально приближены к тем, которые постоянно решают в продакшене Поиска. Те, кто решит успешно хотя бы четыре задачи из шести, могут считать, что прошли первый этап отбора в Яндекс. Почему алгоритмы? В процессе работы часто меняются задачи, проекты, языки программирования, платформы — те, кто владеет алгоритмами, всегда смогут перестроиться и быстро научиться новому. Типичная задача на собеседовании — составить алгоритм, доказать его корректность, предложить пути оптимизации.
Квалификацию можно пройти с 18 по 24 сентября включительно. В этом раунде вам нужно будет написать программы для решения шести задач. Можете использовать Java, C++, C# или Python. На всё про всё у вас будет четыре часа. В решающем раунде будут соревноваться те, кто справится как минимум с четырьмя квалификационными задачами. Финал пройдёт одновременно для всех участников — 30 сентября, с 12:00 до 16:00 по московскому времени. Итоги будут подведены 4 октября. Чтобы всем желающим было понятно, с чем они столкнутся на Блице, мы решили разобрать пару похожих задач на Хабре.
В конце сентября мы рассказывали, что решили попробовать провести контест, где желающие могут потренироваться в решении задач, максимально приближенных к «боевым». Так участники могут понять, какого формата задания получают разработчики на собеседованиях в Яндексе (этим интересуются очень многие), а самое главное — с чем они сталкиваются, работая над Поиском. Типичная задача на собеседовании — составить алгоритм, доказать его корректность, предложить пути оптимизации. Если человек разбирается в алгоритмах, то он быстро сумеет их реализовывать на любом доступном ему языке.
В Блице можно использовать Java, C++, C# или Python. Кроме того, участие в контесте дает возможность проверить свои знания. Если в итоге вы понимаете, что их стоит подтянуть, — это тоже результат. Кстати, тогда вам может пригодиться специализация на курсере «Алгоритмы и структуры данных», в создании которой Яндекс участвовал.
Давайте теперь разберем задачи, которые предлагались в отборочном раунде. У нас было несколько одинаковых по сложности вариантов, каждый из которых содержал по шесть задач. Мы разберем один набор задач полностью, а также наиболее интересные задачи из других наборов. К слову, из 1762 участников квалификационного раунда в финал прошли лишь 263. Так что задачи оказались не самыми простыми.
В PostgreSQL существует большое количество разных типов таблиц. Каждая из них предназначена для решения конкретных задач. Самая распространённая и известная — heap table или стандартная таблица. Про её структуру я рассказывал в прошлой статье. Стандартная таблица позволяет хранить строки, обновлять данные, делать OLAP и OLTP-запросы.
Тем не менее, существует ещё целый ряд таблиц, про которые просто забывают. На мой взгляд, интересные таблицы сейчас — это нежурналируемые и временные таблицы. В этой статье мы поговорим именно про них и сравним их с журналируемыми таблицами.
Я искренне считаю, что математическая статистика должна стать базовым навыком каждого маркетолога и продакта. Сейчас, к сожалению, это не так. Поэтому и написал «путеводитель» по статистике, для тех, кому тяжело подступиться к изучению данного раздела математики и, тем более, сделать его «навыком».
Все представленные ниже материалы основаны на моём опыте изучения математической статистики.
При работе с распределенными базами данных, возникают задачи, которые ввиду технических ограничений сложно или невозможно решить с помощью всем привычного пакета Pandas на Python. Решением может стать использование распределенных вычислений Spark и его собственных DataFrame.
Очередная статья в серии «Инструменты мониторинга Logicify» рассказывает о Grafana. Это программное средство мы используем для визуализации и анализа данных как внутренних, так и внешних проектов. Статья может быть полезна техническим директорам, разработчикам, DevOps, системным администраторам, менеджерам проектов, а также всем заинтересованным лицам.