Как стать автором
Обновить
147
0
Андрей @coder1cv8

Пользователь

Отправить сообщение

Типы-расширения в Dart

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 1.3K

Тип-расширение (extension type) – это абстракция, которая происходит на этапе компиляции и "оборачивает" существующий тип, предоставляя для него новый, сугубо статический интерфейс. Типы-расширения являются важным компонентом статической интеграции с JavaScript (static JS interop), поскольку они позволяют легко изменять интерфейс существующего типа (что критически важно для любого вида взаимодействия) без затрат на создание реального объекта-обёртки.

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

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 0

Представляем InterSystems API Manager

Время на прочтение 7 мин
Количество просмотров 1.2K

Недавно мы выпустили InterSystems API Manager (IAM) — новый компонент InterSystems IRIS Data Platform, обеспечивающий наблюдение, контроль и управление трафиком в/из web API в рамках IT-инфраструктуры.


В этой статье я покажу как настраивать IAM и продемонстрирую некоторые из многочисленных возможностей, которые доступны вам с IAM. InterSystems API Manager позволяет вам:


  • Наблюдать за API, понимать кто использует API, какие API наиболее популярны, а какие требуют доработки.
  • Контролировать кто использует API и ограничивать использование API от простого ограничения доступа до ограничений в зависимости от запроса — у вас есть настраиваемый контроль и вы можете быстро реагировать на изменения паттернов потребления API.
  • Защищать API с помощью централизованных механизмов безопасности, таких как OAuth2.0, LDAP или Key Token Authentication.
  • Упростить работу сторонних разработчиков и предоставить им превосходный опыт работы с API, открыв специальный портал для разработчиков.
  • Масштабировать API и обеспечить минимальную задержку при ответе.

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

Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 0

Разработчик SearchFace о возможностях алгоритма

Время на прочтение 2 мин
Количество просмотров 105K
Всем привет, я один из разработчиков сервиса SearchFace и готов поговорить о нём в комментариях.



Из-за шумихи с иском ВК на второй план отошло то важное, ради чего мы запустили сервис — чтобы протестировать возможности поиска. А раз уж теперь сервис доступен широкой публике, хочется продемонстрировать всем, на что способны наши алгоритмы распознавания.
Читать дальше →
Всего голосов 204: ↑200 и ↓4 +196
Комментарии 261

Крупнейший дамп в истории: 2,7 млрд аккаунтов, из них 773 млн уникальных

Время на прочтение 3 мин
Количество просмотров 158K


