• Вакцина «Спутник V»: инструкция, как испортить хорошее дело

      Давайте на минуту отбросим все предубеждения и стереотипы об отечественной медицине и попробуем объективно разобраться в том, что сделано правильно, а что неправильно с "первой в мире вакциной от COVID" — Спутник V от «НИИ эпидемиологии и микробиологии им. Н. Гамалеи».


      Поговорим о том, как устроена современная наука в целом и доказательная медицина в частности, и при чем тут пиар.


      image

      Читать дальше →
    • Глубже в дебри ФП

      • Tutorial

      Прежде чем начать, зацените эту красоту! Это — игра "жизнь" на языке APL:



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


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


      Расчехляйте свои абстрагаторы ...
    • «Просто похудеть» — непросто

        Интернет наводнен статьями о том, как похудеть "просто съедая меньше чем потратил" и отчетами об успешном опыте некоторых везунчиков. Чего нету (ну или очень мало) в интернете — это отчетов о том, как миллионы людей безрезультатно пытаются просто "съесть меньше", садясь на все новомодные диеты и неизменно возвращаясь к тому, с чего начинали, а иногда и скатываясь по шкале индекса массы тела в еще более красную зону.


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

        Хакнуть свой мозг
      • Почему функциональное программирование такое сложное

        • Tutorial

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


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


        Попытки использовать как-то в работе изученные концепции разбивались о полное непонимание, как применить полученное глубокое знание. Ведь, напомню, что парадигму ФП (где-то удобнее, где-то не очень, но) можно использовать практически в любом ЯП, совсем необязательно для этого изучать условный Хаскель.

        Читать дальше →
      • Scala 2.13 станет последней версией… Scala2, после нее будет Scala3

          В декабре Scala-комьюнити опубликовало пресс-релиз о том, что Scala 2.14 никогда не выйдет. Мартин Одерски и Ко приняли решение, что необходимо сконцентрироваться на работе над Dotty/Scala3.

          Сообщество Scala программистов (в моем лице в том числе) безмерно этому радо, т.к., честно говоря, давно пора было. Scala застыло в прорывном развитии на несколько лет, что на фоне стремительного роста популярности better-java-kotlin приводило к оттоку разработчиков и даже целых компаний.

          Scala3 должна стать тем самым большим скачком вперед, который вернет интерес нынешним и будущим энтузиастам ФП на JVM.

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

          Статус прогресса в списке вкусностей застыл в неизменном состоянии на долгое время, что должно измениться в ближайшее время, если команда Scala3 выполнит свое обещание, данное в пресс-релизе. Пока же они нам советуют рассчитывать на…
          Читать дальше →
        • «Алгебраические эффекты» человеческим языком

          • Translation
          Комментарий от переводчика: Это перевод замечательной статьи Дэна Абрамова (Dan Abramov), являющегося контрибутором React. Его примеры написаны для JS, но будут одинаково понятны разработчикам на любом языке. Идея общая для всех.

          Вы слышали об алгебраических эффектах?


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


          Но мой коллега Себастьян продолжал называть их ментальной моделью некоторых вещей, которые мы делаем в React. (Себастьян работает в команде React и выдвигал немало идей, среди которых Hooks и Suspense.) В какой-то момент это стало локальным мемом в команде React, и многие наши разговоры заканчивались следующим:



          Оказалось, что алгебраические эффекты — это крутая концепция, и она не так страшна, как мне вначале показалось после прочтения этих PDF-ов. Если вы просто используете React, вам не нужно ничего о них знать, но если вам, как и мне, интересно, читайте дальше.

          Читать дальше →
        • Java теперь платная? Развенчиваем слухи (или нет?)

            Уже 2 дня как вступили в силу изменения лицензионной политики Oracle на распространение сборок Java SE. В среде разработчиков-слоупоков (я тоже в их числе) начали носиться кошмарные слухи.

            Что произошло


            В середине 2018 года Oracle объявил, что собирается изменить лицензионную политику. 16 апреля 2019 года изменение вступило в силу. Теперь все опубликованные после этой даты сборки Java SE можно использовать бесплатно только для личных нужд и с целью разработки. Для использования в коммерческих целях (в том числе для продакшена) надо оформить платную подписку у Oracle.

            Что-а-а?


            Oracle выстрелил себе в ногу и убивает Java? Нет, не убивает. Нет, не выстрелил. Но проблем халявщикамвсем нам подкинул. Давайте быстро разберемся, что это означает в практическом плане, без этих ваших GPL, BCL, WTF…
            Разбираемся в режиме FAQ
          • Как много разработчиков и как мало программистов…

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


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

              Читать дальше →
            • Dotty уже на пороге

                Следующее поколение языка Scala, третью версию которой лично я жду с большим нетерпением, кажется уже не за горами. Новый компилятор и новый набор фич для Scala 3 .0 разрабатывается в рамках проекта Dotty. 17 месяцев назад Дотти отпраздновал небольшую победу — bootstrap, т.е. он смог скомпилировать сам себя. В планах на новые фичи было много вкусностей, которым были посвящены публикации на хабре (тыц — если кто не читал, то советую пройти по ссылке).

                И вот пару дней назад на гитхабе проекта появился многообещающий коммит от Дмитрия Петрашко (один из ключевых разработчиков dotty), озаглавленный «Start writing release anouncement.», т.е. «Начинаем писать новость о выпуске».
                Читать дальше →
              • Пора перестать сохранять

                  Немного лирики


                  Как-то раз, примерно полгода назад, при переезде с одной квартиры на другую в одной из бесконечных коробок обнаружился архив аудиокассет — штук 30. Этот набор долёживал там свой век, хотя последний магнитофон, способный проигрывать кассеты, сломался года за три до этого.
                  Моя 9-летняя дочь, наткнувшись на эту коробку, взяла одну из этих кассет в руки, повертела и спросила: «Папа, а что это?».
                  Конечно, если задуматься, в этом нет ничего удивительного. Новое поколение, рожденное после 2000, уже не видело ни кассет, ни дискет.



                  И что-то мне подсказывает, что поколение, родившееся после 2020, не увидит уже и компакт дисков — все планомерно уходит на всевозможные флешки и карты памяти, а в перспективе и обмен, и хранение (благодаря «облакам»), и ритейл софта/фильмов/музыки (благодаря Стиву Джобсу) уйдут в «онлайн». Я и сам больше уже не записываю полюбившиеся фильмы на болванки.
                  И что с того?
                • Когда просто отфильтровать параметры запроса недостаточно или о вреде универсальности

                    У уважаемой компании «Российские Железные Дороги» есть замечательный сайт ticket.rzd.ru. Не смотря на некоторые шероховатости, сайт неплохо справляется со своей основной задачей — позволяет заказать и оплатить билеты он-лайн.

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

                    Что там интересного?
                  • Введение в многомерный анализ

                      Некоторое время назад мне довелось организовывать новую группу разработки, которая должна была заняться развитием OLAP и BI продуктов в дружеской софтверной компании. А так как группа была собрана из свежих выпускников ВУЗов, то мне пришлось написать «краткий курс молодого бойца» для того чтобы максимально доступно дать начальные понятия об OLAP людям, которые ни разу с ним не сталкивались, но уже имели опыт программирования и работы с БД.



                      Выкладываю теперь это Введение в Общественное Достояние.



                      В статье несколько смешиваются понятия OLAP, Business Intelligence, и Data Warehouse, но и в жизни часто сложно понять, где проходит граница. А уж в реальных проектах, так и подавно, все они ходят рядом. Поэтому прошу не судить строго.



                      Итак, что же такое OLAP.
                    • Еще один тип спама под кризис

                        Замечен новый тип <социальной инженерии> в интернете. На днях на почту пришло письмо следующего содержания:

                        Александр добрый день!

                        Агентство по подбору персонала направило нам Ваше резюме.
                        В данный момент в нашей компании открыта новая вакансия CTO).
                        Оформление согласно ТК РФ, социальные гарантии, карьерный рост, зарплата будет зависеть от результатов собеседования.
                        Подробную информацию о нашей компании можно посмотреть на сайте:
                        Читать дальше →