• Создание игровых 3D-моделей «для бедных»: путь инди

    • Перевод
    Вы когда-нибудь задумывались о том, как работает небольшая инди-студия, занимающаяся разработкой видеоигр?

    Создавать игры с очень маленьким бюджетом можно, но для этого необходима смекалка, много труда и ещё больше любви к своему делу.

    Мы — небольшая команда из Польши. Нас всего три человека, но полный рабочий день занимаются проектом всего двое.


    Сегодня мы расскажем о процессе создания персонажей для нашей игры «The end of the Sun». Имейте в виду, что показанные в статье скриншоты взяты из проекта, который пока находится в разработке.

    Этот текст посвящён только статичным элементам персонажей: мы расскажем, как сканировали персонажа и одежду, как создавались дополнительные элементы, а также о том, как мы настроили движок Unity, чтобы получить такие скриншоты:
    Читать дальше →
    • +35
    • 9,7k
    • 8
  • Используем SQLite в Flutter

    • Tutorial
    Привет, Хабр! Представляем вашему вниманию перевод статьи «Using SQLite in Flutter».



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

    В этой статье я продемонстрирую как сделать это, используя SQLite, в Flutter-e
    Читать дальше →
    • +19
    • 4,5k
    • 3
  • Бессерверный REST API «на коленке за 5 минут»

      Привет, Хабр! Сегодня продолжим разговор о возможностях, которые предоставляет нам Amazon Web Services и о том, как эти возможности использовать в решении прикладных задач.

      На простом примере рассмотрим создание буквально за несколько минут собственного бессерверного автомасштабируемого REST API с разбором кейса — получения списка для ресурса.

      Интересно? Тогда заходим под кат!


      (Источник)
      Читать дальше →
    • Восстановление когнитивных способностей 100 пациентов (перевод статьи Дейла Бредесена)

      image

      Привет, Хабр! Представляю вашему вниманию перевод оригинальной статьи Дейла Бредесена, директора отдела нейродегенеративных заболеваний медицинского факультета Калифорнийского университета в Лос-Анджелесе (UCLA), автора «The End of Alzheimer's: The First Program to Prevent and Reverse Cognitive Decline» (Конец болезни Альцгеймера: первая программа предотвращения и восстановления когнитивных функций). Если у вас есть родственник или знакомый, страдающий болезнью Альцгеймера, то описанный здесь протокол, возможно, сможет помочь.
      Читать дальше →
    • Чего бы почитать. Список русскоязычной фантастики за 2017 и 2018 год

        Обзор русскоязычной художественной литературы, за последние два года. В список попали самые лучшие работы по моему вкусу в 2017-2018 году.
        Здесь предыдущая статья, за 2010-2016 года.

        Короткий список


        Финикийский торговец Принцип неопределенности
        Авторская аннотация: Философско-приключенческий фанфик о попаданце во вселенную «Звёздных войн». История о поиске своего места в чужой и незнакомой вселенной. Учитывая дуализм этой вселенной, её мистицизм и глубокую символичность, как и извечный конфликт Орденов и сторон Силы – это наилучшие декорации для рассматриваемых вопросов. В таких случаях пишут — «осторожно философия». Также читателя ждут контрабанда, космос и всё, что с ними связанно.
        Автору удалось описать огромный высокотехнологичный мир. Мир Звездных Войн, эта — галактика с многотысячелетней историей. Практически все произведения и авторы по SW не смогли передать ощущения действительно огромного мира, ведь это серьезнейшим образом влияет на экономику, торговлю, культуру и культурные различия.
        Второй особенностью являются философия, и ее тут действительно много. Автор глубоко углубляется в темы мышления, цели и смысла жизни.

        MaxKitsch Большой Дом
        Ядреная смесь юмора и хоррора. Фанфик на Простоквашино, с использованием оккультизма. Оккультизм тут хорош, с десятками ссылок и хорошей жутью. И все это в исполнении персонажей из Простоквашино. Вышло шикарно.
        Поначалу, это отличный юмор, ты сидишь и смеешься, смеешься и тут БАМ! вместо ожидаемой смехучки, качественный хоррор. Диссонанс рвет эмоции и дает интересные ощущения.
        Читать дальше →
      • Фантастика и фентези за два с половиной года, почти сто хороших книг

        На этот пост меня подтолкнула публикация «Почему я ворую книги, бедные авторы, и как это исправить», а именно — скепсис и возражения на мой комментарий о том, что я не читаю плохие книги. Мне предложили рассказать, как я выбираю книги для чтения и что именно читаю. Ну я и повелся.
        Оформить список было сравнительно просто, FBReader любезно хранил на GoogleDrive все скачанные книги с того момента, как там появилась эта услуга. Предлагаю вашему вниманию список прочитанного мной за 2,5 года из жанров фентези и фантастики.
        Читать дальше →
      • Использование SVG путей в canvas для движения объектов

        Если для анимации объекта в canvas (и не только), нужно перемещать его по некоторому желаемому пути, возможно даже по нескольким, которые могут выбираться случайным образом или последовательно, то это можно сделать с помощью svg путей. Давайте, для начала, запустим по траектории простой но зеленый квадрат.

        image


        Для этого сделаем или позаимствуем svg, с одним или несколькими путями.

        Создадим элемент с помощью функции document.createElementNS. MDN сообщает нам, что метод имеет базовую поддержку во всех современных браузерах. Затем добавим созданному элементу путь.
        Читать дальше →
      • Расширение для хрома: создание, публикация, опыт

        В поисках новых площадок для деятельности, я обратил внимание на "виджеты" хрома, которыми пользуюсь давно, но никогда не придавал им значения. Тут же захотелось попробовать что-нибудь реализовать.

        Идеей стало создание таск-менеджера для разработчика (и не только), который был бы всегда под рукой. В нем должны были отобразиться актуальные тикеты trello и jira, реквесты в gitlab и т.п. Это те вещи, которые я обычно искал, набирая ключевые слова в адресную строку браузера, типа "jira PM-20".


        Расширение для хрома
        Читать дальше →
        • +24
        • 8,7k
        • 8
      • Безопасность в iOS приложениях

        Добрый день, Хабр! Представляю вашему вниманию перевод статьи про базовые основы безопасности конфиденциальных данных в iOS приложениях «Application Security Musts for every iOS App» автора Arlind Aliu.

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

        К счастью, в этой статье мы обсудим ошибки, которые допускают разработчики в своих приложениях, а также способы их устранения.
        Продолжение под катом.
        Читать дальше →
      • Строим систему реактивных компонентов с помощью Kotlin

        • Перевод


        Всем привет! Меня зовут Анатолий Варивончик, я Android-разработчик Badoo. Сегодня я поделюсь с вами переводом второй части статьи моего коллеги Zsolt Kocsi о реализации MVI, которую мы ежедневно используем в процессе разработки. Первая часть здесь.

        Чего мы хотим и как мы это сделаем


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

        Каждая Feature отслеживаема — есть возможность подписаться на изменения её состояния и получать уведомления об этом. При этом Feature можно подписать на источник ввода. И в этом есть смысл, ведь с включением Rx в кодовую базу у нас и так появилось множество наблюдаемых объектов и подписок на самых разных уровнях.

        Именно в связи с увеличением количества реактивных компонентов пришло время поразмышлять о том, что мы имеем и можно ли сделать систему ещё лучше.
        Читать дальше →
      • Прекратите нанимать «эффективных менеджеров». Они не только бесполезны, но и вредны

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



          Однако в цикле жизни любой компании есть период взрывного кадрового роста с поиском путей решения этой проблемы. Все вы знаете этот этап. Вот, вчерашний локальный продукт захватывает ощутимую долю рынка, аудитория кратно увеличивается и команда сталкивается с проблемами, о которых даже не подозревала. Как-то незаметно у руководителей отделов появляются «приемные часы» и согласование совещаний через почту, заметно разрастается HR-департамент, а времена, когда весь коллектив мог заказать десяток пицц по акции и устроить пятничные посиделки в офисе остались в прошлом. Владелец компании и по совместительству ее директор набирает 15-20 кило лишнего веса, все меньше появляется в коридорах и кабинетах, и все больше времени проводит в своем кабинете куда ему носит кофе личный секретарь, либо вовсе улетает на Кипр.

          Вот как раз в этот момент компанию начинают захватывать «эффективные менеджеры».
          Читать дальше →
        • Приручить зверя. С чем мы столкнулись при разработке приложения для ведения личного дневника на React Native

            В предыдущей статье я подробно рассказал о нашем опыте создания веб-сервиса/мобильного приложения для ведения личного дневника. Актуальная версия приложения (минимальная работоспособная версия уже выложена в Google Play) разрабатывается на React Native, и вот на нем мы и остановимся подробно сегодня.

            Рассказываем о собственном опыте работы с фреймворком, способах расширения функционала, «подводных камнях» (куда ж без них!) и как мы их обошли.

            О фреймворке в целом


            Немного о виновнике торжества — React Native. Он все-таки хорош!

            Для тех, кто в достаточной степени знает JavaScript и тем более NodeJS — он очень хорош. Если же есть опыт с React, ну или хотя бы есть понимание ее идеи, механизма — он просто великолепен!

            Главное, что на выходе получается действительно нативное приложение. Расширения и плагины покрывают практически 99% типовых задач. Оставшийся процент при острой необходимости можно дописать на родных языках (java, object-c) и подключить к React Native приложению.

            Но хватит про плюсы, от них толку ноль, хоть список и будет внушительным. Все плюшки и вкусности бессмысленны, если приложение не запускается, а это первое чем нас «порадовал» React Native.

            Сначала ему не понравилась версия NodeJS. Потом версия npm. Потом версия Android SDK, потом версия Android tools, потом… Писать про то, как все проблемы решились, смысла нет, ибо с того момента все вышеперечисленное ПО обновило свои версии и инструкции будут неактуальны.

            Просто знайте: узкое место React Native — среда сборки. Будьте готовы к штудированию google, чтению форумов и stackoverflow. На развертывание в итоге потратили: Ubuntu — 3 дня, Win10 — 2 дня. Как ни странно, на «винде» все оказалось проще, ну, или просто на ubuntu «шишек набили» и уже понимали, что и куда подсовывать.

            На заметку, вдруг кому пригодится: код, представленный ниже, решил все проблемы с совместимостью версий sdk у дополнений при компиляции проекта.
            Читать дальше →
          • Совмещение R и Python: зачем, когда и как?

              dva stula

              Наверное, многие из тех, кто занимается анализом данных, когда-нибудь думали о том, возможно ли использовать в работе одновременно R и Python. И если да, то зачем это может быть нужно? В каких случаях будет полезным и эффективным для проектов? Да и как вообще выбрать лучший способ совмещения языков, если гугл выдает примерно 100500 вариантов?

              Давайте попробуем разобраться в этих вопросах.
              Читать дальше →
              • +39
              • 12,1k
              • 9
            • Аспектно-ориентированное программирование, Spring AOP

                Аспектно-ориентированное программирование (АОП) — это парадигма программирования являющейся дальнейшим развитием процедурного и объектно-ориентированного программирования (ООП). Идея АОП заключается в выделении так называемой сквозной функциональности. И так все по порядку, здесь я покажу как это сделать в Java — Spring @AspectJ annotation стиле (есть еще schema-based xml стиль, функциональность аналогичная).

                Выделении сквозной функциональности


                До

                image

                и после

                image

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

                Join point


                Читать дальше →
              • Использование Retrofit 2.x в качестве REST клиента — Tutorial

                • Перевод
                • Tutorial

                1. Retrofit


                1.1. Что такое Retrofit


                Retrofit — это REST клиент для Java и Android. Он позволяет легко получить и загрузить JSON (или другие структурированные данные) через веб-сервис на основе REST. В Retrofit вы настраиваете, какой конвертер используется для сериализации данных. Обычно для JSON используется GSon, но вы можете добавлять собственные конвертеры для обработки XML или других протоколов. В Retrofit используется библиотека OkHttp для HTTP-запросов.
                Читать дальше →
              • Flutter — новый взгляд на кроссплатформенную разработку

                  В августе 2018 года Flutter стал самой запрашиваемой кроссплатформенной технологией на Stack Overflow.


                  image


                  В нашем блоге Артем Зайцев и Евгений Сатуров из студии Surf, сертифицированного агентства Google, расскажут, почему и как так получилось:


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

                  Читать дальше →
                • Application Coordinator в iOS приложениях

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

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



                    О спикере: Павел Гуров занимается разработкой iOS приложений в Avito.


                    Читать дальше →
                  • 10 интересных новостных IT сайтов, которые стоит добавить в закладки

                    • Tutorial
                    Наверняка вы все знаете о таких сайтах, как quora или stackoverflow, где можно найти много интересной и полезной информации. Сегодня же мы поговорим о тех сайтах, о которых еще не все знают, но которые точно стоит добавить в свои закладки. Сделать это можно не только ради англоязычного контента или учебных материалов, но и для того, чтобы найти для себя полезные новости и интересное чтиво.

                    А чтобы реально разобраться в тексте, советуем взять на заметку такие сайты:
                    Читать дальше →
                    • –1
                    • 17,2k
                    • 3
                  • Нужно поднимать Kubernetes кластер, но я всего лишь программист кода. Выход есть

                    • Tutorial


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

                    Ключевые слова — AWS + Terraform + kops . Если это полезно мне — возможно будет полезно кому-нибудь еще. Добро пожаловать в комментарии.
                    Читать дальше →
                  • Перевод книги Эндрю Ына «Страсть к машинному обучению» Главы 1 — 14

                    Некоторое время назад в моей ленте в фейсбуке всплыла ссылка на книгу Эндрю Ына (Andrew Ng) "Machine Learning Yearning", которую можно перевести, как "Страсть к машинному обучению" или "Жажда машинного обучения".


                    image<img src="<img src="https://habrastorage.org/webt/ds/rc/ct/dsrcctfottkedkf7o1hxbqsoamq.png" />" alt="image"/>


                    Людям, интересующимся машинным обучением или работающим в этой сфере представлять Эндрю не нужно. Для непосвященных достаточно сказать, что он является звездой мировой величины в области искусственного интеллекта. Ученый, инженер, предприниматель, один из основателей Coursera. Автор отличного курса по введению в машинное обучение и курсов, составляющих специализацию "Глубокое обучение" (Deep Learning).

                    Читать дальше →
                    • +40
                    • 23,7k
                    • 3