Известный специалист по безопасности Трой Хант уже несколько лет поддерживает сайт Have I Been Pwned (HIBP) с миллионами записей об украденных аккаунтов. Каждый может проверить там свой email на предмет утечки. Трой Хант следит за хакерскими форумами, покупает базы данных, которые выставляют на продажу, иногда эти базы присылают ему бесплатно. Но он никогда не видел, чтобы на продажу выставляли такую огромную базу, как нынешняя Коллекция № 1 (Collection #1).

Гигантский архив содержит 2 692 818 238 записей с адресами электронной почты и паролями.
Всего голосов 91: ↑86 и ↓5 +81
Комментарии 155

Sony WH-1000XM3 — лучшие беспроводные наушники?

Время на прочтение 4 мин
Количество просмотров 81K
Этим небольшим обзором — да что там говорить, небольшим имхо — я хочу завершить небольшой цикл, предыдущая часть которого находится здесь.
Если сони такие дураки, то почему именно они выпускают лучшие на текущий момент беспроводные наушники?

У них лучший шумодав, наибольшее время автономной работы и лучший Bluetooth кодек. Ни один из конкурентов даже по одному пункту не побеждает.

Если все так просто, почему у wh-100xm3 нет достойных конкурентов?
На самом деле я уже всё сказал про «лучший в мире bluetooth кодек» в предыдущих статьях, но уважаемый Gordon01 заставил меня съездить к старому знакомому за 900 км от дома (Кирилл, привет!) и вблизи рассмотреть беспроводные наушники Sony WH-1000XM3, являющиеся, по мнению некоторых, пределом мечтаний и верхом беспроводных технологий передачи звука.

Что же оказалось?

Читать дальше →
Всего голосов 34: ↑23 и ↓11 +12
Комментарии 116

Как я слил 1000$ в продвижение игры и что из этого получилось

Время на прочтение 6 мин
Количество просмотров 60K


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

Для многих знакома ситуация, делал-делал, а кроме друзей так и никто и не увидел игру, а ведь так старался! Под катом не будет расплывчатых формулировок или предположений по продвижению. Конкретно ссылки — конкретно результат. Поехали!
Читать дальше →
Всего голосов 82: ↑81 и ↓1 +80
Комментарии 79

Знакомство с "Caché SQL Gateway" для создания федеративных систем или мультибаз

Время на прочтение 8 мин
Количество просмотров 4.5K
В сложных комплексных системах часто встаёт вопрос интеграции данных из разных источников.
Такие системы получили название интегрированных, федеративных или мультибаз.

В СУБД Caché такая интеграция осуществляется с помощью специального шлюза (Caché SQL Gateway), который использует в своей основе ODBC/JDBC соединения к внешним источникам данных. Причём под источником в данном случае можно понимать не только СУБД, так как есть JDBC/ODBC драйвера для MS Excel, DBF, текстовых файлов, графических файлов, WMI и т.д.
Читать дальше →
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 0

Реклама в Instagram руководство для начинающего

Время на прочтение 7 мин
Количество просмотров 222K
image

На данный момент в России Инстаграм как инструмент рекламы всё ещё используется довольно редко, поэтому мы в наших переодических публикациях не могли пропустить интересную статью на эту тему, надеюсь она принесёт вам пользу.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 2

Изучаем Retrofit 2

Время на прочтение 8 мин
Количество просмотров 210K


В мире Android разработки существует множество интересных библиотек, и сегодня мы рассмотрим детище компании SquareRetrofit. Что же это за зверь такой? Retrofit (согласно официальному сайту) — типобезопасный HTTP-клиент для Android и Java. Он является незаменимым инструментом для работы с API в клиент-серверных приложениях. Каких-то лет 5 назад Android-разработчикам для работы с сетью приходилось воротить горы кода с обратными вызовами, AsyncTask'ами и прочими «низкоуровневыми» вещами. И компания Square выпустила такую замечательную библиотеку — Retrofit.

В сети Интернет мне не удалось найти внятных туториалов по второй версии бибилиотеки, поэтому сегодня мы будем разбираться с ней на примере приложения, получающего посты с bash.im
Заходи, если интересно
Всего голосов 19: ↑15 и ↓4 +11
Комментарии 6

Использование Carthage для управления зависимостями

Время на прочтение 15 мин
Количество просмотров 34K


iOS разработчики это — фантастическое сообщество, которое предлагает широкий спектр доступных сторонних библиотек.

Если вы разрабатывали для этой платформы, тогда, скорее всего пользовались хотя бы одной из этих библиотек. Будь это AFNetworking, SDWebImage, SSKeychain или CocoaLumberjack, и уже должны понимать важность использования чужого кода, если вы не любите «изобретать свой велосипед».

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

CocoaPods широко используется в iOS сообществе, и даже Google использует его для распространения различных iOS SDK.

Хоть CocoaPods и потрясающее средство для управления зависимостями, есть и другие варианты. Carthage является одним из таких вариантов; это безжалостно простой менеджер зависимостей для Mac и iOS, созданный группой разработчиков из Github.

Это был первый менеджер зависимостей для работы с Swift; фактически, сам Carthage написан на Swift'e! Он использует исключительно динамические фреймворки вместо статических библиотек – это только способ распространения двоичных файлов Swift, которые поддерживаются в iOS 8 и выше.
Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 1

Android Architecture Components. Часть 1. Введение

Время на прочтение 7 мин
Количество просмотров 68K
image

На Google I/O 2017, было представлено набор библиотек под названием Android Architecture Components. В нескольких словах — это ряд вспомогательных библиотек, которые призваны помочь с такими вещами как, проектирование, тестирование и сопровождение приложений. То, что команда разработки Android начала акцентировать внимание на архитектуре не может не радовать, поскольку проблема является действительно актуальной. Ведь изначально не было предоставлено никаких требований или гайдлайнов по проектированию, и разработчику приходилось отталкиваться от своего предыдущего опыта. Что, в свою очередь, вызывало сложности в сопровождении проекта, а также сомнительные решения для специфических для ОС ситуаций. По факту это не первые шаги в этом направлении. Ранее уже Google представил репозиторий android-architecture с примерами применения разных архитектурных концептов. Надеемся, что развитие будет дальше и может на следующем Google I/O мы сможем увидеть полноценный фреймворк.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 5

ТОП-9 YouTube-каналов для изучения английского языка

Время на прочтение 3 мин
Количество просмотров 127K
Впереди пора отпусков и каникул, поэтому мы просто поделимся с вами полезными YouTube-каналами на случай, если у вас будет пара свободных минут и желание немного заняться английским.

// "Enjoy the Content" — from author with Love 
Читать дальше →
Всего голосов 49: ↑35 и ↓14 +21
Комментарии 14

Как «пробить» человека в Интернет: используем операторы Google и логику

Время на прочтение 9 мин
Количество просмотров 927K

В очередной статье нашего цикла публикаций, посвященного интернет-разведке, рассмотрим, как операторы продвинутого поиска Google (advanced search operators) позволяют быстро находить необходимую информацию о конкретном человеке.


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


Читать дальше →
Всего голосов 122: ↑105 и ↓17 +88
Комментарии 108

Интересные Sсi-Fi фильмы, которые вы (не должны были, но) могли пропустить в 2016 году

Время на прочтение 4 мин
Количество просмотров 68K
Для читателей Geektimes (а еще для своего мужа) я составила список интересных Sсi-Fi фильмов ушедшего 2016 года. Фильмы, указанные ниже, доступны в сети и имели относительно небольшой или неуспешный релиз, поэтому я предполагаю, вы пропустили, по крайней мере, некоторые из них.
Всего голосов 77: ↑47 и ↓30 +17
Комментарии 188

Android Tips and Tricks

Время на прочтение 13 мин
Количество просмотров 47K
В данном материале можно будет увидеть различные инструменты и подсказки, которые здорово облегчают жизнь Android разработчикам. Большая часть собрана напрямую от знакомых разработчиков и содержит вещи, которые должен знать каждый. Дополнения и расширения приветствуются, и если вы знаете о каком-то крутом механизме, который не был упомянут в статье, не поленитесь перейти в оригинал и открыть pull request.
Читать дальше →
Всего голосов 49: ↑49 и ↓0 +49
Комментарии 18

От регистрации до витрины: как выложить мобильное приложение в App Store и Google Play (часть 2)

Время на прочтение 9 мин
Количество просмотров 71K


В первой части нашего туториала мы зарегистрировались в обоих магазинах — App Store и Google Play. Но чтобы ваше приложение стало доступным для скачивания, необходимо совершить ещё немало действий. Давайте их рассмотрим.
Читать дальше →
Всего голосов 28: ↑23 и ↓5 +18
Комментарии 0

Создание забавных и привлекательных анимаций простыми функциями Spine (внутри тяжёлые gif)

Время на прочтение 5 мин
Количество просмотров 18K


(Прим. пер.: 1. Spine — это проприетарный кроссплатформенный пакет для создания двухмерных скелетных анимаций с поддержкой различных игровых тулкитов.
2. Осторожно, в посте есть около 38 МБ gif'ок, все они спрятаны под кат.)


Как создать плавное переключение или поворот спрайтов?


Создание плавного и естественного переключения и поворот спрайтов при работе со Spine или любым другим инструментом интерполяции анимации часто бывает трудной задачей. Оно может развалить порядок анимации и сделать окончательный результат дёргающимся или неуклюжим.

Я обычно использую следующий подход: маскирую момент поворота или переключения с помощью деформаций, например, добавляю эффект упругости к анимации в течение ключевых кадров (увеличивая и уменьшая масштаб спрайта), когда выполняется поворот ассета или переключается спрайт.
Читать дальше →
Всего голосов 28: ↑28 и ↓0 +28
Комментарии 7

Вводим текст красиво

Время на прочтение 8 мин
Количество просмотров 53K
Сырые, но важные данные вроде номеров телефонов или кредиток — это именно то, что пользователи чаще всего вводят в наших приложениях. И с этим есть огромная проблема. Перепроверять 16 цифр своего Мастеркарда или 11 цифр номера телефона — это сущий ад для любого юзера. Решать эту проблему, естественно, приходится разработчикам, от лица которых я и пишу этот пост.

Поскольку современный Андроид не предоставляет инструментов для автоматического форматирования произвольного текста, эту задачу каждый решает своими костылями силами. Сначала в наших проектах эта задача решалась по месту: возникла необходимость — напиши свой TextWatcher и форматируй как надо. Но мы быстро поняли, что так делать не стоит — количество локальных костылей и специфических багов росло экспоненциально. Кроме того, задача весьма общая, так что и решать её надо системно.

Для начала хотелось следующего:

  1. Указал маску вроде +7 (___) ___-__-__
  2. Повесил её на EditText
  3. ...
  4. PROFIT

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

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

Посмотрев на то, что получилось, мы решили, что это круто, и надо бы поделиться с сообществом. Так у нас и родилась библиотека для Android-разработки Decoro. И сейчас я покажу пару фокусов из её арсенала.
Читать дальше →
Всего голосов 45: ↑44 и ↓1 +43
Комментарии 27

Сжатие мобильной графики в формат ETC1 и открытая утилита

Время на прочтение 9 мин
Количество просмотров 17K
При развитии free-to-play мобильной игры вместе с новыми фичами регулярно добавляется и новая графика. Часть ее включается в дистрибутив, часть скачивается в ходе игры. Для возможности запуска приложения на устройствах с небольшим размером оперативной памяти разработчики применяют аппаратно сжатые текстуры.



Формат ETC1 обязателен к поддержке на всех Android-устройствах с OpenGL ES 2.0 и является хорошей отправной точкой оптимизации потребляемой оперативной памяти. По сравнению с форматами PNG, JPEG, WebP загрузка текстур ETC1 осуществляется без интенсивных расчетов обычным копированием памяти. Также улучшается производительность игры по причине меньших размеров данных текстур пересылаемых из медленной памяти в быструю.
Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Комментарии 15

Что интересного я вынес за два года разработки и продвижения мобильной игры

Время на прочтение 7 мин
Количество просмотров 32K
Привет, Хабр! Давно не виделись… С прошлой публикации — «Чему я научился на своих ошибках или как сделать вторую игру лучше» прошло уже целых 2 года! Сегодня я расскажу о том, что нового я попробовал в продвижении, монетизации приложения и конечно же о том, что из этого вышло.


Читать дальше →
Всего голосов 40: ↑38 и ↓2 +36
Комментарии 60

Информация

В рейтинге
5 059-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность