• Swift и TensorFlow

      Я не люблю читать статьи, сразу иду на GitHub

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


      Рассказывать о том, что такое машинное обучение и искусственный интеллект, в 2017 году наверное нет необходимости. На эту тему уже написано большое количество как публицистических статей, так и серьезных научных работ. Поэтому предполагается, что читатель уже знает, что это такое. Говоря о машинном обучении, сообщество data scientist и software engineers, как правило подразумевает глубокие нейронные сети, которые приобрели большую популярность по причине своей производительности. На сегодняшний день в мире существует большое количество различных программных решений и комплексов для решения задачи искусственных нейронных сетей: Caffe, TensorFlow, Torch, Theano(rip), cuDNN etc.

      Swift


      Swift — инновационный, protocol — oriented, open source язык программирования, выращенный в стенах компании Apple Крисом Латнером (недавно покинувшим компанию Apple, после SpaceX и обосновавшимся в Google).
      В Apple’s OSs уже были различные библиотеки для работы с матрицами и векторной алгеброй: BLAS, BNNS, DSP, впоследствии объединенные под крышей одной библиотеки Accelerate.
      В 2015 появились небольшие решения для реализации математики на основе графической технологии Metal.
      В 2016 появился CoreML:
      image
      CoreML способен импортировать готовую, натренированную модель (CaffeV1, Keras, scikit-learn) и далее предоставить разработчику возможность экспортировать ее в приложение.
      То есть, вам необходимо: Собрать модель на другой платформе, на языке Python или C++, используя сторонние фреймворки. Далее обучить ее на стороннем аппаратном решении.
      И только после этого вы можете импортировать и работать на языке Swift. На мой взгляд очень нагромождено и сложно.
      Читать дальше →
      • +10
      • 10.6k
      • 7
    • Делаем сервис по распознаванию изображений с помощью TensorFlow Serving

      • Tutorial

      image

      Всегда наступает то самое время, когда обученную модель нужно выпускать в production. Для этого часто приходится писать велосипеды в виде оберток библиотек машинного обучения. Но если Ваша модель реализована на Tensorflow, то у меня для Вас хорошая новость — велосипед писать не придется, т.к. можно использовать Tensorflow Serving.


      В данной статье мы рассмотрим как использовать Tensorflow Serving для быстрого создания производительного сервиса по распознаванию изображений.

      Читать дальше →
      • +38
      • 29.7k
      • 3
    • 33 iOS библиотеки с открытым исходным кодом, которые будут популярны в 2017 году

      • Translation
      Отличного пятничного настроения, друзья!
      Сегодня мы приготовили для вас полезный перевод поста основателя Ecler Studios Paweł Białecki, в котором он предлагает нашему вниманию 33 open source проекта для iOS разработчиков.
      С помощью своего аккаунта в GitHub он открыл для себя множество перспективных инструментов и отобрал, по его мнению, лучшие из них для своих читателей.


      Читать дальше →
    • Оптимизация OS X для продления жизни SSD

        Привет, Geektimes! Если вы купили SSD и заинтересованы в том, чтобы твердотельный накопитель прослужил как можно дольше, то добро пожаловать под кат.


        Хоть компания OCZ и предоставляет пятилетнюю гарантию на SSD серии Vector и Vertex, вы в состоянии увеличить срок службы самостоятельно. И без сторонних утилит – только с помощью «Терминала» и других стандартных инструментов OS X.
        Читать дальше →
      • SSD Guru — новая утилита от OCZ для мониторинга и настройки твердотельных накопителей

          Привет, Гиктаймс! В посте про новый SSD OCZ Vector 180 я упомянул о новом программном обеспечении для твердотельных накопителей производства этой компании. А поскольку OCZ SSD Guru будет работать с линейками SSD-дисков, которые были выпущены на контроллерах Barefoot 3, думаю, есть смысл подробно рассмотреть его возможности. Под катом – скриншоты и комментарии.


          Читать дальше →
        • Утилиты для контроля состояния SSD-дисков на Mac

            image Привет, Geektimes! Описывать преимущества SSD или твердотельного накопителя над HDD нет смысла – кто ценит быстрый запуск операционной системы, отсутствие шума и низкое энергопотребление, наверняка уже успел обзавестись таким диском. Но на этом приключения с SSD не заканчиваются: подобно автомобилю или даже смартфону данный накопитель требует бережного обращения и ухода. Поэтому периодически за ним нужно следить.

            Если вы установите Vector или другой твердотельный накопитель от OCZ вместо HDD (или совместно с ним) на Mac, сделать это можно будет довольно просто – производитель предлагает собственную утилиту SSD Guru, которая позволяет поддерживать диски в надлежащем состоянии (о ней мы уже подробно писали в блоге). Однако и сторонние разработчики не спят – многие давно выпустили на рынок собственные решения, заслуживающие пристального внимания. О них мы и поговорим.
            Читать дальше →
          • «Что нового в Swift 2?» на примерах

            • Tutorial


            Swift 2 сфокусировался на улучшении самого языка, взаимодействия с Objective-C и повышении производительности компилируемых приложений. Новые возможности Swift 2 представлены в 6 различных областях:

            • фундаментальные конструкции языка, такие, как enum , scoping (область действия), синтаксис аргументов и т.д.
            • сопоставление с образцом (pattern matching)
            • проверка доступности (availability checking)
            • расширения (extensions) протокола
            • управление ошибками (error handling)
            • взаимодействие с Objective-C

            Я буду рассматривать новые возможности Swift 2, сопровождая их примерами, код которых находится на Github.
            Читать дальше →
          • Как посчитать всё на свете одним SQL-запросом. Оконные функции PostgreSQL


              Я с удивлением обнаружил, что многие разработчики, даже давно использующие postgresql, не понимают оконные функции, считая их какой-то особой магией для избранных. Ну или в лучшем случае «копипастят» со StackOverflow выражения типа «row_number() OVER ()», не вдаваясь в детали. А ведь оконные функции — полезнейший функционал PostgreSQL.
              Попробую по-простому объяснить, как можно их использовать.


              Читать дальше →
            • Осенняя встреча Rambler.iOS

                image

                Пришла осень, астрологи предсказали пору повышенной активности мобильных разработчиков — и 24 сентября мы готовы провести новую встречу Rambler.iOS, официально под номером четыре.
                Читать дальше →
                • +10
                • 6.6k
                • 2
              • Записки iOS программиста о его молотках, кувалдах и микрометрах

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

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


                  Читать дальше →
                • Делаем свою работу в Xcode чуточку эффективнее

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

                    Интеграции :)

                    Заинтересованных прошу под кат
                    Читать дальше →
                  • 11 крутых сайтов для iOS разработчиков

                    • Translation


                    Чтобы оставаться профессионалом в разработке iOS приложений, нужно постоянно учиться у других и узнавать о новейших инструментах и приемах. Кроме сайта Apple с документацией, существуют несколько ресурсов с ценными статьями и уроками, которые помогут нам стабильно развиваться. О них и пойдет речь в этой статье.
                    Читать дальше →
                    • +12
                    • 39.1k
                    • 9
                  • Xcode: управляем зависимостями собственных библиотек в проектах. Cocoapods advanced

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

                      Читать дальше →
                      • +18
                      • 18.7k
                      • 5
                    • Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 1 из 6

                      Содержание курса



                      Улучшение кода






                      Official translation (with a bit of polishing) is available here.




                      Постановка задачи


                      Цель этого цикла статей — показать, как работает OpenGL, написав его (сильно упрощённый!) клон самостоятельно. На удивление часто сталкиваюсь с людьми, которые не могут преодолеть первоначальный барьер обучения OpenGL/DirectX. Таким образом, я подготовил краткий цикл из шести лекций, после которого мои студенты выдают неплохие рендеры.

                      Итак, задача ставится следующим образом: не используя никаких сторонних библиотек (особенно графических) получить примерно такие картинки:



                      Внимание, это обучающий материал, который в целом повторит структуру библиотеки OpenGL. Это будет софтверный рендер, я не ставлю целью показать, как писать приложения под OpenGL. Я ставлю целью показать, как сам OpenGL устроен. По моему глубокому убеждению, без понимания этого написание эффективных приложений с использованием 3D библиотек невозможно.
                      Читать дальше →
                    • 14 вопросов об индексах в SQL Server, которые вы стеснялись задать

                      • Translation
                      • Tutorial
                      Индексы — это первое, что необходимо хорошо понимать в работе SQL Server, но странным образом базовые вопросы не слишком часто задаются на форумах и получают не так уж много ответов.
                      Роб Шелдон отвечает на эти, вызывающие смущение в профессиональных кругах, вопросы об индексах в SQL Server: одни из них мы просто стесняемся задать, а прежде чем задать другие сначала подумаем дважды.


                      От переводчика
                      Данный пост является компиляцией двух статей Роба Шелдона:

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

                      Перейти к чтению
                    • Изучаем WatchKit — создаем первое приложение для Apple Watch

                      Буквально пару дней назад Apple выпустила Xcode 6.2 с поддержкой iOS 8.2 beta и WatchKit.
                      Данный фреймворк предназначен для взаимодействия с Apple Watch и разработки приложений для них.
                      Впрочем, все не так просто.
                      Читать дальше →
                    • SpeechMarkup API — превращаем речь в данные


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

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

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

                        Читать дальше →
                      • Overclock мозга или Внутренняя виртуализация сознания

                        • Tutorial


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

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

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


                        *квадраты до сотни

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