• Как переехать с BuddyBuild на GitLab CI за 4 часа



      Предыстория


      Полтора года назад команда iOS FunCorp переехала на новый сервис для простой организации CI в iOS и Android-проектах.

      До этого мы использовали CI на Bamboo, но с ним было много проблем, поэтому мы совсем отказались от него и перешли на BuddyBuild.

      Он работал настолько просто, что можно было даже не знать, что такое CI и как заливать приложение в AppStore, а спокойно заниматься кодом, тестами и продуктовой разработкой.
      Но времена поменялись, и BuddуBuild уже не тот, поэтому мы начали поиск альтернативы.
      В этой статье мы расскажем о новом решении, которое выбрала наша команда, и дадим несколько скриптов для организации CI собственными силами.
      Читать дальше →
      • +23
      • 2,9k
      • 6
    • Меловой леттеринг для «чайников» на примере работы над арт-объектом

        Это история личного опыта одного UX-дизайнера, который полюбил леттеринг ещё нечётко зная, что это такое.

        Я расскажу о том, что такое леттеринг в современном дизайне на примере своей работы над арт-объектом; о трудностях, с которыми я столкнулась и как их решила; о грифельной краске и меловых маркерах. А ещё почему это «хорошо для бизнеса». И будет немного мотивации для дизайнеров, которые хотели бы встать со стула, но не знают как.


        Читать дальше →
      • Magic Leap выпустили SDK. Посмотрим, что внутри?

          Magic Leap — стартап, занимающийся устройствами дополненной реальности. Компания привлекла уже 1,4 миллиарда долларов инвестиций от внушительных инвесторов, среди которых Qualcomm, Google и Alibaba Group. В 2016 году Forbes оценил Magic Leap в 4,5 миллиарда долларов. При этом публике до этого момента Magic Leap показывали только рендеры.


          Читать дальше →
          • +30
          • 6,5k
          • 4
        • Установка Facebook image recognition package. Все грабли в одном месте

            Недавно Facebook выпустила свой open-source-проект по распознаванию образов. Конечно же, его сразу захотелось пощупать, посмотреть, как он работает и что с его помощью можно получить. Мы решили разобраться с его установкой и опытным путём проверить, так ли легко его использовать, как об этом пишут в инструкции разработчики.


            Этот проект не самый простой, поэтому возникает вопрос, зачем он нужен, если есть готовые фреймворки типа Keras, TensorFlow и Caffe, где, как говорится, «сел и поехал»? А ответ прост: нужен гибкий инструмент с возможностью расширения, с которым подружится Python. Научились мы отличать кита от чайки, но что нам это даст? IFunny серьёзно делает весёлое приложение и хочет удивлять пользователей новыми фичами, так почему бы не изучить такое богатое направление и применить?


            Прочитав этот разбор, вы станете на шаг ближе к просветлению. Готовы? Тогда хватайте ручку, бумагу и приступаем!


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

            Читать дальше →
          • ComputerVision и с чем его едят

              imageС развитием компьютерных мощностей и появлением множества технологий обработки изображений всё чаще стал возникать вопрос: а можно ли научить машину видеть и распознавать образы? Например, отличать кошку от собаки или даже бладхаунда от бассета? О точности распознавания говорить не приходится: наш мозг несравнимо быстрее может понять, что перед нами, при условии, что раньше мы получили достаточно сведений об объекте. Т.е. даже видя только часть собаки, мы можем с уверенностью сказать, что это собака. А если ты — собаковод, то легко определишь и породу собаки. Но как научить машину различать их? Какие существуют алгоритмы? А можно ли обмануть машину? (Спойлер: конечно можно! Точно так же, как и наш мозг.) Попробуем осмыслить все эти вопросы и по возможности ответить на них. Итак, приступим.
              Читать дальше →
              • +24
              • 5,6k
              • 1
            • Можно ли научить искусственный интеллект шутить?

                imageВ последнее время машины одержали ряд убедительных побед над людьми: они уже лучше играют в го, шахматы и даже в Dota 2. Алгоритмы сочиняют музыку и пишут стихи. Учёные и предприниматели всего мира дают прогнозы по поводу будущего, в котором искусственный интеллект сильно превзойдёт человека. С большой вероятностью через несколько десятков лет мы будем жить в мире, в котором роботы не только водят автомобили и работают на заводах, но и развлекают нас. Одна из важных составляющих нашей жизни — юмор. Принято считать, что только человек может придумывать шутки. Несмотря на это, многие ученые, инженеры и даже простые обыватели задаются вопросом: можно ли научить компьютер шутить?

                Компания Gentleminds, разработчик систем машинного обучения и компьютерного зрения, совместно с FunCorp попробовали создать генератор весёлых подписей к картинкам, используя базу мемов iFunny. Поскольку приложение англоязычное и используется преимущественно в США, подписи будут на английском. Подробности под катом.
                Читать дальше →
              • Люди не хотят чего-то действительно нового — они хотят привычное, но сделанное иначе

                • Перевод

                От переводчика: это довольно старая статья 2015 года, однако, на мой скромный вкус, она по-прежнему актуальна, как и многие другие материалы от Нира Эяля.
                Если ваш новый продукт или сервис не набирает популярность, спросите себя: как найти мой ролл «Калифорния»?
                Должен признать, что бенто-ланч едва ли является источником серьёзных бизнес-уроков. Однако, давайте взглянем на ролл «Калифорния» — понимание влияния этого знакового блюда японской кухни может помочь привести ваш продукт к успеху и избежать провала.
                Читать дальше →
              • Java и Project Reactor

                • Tutorial


                Всем привет! Меня зовут Лёха, и я работаю бэкенд-разработчиком в FunCorp. Сегодня мы поговорим про реактивное программирование, библиотеку Reactor и немного про веб.


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

                Читать дальше →
              • Создание анимаций переходов между Activity в Android

                  Начиная с Android 4.4 в арсенале разработчиков появился дополнительный инструмент для создания анимаций — Transitions Framework. Изначально он предназначался для создания анимаций изменения состояния приложения путём манипулирования несколькими View. С выходом Android 5.0 набор доступных для использования анимаций был расширен, чтобы соответствовать представленной тогда же концепции Material Design.

                  Transitions Framework позволяет быстро и безболезненно создавать различные анимации. Поэтому в процессе работы над iFunny было невозможно пройти мимо этого инструментария. Вниманию читателей предлагается частный случай использования Transitions API — создание анимации перехода между Activity с эффектом «бесшовности».

                  image
                  Читать дальше →
                • Тренируемся на кошках: модификация коллекций и таблиц в iOS

                    image Для визуализации массивов произвольных данных Apple дала нам таблицы UITableView для одномерных визуализаций и коллекции UICollectionView для более сложных случаев. Например, в iFunny ежедневно десятки тысяч пользователей публикуют и рассылают «мемасики». Приложение постоянно работает с различными списками: мемы, пользователи, тэги, переписки и т.д.

                    Задача отображения какого-либо списка весьма распространённая, и это довольно легко программируется. Однако всё существенно усложняется, если этот список динамически меняется. Неожиданно поймать NSInternalInconsistencyException после очередного обновления содержимого таблицы или коллекции — удовольствие сомнительное. Давайте разберёмся, как этого избежать.
                    Читать дальше →
                  Самое читаемое