• «Во все тяжкие» или суровые реальности инди разработки Dark Forester

    image

    Я хочу сразу сказать, что в первой части будет мало о самой разработке, а больше именно истории, трудности, социальные аспекты, проблемы с которыми может столкнутся инди разработчик, а также я не могу не упомянуть Москву, покер и спорт — без которых эта история не была бы полной. Итак, прежде, чем я начну с легенды, для того чтобы немного заинтересовать читателя, за время разработки с 2013 года по 2015 год я потолстел на 22кг и превратился из спортивного парня в человека, который с трудом узнавал себя в зеркале, я выпивал в год около тысячи банок ред булла, все началось с одной-двух, сейчас уже бывает редко, чтобы я пил меньше трех. Я спал по пять, а то и четыре часа. В течении двух лет я вставал в будние дни в пять утра и ехал на работу в другой город на электричке, чтобы вечером оставалось время поработать над игрой. Я по глупости отказался от предложения в 250.000 евро на разработку игры. Вероятно итогом такой жизни стало тяжелое воспаление легких, суд с бывшим работодателем, а также серьезные проблемы со спиной из-за постоянно сидячего образа жизни. Ах ну и если этого мало, то я бросил университет и сам уволился с работы!

    Что ж поехали…
    Читать дальше →
  • Дневник выступлений с минского DevGAMM 2016

      10-11 ноября в Минске прошла конференция разработчиков игр DevGAMM. На нее приехало 1300 гостей, было 80 докладчиков, в сумме прошло более 60 сессий (доклады, мастер-классы и круглые столы). Среди них были доклады от Чета Фалижека (игровой сценарист Valve), Тони Уоткинса (генеральный директор EA Russia), Петра Иваницки (разработчик игры SUPERHOT), Якуба Дворски (создатель Machinarium, Samorost 3), Марты Деттляфф и Кацпера Непокульчицкого (художники Ведьмак 3), Майка Хайнса (евангелист отдела разработки Amazon), Имре Джеле (разработчик Surgeon Simulator и I am bread) и Алекса Ничипорчика (CEO компании tinyBuild) и многих других докладчиков. Под катом мы собрали для вас видеозаписи и краткое описание всех докладов с метками для удобства поиска по ним.


      Читать дальше →
    • .NET и CLR: Взгляд изнутри



        Что такое C#? Объектно-ориентированный эсперанто со сборщиком мусора, функциональными примочками и бесплатным массажем после обеда. Он позволяет писать Действительно Важные Вещи, скрывая от нас ненужные детали работы с памятью, процессором и прочее низкоуровневое программирование. Естественно, находятся люди с повышенным уровнем любопытства в крови, желающие знать как же .NET работает на самом деле (само собой, они изучают .NET исключительно ради повышения производительности разрабатываемого софта). Сегодня с нами разговаривают:
        Читать дальше →
      • 2D магия в деталях. Часть первая. Свет


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

          Читать дальше →
        • 25 вопросов задаваемых на собеседовании системным администраторам Linux

            Перевод Андрей А. Породько. Оригинал Pradeep Kumar · March 21, 2016 (http://www.linuxtechi.com/25-interview-questions-for-linux-administrator-job/).
            Надеюсь кому-нибудь пригодится. Меня спрашивали про ps, top и overcommitment в kvm ;-)
            Внимание! Много букв и нет картинок.
            От переводчика. Пожалуйста, не пишите в комментариях что что-то можно сделать по-другому — это перевод. Когда вам зададут на интервью в RedHat подобный вопрос, у вас будет возможность проявить себя ;-)
            Читать дальше →
          • Линейные модели: простая регрессия

            • Tutorial
            В прошлый раз мы подробно рассмотрели многообразие линейных моделей. Теперь перейдем от теории к практике и построим самую простую, но все же полезную модель, которую вы легко сможете адаптировать к своим задачам. Модель будет проиллюстрирована кодом на R и Python, причем сразу в трех ароматах: scikit-learn, statsmodels и Patsy.
            Читать дальше →
          • 7 примеров использования процедурной генерации в играх, о которых полезно знать всем разработчикам

            • Translation
            Процедурно-генерируемый контент «правильных» игр — Diablo, Rogue, Spelunky, Daggerfall, Elite, Spore и даже аналогов Football Manager — не перестает удивлять. Он позволяет иначе взглянуть на дизайн и подчеркивает элегантность основных показателей системы. С его помощью вы экономите время и можете зарабатывать. Именно благодаря ему Skyrim и Minecraft привлекают огромное количество игроков, которые не изменяют своему выбору даже через несколько лет после выхода этих продуктов. Процедурная генерация – надежное основание, на котором построена концепция столь ожидаемой "No Man’s Sky" от Hello Games.

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

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

            1.Crusader Kings II: Сложные родственные связи становятся динамичными благодаря генерируемым персонажам


            image
            Читать дальше →
          • Технокнига, часть 4: литература по управлению продуктом, разработке веб-сервисов, управлению веб-проектами, бизнесу и системному анализу архитекторов



              Мы продолжаем публиковать список рекомендуемой литературы для студентов Технопарка. На этот раз вас ждет заключительная часть, рассчитанная на студентов 4 семестра. Предыдущие части: первая, вторая, третья.
              Читать дальше →
              • +23
              • 29.7k
              • 6
            • Инфраструктура Amazon Web Services изнутри. Часть 1


                Ряды серверов внутри дата-центра Amazon

                После того, как облачные вычисления возникли в качестве новой парадигмы, и окончательно выделились в отдельную сферу, компания Amazon смогла быстро стать лидером этой сферы. Запуск Amazon Web Services в 2006 году (вдумайтесь только, почти 10 лет назад!) позволил ритейлеру стать крупнейшим игроком на рынке, с долей этого рынка в $6 миллиардов.

                С течением времени облачные сервисы Amazon стали обслуживать десятки и сотни тысяч клиентов (сейчас уже более миллиона). Соответственно, аптайм сервисов весьма критичен, и даже минута простоя может обойтись клиентам компании очень дорого. Не так давно сбой все же случился, и в результате пострадали Netflix, Reddit, Tinder, IMdB и множество других сервисов. Все это случилось по вине сбоя в дата-центре, расположенного в Вирджинии, США. Сегодня мы предлагаем ознакомиться со всей инфраструктурой компании, описав ее примерную географию и возможности.

                Итак, Amazon сейчас управляет, по меньшей мере, 30 дата-центрами своей глобальной сети, и еще 10-15 вскоре будут построены или находятся на стадии проектирования. К сожалению, компания не раскрывает полную схему своей инфраструктуры, но по косвенным данным эксперты делают вывод, что только в США общая мощность ДЦ компании составляет около 600 МВт.
                Читать дальше →
                • +13
                • 18.8k
                • 5
              • Предсказание выживания пассажиров Титаника при помощи Azure Machine Learning

                  Выражаем большое спасибо за подготовку статьи Кириллу Малеву из компании Merku. Кирилл больше 3х лет занимается практическим применением машинного обучения для разных объёмов данных. В компании решает задачи в области предсказания оттока клиентов и обработки естественного языка, большое внимание уделяя коммерциализации полученных результатов. Закончил магистратуру Болонского университета и НГТУ

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

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


                  предсказать вероятность спасения утопающих
                  • +23
                  • 23.6k
                  • 2
                • Погружение в пучину интерпретатора Python. Ч1



                  От переводчика: Наверно всем интересно, что внутри у инструмента, который используешь, этот интерес овладел и мной, но главное не утопать в нём и не закопаться так что не вылезти. Найдя для себя интересный материал, я решил заботливо перевести его и представить хабросообществу (моя первая публикация, прошу ногами сильно не пинать). Тем, кому интересен как Python работает на самом деле, прошу проследовать под кат.
                  Читать дальше →
                  • +27
                  • 40.4k
                  • 3
                • Обзор способов и протоколов аутентификации в веб-приложениях



                    Я расскажу о применении различных способов аутентификации для веб-приложений, включая аутентификацию по паролю, по сертификатам, по одноразовым паролям, по ключам доступа и по токенам. Коснусь технологии единого входа (Single Sign-On), рассмотрю различные стандарты и протоколы аутентификации.

                    Перед тем, как перейти к техническим деталям, давайте немного освежим терминологию.

                    • Идентификация — это заявление о том, кем вы являетесь. В зависимости от ситуации, это может быть имя, адрес электронной почты, номер учетной записи, итд.
                    • Аутентификация — предоставление доказательств, что вы на самом деле есть тот, кем идентифицировались (от слова “authentic” — истинный, подлинный).
                    • Авторизация — проверка, что вам разрешен доступ к запрашиваемому ресурсу.


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

                    Аналогично эти термины применяются в компьютерных системах, где традиционно под идентификацией понимают получение вашей учетной записи (identity) по username или email; под аутентификацией — проверку, что вы знаете пароль от этой учетной записи, а под авторизацией — проверку вашей роли в системе и решение о предоставлении доступа к запрошенной странице или ресурсу.

                    Однако в современных системах существуют и более сложные схемы аутентификации и авторизации, о которых я расскажу далее. Но начнем с простого и понятного.
                    Читать дальше →
                  • Недопонимание про async/await и многопоточность в C#

                    Привет, Хабр! Тема async/await в .NET Framework и C# 5.0 не нова и объезженна: все давно знают, что это, как оно работает, все знакомы с тем скромным фактом, что это очень текучая абстракция и поведение зависит от SynchronizationContext. Об этом очень много писали на хабре, ещё чаще этот вопрос размусоливался в блогах различных респектабельных персон .NET-сообщества.

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



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

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

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

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

                      Пример
                      Нам удалось подобрать пароль к серверу, доступному извне. Произведя сканирование внутренней сети мы обнаружили сервер с MS SQL. После подбора пароля для пользователя «sa» выяснилось, что сервис запущен от имени «SYSTEM» (один из вариантов запуска по-умолчанию), а сам сервер находится в домене. Используя хранимую процедуру «xp_cmdshell», загрузим на сервер утилиту Mimikatz, и после того, как администратор домена подключится к серверу (к примеру, спровоцировав неполадки на сервере), с помощью утилиты Mimikatz получим его логин и пароль в чистом виде, по факту — скомпрометировав домен.


                      Читать дальше →
                    • Простое суффиксное дерево

                      • Tutorial
                      ДеревоСуффиксное дерево – мощная структура, позволяющая неожиданно эффективно решать мириады сложных поисковых задач на неструктурированных массивах данных. К сожалению, известные алгоритмы построения суффиксного дерева (главным образом алгоритм, предложенный Эско Укконеном (Esko Ukkonen)) достаточно сложны для понимания и трудоёмки в реализации. Лишь относительно недавно, в 2011 году, стараниями Дэни Бреслауэра (Dany Breslauer) и Джузеппе Италиано (Giuseppe Italiano) был придуман сравнительно несложный метод построения, который фактически является упрощённым вариантом алгоритма Питера Вейнера (Peter Weiner) – человека, придумавшего суффиксные деревья в 1973 году. Если вы не знаете, что такое суффиксное дерево или всегда его боялись, то это ваш шанс изучить его и заодно овладеть относительно простым способом построения.
                      Читать дальше →
                    • Лекции Техносферы. 1 семестр. Методы использования СУБД в интернет-приложениях

                      • Tutorial


                      Сегодня мы предлагаем вашему вниманию очередную публикацию в рамках постоянной рубрики «Лекции Техносферы». В этот раз вы можете изучить материалы по курсу «Методы использования СУБД в интернет-приложениях». Цель курса — изучение топологии, многообразия и основных принципов функционирования систем хранения данных, а также алгоритмов, заложенных в основу как централизованных, так и распределённых систем, демонстрация фундаментальных компромиссов присущих тем или иным решениям. Преподаватели курса: Константин Осипов kostja, Евгений Блих bigbes, Роман Цисык.
                      Читать дальше →
                      • +28
                      • 30.1k
                      • 2
                    • Победы в конкурсах программирования негативно коррелируют с успехами в работе

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

                        Такой вывод следует из беспристрастной статистики и дата-майнинга рабочих показателей сотрудников Google, рассказал Питер Норвиг в лекции, прочитанной 26 марта 2015 года в Венском техническом университете.


                        Читать дальше →
                      • Лекции Технопарка. 3 семестр. Проектирование высоконагруженных систем

                        • Tutorial


                        И снова в эфире наша постоянная рубрика «Лекции Технопарка». На этот раз предлагаем вам ознакомиться с материалами курса «Проектирование высоконагруженных систем». Цель курса — получение студентами навыков проектирования высокоэффективных программных систем.
                        Читать дальше →
                        • +50
                        • 65.4k
                        • 5