• Кто такие шизоиды, где они обитают, и почему вам может быть полезно о них узнать


      Основные стереотипы о шизоидах в одной картинке

      Synopsis: шизоид — не диагноз, это тип характера. Существуют шизоиды, имеющие психические заболевания (как существуют истероиды, эпилептоиды, сварщики, мужчины и женщины, дети и бухгалтеры, имеющие диагнозы из области психиатрии), но далеко не каждый шизоид (мужчина, бухгалтер, сварщик и т.д.) — болен.

      Сам этот характер довольно тяжело описать одновременно коротко и корректно. Некоторые называют их «гиками», «интровертами», «чудаками», «ботаниками», «хикканами», «эксцентричными», «нердами», «компьютерными гениями»[1, стр. 231], и все эти характеристики в той или иной мере имеют отношение к, собственно, шизоидам, но ни одна из них не является определяющей.

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

      Большая часть литературы, посвящённой шизоидам, имеет клиническую направленность и описывает достаточно тяжёлые случаи шизоидизации, а в рамках этого текста я хотел бы рассказать о здоровых шизоидах, коих среди нас присутствует достаточно для того, чтобы их особенности имели значение в контексте трудовых отношений, управления и маркетинга.
      Читать дальше →
    • Магические сигнатуры методов в C#

      • Перевод

      Представляю вашему вниманию перевод статьи The Magical Methods in C# автора CEZARY PIĄTEK.


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


      • Синтаксис инициализации коллекций
      • Синтаксис инициализации словарей
      • Деконструкторы
      • Пользовательские awaitable типы
      • Паттерн query expression
      Читать дальше →
    • Разбираемся с латинскими сокращениями и фразами в английском языке


        Полтора года назад, читая работы про уязвимости Meltdown и Spectre, я поймал себя на том, что не очень понимаю разницу между сокращениями i.e. и e.g. Т.е. по контексту вроде бы понятно, но потом вроде бы как-то и не совсем то. В результате я тогда сделал себе небольшую шпаргалку именно по этим сокращениям, чтобы не путаться. И тогда же появилась идея этой статьи.


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

        Читать дальше →
      • Скелетная анимация на стороне видеокарты

        Не так давно Unity представила ECS. В процессе изучения мне стала интерестно, а каким образом можно подружить анимацию и ECS. И в процессе поиска я наткнулся на интересную технику, которую применяли ребята из NORDVEUS в своем демо для доклада Unite Austin 2017.
        Unite Austin 2017 — Massive Battle in the Spellsouls Universe.


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


        Зачем такие сложности, спросите вы?


        Ребята из NORDVEUS одновременно отрисовывали на экране большое количество однотипных анимированных объектом: скелетов, мечников. В случае использования традиционного подхода: SkinnedMeshRenderers и Animation\Animator, повлечет за собой увеличение вызовов отрисовки и дополнительную нагрузке на CPU по просчету анимации. И чтобы решить эти проблемы анимацию перенесли на сторону GPU, а точнее в вершинный шейдер.


        Читать дальше →
      • Карты из шестиугольников в Unity: части 1-3

        • Перевод
        image

        От переводчика: эта статья — первая из подробной (27 частей) серии туториалов о создании карт из шестиугольников. Вот, что должно получиться в самом конце туториалов.

        Части 1-3: сетка, цвета и высоты ячеек

        Части 4-7: неровности, реки и дороги

        Части 8-11: вода, объекты рельефа и крепостные стены

        Части 12-15: сохранение и загрузка, текстуры, расстояния

        Части 16-19: поиск пути, отряды игрока, анимации

        Части 20-23: туман войны, исследование карты, процедурная генерация

        Части 24-27: круговорот воды, эрозия, биомы, цилиндрическая карта

        Часть 1: создание сетки из шестиугольников


        Оглавление


        • Преобразуем квадраты в шестиугольники.
        • Триангулируем сетку из шестиугольников.
        • Работаем с кубическими координатами.
        • Взаимодействуем с ячейками сетки.
        • Создаём внутриигровой редактор.

        Этот туториал является началом серии о картах из шестиугольников. Сетки из шестиугольников используются во многих играх, особенно в стратегиях, в том числе в Age of Wonders 3, Civilization 5 и Endless Legend. Мы начнём с основ, будем постепенно добавлять новые возможности и в результате создадим сложный рельеф на основе шестиугольников.
        Читать дальше →
      • Создаём эффект распространения цвета в Unity

        • Перевод

        На этот эффект меня вдохновил эпизод Powerpuff Girls. Я хотела создать эффект распространения цвета в чёрно-белом мире, но реализовать его в координатах мирового пространства, чтобы видеть, как цвет закрашивает объекты, а не просто плоско распределяется по экрану, как в мультике.

        Эффект я создала в новом Lightweight Rendering Pipeline движка Unity, встроенном примере конвейера Scriptable Rendering Pipeline. Все концепции применимы и к другим конвейерам, но некоторые встроенные функции или матрицы могут иметь другие названия. Также я воспользовалась новым стеком постобработки, но в туториале опущу подробное описание его настройки, потому что о ней достаточно хорошо рассказывается в других руководствах, например в этом видео.
        Читать дальше →
      • Шейдеры растворения и исследования мира

        • Перевод

        Часть 1: шейдер растворения


        Шейдер растворения возвращает красивый эффект, к тому же его легко создать и понять; сегодня мы сделаем его в Unity Shader Graph, а также напишем на HLSL.

        Вот пример того, что мы будем создавать:



        Как это работает


        Чтобы создать шейдер растворения (dissolve shader), нам придётся работать со значением AlphaClipThreshold в шейдере «Shader Graph» или воспользоваться функцией HLSL под названием clip.

        По сути, мы прикажем шейдеру не рендерить пиксель на основании текстуры и переданного значения. Нам нужно знать следующее: белые части растворяются быстрее.
        Читать дальше →
        • +47
        • 17,9k
        • 3
      • Написание шейдеров в Unity. GrabPass, PerRendererData

        Привет! Я хотел бы поделиться опытом написания шейдеров в Unity. Начнем с шейдера искажения пространства (Displacement/Refraction) в 2D, рассмотрим функционал, используемый для его написания (GrabPass, PerRendererData), а также уделим внимание проблемам, которые обязательно возникнут.

        Информация пригодится тем, кто имеет общее представление о шейдерах и пробовал их создавать, но мало знаком с возможностями, которые предоставляет Unity, и не знает с какой стороны подступиться. Загляните, возможно, мой опыт поможет вам разобраться.


        Читать дальше →
        • +53
        • 21,8k
        • 8
      • Создание сеток шестиугольников

        • Перевод
        image

        Сетки из шестиугольников (гексагональные сетки) используются в некоторых играх, но они не так просты и распространены, как сетки прямоугольников. Я коллекционирую ресурсы о сетках шестиугольников уже почти 20 лет, и написал это руководство по самым элегантным подходам, реализуемым в простейшем коде. В статье часто используются руководства Чарльза Фу (Charles Fu) и Кларка Вербрюгге (Clark Verbrugge). Я опишу различные способы создания сеток шестиугольников, их взаимосвязь, а также самые общие алгоритмы. Многие части этой статьи интерактивны: выбор типа сетки изменяет соответствующие схемы, код и тексты. (Прим. пер.: это относится только к оригиналу, советую его изучить. В переводе вся информация оригинала сохранена, но без интерактивности.).
        Читать дальше →
      • Git: советы новичкам – часть 2

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


          Читать дальше →
        • Must have книги для прокачки английского. Подборка от преподавателей

          • Tutorial

          Зона комфорта — это зло. Хоть и приятное, даже очень. Но зло. Особенно, если речь идет о саморазвитии и изучении языков. Если каждый день в работе использовать довольно простые лексику и грамматику с минимальными изменениями, есть большая вероятность, что вы начнете забывать всякие там Conditionals или Future Perfect. Конечно же, нужно поддерживать язык на должном уровне и развивать его, поэтому мы попросили наших преподавателей поделиться книгами, которые им в этом помогают. Так что готовьтесь к подборке для высоких уровней и не только!

          Произношение


          Ship or Sheep? An Intermediate Pronunciation Course

          В этом пособии вы найдете неплохой тест, который покажет ваши слабые стороны (всякие там “сри” или “фри”). Даже если ничего подобного не обнаружится, учебник стоит пройти от начала до конца, и вот почему:
          Читать дальше →
        • Линейная алгебра для разработчиков игр

          • Перевод
          • Tutorial
          Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
          Читать дальше →
        • Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

            Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

            Введение


            С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
            Статья большая, так что будет поделена на логические блоки:

            0. Зачем вообще что-то оптимизировать?
              
            1. Оптимизация ОС (FreeBSD)
              1.1 Переход на 7.х 
              1.2 Переход на 7.2
              1.3 Переход на amd64
              1.4 Разгрузка сетевой подсистемы
              1.5 FreeBSD и большое кол-во файлов
              1.6 Softupdates, gjournal и mount options
              
            2. Оптимизация фронтенда (nginx)
              2.1 Accept Filters
              2.2 Кеширование
              2.3 AIO
              
            3. Оптимизация бэкенда
              3.1 APC
              3.1.1 APC locking
              3.1.2 APC hints
              3.1.3 APC fragmentation
              3.2 PHP 5.3
              
            4. Оптимизация базы данных
              4.1 MySQL 
              4.1.1 Переход на 5.1
              4.1.2 Переход на InnoDB
              4.1.3 Встроеный кеш MySQL - Query Cache
              4.1.4 Индексы
              
            4.2 PostgreSQL
              4.2.1 Индексы
              4.2.2 pgBouncer и другие.
              4.2.3 pgFouine
              
            4.3 Разгрузка базы данных
              4.3.1 SphinxQL
              4.3.2 Не-RDBMS хранилище
              4.4 Кодировки
              4.5 Асинхронность
              
            Приложение. Мелочи.
              1. SSHGuard или альтернатива.
              2. xtrabackup
              3. Перенос почты на другой хост
              4. Интеграция со сторонним ПО
              5. Мониторинг
              
             6. Минусы оптимизации

            Кому что-нибудь из этого списка интересно, жмём сюда...
          • Опасайтесь прозрачных пикселей

            • Перевод
            image

            Если вы используете в своей игре спрайты с прозрачностью (а обычно так и бывает, как минимум для UI), то вам, вероятно, стоит уделить внимание к полностью прозрачным пикселям текстур (или «текселам»).

            Даже если значение альфа-канала равно 0, с пикселем всё равно связано значение цвета. Этот цвет ни на что не влияет, так ведь? В конце концов, пиксель полностью прозрачен, кому есть дело до его цвета…

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

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

              Читать дальше →
            • Quad-tree визуализация в реальном времени на Shader Model 2.0

              Пролог


              Доброго времени суток! Однажды ко мне на работу пришёл друг, и я ему показал свой свеженаписанный шейдер, на тот момент это была первый серьёзный опыт с ними. Данная микропрограмма преобразовывала изображение с камеры в изображение вязаной кофты.


              Читать дальше →
            • Использование МатАнализа в компьютерных играх (часть 3)

                Ключевые слова: DPS (DamagePerSecond); Wolfram Mathematica; дискретность и непрерывность; матанализ; заработок игровой валюты в компьютерных играх; паки ArcheAge.

                Введение


                Всем знакомы однотипные вопросы в школьных задачах по математике про мотоциклиста выехавшего из пункта А в пункт Б, которые вызывают скуку, отвращение, или просто безразличие. Вопросы, которые вызывают, все что угодно кроме интереса к изучению математики. Очевидно что, гораздо больший интерес и больше эмоций вызывают вопросы типа:
                1) «как он смог меня одолеть в игре, если у моего персонажа и здоровья больше и DPS (Damage Per Second) выше?!»
                2) «как быстрее всего заработать голду (игровую валюту), чтобы сделать своего персонажа сильнее?!»
                На самом деле эти игровые вопросы очень похожи на классические школьные задачи. Разница лишь в том, что есть заинтересованность в получении ответа на игровые вопросы, есть цель, ради которой хочется решить эти задачи. К сожалению, очень многие преподаватели в школах и вузах совершенно не умеют заинтересовать обучаемых в получении конкретной информации, новом методе решений математических задач, доведении их до ответа. Но раз уж игры вызывают этот самый интерес, то грех не воспользоваться заинтересованностью в игре, для пробуждения интереса к математическому анализу.
                Вот две задачи, которые являются лишь переформулированными вышеупомянутыми вопросами.
                1) Петя и Коля решили помочь дедушке наполнить две одинаковые пустые бочки водой из колодца. Петя таскал воду в 5-и литровом ведре и на один заход к колодцу и обратно к бочке тратил 3 минуты, а Коля в 8-и литровом и на один заход тратил 5 минут. Каждый заполнял свою бочку. Кто из мальчиков быстрее заполнит свою бочку, если а) объём бочки 60 литров? б) если объем бочки 56 литров? (начали мальчики одновременно)
                2) Два купца Семён и Добрыня покупают у крестьян по 10 пудов мёда за 5 золотых и везут его на продажу в соседние города. Добрыня везёт в ближайший город и продаёт там за 8 золотых, весь путь до города и обратно у него занимает 2 дня. Семён же, желающий продавать своё мёд как можно дороже, не ленится и везёт его ещё дальше, тратя на весь путь 3 дня, и продавая мёд в другом городе за 10 золотых. Кто же из купцов заработает больше за 360 дней непрерывной работы? Как изменится ситуация, если оба купца вынудят крестьян снизить цену на мёд до 3 золотых?
                Разбор этих задач, описанный ниже, поможет ответить на животрепещущие вопросы игры ArcheAge (и других) про «паки» и DPS. А также позволит задуматься над такими понятиями как «дискретность» и «непрерывность», а так же над таким, казалось бы, очевидным вопросом как «прибыль».
                Читать дальше →
              • Лицензия для вашего open-source проекта

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

                  Статья будет полезна тем, кто хочет:

                  — в общих чертах понять, что такое авторское право (но лучше обратиться к юристу);
                  — подобрать свободную лицензию для своего проекта;
                  — разобраться, что нужно писать в шапке файла исходного кода.
                  Читать дальше →
                • Overclock мозга или Внутренняя виртуализация сознания

                  • Tutorial


                  Все помнят этот фильм? Какого черта он делает на Хабре? И вообще что тут делает подобный пост?
                  Наверное потому, что я считаю главным звеном в IT все таки человека, а точнее его мозги. Я попробую рассказать еще об одной возможности использовать свой мозг чуточку эффективнее. Одна из слабо задокументированных возможностей, которую мы используем каждый день, но не всегда даже об этом вспоминаем. Все описанное проверялось на мне. Если что-то я не пробовал, но рассказать об этом важно буду отмечать особо. Никаких наркотиков, аппаратов и издевательств над собой, только общедоступные легкие методики (короче, лег проспался и вперед, не вставая даже с кровати).
                  И да… Это до жути реалистично, на столько, что попробовав, вы не сможете не рассказать об этом.

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