• MarkedText — маркдаун здорового человека

      Здравствуйте, меня зовут Дмитрий Карловский и все свои статьи (и презентации) пишу я в MarkDown разметке. И знаете что? Она уже порядочно меня подзаелозила! Тексты я пишу на русском, но большая часть спецсимволов есть только в английской раскладке клавиатуры. А редактирование таблиц - это вечная пизанская башня из вертикальных линий. Короче, есть у него проблемы как с удобством редактирования, так и с наглядностью представления. Так что давайте попробуем спроектировать его с нуля, не таща за собой килотонны головоломных конструкций.

      Поехали..
    • Как быть билингвом в Data Science

      • Перевод
      В этой статье я хочу продемонстрировать R Markdown — удобную надстройку для программирования вашего проекта как на R, так и на Python, позволяющую программировать некоторые элементы вашего проекта на двух языках и управлять объектами, созданными на одном языке, с помощью другого языка. Это может быть полезно потому, что:

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


      Приятного чтения!
      • +27
      • 5,2k
      • 4
    • Опыт внедрения Shiny в качестве корпоративной отчетности

        Всем привет! Меня зовут Сергей, я аналитик в ГК «Везёт». Исторически так сложилось, что в нашей компании было множество систем отчетности: от платных в виде Looker и Qlick – до самописных веб-сервисов. Однажды решив, что так дальше жить нельзя, мы стали выбирать единую систему, на которой будет все, и в итоге остановились на Shiny. В этой статье я расскажу про наш опыт внедрения Shiny в качестве корпоративного BI. Эта статья будет полезна всем, кто только выбирает инструмент для корпоративной отчетности.

        Читать дальше →
        • +10
        • 1,6k
        • 4
      • Собираем 8-битный компьютер: как уменьшить количество микросхем до шести

        • Перевод

        Сочетание старого трюка с кодированием цветов в NTSC и современного железа позволяет собрать на удивление работоспособную машину

        В 8-битных системах есть что-то перманентно притягательное: вы можете собрать автономную систему, достаточно мощную, чтобы поддерживать адекватное взаимодействие с пользователем, но достаточно простую, чтобы собрать и запрограммировать её самостоятельно. Большинство современных 8-битных машин, созданных любителями, завязаны на классических процессорах, которые жили в золотой век домашних компьютеров 1980-х годов, когда в качестве дисплеев использовали миллионы телевизоров. Вначале была идея собрать свою машину на базе процессора Motorola 6809 из той же эпохи. Я пытался использовать как можно меньше микросхем, но несмотря на мои старания, мне всё ещё нужно было 13 дополнительных микросхем для работы с ОЗУ и последовательной передачи данных. Тогда я задумался: а что, если я использую более современный 8-битный процессор? Насколько сильно при этом я смогу снизить количество необходимых мне микросхем?
        Читать дальше →
      • Цена tailing'а логов в Kubernetes

        • Перевод
        Прим. перев.: эту статью написал старший DevOps-инженер американской компании Olark, главный продукт которой — live chat — используют тысячи организаций. Автор делится размышлениями о проблеме потребляемых ресуров при сборе логов и результатами своего эксперимента с fluentd, что позволил ему добиться лучшей производительности для некоторых сценариев.



        Журналирование – одна из тех вещей, о которых вспоминают только тогда, когда они ломаются. И это вовсе не критика. Дело в том, что логи как таковые не приносят денег. Они позволяют получать представление о том, что делают (или делали) программы, помогая поддерживать работу того, что приносит нам деньги. На малых масштабах (или при разработке) необходимую информацию можно получить, просто выводя сообщения в stdout. Но стоит перейти к распределенной системе, и сразу возникает потребность агрегировать эти сообщения и направлять в некое центральное хранилище, где они принесут наибольшую пользу. Это потребность еще более актуальна, если вы имеете дело с контейнерами на платформе вроде Kubernetes, где процессы и локальное хранилище эфемерны.
        Читать дальше →
        • +28
        • 4,5k
        • 9
      • Десятки тысяч закупок, прозрачных как стекло: распутываем клубок

          Наводить порядок в закупках крупного банка непросто. Особенно когда они разведены по двум независимым комплексным системам ERP и СЭД. При объединении ВТБ и ВТБ24 у нас также произошло объединение информационных систем, и теперь единый процесс закупок проходит через них. Что делать? На помощь пришел Process Mining — одна из самых интересных технологий исследования, анализа и мониторинга бизнес-процессов. Но при этом и весьма непростая в применении.


          Process Mining — это подход к анализу бизнес-процессов с использованием передовых технологий в области сбора и обработки данных. Мы видели много дорогих, крупных проектов, где за анализы процессов брались с помощью Process Mining. Несмотря на то, что проекты эти доводили до конца, в 80% случаев полученные красивые схемы не работали. Но грустная статистика нас не испугала, и распутывать свой клубок процессов мы тоже решили через Process Mining. Подробности под катом.
          Читать дальше →
        • Лекарей сжигать нельзя беречь сейчас

            TLDR: кому перестановки делают больнее — меряем свёрткой графов.
            Код: RolX и ванильная трёхслойная GCN на мотифах.


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


            image


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


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

            Читать дальше →
          • Советские мечты о будущем, часть 2. Теперь с сепульками



              В предыдущей серии: мы составили подборку советской мультипликационной научной фантастики. Собрали комментарии о тех мультфильмах, которые не вошли в первую часть — и рассказываем о них сейчас.
              Читать дальше →
            • Советские мечты о будущем



                Помните очаровательного котика, которые чихал в заставке советского мультфильма? Мы помним, и нашли его — вместе с ворохом другой рисованной фантастики. В детстве она пугала и обескураживала, поскольку поднимала серьезные, взрослые темы. Настала пора пересмотреть старые мультфильмы, чтобы узнать, о каком будущем мечтали в той стране.
                Читать дальше →
              • Отчёты по состоянию СХД с помощью R. Параллельные вычисления, графики, xlsx, email и всё вот это

                • Tutorial

                В статье приведён код по формированию регулярных отчётов по состоянию дисков СХД EMC VNX с альтернативными подходами и историей создания.


                Старался писать код с максимально подробными комментариями и одним файлом. Только пароли свои подставить. Формат исходных данных также указан, так что буду рад, если кто-то попробует применить у себя.


                Внешний вид графика

                Читать дальше →
              • Подборка полезных слайдов от Джулии Эванс

                • Перевод
                Перевели новую порцию слайдов. Права доступа в Unix, файловые дескрипторы, потоки, магия proc. И на закуску пара советов о том, как общаться, когда ты не согласен. А вдруг пригодятся =)



                Читать дальше →
              • Достаём мастер-пароль из заблокированного менеджера паролей 1Password 4

                • Перевод
                Новые инструменты, старые методы. Проводим обратную разработку и находим фатальный недостаток 1Password.

                Все любят менеджеры паролей. Они великолепны по многим причинам. Лично у меня в менеджере более 200 записей. С таким большим количеством конфиденциальных данных в одном месте важно понимать масштаб ущерба в случае компрометации вашей записи, будь то вредоносные программы, эксплоиты или просто компьютер, оставленный без присмотра на несколько минут. Washington Post недавно опубликовала статью, основанную на нашем исследовании. Эта статья помогает довести людей, что не все менеджеры паролей одинаковы.

                Я свято верил, что заблокированный парольный менеджер надёжно защищён. Если кто-то получит доступ к моему компьютеру, то максимум может рассчитывать на кучку случайных байтов, поскольку информация надёжно вычищается из памяти.
                Читать дальше →
              • Ежедневные отчёты по состоянию виртуальных машин с помощью R и PowerShell


                Вступление


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

                Читать дальше →
              • Умеют ли коты строить регрессию?

                  Доброго времени суток, Хабр! Пора вновь вернуться к задачам оптимизации. На этот раз мы займемся линейной регрессией и разберемся, кто же такие коты — только пушистые домашние мерзавцы животные или еще и неплохой инструмент для решения прикладных задач.

                  Что ж, пожалуй, пора разобраться, умеют ли коты строить регрессию или нет?
                • “Без data engineer-а ценность модели аналитика стремится к нулю” — интервью с дата инженером Николаем Марковым

                    Привет, Хабр! Data Engineering становится все более популярным, многие компании постепенно открывают соответствующие вакансии. В связи с этим мы взяли интервью у Senior Data Science Engineer, Aligned Research Group LLC и преподавателя на программах “Специалист по большим данным” и “Data Engineer” Николая Маркова о том, что должны уметь data scientist-ы и data engineer-ы, чего им чаще всего не хватает и как найти свое место в анализе данных.


                    Читать дальше →
                  • Стратегии по ускорению кода на R, часть 1

                    • Перевод
                    Цикл for в R может быть очень медленным, если он применяется в чистом виде, без оптимизации, особенно когда приходится иметь дело с большими наборами данных. Есть ряд способов сделать ваш код быстрее, и вы, вероятно, будете удивлены, узнав насколько.

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

                    Давайте попробуем ускорить код с циклом for и условным оператором (if-else) для создания колонки, которая добавляется к набору данных (data frame, df). Код ниже создает этот начальный набор данных.
                    # Создание набора данных
                    col1 <- runif (12^5, 0, 2)
                    col2 <- rnorm (12^5, 0, 2)
                    col3 <- rpois (12^5, 3)
                    col4 <- rchisq (12^5, 2)
                    df <- data.frame (col1, col2, col3, col4)
                    

                    В этой части: векторизация, только истинные условия, ifelse.
                    В следующей части: which, apply, побайтовая компиляция, Rcpp, data.table.
                    Читать дальше →
                    • +10
                    • 6,9k
                    • 3
                  • Стратегии по ускорению кода на R, часть 2

                    • Перевод
                    Цикл for в R может быть очень медленным, если он применяется в чистом виде, без оптимизации, особенно когда приходится иметь дело с большими наборами данных. Есть ряд способов сделать ваш код быстрее, и вы, вероятно, будете удивлены, узнав насколько.

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

                    Давайте попробуем ускорить код с циклом for и условным оператором (if-else) для создания колонки, которая добавляется к набору данных (data frame, df). Код ниже создает этот начальный набор данных.
                    # Создание набора данных
                    col1 <- runif (12^5, 0, 2)
                    col2 <- rnorm (12^5, 0, 2)
                    col3 <- rpois (12^5, 3)
                    col4 <- rchisq (12^5, 2)
                    df <- data.frame (col1, col2, col3, col4)
                    

                    В первой части: векторизация, только истинные условия, ifelse.
                    В этой части: which, apply, побайтовая компиляция, Rcpp, data.table, результаты.
                    Читать дальше →