• [DotNetBook] Span: новый тип данных .NET

    • Tutorial

    С этой статьей я продолжаю публиковать целую серию статей, результатом которой будет книга по работе .NET CLR, и .NET в целом (уже готово около 200 страниц книги, так что добро пожаловать в конец статьи за ссылками).


    Как язык, так и платформа существуют уже много лет: и все это время существовало множество средств для работы с неуправляемым кодом. Так почему же сейчас выходит очередной API для работы с неуправляемым кодом если по сути он существовал уже много-много лет? Для того чтобы ответить на этот вопрос достаточно понять чего не хватало нам раньше.


    Разработчики платформы и раньше пытались нам помочь скрасить будни разработки с использованием неуправляемых ресурсов: это и автоматические врапперы для импортируемых методов. И маршаллинг, который в большинстве случаев работатет автоматически. Это также инструкция stackallloc, о которой говорится в главе про стек потока. Однако, как по мне если ранние разработчики с использованием языка C# приходили из мира C++ (как сделал это и я), то сейчас они приходят из более высокоуровневых языков (я, например, знаю разработчика, который пришел из JavaScript). А что это означает? Это означает что люди со все большим подозрением начинают относиться к неуправляемым ресурсам и конструкциям, близким по духу к C/C++ и уж тем более — к языку Ассемблера.


    Статья хоть и большая, но является вводной в тему Span<T> и Memory<T>

    Читать дальше →
  • Вся правда о linux epoll

      Ну или почти вся...



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


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


      Anyone can wield an axe, but it takes a true warrior to make it sing melees melody.

      Я предполагаю, что читатель знаком с epoll, по крайней мере прочел страницу man. О epoll, poll, select написано достаточно много, чтобы каждый кто разрабатывал под Linux, хоть раз о нем слышал.

      Читать дальше →
    • AI, практический курс. Предобработка и дополнение данных с изображениями

      • Перевод
      Предобработка — это общий термин для всех манипуляций, производимых с данными перед передачей их модели, включая центрирование, нормализацию, сдвиг, вращение, обрезку и т. п. Как правило, предобработка требуется в двух случаях.

      • Очистка данных. Предположим, что на изображениях присутствуют некоторые артефакты. Чтобы облегчить обучение модели, артефакты необходимо удалить на этапе предобработки.
      • Дополнение данных. Иногда небольших наборов данных недостаточно для качественного глубокого обучения модели. Подход с дополнением данных весьма полезен при решении этой проблемы. Это процесс трансформации каждого образца данных различными способами и добавления к набору данных таких измененных образцов. Таким образом можно повысить эффективный размер набора данных.

      Рассмотрим некоторые возможные методы трансформации при предобработке и их реализацию через Keras.

      Читать дальше →
    • Открытый урок «Многопоточность в Java. Базовые примитивы синхронизации»

        Всем привет!

        Делимся с вами очередным открытым вебинаром, который проводили в рамках нашего курса «Разработчик Java». На уроке преподаватель курса Сергей Петрелевич разбирал основные проблемы разработки многопоточных программ, средства работы с потоками в JVM.


        Как всегда ждём вопросы, пожелания тут или можете зайти завтра на День открытых дверей и задать любой вопрос там.
      • Как open-source побеждает «кровавый энтерпрайз»: битва за BPMS

          Шестеренки современного банка крутятся в соответствии с финансовыми бизнес-процессами. Они сложнее обычных — это правило работает для всего, к чему вы добавите определение «финансовые». С одной стороны, все усложняют регуляторы, бессчетное количество согласований и вовлеченных сторон. С другой — неповоротливые монолитные BPMS (Business Process Management System). В этом посте мы расскажем, как успешно забросили одну такую систему и ушли в гибкий и функциональный open source.


          Читать дальше →
        • Летающий робот меняет форму в воздухе

            Беспилотники способны на многое: от съёмки репортажей и свадеб до мониторинга лесных массивов для быстрого реагирования на пожары, отслеживание состояния энергосетей и нефтепроводов. Потенциально летающие роботы могут быть использованы внутри помещений, но для этого они должны быть одновременно юркими и достаточно мощными, чтобы взаимодействовать с окружением. Для этого японские специалисты создали напоминающего летающее щупальце модульного робота DRAGON, который меняет форму, чтобы проникать в небольшие отверстия и в перспективе выступать в качестве манипулятора.


            Читать дальше →
            • +19
            • 11,9k
            • 5
          • Внутри Гиперактивности

              image

              Предупреждение: Данная статья написана не квалифицированным врачом-психиатром, а пациентом с тяжелой патологией.

              Напоминание: СДВГ, тем более в такой сильно выраженной форме, обостряет многие когнитивные искажения. У таких пациентов, как я, выпукло проявляется эффект Даннинга-Крюгера. Переходящая все границы небрежность компрометирует факты и источники информации, а сниженный интеллект при полном отсутствии внимания к значимым деталям ставит под сомнение выводы и обобщения.

              Цель этой статьи — максимально честное и беспристрастное описания работы СДВГшного мозга с примерами конкретных кейсов с максимально доступным мне по части компетентности анализом.
              Если для вас это важная тема — касается ребенка или Вы сами придурок, но очень не хотите им быть, добро пожаловать под кат.
              Читать дальше →
            • Учёные до сих пор не могут дать определение дереву

              • Перевод

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



              Остистая сосна

              Несколько лет назад после ужина в День благодарения, проходившего в доме моих родителей в Вермонте, молния ударила в клён, стоявший у нас во дворе. Мы услышали ужасный треск, и темнота за окном кухни на какой-то миг сменилась ярким светом. И только весной мы смогли уже точно удостовериться в том, что дерево погибло.

              Этот клён был молодым, его ствол по диаметру не превышал десертной тарелки. Если бы его жизнь не оборвалась в результате катастрофы, он мог бы прожить 300 лет. Но у деревьев смерть в результате несчастного случая встречается удивительно часто. Иногда это происходит из-за грубой людской ошибки, как когда в 2012 году во Флориде болотный кипарис возрастом более 3500 лет был уничтожен в результате намеренного поджога. Чаще беда приходит в виде плохой погоды – засухи, ветра, пожаров или заморозков. И, конечно, деревья подвержены влиянию паразитов и болезней; такая напасть, как грибок, может заметно укоротить время жизни дерева. Но те деревья, которым удалось избежать подобных врагов, способны жить невероятно долго.
              Читать дальше →
            • Evil by Design: интерфейсы от Мефистофеля (часть первая)

                Крис Ноддер, автор книги «Evil by Design», сразу вызывает доверие. Не столько своим послужным списком достижений в психологии UX дизайне и консалтинге, сколько явным умением цеплять и продавать. По сути, под стильной обложкой с демоненком — собрание техник манипулирования потребителем, многие из которых известны уже давно. Но, согласитесь, «руководство для дизайнера, который служит Злу, пробуждая в людях темные инстинкты» звучит гораздо увлекательнее. Давайте толкать потребителя на смертные грехи!



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

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

                Читать дальше →
              • Программирование stm32f103 с самых основ

                В статье я хотел бы описать шаги на пути к написанию прошивки для микроконтроллеров stm32 без использования специальных сред разработки типа keil, eclipse и тому подобных. Я опишу подготовку прошивки с самых основ, начиная с написания загрузчика на ассемблере, скрипта для линкера и заканчивая основной программы на C. В коде на C буду использовать заголовочные файлы из CMSIS. Редактор кода может быть любым на ваш вкус, vim, emacs, блокнот, все что угодно. Для сборки проекта буду использовать утилиту make. Итак, начнем!
                Читать дальше →
              • Настройка BGP для обхода блокировок, или «Как я перестал бояться и полюбил РКН»

                Ну ладно, про «полюбил» — это преувеличение. Скорее «смог сосуществовать с».


                Как вы все знаете, с 16 апреля 2018 года Роскомнадзор крайне широкими мазками блокирует доступ к ресурсам в сети, добавляя в "Единый реестр доменных имен, указателей страниц сайтов в сети «Интернет» и сетевых адресов, позволяющих идентифицировать сайты в сети «Интернет», содержащие информацию, распространение которой в Российской Федерации запрещено" (по тексту — просто реестр) по /10 иногда. В результате граждане Российской Федерации и бизнес страдают, потеряв доступ к необходимым им совершенно легальным ресурсам.


                После того, как в комментариях к одной из статей на Хабре я сказал, что готов помочь пострадавшим с настройкой схемы обхода, ко мне обратились несколько человек с просьбой о такой помощи. Когда у них всё заработало, один из них порекомендовал описать методику в статье. Поразмыслив, решил нарушить свое молчание на сайте и попробовать в кои-то веки написать что-то промежуточное между проектом и постом в Facebook, т.е. хабрапост. Результат — перед вами.

                Читать дальше →
              • Кто мутит воду? Большое подробное сравнение-тест бытовых фильтров для очистки воды



                  Не так давно мы с супругой наконец-то обзавелись собственным жильём, и я озадачился вопросом — как умнее и экономнее всего организовать дополнительную очистку воды у себя дома. Так как я работаю в компании, занимающейся в том числе и химическими исследованиями, получилось провести почти полноценные лабораторные испытания нескольких моделей фильтров. Процесс тестирования и сравнения оказался интересным, так что я решил поделиться этими своими наблюдениями и выводами здесь.
                  Читать дальше →
                • «Хаббл» увидел голубого сверхгиганта на расстоянии 10 млрд световых лет. Это самая дальняя звезда в истории наблюдений


                    Набор изображений показывает гравитационно-линзовое скопление галактик, через которое обнаружена новая звезда. Голубой сверхгигант под кодовым названием Icarus отмечен белой стрелочкой на правой нижней фотографии. Фотографии: NASA/ESA/P. Kelly

                    Астрономы давно применяют гравитационное микролинзирование для «увеличения светосилы» телескопа в десятки-тысячи раз — и наблюдения сверхдальних участков космоса, отдалённых от нас в пространстве-времени на миллиарды световых лет. Неоднократно таким способом обнаруживали сверхдальние галактики, а иногда даже отдельные звёзды. Но найденная сейчас звезда под кодовым названием Icarus находится в 100 раз дальше, чем любая из ранее наблюдаемых звёзд, за исключением взрывов сверхновых.

                    Международная группа исследователей опубликовала доказательства, что объект, обнаруженный через гравитационно-линзовое скопление галактик, — это голубой сверхгигант почти в 10 млрд световых лет от нас. То есть «Хаббл» зарегистрировал свет, излучённый звездой всего через 4,4 млрд лет после Большого взрыва.
                    Читать дальше →
                    • +30
                    • 12,8k
                    • 5
                  • Дональд Кнут: вот это поворот

                    • Перевод
                    image

                    Когда вы входите в мой дом… эм… Мы с женой хотели, чтобы у нас были какие-либо произведения искусства в доме, которые были бы личными и также связанными с тем, чем мы занимаемся. И поэтому вы можете увидеть две вещи: одна из них это кривая дракона, я расскажу вам о ней больше через минуту. И другая это вот эта работа. Это строчка из “Дороги к мудрости” Пита Хайна:

                    imageДолжны мы,
                    Чтоб к мудрости
                    Вечной добраться,
                    Что нам
                    Так заманчиво
                    Брезжит,
                    Опять
                    И опять,
                    И опять
                    Ошибаться,
                    Но реже
                    И реже,
                    И реже.

                    Это одна из моих любимых фраз. Своего рода история всей моей жизни — это совершение ошибок и попытки научиться чему-то на них. Эту фразу спроектировали в форме суперэллипса, который является одним из великих открытий Пита Хайна. Этот эллипс более полный и он использовался во многих архитектурных изделиях.
                    Читать дальше →
                  • Контроллер для Лего

                      Чуть меньше полугода назад сделал сыну на день рождения подарок — конструктор Xiaomi MITU. Неожиданно для меня ребенок на неделю завис в этом конструкторе. Когда были испробованы первые модели и их управление с планшета, возник закономерный вопрос — «А как для него писать программы?»

                      image
                      Читать дальше →
                    • Опубликована видеосъёмка из беспилотного автомобиля Uber, который убил человека

                        Полицейское управление города Темпе (штат Аризона) опубликовала первую видеозапись ДТП со смертельным исходом, которое произошло поздним вечером в воскресенье 18 марта 2018 года с участием беспилотного автомобиля Uber. На 22-секундном видео присутствует два фрагмента: съёмка с фронтальной камеры на дорогу и съёмка водителя-человека, который сидит за рулём и контролирует работу автопилота.


                        В результате ДТП погибла 49-летняя местная жительница Элейн Херцберг (Elaine Herzberg), которая пересекала проезжую часть с велосипедом в руках в тёмное время суток вне регулируемого перехода без световозвращающих элементов на одежде и велосипеде. Это первая в истории смерть пешехода в результате столкновения с беспилотным автомобилем.

                        После инцидента компания Uber временно приостановила тестирование беспилотных машин на дорогах общего пользования.
                        Читать дальше →
                      • Операционные системы с нуля; Уровень 0

                        • Перевод
                        • Tutorial

                        Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий.


                        Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.


                        Тут есть про диски, файловые системы, операции ввода-вывода, потоки /процессы, планирование, виртуальную память, защиту и безопасность, прерывания, параллелизм и синхронизацию. Как и в любом другом, уважающем себя курсе. Разница в актуальности материала и в количестве практики. Коддить придётся много.

                        Читать дальше →
                      • Как движется Солнечная система

                          Наверняка, многие из вас видели гифку или смотрели видео, показывающее движение Солнечной системы.



                          Ролик, вышедший в 2012 году, стал вирусным и наделал много шума. Мне он попался вскоре после его появления, когда я знал о космосе гораздо меньше, чем сейчас. И больше всего меня смутила перпендикулярность плоскости орбит планет направлению движения. Не то, чтобы это было невозможно, но Солнечная система может двигаться под любым углом к плоскости Галактики. Вы спросите, зачем вспоминать давно забытые истории? Дело в том, что именно сейчас, при желании и наличии хорошей погоды, каждый может увидеть на небе настоящий угол между плоскостями эклиптики и Галактики.
                          Читать дальше →
                        • Безопасный Android для ребёнка

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

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

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