• Я живу, а они — умирают: бактерии в моем теле

    Одна из самых значимых книг по проблеме долголетия людей «Этюды оптимизма» была написана великим русским  естествоиспытателем, лауреатом Нобелевской премии И. И. Мечниковым. В своей работе он впервые предположил, что причиной страданий человека могут быть микробы кишечника, которые при неправильном их соотношении образуют яды, отравляя организм. Книга была написана еще в начале прошлого века. За 120+ лет наука ушла далеко вперед, теперь мы знаем, какие микробы ответственны за гнилостные процессы и можем контролировать их количество. Но мы всё ещё в начале большого пути по исследованию того микромира, который существует в нас и определяет не только наше физическое, но и психическое, и духовное здоровье.

    Когда я говорю «мы», я имею в виду учёных в целом и учёных-биологов из Новосибирского Академгородка в частности, одним из которых я и являюсь. Мы рассматриваем микробиоту, то есть совокупность всех микроорганизмов, населяющих человека, как целостный метаболически активный орган. Этот орган подвижен в своем составе и зависим от множества факторов — состояния здоровья человека, его диеты, качества продуктов, климата, образа жизни и даже социального окружения. Лично я живу с идеей «причинения пользы» людям через эту научную область — я вижу, как культура заботы о микробиоме улучшает качество жизни здоровых людей и облегчает состояние больных. Научно-прикладной фундамент этой темы мы с коллегами прорабатываем с 1992 года, работая над живыми пробиотиками серии «Биовестин». Здесь я хочу рассказать подробнее о том, как и зачем восстанавливать и поддерживать этот орган под названием микробиом — и, возможно, посеять в вас живой интерес к моей теме.

    Читать дальше
  • Коммиты — это снимки, а не различия

    • Translation

    Git имеет репутацию запутывающего инструмента. Пользователи натыкаются на терминологию и формулировки, которые вводят в заблуждение. Это более всего проявляется в "перезаписывающих" историю командах, таких как git cherry-pick или git rebase. По моему опыту, первопричина путаницы — интерпретация коммитов как различий, которые можно перетасовать. Однако коммиты это не различия, а снимки! Я считаю, что Git станет понятным, если поднять занавес и посмотреть, как он хранит данные репозитория. Изучив модель хранения данных мы посмотрим, как новый взгляд помогает понять команды, такие как git cherry-pick и git rebase.

    Читать далее
  • Энтерпрайз-домино. 0x13 вредных советов для ниндзя-разработчика

      Практически любая enterprise-система (под которой мы будем подразумевать некоторое ПО, где пользователи работают постоянно в течение всего рабочего дня) в современном мире стремится вырасти вместе с управляемым ей бизнесом в высоконагруженное web-решение вроде нашего СБИС.

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

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

      Читать далее
      • +19
      • 4.2k
      • 5
    • KODI: собираем удобный и функциональный медиацентр для дома. Часть 1

      Поговорим о том, как при наличии небольшого количества времени и навыков построить мультимедийный комбайн с дополнительными возможностями домашнего сервера на базе Kubuntu 20.04 и KODI, способного работать 24/7/365.

      Читать дальше →
    • PGHero — дашборд для мониторинга БД PostgreSQL

      • Tutorial

      Всем привет. Сегодня я бы хотел поделиться рецептом установки утилиты PGHero с подключением нескольких баз данных. PGHero — это простенькая утилита, написанная на Ruby, с минималистичным дашбордом для мониторинга производительности БД PostgreSQL.

      Что может показать нам PGHero:

      статистику по запросам: количество вызовов, среднее и суммарное время выполнения (с возможностью хранения истории);

      активные в данный момент запросы;

      информацию о таблицах: занимаемое на диске место, даты последних запусков VACUUM и ANALYSE;

      информацию об индексах: занимаемое на диске место, наличие дублируемых/неиспользуемых индексов. Также может порекомендовать добавить индекс при наличии сложных запросов с Seq Scan;

      статистику по открытым подключениям к БД;

      вывод основных настроек БД, влияющих на производительность (shared_buffers, work_mem, maintenance_work_mem и т.д.)

      Читать далее
      • +35
      • 4.8k
      • 6
    • Полезные материалы для разработчика

        Существует много полезных инструментов, которые помогают автоматизировать рутинную работу и тем самым облегчить жизнь разработчика. 

        Выпускнику и преподавателю Computer Science Center, Равилю Галееву, пришла идея собрать такие инструменты и технологии в один курс и познакомить студентов с ними. За пример такого курса были взяты The Missing Semester of Your CS Education от MITSoftware Carpentry и cs50.

        В этом посте мы собрали видеолекции курса «Практический минимум» и материалы к занятиям. Благодарим Равиля за подборку! 

        Читать далее
      • Детям об аудио форматах (+тест)

          Дочь, постоянно слушающая музыку через mp3-плеер, спросила: "А что, собственно, означает mp3?"

          Я кратко объяснил принцип работы динамика, преобразование звуковых волн в электрические, оцифровку:

          Гладкая волна становится лесенкой, но если ступенек в лесенке много, то это незаметно.

          Потом рассказал про то, что закодировать лесенку в файл можно по разному:

          За эталон берём компакт диск, это очень приличное качество, хотя сейчас есть уже и варианты лучше, всякие High Resolution и Super Audio CD (SACD). Если переписать компакт диск в файл на компьютере или плеере, файлы будут большие. Можно упаковать, например, в формат flac. Будет меньше, но ненамного, разв а 3-4. Зато звук хороший как у CD. А если хочется ещё меньше, то придётся ухудшать качество, и вот мы приходим к сжатию с потерями.

          Объяснил про психоакустическую модель сжатия, которая используется в mp3:

          Тихий звук после громкого человек слышит плохо - выкидываем. Формально люди слышат звуки высотой до 20 тысяч колебаний в секунду*, но это дети, а с возрастом уши грубеют. Так что отрезаем всё, что выше 18, а то и 16 тысяч. Чем больше выбрасываем, тем меньше становится файл. Бесконечно делать это нельзя, в какой-то момент становится заметно. Можно получить совсем маленькие файлы с отвратительным звуком. Но качество mp3 320 считается хорошим. Для того, чтобы отличить его от компакт диска, нужна качественная аппаратура и уши музыканта.

          И тут дочь говорит: "А что, у меня музыкальные уши. Давай попробуем сравнить."

          Мне показалось интересно. Мы попробовали.

          Read more
        • Влияние service worker'ов на web-приложения

            Web-приложения всё больше "затачиваются" под мобильные устройства, а service worker'ы являются фундаментом прогрессивных web-приложений (PWA). При первом ознакомлении с данной технологией может сложиться впечатление, что основной задачей service worker'ов является кэширование контента. И это так. Задача service worker'ов — обеспечение функционирования web-приложения в условиях нестабильного или вообще отсутствующего подключения к Сети, что достигается при помощи кэширования данных.


            Под катом пара мыслей о том, к каким последствиям для web-приложений привело появление возможности кэшировать данные посредством service worker'ов.

            Читать дальше →
          • GIT изнутри: введение (перевод)

            Привет, Хабр! Представляю вашему вниманию перевод статьи "Git for Computer Scientists" автора Tommi Virtanen.


            GIT изнутри: введение


            От себя: Периодически почитываю статьи, как различные популярные технологии устроены под капотом, наткнулся вот на этот материал. Статья показалась интересной наличием простых и понятных схем, которые воспринимаются значительно лучше, нежели простыни унылого текста. Решил перевести на русский язык. Изображения взяты из оригинала.


            Кому будет интересно и, возможно, полезно: людям, ежедневно работающим с Git (т.е. каждому второму, если не первому разработчику ПО), и желающим лучше понять механизм его работы.


            Примечание: для лучшего понимания статьи следует иметь представление о таком звере, как направленный ациклический граф (directed acyclic graph, DAG).

            Читать дальше →
            • +30
            • 21.3k
            • 2
          • Медуза, паспорта и говнокод — почему номера паспортов всех участников интернет-голосования попали в Интернет

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

              Кстати, Минкомсвязь до сих пор исключает ЛЮБУЮ возможность утечки паспортных данных избирателей

              Между тем распределение серий паспортов выглядит вот так:

              image

              Давайте воспроизведем события и попробуем понять как всего этого можно было избежать
              Читать дальше →
            • Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон

              • Tutorial

              Я делаю много ревью для чужого кода на Ансибл и много пишу сам. В ходе анализа ошибок (как чужих, так и своих), а так же некоторого количества собеседований, я понял основную ошибку, которую допускают пользователи Ансибла — они лезут в сложное, не освоив базового.


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


              Ожидаемый уровень читателя — уже написано несколько тысяч строк ямла, уже что-то в продакшене, но "как-то всё криво".

              Читать дальше →
            • Избранные главы коллоидной химии. Достаточно ли мытья рук для защиты от коронавируса? «Мыльная энциклопедия»

              • Tutorial
              Умывайся мылом, да не поддавайся сплетням…
              Русская народная поговорка

              Я и раньше встречал людей, которые очень рьяно и уверенно говорили «коронавирус? да просто мойте руки мылом и все уйдет!». А сейчас такие люди почему-то начали объединяться и захватывать умы населения. И уже в поисковой выдаче Google можно встретить «Мыло как новая религия» или там «В борьбе с коронавирусом эффективно любое мыло!».
              Не знаю, есть ли какой-то скрытый в этом всем смысл (как скрытый смысл в инстаграм-движениях антимасочников и т.п.) и есть ли смысл этот смысл искать. В этой заметке я просто расскажу, почему, с точки зрения химии интерфейсов, мыло от коронавируса не поможет (как и спирт) и лучше всего пользоваться где-то перекисью водорода, а где-то и горячо любимым гипохлоритом. Под катом — введение в механизм работы моющих средств в эпоху пандемии коронавируса + критика общемирового поветрия (заблуждения/вируса мозга/____вписать___нужное___). Глупостью и самонадеянностью микроорганизмы точно не победить. Ни вирусы, ни бактерии…
              Спасибо подписчикам моего Patreon-а за активный «подогрев» и идеи!
              Статья — из серии «закидываем в закладки и делимся с друзьями/знакомыми/врачами/копирайтерами медпорталов/научными сотрудниками etc.»


              Мыть или дезинфицировать?
            • Посоветуйте, что почитать. Часть 1


                Делиться с сообществом полезной информацией всегда приятно. Мы попросили наших сотрудников посоветовать ресурсы, которые они сами посещают, чтобы быть в курсе событий в мире ИБ. Подборка получилась большая, пришлось разбить на две части. Часть первая.

                Читать дальше →
              • Сознание и тезис Макса Фрая

                  КДПВ


                  С древних времен считалось, что в феномене сознания есть что-то непонятное. Что-то непостижимое. Считалось, что сознание есть проявление нематериального, привнесенного высшими силами. Если для мифологического мировосприятия такой порядок вещей естественен, то со сменой парадигм и зарождением естествознания феномен сознания потребовал объяснения.

                  Читать дальше →
                • Подкасты для разработчиков

                    Интересно наблюдать за историей. Netflix, YouTube, Twitch постепенно вытеснили телевизор из нашей жизни. Сейчас похожий процесс происходит с подкастами и радио. За последние 2 года количество подкастов в мире выросло с 525 000 до 900 000, а количество эпизодов увеличилось с 18 000 000 до 30 000 000. В России эта волна началась в прошлом году, но уже сейчас становится сложно в них ориентироваться. Мы сделали для вас подборку из 57 техноподкастов и около того.


                    Читать дальше →
                  • Законы программирования

                    • Translation

                    Законы, теории, принципы и закономерности, полезные для разработчиков


                    Введение


                    Перевод репозитория github.com/dwmkerr/hacker-laws

                    При обсуждениях, связанных с разработкой ПО, люди часто говорят о различных законах. В данном репозитории хранятся ссылки и описания некоторых из наиболее известных из них.

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

                    Законы


                    Закон Амдала


                    Закон Амдала — это формула, демонстрирующая потенциал ускорения вычислительной задачи, которого можно достичь при увеличении количества ресурсов системы. Обычно он используется в параллельных вычислениях, и может предсказать наличие реальных преимуществ от увеличения количества процессоров с учётом ограничений параллелизуемости программы.
                    Читать дальше →
                  • Что должен знать тестировщик бэкенда



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

                      В FunCorp есть список тем с вопросами, которые мы задаём кандидатам. Я решил дополнить его, сделать более универсальным, разбить каждую тему по уровням (что нужно знать обязательно и что будет плюсом) и добавить ссылки на статьи и книги, которые можно почитать по этим темам.

                      Какие проблемы помогает решить этот текст: кандидату — подготовиться к интервью, любому тестировщику бэкенда — освежить знания, тестировщику фронтенда или мобильных приложений — расширить кругозор. Работодатели могут использовать список для составления требований в вакансиях.
                      Читать дальше →
                    • Сказ о том, как я автоматизировал квартиру с помощью Node-RED. Часть I

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


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