Pull to refresh
27
0
Антон @cramen

User

Send message

Поиск кропнутых дубликатов изображений с помощью перцептуальных хешей

Reading time 6 min
Views 70K
В этой статье пойдет речь о том, как решалась небольшая задачка поиска дубликатов по фрагменту или кропу картинки.



Читать дальше →
Total votes 129: ↑118 and ↓11 +107
Comments 39

Swift и TensorFlow

Reading time 8 min
Views 13K
Я не люблю читать статьи, сразу иду на 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. На мой взгляд очень нагромождено и сложно.
Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Comments 8

Делаем сервис по распознаванию изображений с помощью TensorFlow Serving

Reading time 12 min
Views 33K

image

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


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

Читать дальше →
Total votes 38: ↑38 and ↓0 +38
Comments 3

33 iOS библиотеки с открытым исходным кодом, которые будут популярны в 2017 году

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


Читать дальше →
Total votes 32: ↑27 and ↓5 +22
Comments 15

Оптимизация OS X для продления жизни SSD

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


Хоть компания OCZ и предоставляет пятилетнюю гарантию на SSD серии Vector и Vertex, вы в состоянии увеличить срок службы самостоятельно. И без сторонних утилит – только с помощью «Терминала» и других стандартных инструментов OS X.
Читать дальше →
Total votes 56: ↑29 and ↓27 +2
Comments 15

SSD Guru — новая утилита от OCZ для мониторинга и настройки твердотельных накопителей

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


Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Comments 15

Утилиты для контроля состояния SSD-дисков на Mac

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

Если вы установите Vector или другой твердотельный накопитель от OCZ вместо HDD (или совместно с ним) на Mac, сделать это можно будет довольно просто – производитель предлагает собственную утилиту SSD Guru, которая позволяет поддерживать диски в надлежащем состоянии (о ней мы уже подробно писали в блоге). Однако и сторонние разработчики не спят – многие давно выпустили на рынок собственные решения, заслуживающие пристального внимания. О них мы и поговорим.
Читать дальше →
Total votes 28: ↑26 and ↓2 +24
Comments 11

«Что нового в Swift 2?» на примерах

Reading time 16 min
Views 37K


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

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

Я буду рассматривать новые возможности Swift 2, сопровождая их примерами, код которых находится на Github.
Читать дальше →
Total votes 30: ↑27 and ↓3 +24
Comments 36

Как посчитать всё на свете одним SQL-запросом. Оконные функции PostgreSQL

Reading time 5 min
Views 555K

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


Читать дальше →
Total votes 75: ↑73 and ↓2 +71
Comments 54

Осенняя встреча Rambler.iOS

Reading time 2 min
Views 6.8K
image

Пришла осень, астрологи предсказали пору повышенной активности мобильных разработчиков — и 24 сентября мы готовы провести новую встречу Rambler.iOS, официально под номером четыре.
Читать дальше →
Total votes 16: ↑13 and ↓3 +10
Comments 2

Записки iOS программиста о его молотках, кувалдах и микрометрах

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

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


Читать дальше →
Total votes 27: ↑26 and ↓1 +25
Comments 13

Делаем свою работу в Xcode чуточку эффективнее

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

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

Заинтересованных прошу под кат
Читать дальше →
Total votes 23: ↑18 and ↓5 +13
Comments 32

11 крутых сайтов для iOS разработчиков

Reading time 3 min
Views 41K


Чтобы оставаться профессионалом в разработке iOS приложений, нужно постоянно учиться у других и узнавать о новейших инструментах и приемах. Кроме сайта Apple с документацией, существуют несколько ресурсов с ценными статьями и уроками, которые помогут нам стабильно развиваться. О них и пойдет речь в этой статье.
Читать дальше →
Total votes 30: ↑21 and ↓9 +12
Comments 9

Xcode: управляем зависимостями собственных библиотек в проектах. Cocoapods advanced

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

Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 5

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 1 из 6

Reading time 7 min
Views 398K

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



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






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




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


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

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



Внимание, это обучающий материал, который в целом повторит структуру библиотеки OpenGL. Это будет софтверный рендер, я не ставлю целью показать, как писать приложения под OpenGL. Я ставлю целью показать, как сам OpenGL устроен. По моему глубокому убеждению, без понимания этого написание эффективных приложений с использованием 3D библиотек невозможно.
Читать дальше →
Total votes 198: ↑196 and ↓2 +194
Comments 120

14 вопросов об индексах в SQL Server, которые вы стеснялись задать

Reading time 26 min
Views 1.1M
Индексы — это первое, что необходимо хорошо понимать в работе SQL Server, но странным образом базовые вопросы не слишком часто задаются на форумах и получают не так уж много ответов.
Роб Шелдон отвечает на эти, вызывающие смущение в профессиональных кругах, вопросы об индексах в SQL Server: одни из них мы просто стесняемся задать, а прежде чем задать другие сначала подумаем дважды.


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

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

Перейти к чтению
Total votes 40: ↑37 and ↓3 +34
Comments 44

Изучаем WatchKit — создаем первое приложение для Apple Watch

Reading time 4 min
Views 26K
Буквально пару дней назад Apple выпустила Xcode 6.2 с поддержкой iOS 8.2 beta и WatchKit.
Данный фреймворк предназначен для взаимодействия с Apple Watch и разработки приложений для них.
Впрочем, все не так просто.
Читать дальше →
Total votes 40: ↑33 and ↓7 +26
Comments 13

SpeechMarkup API — превращаем речь в данные

Reading time 8 min
Views 18K

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

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

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

Читать дальше →
Total votes 31: ↑28 and ↓3 +25
Comments 49

Overclock мозга или Внутренняя виртуализация сознания

Reading time 29 min
Views 455K


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

Что бы не было лишних криков в комментах, попрошу всех кто ярых сторонников любой религии и конфессии, а так же убежденных эзотериков сразу поставить минус в карму и не читать дальше. Здесь не будет философии и великих вселенских тайн. А остальных прошу под кат — попробую рассказать о своей практике разгона мозга с помощью встроенных функций.
ночь как полигон для...
Total votes 224: ↑172 and ↓52 +120
Comments 292

Быстрое возведение чисел от 1 до 100 в квадрат

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


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

Для того, чтобы бездумно не возводить в квадрат по формуле все числа, нужно максимально упростить себе задачу следующими правилами.
Читать дальше →
Total votes 118: ↑83 and ↓35 +48
Comments 38

Information

Rating
Does not participate
Date of birth
Registered
Activity