Разработчик баз данных
Объясните, почему мой рокет-саенс бэкенд билдится пару секунд, а четыре формы на фронте — полгода
На прошлой неделе мне удалось невозможное - я уговорил родителей забрать моих детей на все выходные. Если у кого-то из вас есть несколько мелких, вы должны пониматть, какое счастье на меня свалилось. Я уже предвкушал лучшие два дня в своей жизни - но семейная жизнь не ограничивается проблемами от детей. Я проводил мало времени с женой последнее время - и был приговорен к выходным в загородном экоотеле. Тут надо сказать, что я идиот - единственный в мире разраб, у которого нет ноута, поэтому если я уезжаю из дома, то могу попрощаться с любыми планами поработать, или вообще поделать что-то значимое, потому что телефон для меня - не инструмент.
Идиотом быть трудно, поэтому я стараюсь учиться на ошибках, чтобы стать меньшим идиотом в будущем. Я решил сделать себе хороший подарок - и заказал себе топовейший ноут. В моем городе хорошее железо не лежит вот так просто на прилавках магазинов, нужно зайти на сайт, выбрать тачку, выбрать конкретный магаз и заехать за ним. Я все обтяпал так, чтобы как раз к моему возвращению из отеля мой супер девбокс ждал меня в магазине на пути к дому.
Все выходные я предвкушал, как вернусь домой, настрою окружение, впилю темную тему во все, во что только можно. Мой десктоп успел прилично устареть, и мысль, что я поработаю на действительно шустрой машине завораживала. Весь процесс уже красиво сложился в голове. Я уже точно знал, как развалюсь на любимом пуфике, положу ноут на ноги, и начну фигачить код с космической скоростью.
Упаковка приложения в F-Droid
tl;dr: упаковываю и отправляю приложение без троянов для управления своими лампами в F-Droid без каких-либо знаний в разработке для Android.
У меня есть политическая позиция, я сторонник СПО во многом согласен со Столлманом. Как это часто бывает, такая позиция дополняется лёгкой паранойей. Я стараюсь избавляться от проприетарных приложений, особенно, если они работают через сторонние сервера.
А ещё у меня есть «умные» лампы Xiaomi Yeelight, которые контролируются приложением, работающим через сервера Xiaomi. Но в нём есть возможность включить в лампе API, работающее внутри локалки. Чтобы чувствовать себя спокойней, я пошёл искать приложение в Github и Gitlab и теперь намереваюсь продвинуть его в F-Droid, чтобы поддержать наше параноидальное сообщество.
Пандус для сайта
Под катом будет представлено небольшое описание содержания Видео, а еще полезные ссылки по теме, а также выдержки из моих постов про баттлы с Yota и Сбербанком.
Заметки Дата Сайентиста: маленькие утилиты — большая польза
Чаще всего в работе датасаентиста мне приходится перегонять данные из одного представления в другое, агрегировать, приводить к одинаковой гранулярности и чистить данные, загружать, выгружать, анализировать, форматировать и присылать результаты (которые в общем-то тоже данные в каком-то виде). С данными всегда что-то не так и их нужно шустро гонять туда и обратно — больше всего в этом мне помогают классические юниксовые утилиты и небольшие, но гордые тулзы: вот о них-то мы сегодня и поговорим.
И сегодня будет подборка с примерами и ситуациями, в которых мне приходится их использовать. Все описанное здесь и ниже — это настоящий субъективный опыт и конечно же он у всех разный, но возможно кому-то он будет полезен.
Tools — learn the tools — все написанное субъективно и основано исключительно на личном опыте: помогло мне может быть поможет и вам.
Как писать хорошие библиотеки под Angular
Веб — наполненная фичами среда. Мы можем перемещаться по виртуальной реальности с помощью геймпада, играть на синтезаторе с MIDI-клавиатуры, покупать товары одним касанием пальца. Все эти впечатляющие возможности предоставляют нативные API, которые, как и их функциональность, крайне многообразны.
Angular — превосходная платформа с одними из лучших инструментов во фронтэнд-среде. И, конечно, есть определенный способ делать «по-ангуляровски». Что лично мне особенно нравится в этом фреймворке — это то чувство удовлетворенности, которое испытываешь, когда все сделано как надо: аккуратный код, четкая архитектура. Давайте разберемся, что делает код правильно написанным под Angular.
SQL HowTo: красивые отчеты по «дырявым» данным — GROUPING SETS
Поэтому, когда на каком-то из тысяч подконтрольных серверов случается аномальное потребление ресурсов (CPU, памяти, диска, сети, ...), возникает потребность разобраться «кто виноват, и что делать».
Для оперативного мониторинга использования ресурсов Linux-сервера «в моменте» существует утилита pidstat. То есть если пики нагрузки периодичны — их можно «высидеть» прямо в консоли. Но мы-то хотим эти данные анализировать постфактум, пытаясь найти процесс, создавший максимальную нагрузку на ресурсы.
То есть хочется иметь возможность смотреть по ранее собранным данным разные красивые отчеты с группировкой и детализацией на интервале типа таких:
В этой статье рассмотрим, как все это можно экономично расположить в БД, и как максимально эффективно собрать по этим данным отчет с помощью оконных функций и GROUPING SETS.
Краш-курс: Как менеджерская революция Boeing породила катастрофу 737 MAX
Фото: Getty
Почти за два десятка лет до того, как система MCAS компании Boeing погубила два новых самолета 737 MAX, Стэн Соршер знал, что все более токсичная обстановка в его компании приведет к какой-то катастрофе. «Культура безопасности», которая долго была предметом гордости, стремительно вытеснялась, по его словам, «культурой финансовой херни, культурой группового мышления».
Соршер, физик, проработавший в компании Boeing более двух десятилетий и возглавлявший там переговоры о создании профсоюза инженеров, стал одержим культурой управления. Он сказал, что ранее не представлял, что смелая новая управленческая каста Boeing создаст такую глупую и вопиюще очевидную проблему, как MCAS (Maneuvering Characteristics Augmentation System; система улучшения характеристик маневрирования, как ее окрестила горстка разработчиков ПО). В основном его беспокоило, что сокращение доли рынка будет уменьшать продажи и численность сотрудников, то есть то, что не дает спать по ночам постиндустриальным американским профсоюзным лидерам. В какой-то степени, однако, он все это предвидел; он даже показал, как убытки от запрета полетов самолета перекроют краткосрочные экономии от аутсорсинга в одном из своих докладов, который никто не читал, еще в 2002 году.
Уберите ваших детей от наших голубых экранов, или почему нельзя покупать Яндекс.Станцию для ребёнка
Честно говоря, желание обратиться по поводу неприемлемого для детей содержимого возникало и раньше, но как это обычно бывает — откладывалось на потом.
К тому же — это ведь Яндекс! Он лучше знает, что хотел найти ты.
Как оказалось — не лучше.
Обратите внимание на значок детского режима справа сверху.
В рамках импортозамещения Москва закупает ПО Microsoft на 90 млн рублей
Прочитал сегодня на Cnews забавную заметку — разработчики российского софта пожаловались на закупку Департаментом Информационных Технологий г. Москвы решений Microsoft аж на 90 млн рублей. Мне как админу это событие интересно не столько суммой контракта или жалобой, сколько своей механикой — как они это делают? Нам, простым людям в регионах, администрация руки выкручивает — а в Москве, пожалуйста — берите Microsoft и это типа нормально. Поэтому, я заморочился и пошел искать закупку. Найденное обоснование меня настолько удивило, что я призываю хабросообщество ответить на вопрос — а что, так можно было?
Почему нужно роботизировать сельхозкомбайны, в чём сложности, и как мы это сделали за два года
Со стороны кажется, что задача — проехать на комбайне по полю «змейкой» и «перемолоть» всю пшеницу или другую культуру. На деле всё далеко не так. Оператор должен следить за сотнями вещей и при этом постоянно смотреть на кромку поля, чтобы двигаться ровно. Представьте себе, что вы едете 12–14 часов по трассе на скорости 120 км/час за человеком, который раз в полчаса неожиданно тормозит. Примерно то же чувствует оператор: работа невероятно монотонная, но при этом постоянно нужно быть готовым к сюрпризу.
Сюрприз может выглядеть так. Пока мы ездили «в поля», не видели ни одного целого комбайна без следов сварки.
Фактически комбайнёр следит за процессом обработки зерна (одно рабочее место) и при этом ведёт технику (другое рабочее место). Но только это один человек. Следствие — страдает что-то одно. Поскольку, если плохо вести, можно случайно перемолоть камень или человека на поле, и страдает обычно качество уборки зерна.
Часть работы легко автоматизируется. Сейчас расскажу, что именно мы сделали и как мы модифицируем даже довольно старые комбайны своими роботами.
Переход от монолитного Data Lake к распределённой Data Mesh
Все крупные компании сейчас пытаются строить огромные централизованные хранилища данных. Или же ещё более огромные кластерные Data Lakes (как правило, на хадупе). Но мне не известно ни одного примера успешного построения такой платформы данных. Везде это боль и страдание как для тех, кто строит платформу данных, так и для пользователей. В статье ниже автор (Жамак Дегани) предлагает совершенно новый подход к построению платформы данных. Это архитектура платформы данных четвертого поколения, которая называется Data Mesh. Оригинальная статья на английском весьма объёмна и откровенно тяжело читается. Перевод так же получился немаленьким и текст не очень прост: длинные предложения, суховатая лексика. Я не стал переформулировать мысли автора, дабы сохранить точность формулировок. Но я крайне рекомендую таки продраться через этот непростой текст и ознакомиться со статьёй. Для тех, кто занимается данными, это будет очень полезно и весьма интересно.
Евгений Черный
Немало компаний инвестируют в следующее поколение Data Lake с надеждой упростить доступ к данным в масштабе всей компании и предоставить бизнесу инсайты и возможность принимать качественные решения автоматически. Но текущие подходы к построению платформ данных имеют схожие проблемы, которые не позволяют достигнуть поставленных целей. Чтобы решить эти проблемы нам необходимо отказаться от парадигмы централизованного Data Lake (или его предшественника – хранилища данных). И перейти к парадигме, основанной на современной распределённой архитектуре: рассматривать бизнес-домены как приоритет первого уровня, применять платформенное мышление для создания инфраструктуры с возможностью самообслуживания и воспринимать данные как продукт.
Как я заработал 1 000 000 $ без опыта и связей, а потом потратил их, чтобы сделать свой переводчик
Как все начиналось
Эта история началась 15 лет назад. Работая программистом в столице, я накапливал деньги и увольнялся, чтобы потом создавать собственные проекты. Для экономии средств уезжал домой, в небольшой родной город, где работал над сайтом для студентов, программой для торговли, играми для мобильных телефонов. Но из-за отсутствия опыта ведения бизнеса это не приносило дохода, и вскоре проекты закрывались. Приходилось снова ехать в столицу и устраиваться на работу. Эта история повторилась несколько раз.
Когда у меня в очередной раз закончились деньги, наступил кризис. Я не смог найти работу, ситуация стала критической. Пришло время посмотреть на все вещи трезвым взглядом. Нужно было честно признаться себе, что я не знаю, какие ниши выбрать для бизнеса. Создавать проекты, которые просто нравятся, — путь в никуда.
Принципы работы детского отделении интенсивной терапии в виде ответа на «Программист, стая и Джон Стейнбек» или
В принципе, действительно почти во всех компаниях достаточно просто уметь плести интриги и предлагать быстрые решения от балды, не вдаваясь глубоко в проблему. Даже Боинг недавно показал, что и самолеты и ракеты можно делать халтурно, но на самом деле существуют места, где такое не прокатывает от слова совсем.
Мне «удалось» очень близко познакомиться с методами работы сотрудников интенсивной терапии, где я и мой сын провели практически год круглосуточно, иногда, по хорошему поводу, переезжая в общую палату.
Задача людей этого отделения — держать на границе жизни и смерти детей месяцами, решая, что нужно продолжать давать лекарства, вызывая отказ половины органов в теле, человеку, который уже находится в коме. И доктора и медсестры там постоянно делают ошибки и эти дети там постоянно умирают.
Работа докторов мне очень напомнила работу программистов — у них даже стендапы есть. Просто дебажат они людей, а не код. Я участвовал в куче разного рода митингов и обсуждениях решений совершенно непонятных и очень срочных проблем и подметил некоторые интересные принципы работы народа там.
Может, нам слегка успокоиться с JavaScript?
Что бы вы ни собирались предложить — да, я уже думала об этом, и нет, не помогло. Я рассказываю об этом не в надежде, что кто-то подскажет с отладкой, а потому что этот случай заставил меня остро осознать некоторые, как бы сказать… причуды… разработки на фронте.
(В самом деле, даже не пытайтесь диагностировать проблему по одному предложению, не надо, я слышала и перепробовала почти всё, что вы можете себе представить).
К вопросу о Linux (Л)
Мы исходим из того, что вы получаете полноценную операционную систему, сразу полностью за все заплатив. (Билл Гейтс в ответ на вопрос о конкуренции с Л.)
Чем больше я узнаю о Linux, тем меньше я ненавижу Б.Г.
Ну, вообще то, я никогда не испытывал к нему столь сильных чувств, просто начинаю лучше понимать, за что фирма, производящая Окна, берет деньги. И становится яснее, почему потребители предпочитают платить Биллу (тут, конечно, есть варианты, ну Вы поняли), вместо того, чтобы воспользоваться бесплатной («то есть даром») альтернативой. Но начнем по порядку, и рассмотрим два эпизода взаимодействия с Л.
Коронавирусы: от SARS к 2019-nCoV
Disclaimer: Я высказываю свое субъективное мнение на базе доступных данных. Мнение профессиональных вирусологов и эпидемиологов может отличаться от моего. В любой непонятной ситуации обращайтесь к материалам ВОЗ.
Привет, коллеги. Чем больше роюсь в данных по вспышке коронавируса 2019-nCoV, тем меньше мне нравится происходящее, с учетом предыдущих вспышек аналогичных вирусов. Предлагаю пробежаться по истории прошлых эпидемий и попробовать спрогнозировать дальнейшее течение.
Зачем ты поймал мою мышку, или настольная игра как модель социального взаимодействия
С точки зрения типа взаимодействия игроков настольные игры можно условно разделить на три группы: сражение, кооперация и соревнование. Это достаточно условное деление, потому что иногда игрокам удается сыграть партию совершенно не так, как было задумано, но обычно про игру можно достаточно уверенно сказать, с каким она типом взаимодействия. В зависимости от этого параметра игра позволяет моделировать тот или иной социальный опыт, что мы дальше и рассмотрим.
Сражение, или если я не выиграю, я буду горько плакать
Первый тип – это игры-сражения. В основном сюда относятся дуэльные игры. Из классических – шахматы и шашки, из популярных современных – например «Улей». Ситуация такой игры представляет простую модель конфликта – есть некая цель (победа в игре), в победе заинтересованы оба, но победить может только один, и успех одного означает неуспех другого.
Если противник – это человек, в котором мы не заинтересованы, то психологически ситуация простая: нужно победить, и для победы используется наиболее эффективная стратегия, которая нам доступна. Ситуация становится существенно сложнее, если мы играем с человеком, с которым нас связывают хорошие отношения, и мы знаем, что неуспех его огорчит. На этом месте мы начинаем решать задачу, похожую на задачу по выбору стиля лидерства.
Страх и ненависть в IT
Простые числа — насколько велико наше бессилие?
Эту метафору будет проще понять, если провести аналогию с черной дырой: мы не знаем, что находится под ее горизонтом событий, и чтобы это узнать нам нужно придумать способ, как туда добраться. Нечто подобное существует в мире математики. Данное уравнение — это настоящая «формула» простого числа, но чтобы ею пользоваться, нам нужно придумать, как искать подходящие {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, w, v, x, y, z}.
Черная дыра и данное уравнение — это предельные состояния чего-то реального и абстрактного. И, если о первом существует достаточно догадок и представлений, то о втором, практически ничего не известно. Но, что если это действительно «математическая» черная дыра? Разве вам не интересно что может произойти, если мы попадем под горизонт?
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность