• Ретродайджест: 30 интересных ресурсов о технике и играх ушедших лет

      2019 год уже вот-вот подойдет к концу. С наступлением нового десятилетия некоторые компьютерные устройства переместятся в стан ретро-техники, о которых наши потомки (или даже мы сами) будем дискутировать и писать статьи.

      Минувшая осень в нашем блоге ознаменовалась циклом статей о становлении интернета в СССР и на постсоветском пространстве. С ребятами из команды «ИТ-ГРАД» мы обсудили наиболее заинтересовавшие нас проекты и ресурсы, посвященные ретротематике, и решили сделать для вас подборку ссылок на них. В статье вы найдете ссылки на Youtube-каналы, сайты и другие ресурсы о ретрогейминге на консолях и ПК, интересной технике из прошлого, а также компьютерах ZX Spectrum и его клонах, Amiga и Commodore 64.


      Читать дальше →
    • Пряморукий DNS: делаем правильно

        Представляем вашему вниманию очень эмоциональный рассказ Льва Николаева (@maniaque) о том, как надо настраивать DNS и особенно, как делать не надо. Вот прямо после каждого пункта можете мысленно добавлять: «Пожалуйста, не делайте этого!» В своем докладе Лев так и говорит.

        Статья будет состоять из трех частей:

        1. Как сделать резольвер (unbound, bind)

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

        2. Как держать зоны (PowerDNS)

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

        3. Как взболтать, но не смешивать (PowerDNS + unbound)


        Читать дальше →
      • Космическая демосцена: Вселенная умещается в 64 килобайта


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


          Современные демки откололись от континента прочих субкультур (где-то на берегу остались представители оверклокинга) и дрейфуют в одиночестве. Они не гимн возможностей компьютерной техники, а ding an sich selbst betrachtet — метафизическая вещь в себе, которая может быть фрагментом игры, аниме или трейлером фильма-катастрофы.


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

          Читать дальше →
        • [в закладки] PDF-версия статей про Bash-скрипты

            Привет Хабр! Летом мы переводили цикл статей про Bash-скрипты — судя по отклику, статьи оказались для вас полезными. И, по многочисленным просьбам, мы решили сделать PDF-версию перевода.



            Подробности под катом.
            Читать дальше →
          • Хотите зашифровать вообще любое TCP соединение? Теперь у вас есть NoiseSocket



              Привет, %username%!

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

              А еще есть IoT, где впихивать TLS целиком это вообще задача не для слабонервных. И бэкенд, который, я почти уверен, у всех после балансера общается друг с другом по обычному HTTP. И P2P и еще и еще и еще…

              Не так давно в сети появилась спецификация Noise Protocol Framework. Это по сути конструктор протоколов безопасной передачи данных, который простым языком описывает стадию хэндшейка и то, что происходит после неё. Автор — Trevor Perrin, ведущий разработчик мессенджера Signal, а сам Noise используется в WhatsApp. Так что, был отличный повод рассмотреть этот протокольный фреймворк поближе.

              Он так понравился нам своей простотой и лаконичностью, что мы решили на его основе запилить аж целый новый протокол сетевого уровня, который не уступает TLS в безопасности, а в чём-то даже превосходит. Мы презентовали его на DEF CON 25, где он был очень тепло принят. Пора поговорить о нём и у нас.
              Читать дальше →
            • Vim по полной: Работа с Git

                Оглавление


                1. Введение (vim_lib)
                2. Менеджер плагинов без фатальных недостатков (vim_lib, vim_plugmanager)
                3. Уровень проекта и файловая система (vim_prj, nerdtree)
                4. Snippets и шаблоны файлов (UltiSnips, vim_template)
                5. Компиляция и выполнение чего угодно (vim-quickrun)
                6. Работа с Git (vim_git)
                7. Деплой (vim_deploy)
                8. Тестирование с помощью xUnit (vim_unittest)
                9. Библиотека, на которой все держится (vim_lib)
                10. Другие полезные плагины

                Часто ли вам приходится использовать Git? В смысле, вы коммитите изменения каждый час или каждые несколько минут? Я делаю это очень часто и не слежу за чистотой репозитория, так как считаю его не более чем журналом изменений, а не произведением искусства. Такой подход требует от редактора хорошей интеграцией с Git, позволяющей в пару нажатий клавиш создать новый коммит, вернуться в прежнее состояние, перейти на другую ветку и так далее. Если вы используете современную среду разработки, в которой реализована интеграция с Git, вам очень повезло, но что делать пользователям редактора Vim? Есть ли плагин, который не просто реализует Vim-команды по тиму GitCommit, GitCheckout и GitBranch, а предоставляет удобный интерфейс в лучших традициях редактора?
                Псс, плагин не нужен?
              • Создание шейдеров

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

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


                Сцена из Minecraft, до и после добавления нескольких шейдеров.

                Задача этого туториала


                Иногда программирование шейдеров представляется загадочной чёрной магией и его часто понимают неправильно. Существует множество примеров кода, демонстрирующих создание невероятных эффектов, но в которых практически нет объяснений. В своём руководстве я хочу восполнить этот пробел. Я сосредоточусь в основном на базовых принципах создания и понимания кода шейдеров, чтобы вы смогли с лёгкостью настраивать, сочетать или писать свои собственные шейдеры с нуля!
                Читать дальше →
              • Что я изменил бы в Go

                • Translation

                image


                В течение полугода я программировал преимущественно на Go. И я разочарован. По двум причинам:


                • В Go особенно трудно придерживаться функциональной парадигмы. По сути, язык препятствует функциональному программированию. Меня это разочаровало, потому что в императивном коде, который я пишу, большое количество шаблонных кусков. К тому же, как мне кажется, в этом случае выше риск ошибок, в отличие от использования функциональных абстракций.
                • Я считаю, что Go упускает свои шансы. В программных языках появились замечательные нововведения (особенно в сфере проверки и вывода типов — type inference), делающие код безопаснее, быстрее и чище. Мне хотелось бы, чтобы Google использовала своё влияние, чтобы поддержать некоторые из этих идей.

                Я не первый, кто воспринимает Go подобным образом. Вот публикации других людей, разделяющих мои впечатления:



                Ниже я добавлю свои соображения. Чтобы показать, как именно можно улучшить Go, я буду сравнивать его с Rust.

                Читать дальше →
              • Bash-скрипты: начало

                • Translation
                Bash-скрипты: начало
                Bash-скрипты, часть 2: циклы
                Bash-скрипты, часть 3: параметры и ключи командной строки
                Bash-скрипты, часть 4: ввод и вывод
                Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
                Bash-скрипты, часть 6: функции и разработка библиотек
                Bash-скрипты, часть 7: sed и обработка текстов
                Bash-скрипты, часть 8: язык обработки данных awk
                Bash-скрипты, часть 9: регулярные выражения
                Bash-скрипты, часть 10: практические примеры
                Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

                Сегодня поговорим о bash-скриптах. Это — сценарии командной строки, написанные для оболочки bash. Существуют и другие оболочки, например — zsh, tcsh, ksh, но мы сосредоточимся на bash. Этот материал предназначен для всех желающих, единственное условие — умение работать в командной строке Linux.


                Читать дальше →
              • Silicon Graphics O2 — Маленькая станция с большими возможностями

                  Предлагаю вашему вниманию обзор графической станции начального уровня от Silicon Graphics — SGI O2. Эта станция была выпущена в 1996-м году на замену Indy. Cтанция базируется на архитектуре MIPS и имеет ряд интересных архитектурных особенностей, изложенных в wiki. Под катом фото станции, демонстрация операционной системы IRIX и мои личные впечатления от этой машинки


                  Читать дальше →
                • Не твоя проблема

                  • Translation
                  image

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

                  В этой публикации я хотел рассказать об интересной, но незаслуженно мало описанной на Хабре, системе управления контейнерами Kubernetes.

                  image

                  Что такое Kubernetes?


                  Kubernetes является проектом с открытым исходным кодом, предназначенным для управления кластером контейнеров Linux как единой системой. Kubernetes управляет и запускает контейнеры Docker на большом количестве хостов, а так же обеспечивает совместное размещение и репликацию большого количества контейнеров. Проект был начат Google и теперь поддерживается многими компаниями, среди которых Microsoft, RedHat, IBM и Docker.
                  Читать дальше →
                • Новая формула для ролевых игр

                  • Translation
                  image

                  Автор статьи Гвидо Хенкель (Guido Henkel) — профессиональный разработчик игр с 1983 года; участвовал в создании Jagged Alliance: Deadly Games, Fallout 2, был продюсером Planescape: Torment.

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

                  Но ситуация изменилась. Несмотря на мрачные пророчества, жанр выжил, благодаря адаптации и упрощению игровых особенностей. Компьютерные ролевые игры (CRPG) стали более понятными широкой аудитории, и сегодня можно смело сказать, что современные CRPG — это мейнстрим, имеющий мало общего с предшественниками из 80-х и 90-х. Фактически, можно заявить, что они почти не походят на ролевые игры. (Разумеется, я не имею в виду игры, выросшие в последние годы на основе возрождённых ретро-RPG: очевидно, что они представляют собой намеренный возврат к парадигмам классического дизайна.)

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



                    Наталия Ефремова погружает публику в специфику практического использования нейросетей. Это — расшифровка доклада Highload++.

                    Добрый день, меня зовут Наталия Ефремова, и я research scientist в компании NtechLab. Сегодня я буду рассказывать про виды нейронных сетей и их применение.

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

                    Первая часть моего доклада будет направлена тем, кто незнаком с нейронными сетями. Я занимаюсь непосредственно deep learning. В этой области я работаю более 10 лет. Хотя она появилась чуть меньше, чем десятилетие назад, раньше были некие зачатки нейронных сетей, которые были похожи на систему deep learning.
                    Читать дальше →
                  • Metal Gear Rising — разрезание

                    • Translation
                    Автор перевода просит у чититалей прощения за странные выражения, сумбурность повествования и другие странности. Стиль автора максимально сохранён, а статья является переводом статьи «Metal Gear Rising – Slicing».



                    В игре Metal Gear Rising можно резать объекты на очень маленькие кусочки. Конечно же что-то вроде этого уже было реализовано ранее, например в Tiny and Big, Afro Samurai или Crysis. Но Rising впечатлил меня больше всего. Настоящее разрезание, ничем не ограниченное. Вот вам техно-демо:
                    Много gif'ок, траффик!
                  • OpenResty: превращаем NGINX в полноценный сервер приложений

                      Мы вновь публикуем расшифровку доклада с конференции HighLoad++ 2016, которая проходила в подмосковном Сколково 7—8 ноября прошлого года. Владимир Протасов рассказывает, как расширить функциональность NGINX с помощью OpenResty и Lua.

                      Всем привет, меня зовут Владимир Протасов, я работаю в Parallels. Расскажу чуть-чуть о себе. Три четверти своей жизни я занимаюсь тем, что пишу код. Стал программистом до мозга костей в прямом смысле: я иногда во сне вижу код. Четверть жизни — промышленная разработка, написание кода, который идёт прямо в продакшн. Код, которым некоторые из вас пользуются, но не догадываются об этом.

                      Чтобы вы понимали насколько всё было плохо. Когда я был маленьким джуниором, я пришёл, и мне выдали такие двухтерабайтные базы. Это сейчас тут у всех highload. Я ходил на конференции, спрашивал: «Ребят, расскажите, у вас big data, всё круто? Сколько у вас там базы?» Мне отвечали: «У нас 100 гигабайт!» Я говорил: «Круто, 100 гигабайт!» А про себя думал, как бы аккуратненько сохранить покерфейс. Думаешь, да, ребята крутые, а потом возвращаешься и ковыряешься с этими многотерабайтными базами. И это — будучи джуниором. Представляете себе, какой это удар?

                      Я знаю больше 20 языков программирования. Это то, в чём мне пришлось разобраться в процессе работы. Тебе выдают код на Erlang, на C, на С++, на Lua, на Python, на Ruby, на чем-то еще, и тебе надо это всё пилить. В общем пришлось. Точное количество посчитать так и не удалось, но где-то на 20 число потерялось.
                      Читать дальше →
                    • История успеха «Яндекс.Почты» с PostgreSQL



                        Владимир Бородин (на «Хабре» dev1ant), системный администратор группы эксплуатации систем хранения данных в «Яндекс.Почте», знакомит со сложностями миграции крупного проекта с Oracle Database на PostgreSQL. Это — расшифровка доклада с конференции HighLoad++ 2016.

                        Всем привет! Меня зовут Вова, сегодня я буду рассказывать про базы данных «Яндекс.Почты».

                        Сначала несколько фактов, которые будут иметь значение в будущем. «Яндекс.Почта» — сервис достаточно старый: он был запущен в 2000 году, и потому мы накопили много legacy. У нас — как это принято и модно говорить — вполне себе highload-сервис, больше 10 миллионов пользователей в сутки, какие-то сотни миллионов всего. В бэкенд нам прилетает более 200 тысяч запросов в секунду в пике. Мы складываем более 150 миллионов писем в сутки, прошедших проверки на спам и вирусы. Суммарный объём писем за все 16 лет — больше 20 петабайт.

                        О чем пойдет речь? О том, как мы перевезли метаданные из Oracle в PostgreSQL. Метаданных там не петабайты — их чуть больше трехсот терабайт. В базы влетает более 250 тысяч запросов в секунду. Надо иметь в виду, что это маленькие OLTP-запросы, по большей части чтение (80%).

                        Это — не первая наша попытка избавиться от Oracle. В начале нулевых была попытка переехать на MySQL, она провалилась. В 2007 или 2008 была попытка написать что-то своё, она тоже провалилась. В обоих случаях был провал не столько по технически причинам, сколько по организационным.
                        Читать дальше →
                      • Лучшие короткометражные анимационные фильмы о технологиях в истории «Оскара»



                          Уже 26 февраля станут известны обладатели престижной кинопремии «Оскар» в 24 номинациях. Но если полнометражные номинации и их лауреаты известны нам не понаслышке, то победители номинаций короткометражных фильмов на их фоне остаются в тени. А зря. Короткий метр — особый прекрасный жанр, позволяющий довольно быстро, в одно мгновение, дать волю своим фантазиям и воображению. Передать сюжет и мысль за короткий промежуток времени — особый талант, заслуживающий уважения и восхищения. За все годы в эти номинации попадают картины на совершенно разные темы. Среди них можно найти и «вечные темы» (добро и зло), и совершенно гиковские и нами очень любимые (развитие технологий, необычные изобретения, общество будущего, жизнь на других планетах и тайны Вселенной). Поэтому мы собрали для вас в одном посте лучшие анимационные короткометражки о технологиях, представленные на премии «Оскар» за последние 16 лет.
                          Читать дальше →
                        • Создание PostProcess материала для эффекта лечения в Unreal Engine 4

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

                            image

                            Читать дальше →
                            • +16
                            • 6.3k
                            • 3
                          • Дайджест разработки на Unreal Engine

                              Игры на Unreal Engine, разработка на Unreal Engine, туториалы для Unreal Engine и другие интересные материалы об Unreal Engine вы найдете в нашем дайджесте. И кажется, мы забыли упомянуть самое главное – дайджест посвящен Unreal Engine.


                              Читать все