• InterNyet — как в Советском Союзе изобрели интернет и почему он не заработал

    • Перевод


    Утром 1 октября 1970 года ученый-компьютерщик Виктор Глушков вошел в Кремль, чтобы встретиться с Политбюро. Он был настороженным человеком с пронзительными глазами в черных очках, с таким типом ума, который, решая одну проблему, мог найти параллельно метод решения всех аналогичных проблем. В тот момент у Советского Союза возникла серьезная проблема. Годом раньше Соединенные Штаты запустили ARPANET, первую распределенную компьютерную сеть с коммутацией пакетов, которая со временем породит интернет, каким мы его знаем сегодня. Распределенная сеть изначально была разработана с целью опередить СССР, позволяя компьютерам ученых и правительственных лидеров США обмениваться информацией даже в случае ядерной атаки. Это была высшая точка технологической гонки, и Советы должны были чем-то ответить.
    Читать дальше →
  • «Linux соцсетей» – как LiveJournal стал первооткрывателем блогов, а потом потерял их

    • Перевод

    Переход Джорджа Мартина на другую платформу для блогов напоминает нам о радикальных изменениях гиганта блогинга



    Обойдёмся без спойлеров, но с уходом одного известного фэнтезийного писателя, LiveJournal остался один, примерно как Джон Сноу на фотографии

    В прошлом апреле прославленный писатель и убийца героев Джордж Мартин объявил, что переносит свой древний блог с загнивающего LiveJournal на свой личный сайт. Для обычных фанатов «Игры престолов» это было в лучшем случае лёгким недоразумением – большая часть просто перешла по новой ссылке и даже не оглянулась. Но для определённых групп энтузиастов это был более значимый ход. Блог Мартина, который Джанин Констанцо, давний волонтёр LiveJournal, затем ставшая сотрудником компании, описала, как «последний оплот», был, вероятно, последней связью сайта, когда-то бывшего гигантом среди блог-платформ, с популярной культурой. И, хотя автору, возможно, не удастся закончить свою наиболее любимую фанатами литературную серию книг, его простое действие в области логистики веб-хостинга воистину отмечает конец эпохи.
    Читать дальше →
  • Как Project Infer от Facebook помогает искать баги в мобильных приложениях перед деплоем

    • Перевод


    Несколько дней назад команда инженеров Facebook отличилась — ее удостоили награды Most Influential POPL Paper Award. В среде специалистов по машинному обучению это весьма почетно. Награду вручили за работу Compositional Shape Analysis by Means of Bi-abduction, которая раскрывает нюансы Project Infer. Сам проект предназначен для обнаружения и ликвидации багов в коде мобильного приложения перед его деплоем.

    Баги в программном обеспечении для мобильных устройств обходятся очень дорого как разработчикам, так и пользователям. Что касается первых, то обнаружение проблемы в уже размещенном в каталогах приложении — ночной кошмар для любого специалиста. Конечно, софт тестируется, работу программ проверяют по определенным шаблонам. Но чаще разработчики не могут предусмотреть всего, и баги в приложении обнаруживаются уже после деплоя.
    Читать дальше →
    • +21
    • 1,5k
    • 2
  • SMAA: улучшенное субпиксельное морфологическое сглаживание

    • Перевод

    Данная статья основана на журнале Хорхе Хименеса, Хосе Эчеварриа, Тиаго Соуса и Диего Гутьерреса.

    Их демо реализации SMAA можно посмотреть здесь (файл .exe). На моём GTX 960 2GB оно работает вполне нормально.

    Старые способы сглаживания (антиалиасинга)


    Долгие годы стандартами для реализации сглаживания были методы MSAA (Multisampling Antialiasing) и SSAA (Supersampling Antialiasing). На самом деле, они и по-прежнему обеспечивают наивысшее качество среди всех современных методов сглаживания. Как мы знаем, алиасинг возникает из-за нехватки сэмплов, как на пространственном (ломаные линии), так и на временном уровне (мерцание), обычно рядом с гранями и областями изображения с высоким/низким контрастом. Для борьбы с ним у нас имеются два способа, которые когда-то были единственными решениями: Supersampling и Multisampling. При суперсэмплинге мы увеличиваем изображение, а затем снижаем его дискретизацию до нужного разрешения. Этот принцип отлично работает, потому что распространяется на все аспекты проблемы. При мультисемплинге используется похожее решение. В этом методе каждый сэмпл дублируется на основание определённого коэффициента. При современных больших разрешениях для этого требуются достаточно мощные графические карты. Поэтому нам нужны новые методы сглаживания, как на пространственном, так и на временном уровнях. Все эти методы используют в своей работе один алгоритм — распознавание краёв. Но они выполняют и другие операции.
    Читать дальше →
    • +18
    • 3,2k
    • 5
  • Распределённый чат на Node.JS и Redis

    Результат пошуку зображень за запитом "голубиная почта"


    Небольшой вопрос/ответ:


    Для кого это? Людям, которые мало или вообще не сталкивались с распределенными системами, и которым интересно увидеть как они могут строится, какие существуют паттерны и решения.


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


    Постановка задачи


    Как сделать чат? Это должно быть тривиальной задачей, наверное каждый второй бекендер пилил свой собственный, так же как игровые разработчики делают свои тетрисы/змейки и т. п. Я взялся за такой, но чтоб было интереснее он должен быть готов к захвату мира, чтоб мог выдерживать сотниллиарды активных пользователей и вообще был неимоверно крут. Из этого исходит ясная потребность в распределенной архитектуре, потому что вместить все воображаемое количество клиентов на одной машине — пока нереально с нынешними мощностями. Заместо того чтоб просто сидеть и ждать на появление квантовых компьютеров я решительно взялся за изучение темы распределенных систем.


    Стоит отметить что быстрый отклик очень важен, пресловутый realtime, ведь это же чат! а не доставка почты голубями.


    %рандомная шутка про почту россии%


    Использовать будем Node.JS, он идеален для прототипирования. Для сокетов возьмем Socket.IO. Писать на TypeScript.


    И так, что вообще мы хотим:


    1. Чтоб пользователи могли слать друг-другу сообщения
    2. Знать кто онлайн/оффлайн

    Как мы это хотим:

    Читать дальше →
    • +17
    • 4,3k
    • 2
  • Капитализация Reddit достигла $3 млрд после привлечения $300 млн инвестиций



      Соцсеть Reddit в ходе очередного инвестиционного раунда привлекла $300 млн. Оценка капитализации компании достигла $3 млрд. Среди инвесторов компании венчурные фонды Sequoia, Fidelity, Tacit, а также рэп-исполнитель Снуп Дог – они участвовали в новом раунде совместно с компанией Tencent, вложившей в соцсеть $150 млн.
      Читать дальше →
      • +15
      • 3,2k
      • 3
    • GPT-2 нейросеть от OpenAI. Быстрый старт

        image


        Не успели отшуметь новости о нейросети BERT от Google, показавшей state-of-the-art результаты на целом ряде разговорных (NLP) задач в машинном обучении, как OpenAI выкатили новую разработку: GPT-2. Это нейронная сеть с рекордным на данный момент числом параметров (1.5 млрд, против обычно используемых в таких случаях 100-300 млн) оказалась способна генерировать целые страницы связного текста.


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


        Тем не менее, в OpenAI выложили в общий доступ уменьшенную версию нейросети GPT-2, со 117 млн параметров. Именно ее мы запустим через сервис Google Colab и поэкспериментруем с ней.

        Читать дальше →
        • +14
        • 3,1k
        • 9
      • Reflective Shadow Maps: Часть 1

        • Перевод
        image

        Привет, Хабр! Представляю вашему вниманию перевод статьи «Reflective Shadow Maps» автора Eric Polman.

        Reflective Shadow Maps (RSM) (отражающие карты теней) ― это алгоритм, расширяющий “простые” shadow map. Алгоритм учитывает свет, рассеянный после первого попадания на поверхность (diffuse). Это означает, что кроме прямого освещения, вы получаете непрямое освещение. В данной статье я разберу алгоритм из официальной статьи, чтобы объяснить его по-человечески. Я также кратко расскажу о shadow mapping.
        Читать дальше →
        • +12
        • 1,1k
        • 5
      • Reflective Shadow Maps: Часть 2 ― Реализация

        • Перевод
        Привет, Хабр! В данной статье представлена простая реализация Reflective Shadow Maps (алгоритм описан в предыдущей статье). Далее я объясню, как я это сделал и какие подводные камни были. Также будут рассмотрены некоторые возможные оптимизации.

        image
        Рисунок 1: Слева направо: без RSM, с RSM, разница
        Читать дальше →
      • Кто заселит землю киборгов? О будущем статусе острова Русский рассказал директор по развитию компании «Моторика»

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



        Базовый облик будущего законопроекта создадут учёные и непосредственные участники рынка, которые 1-4 марта соберутся в стенах Дальневосточного федерального университета (ДВФУ) на специальной сессии правового дизайна и инжиниринга, созванной по предложению Агентства стратегических инициатив и Компании «Моторика».

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

        Какие перспективы ждут разработчиков медицинских изделий? Какие проблемы поможет решить спецстатус острова Русский? Каковы будут основные положения закона? И что в результате ждёт рынок кибермедицины?

        На эти и другие вопросы отвечает один из инициаторов законопроекта – директор по развитию компании «Моторика» Василий Хлебников.
        Читать дальше →
      • Технология, которая приблизит запуск квантовых сетей

          Физики из Университетов Торонто, Осаки и Тоямы представили концепцию квантового повторителя, который не использует ячейки квантовой памяти и способен работать при комнатной температуре. В перспективе он позволит реализовать масштабные квантовые сети.

          Рассказываем, в чем заключается инновация.

          Читать дальше →
        • Как семеро моддеров Mount and Blade создали игровую студию

          • Перевод

          Игра Mount and Blade: Warband — удобная игровая площадка для любителей моддинга, позволяющая перенести игроков в Средиземье, Вестерос или далёкую-далёкую галактику «Звёздных войн». Однако антуражем самого важного мода для неё стала не выдуманная реальность, а Британия седьмого века. Brytenwalda — это фанатский проект испанского моддера Альберто «Ibidil» Фуэнтевилья де Диего, превратившего Тёмные века Британии в мод, потом в DLC, а затем создавшего инди-студию. Когда Альберто только начинал экспериментировать в свободное время с файлами игры, он ещё не догадывался, как далеко заведут его решимость и любовь к игре.

          Ibidil — творческий человек, он всегда рассказывает истории; в сообществе моддеров он завоевал признание благодаря работе над Iberia: Total War, созданной в 2005 году тотальной конверсией Rome: Total War. Ibidil взялся за работу, когда сообщество испанских геймеров решило, что их нация отражена в игре со слишком большими историческими неточностями; Iberia: Total War разрабатывалась в том числе и затем, чтобы устранить эти ошибки. Ibidil занимался документацией к моду, а также редактировал боевую систему и организовывал работу создателей моделей и текстур, что дало ему большой опыт на будущее.

          Как и сама Британия, Ibidil перешёл от Рима к Тёмным векам. К этому его привело чтение материалов о падении Римской империи и о постримской Британии. «Это был мир с чётко заданной динамикой, состоящий из маленьких воинственных королевств, правители которых знали, что в боях на карту поставлено всё», — рассказывает он. Это идеально подходило для игры. От того периода сохранилось не так много записей, поэтому он и называется Тёмными веками, но это ещё больше вдохновило Ibidil. Он полюбил богатую и сложную историю Британии седьмого века и хотел оживить этот период — Альберто считал постыдным, что «такие имена, как Пенда или Кэдвалла, известны только историкам». Он даже перевёл сборник ранних валлийских поэм Canu Heledd на свой родной испанский язык.
          Читать дальше →
        • Russian AI Cup 2018, история 9 места

            Итак


            Меня, как и в прошлом году, зовут Андрей Рыбалка, только в этот раз мне 33. И, раз уж я оказался в десятке лучших, я решил снова поделиться своим подходом к написанию игрового бота для Russian AI Cup 2018.


            В этот раз заданием был футбол. Сама задача несколько напоминала RAIC 2014 года, когда был хоккей, но вот решение было совсем другим.
            Мир в этот раз был трёхмерным и эта трёхмерность использовалась по полной программе. Сама игра больше всего напоминала Rocket League.


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


            Читать дальше →
          • Оверинжинирг 80 уровня или редьсюеры: путь от switch-case до классов

            • Перевод

            image


            О чем пойдет речь?


            Посмотрим на метаморфозы редьюсеров в моих Redux/NGRX приложениях за последние пару лет. Начиная с дубового switch-case, продолжая выбором из объекта по ключу и заканчивая классами с декораторами, блекджеком и TypeScript. Постараемся обозреть не только историю этого пути, но и найти какую-нибудь причинно-следственную связь.

            Читать дальше →
          • Учимся стандарту проектирования — Entity Relationship

            Здравствуйте. Данная статья посвящена одной из самых популярных, а также и многим знакомой, модели проектирования — ER(Entity Relationship), которая была предложена учёным, в области информатики — Питером Ченом, в 1976 году.

            image

            По ходу статьи простым языком на простых примерах из жизни — мы с Вами разработаем разные варианты диаграммы, которые будут зависеть от их типа связи. Начнём!

            Объектно Ориентированное Проектирование


            В первую очередь, хотелось бы сказать пару слов об ООП(Объектно Ориентированном Программировании/Проектировании), чтобы не было проблем с пониманием парадигмы самой диаграммы. Мне удобнее абстрагировать эту модель с принципом ООП, где сущность — объект, атрибуты — его характеристики, а связи — что-то вроде посредника(в некоторых случаях — как метод).

            Быстрый старт


            Главный плюс модели проектирования Entity Relationship — это то, что она универсальна. Вы можете проектировать БД(Базы данных), работу какой-либо программы, принципы взаимодействия и др.

            Что нужно знать на старте изучения?

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

            image

            Думаю, Вы поняли, что к чему. Наш Программист учит Python. Вроде, всё логично. Но вот, только, что это за единички в примере?

            — Это показатель типа связи! В данном примере используется вид связи — Один к одному:

            $$display$$1:1$$display$$


            К видам связи мы ещё вернёмся, но чуть позже!

            P.S. Надеюсь, Вы заинтересованы. Такие диаграммы Вы можете создавать в редакторе диаграмм — Dia.
            Читать дальше →
          • Vuex — чрезмерное использование геттеров в приложении. Разбор ошибки


            В этой статье пойдет речь об распространенной ошибке, которую делают большинство начинающих при разработке приложения на Vue + Vuex. Мы поговорим о геттерах (getters) и как их правильно использовать. Также мы рассмотрим вспомогательные функции mapState и mapGetters.


            Примечания перед прочтением: рекомендуется иметь базовые знания Vue и Vuex.

            Читать дальше →
          • Полиция Москвы получит очки с распознаванием лиц


              Фото: Светлана Холявчук / Интерпресс / ТАСС

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

              «ДИТ проводит тестирование применения технологии распознавания лиц с передачей информации на очки дополненной реальности», — заявили источники РБК, уточнив, что пока рано говорить о подробностях проекта, не говоря уже о его результатах.
              Читать дальше →
            • Пишем учебное приложение на Go и Javascript для оценки реальной доходности акций. Часть 1 — backend

              Давайте попробуем написать небольшую тренировочную, но вполне себе законченную информационную систему, состоящую из серверной части на Go и клиентского веб-приложения на Javascript + Vue JS.

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

              • Деньги съедает инфляция (инфляционный риск)
              • Рубль может обесцениться (курсовой риск)

              Было принято решение изучить вопрос и выбрать подходящий инструмент для инвестирования. Основными критериями были надёжность и защита сбережений от указанных выше рисков.
              Вопрос я изучил и в результате пришёл к выводу, что единственным адекватным инвестиционным инструментом для жителя России являются акции биржевых фондов (ETF), причём именно те, что торгуются на Московской Бирже.

              Таким образом, предлагаю написать учебное приложение, которое бы показывало доходность всех ETF, которые представлены на Московской Бирже.
              Читать дальше →
            • Windows Phone – ВСЕ, это опять или снова

                Тут недавно, Microsoft всех «обрадовал», что поддержка устройств на базе Windows Phone вот-вот завершится. Мне как многолетнему пользователю мобильных операционных систем от Microsoft новость показалось не такой уж и радостной. Однако возникает вопрос: Windows Phone R.I.P. это опять или снова?, ибо, мы это уже проходили, году эдак в 2011 , потом было прекращение обслуживания Windows Phone 7…. потом Windows Phone 8 (я им до сих пор пользуюсь), ну и сейчас Windows Phone 10.
                image
                Читать дальше →
              • Работа с сервисом Managed Databases от Digital Ocean в .NET Core



                  В том время, как у других облачных платформ уже давно есть свои решения для баз данных, Digital Ocean в этом сегменте до сегодняшнего дня ничего не предлагал. Но 14 февраля, в день всех влюбленных, компания решила сделать подарок своим клиентам и в режиме Limited Availability запустила сервис Managed Databases.

                  Поскольку Digital Ocean сейчас является довольно популярной платформой для хостинга небольшой проектов на .NET Core, я не мог обойти вниманием это событие.

                  Как работает сервис и какие есть нюансы при подключении к базе при использовании .NET Core в я расскажу в этой публикации.
                  Читать дальше →

                Самое читаемое