• Николай Прохоров: «Американские гиганты за счет массовости подавили все новое»



      Во второй части интервью музейному проекту DataArt Николай Прохоров — генеральный конструктор СМ ЭВМ и директор ИНЭУМ в 1983—2006 гг. — рассказывает о заводах, производивших советские компьютеры, процессе создания новых машин, творческой переработке и прямом заимствовании иностранных моделей, зарплатах, премиях, быте и отдыхе инженеров в СССР.
      Читать дальше →
    • Как выбрать редактор, и почему нужно выбрать NeoVim?


      Часто мы тратим время на включение редакторов больше, чем тратим на исправление или написание какого-то однострочного скрипта. Я считаю что эту проблему можно быстро решить, ведь для этого и существуют консольные редакторы

      Читать дальше →
    • Ваша коммерческая информация на Microsoft Exchange Online? Ваша ли она по праву — и если да, то по какому?

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


        Но это не всегда так. А с некоторых пор совсем не так.


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



        Читать дальше →
      • Flutter BloC паттерн + Provider + тесты + запоминаем состояние

          Эта статья выросла из публикации “BLoC паттерн на простом примере” где мы разобрались, что это за паттерн и как его применить в классическом простом примере счетчика.


          По комментам и для своего лучшего понимания я решил попробовать написать приложение в котором будут получены ответы на вопросы:


          1. Как передавать состояние класса в котором находится BloC по всему приложению
          2. Как написать тесты для этого паттерна
          3. (дополнительный вопрос) Как сохранить состояние данных между запусками приложения оставаясь в рамках BLoC паттерна

          Ниже анимашка получившегося примера, а под катом разбор полетов :)


          И ещё в конце статьи интересная задачка — как модифицировать приложение для применения Debounce оператора из ReactiveX паттерна (если точнее, то reactiveX — расширение Observer pattern)


          Читать дальше →
        • VIM — Это не только редактор, это интеграция со всем вашим рабочим окружением

          • Tutorial

          Чем особенно хорош Vim/Neovim? Тем, что твой инструментарий — это не только редактор (который сам по себе сильно расширяем плагинами и имеет богатый базовый функционал и очень гибок в области кастомизации), но и всё ваше рабочее окружение, со всем юникс-вейным прилагающимся инструментарием из gnu/coreutils и не только. Можно не уходя из редактора взять любую программу или интерпретатор ЯП и использовать его прямо в редакторе.

          Читать дальше →
        • Внедрение в архитектуру советских программируемых калькуляторов «Электроника МК-52»



            В этой статье я хочу рассказать об архитектуре советских программируемых микрокалькуляторов на примере калькулятора «Электроника МК-52» и как можно внедриться в его архитектуру.

            Советские калькуляторы семейства "Электроника Б3-34" («Электроника МК-56», «Электроника МК-61» и «Электроника МК-52») были особенно популярны в СССР. Причиной этому была не только доступная цена в 65 рублей за МК-54, 85 рублей за МК-61 или 115 рублей за МК-52, но и развитой язык программирования. Это семейство калькуляторов стало де-факто стандартным для многочисленных пользователей. Огромное количество книг было посвящено программированию на этих машинках и публикацией готовых алгоритмов. Электроника МК-52 даже летала в космос на корабле Союз ТМ-7, где предполагалось его использование в качестве резервного на случай неисправности спускаемого навигационного оборудования. Даже в военно-морском флоте СССР калькулятор «Электроника МК-52» с блоком расширения памяти БРП «Астро» какое-то время был стандартным средством для навигационных расчетов.


            Читать дальше →
          • Как работает Flutter

            • Перевод


            Как Flutter работает на самом деле?


            Что такое Widgets, Elements, BuildContext, RenderOject, Bindings?..


            Сложность: Новичок


            Вступление


            В прошлом году (прим: в 2018), когда я начал свое путешествие в сказочный мир Flutter, в Интернете было очень мало информации по сравнению с тем, что есть сегодня. Сейчас, несмотря на то, что уже написано много материалов, лишь небольшая их часть рассказывает о том, как на самом деле работает Flutter.


            Что же такое Widgets (виджеты), Elements (элементы), BuildContext? Почему Flutter быстрый? Почему иногда он работает не так, как ожидается? Что такое деревья и зачем они нужны?


            В 95% случаев при написании приложения вы будете иметь дело только с виджетами, чтобы что-то отображать на экране или взаимодействовать с ним. Но неужели вы никогда не задумывались, как вся эта магия работает внутри? Как система узнает, когда обновить экран и какие части должны быть обновлены?


            Содержание:


            Читать дальше →
            • +12
            • 9,8k
            • 4
          • Ко дню рождения Юрия Кнорозова: изучаем основы письменности Майя

            • Перевод

            Письменность майя была единственной полноценной системой письменности в Америке, но благодаря стараниям отважных испанских конкистадоров к XVII веку она была полностью забыта. Тем не менее, тысячи этих символов сохранились на резных камнях, фресках и керамике, и в XX веке обычный советский аспирант выдвинул идею, которая позволила их расшифровать. И данная статья покажет, как устроена эта система.
            Читать дальше →
          • Байконурские приключения: ракеты, космонавты, старт Союз МС-13 и космический интернет

              Я буду рассказывать про Байконур и старт ракеты, но это не будет очередной пост про космос: увы, я дилетант в космической тематике, который вряд ли расскажет что-то интересное о топливе, спутниках и системах управления.



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

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


              Казахская ноооооочь... Ракета-носитель Востоооооок...
            • FAQ про работу помощника машиниста



                Наш респондент — помощник машиниста, работавший с 2005 по 2010 год на маршрутах Москва — Тверь, Москва — Конаково, Москва — Зеленоград и подобных. Мы задали ему вопросы, которые казались наиболее интересными нам. В комментариях можно оставлять свои.

                — Были ли наезды на человека?

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


                  Почему двенадцать?


                  Если вы посмотрите на клавиатуру, то увидите, что в каждой октаве содержится 12 полутонов.
                  В случае фортепиано это всего лишь значит, что между, например, "до" первой октавы и "до" второй октавы расположено 11 клавиш. Вместе с одним из "до" (например, до второй октавы) мы получим 12 клавиш: до#, ре, ре#, ми, фа, фа#, соль, соль#, ля, ля#, си, до.


                  Но почему 12?


                  Может быть это просто случайность? Вот нравилось нашим предкам число 12, у них везде 12: 12 месяцев, 12 знаков зодиака, 12 колен Израилевых, 12 апостолов,… и здесь решили, пусть будет 12, и так и повелось. Или все же здесь есть объективный закон, и это число не случайно?


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

                  Читать дальше →
                • Истории лунного компьютера. Часть 1

                  • Перевод
                  Часть 2
                  Часть 3

                  Часть фотографий была взята с сайта Hack The Moon.

                  Статья была представлена на 27-й ежегодной конференции по навигации и управлению Американского Общества Астронавтики (AAS) в Брекенридже, штат Колорадо, 6 февраля 2004. Предлагаемая вам версия содержит дополнительные иллюстрации, комментарии и небольшие исправления.



                  ABSTRACT: Миссия Аполлон 11 совершила успешную посадку на Луну, несмотря на две проблемы с компьютером, повлиявшие на лунный модуль в период управляемой посадки. Неустранённая проблема в интерфейсе радара сближения отняла около 13% времени цикла бортового компьютера, приведя к пяти сбоям программы и перезагрузкам. Менее известная проблема была вызвана ошибочными данными, что привело к флуктуациям тяги двигателя посадки лунного модуля, так как алгоритм управления тягой находился на границе устойчивости. Объяснение этих проблем даёт возможность описать операционную систему бортового компьютера Аполлона и программу управления посадкой на Луну.
                  Читать дальше →
                  • +34
                  • 8,8k
                  • 2
                • Вещество и антивещество: что это такое, в чем разница и при чем тут нейтрино

                    Антивещество — штука достаточно популярная, как в научной фантастике, так и просто в околонаучных спорах о том, “как все устроено на самом деле”. Фантасты нам подарили звезды и целые планетные системы из антивещества. Дэн Браун через “Ангелов и демонов” донес этот феномен практически до каждого.

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

                    image
                    Читать дальше →
                  • Язык программирования Ü. Введение, мотивация к созданию, цели

                      Введение


                      С 2016-го года (с перерывами) я разрабатываю собственный язык программирования. Название данного языка — «Ü». Почему Ü? Потому, что хотелось однобуквенного названия, а все буквы из набора A-Z уже заняты.

                      Данная статья имеет задачу ознакомить публику с данным языком, дать составить общее представление о нём. Статья не ставит целью описать язык полностью, более полное описание языка, если надо, будет дано в последующих статьях.

                      Зачем нужен ещё один язык?
                      Читать дальше →
                    • Когда история ненастоящая: винзавод «Коктебель», фейковые вина и уроки маркетинга

                        Наверное, странно видеть на Хабре пост про винзавод (ладно бы пиво), однако речь, на самом деле, пойдет про сторителлинг и фактчекинг. За основу взята экскурсия по заводу марочных вин «Коктебель», в которой много легенд, баек и вредного маркетинга.



                        Читать дальше →
                      • Мой первый день с Haiku: она неожиданно хороша

                        • Перевод


                        TL:DR; Новичок попробовал Haiku в первый раз и решил, что она потрясная. Особенно по сравнению с рабочими окружениями, доступными на Linux


                        Я уже делился своими идеями (а также разочарованиями) по поводу #LinuxUsability (part 1, part 2, part 3, part 4, part 5, part 6). В этом обзоре я опишу первые впечатления от Haiku, операционной системы с открытым исходным кодом для персональных компьютеров. Иногда первые впечатления бывают полезными, но так как первые впечатления получаешь только раз — я свои сохранил здесь.

                        Читать дальше →
                      • Продвинутый Debug

                        Debug Area — полезная функция в работе iOS разработчика в Xcode. Как только мы начинаем осваивать разработку под iOS, и пытаемся отойти от привычного и любимого print метода, и найти более быстрые и удобные методы понимания состояния системы в определенный период мы начинаем изучать область дебага (Debug Area).

                        Скорее всего, в Debug панель ваш взгляд упадёт до того, как вы будете понимать, что именно там происходит. При первом падении приложения нижнее меню открывается автоматически, оно изначально может послужить помощью для понимания проблемы (Вспомним старую добрую “Fatal error: Index out of range”), в основном в самом начале вы не будете понимать, что от нас хочет Xcode и приметесь гуглить ошибки, но по ходу роста всё больше и больше информации станет понятной.

                        С самого начала программист старается оптимизировать свою работу. Для этого мы стремимся понять в какой момент наша программа перешла в некорректное состояние. И тут в зависимости от точки в которой находится эволюция программиста, методы могут разниться. Сначала как правильно Debug осуществляется методом “print()”, потом идёт расстановка Breakpoints и вызов методов “po”, далее ознакомление с Debug Variable Input (области рядом с консолью в Xcode), а далее приходит понимание и способов компиляции кода в процессе остановки на Breakpoint методов — “expression” (По крайней мере, такая была эволюция у меня).

                        Давайте попробуем разные способы которые нам помогут понять и изменить состояние нашего приложения. Самые простые вроде “print()”, и “po” рассматривать не будем, я думаю, вы и так понимаете их суть и умеете применять.

                        Создадим простое приложение с одним экраном в котором будем всего один тип ячеек (TableViewcell) c двумя элементами внутри: UIImageView и UILabel. В ячейках будем писать её порядковый номер, а в картинку ставить либо image1, либо image2.

                        Метод tableViewCellForRowAtIndexPath будет создавать для нас ячейки, проставлять данные и возвращать:

                        image
                        Читать дальше →
                        • +19
                        • 4,3k
                        • 3
                      • Hello, World! Глубокое погружение в Терминалы


                          На написание данной статьи меня вдохновила статья об анализе Сишного printf. Однако, там был пропущен момент о том, какой путь проходят данные после того, как они попадают в терминальное устройство. В данной статье я хочу исправить этот недочет и проанализировать путь данных в терминале. Также мы разберемся, чем отличается Terminal от Shell, что такое Pseudoterminal, как работают эмуляторы терминалов и многое другое.

                          Читать дальше →
                        • RxVMS — практичная архитектура для Flutter-приложений

                          • Перевод

                          Это первый пост из серии публикаций, в которых объясняется мое понимание архитектуры приложений для Flutter. Предупреждаю — это будет весьма самоуверенным.


                          Пока запланированы:



                          Предисловие


                          Я в программировании уже около 20 лет. Начал мобильную разработку 4 года назад с Xamarin.Forms, ибо кроссплатформенность была единственной побудительной причиной для меня в качестве инди-разработчика. Xamarin.Forms буквально толкают тебя к использованию паттерна MVVM, так как определение UI ведется в XAML, и тебе необходим какой-то слой, чтобы склеивать UI с Моделью. В процессе работы с Xamarin я познакомился с ReactiveUI и был буквально покорен потоками и реактивными расширениями (Rx), сделавшими мои приложения более надежными.


                          В то время, как в Xamarin.Forms MVVM были "из-коробки", при переходе к Flutter я был удивлен, что в нем не было никаких похожих шаблонов проектирования. Я начал исследовать различные предлагаемые подходы, но ничего из имеющегося не удовлетворило меня в полной мере:

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