Pull to refresh
0
@taginvnread⁠-⁠only

User

Send message

Использование UIViewPropertyAnimator для создание пользовательских анимаций

Reading time11 min
Views17K
Создание анимаций это здорово. Они являются важной частью iOS Human Interface Guidelines. Анимации помогают привлечь внимание пользователя к важным вещам или попросту делают приложение не таким скучным.

Существует несколько способов реализовать анимацию в iOS. Вероятно, самым популярным способом является использование UIView.animate(withDuration: animations:). Вы можете анимировать слой изображения с помощью CABasicAnimation. Кроме того, UIKit позволяет настроить кастомную анимацию для отображения контроллера с помощью UIViewControllerTransitioningDelegate.

В этой статье я хочу обсудить еще один захватывающий способ анимирования вьюшек — UIViewPropertyAnimator. Данный класс предоставляет гораздо больше функций управления, чем его предшественник UIView.animate. С его помощью можно создавать временные, интерактивные и прерываемые анимации. Кроме того, имеется возможность быстрой смены аниматора.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments1

Инфраструктура сборки проекта с docker

Reading time6 min
Views26K

На Хабре уже есть материалы про то, как настроить docker-контейнер для компиляции проекта. Например, Использование Docker для сборки и запуска проекта на C++. В этой статье, как и в предыдущей будет рассмотрен вопрос сборки проекта, но здесь я бы хотел выйти за рамки туториала и рассмотреть глубже вопросы использования контейнеров в таких задачах, а так же построения инфраструктуры сборки с docker.

Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments12

Какие бывают электровелосипеды (групповой обзор в двух частях пяти моделей двух производителей), часть 1

Reading time12 min
Views24K
Наиболее популярные сейчас виды личного электротранспорта – электросамокаты и электровелосипеды.

Преимущество электросамокатов – компактность, но у них есть и одно очень жесткое ограничение: согласно правилам дорожного движения (ПДД) они приравниваются к пешеходам и имеют право ездить только по тротуарам.

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

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


Читать дальше →
Total votes 28: ↑13 and ↓15-2
Comments88

5 распространенных ошибок начинающих программистов на Python

Reading time4 min
Views49K
В первые дни работы программистом на Python все мы сталкиваемся с разными типами багов в нашем коде, которые после нескольких болезненных часов в StackOverflow оказываются не багом, а фичей Python'а. Ниже приведены 5 самых распространенных ошибок, которые делают большинство начинающих программистов на Python. Давайте немного о них узнаем, чтобы сэкономить несколько часов, задавая вопросы на страницах и в группах в Facebook.
Читать дальше →
Total votes 56: ↑42 and ↓14+28
Comments69

MotionLayout: анимации лучше, кода — меньше

Reading time10 min
Views34K

Google продолжает улучшать нашу жизнь, выпуская новые удобные библиотеки и API. Среди которых оказался и новый MotionLayout. Учитывая обилие анимаций в наших приложениях, мой коллега Cedric Holtz сразу же реализовал важнейшую анимацию нашего приложения — голосование в знакомствах — с использованием нового API, сэкономив при этом огромное количество кода. Делюсь переводом его статьи. 

Недавно закончилась конференция Google I/O 2019, на которой анонсировали обновления и самые свежие улучшения нашего любимого SDK. Лично мне особенно интересна была презентация Николаса Роарда и Джона Хофорда о будущей функциональности ConstraintLayout. А точнее, о его расширении в виде MotionLayout. 

После выпуска бета-версии мне захотелось реализовать анимацию знакомств на основе этой библиотеки.
Читать дальше →
Total votes 37: ↑32 and ↓5+27
Comments6

Дешёвые и дорогие батарейки ААА

Reading time3 min
Views345K
Реклама добилась своего: большинство покупателей уверены, что батарейки Duracell и Energizer значительно лучше других. Чтобы проверить, так ли это, я протестировал 20 видов щелочных (alkaline) батареек AAA — от самых дешёвых до самых дорогих.


Читать дальше →
Total votes 369: ↑363 and ↓6+357
Comments388

«Умное» видеонаблюдение: какой будет жизнь под камерами с искусственным интеллектом

Reading time11 min
Views24K


Камеры наблюдают за нами почти беспрерывно, но толку в этом мало. Если человек не анализирует картинку, камера остаётся просто прибором, производящим терабайты часов малопригодного стрима. Альтернатива — снабдить камеру ИИ-инструментами. И вот такая система видеонаблюдения способна будет заменить спящего перед монитором охранника, в офисе — босса и в супермаркете — маркетолога. Рассказываем, как именно.
Total votes 16: ↑11 and ↓5+6
Comments30

Создание React-ивного хука usePosition() для получения и отслеживания координат браузера

Reading time4 min
Views11K

image


Если вкратце


В этой статье мы создадим React-ивный хук usePosition() для отслеживания геолокации браузера. Под капотом этот хук будет использовать методы getCurrentPosition() и watchPosition() нативного браузерного объекта navigator.geolocation. Финальную версию хука я опубликовал на GitHub и NPM.


Зачем создавать хук usePosition() в принципе


Одно из важных преимуществ хуков в React-е — это возможность изолировать логически связанные фрагменты кода в одном месте (в хуке), избежав при этом необходимости смешивания логически не связанных фрагментов кода, например, в методе компонента componentDidMount().


Предположим, мы хотим получить координаты браузера (latitude и longitude) и после получения координат запросить прогноз погоды или текущую температуру в этом регионе со стороннего сервиса. Код этих двух функциональностей (получения координат и запроса температуры) в React-е часто размещают внутри одного метода componentDidMount(). При этом в методе componentWillUnmount() обычно "убирают" за собой, вызывая метод clearWatch() для прекращения слежки за локацией браузера. Подобный подход увеличивает размер методов, разбивает логически связанные участки кода на части (отдельно подписка и отписка от слежки за локацией браузера) и объединяет логически слабо связанные части кода в один метод (получение координат и температуры). Чтение кода затрудняется, так же как и его отладка и поддержка.


Далее мы попробуем вынести функциональность, связанную с получением координат браузера, в отдельный хук usePosition(), чтобы избежать перечисленные выше трудности.

Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments1

Запускаем OpenVPN в Докере за 2 секунды

Reading time3 min
Views73K
Привет, хабровчане! Сталкивались ли вы когда-либо с ситуацией, когда очень хотелось бы виртуально перенестись в другой город, страну или на другой континент? У меня такая необходимость возникает достаточно часто, поэтому возможность иметь свой VPN сервер, который можно запустить где угодно, за пару секунд, стоял достаточно остро.

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


Total votes 40: ↑31 and ↓9+22
Comments55

Проекции карт: о чём на самом деле шутит xkcd

Reading time12 min
Views45K
Xkcd — один из самых культовых веб-комиксов, и минималистичный стиль зарисовок будто из учебника механики стал его визитной карточкой. Автор комикса Рэндел Манро признавался, что старательно ищет вдохновение для новых выпусков: он пробует новые программы и игры, работает над математическими задачами, следит за новостями науки и технологий. Если бы он этого не делал, то комикс рассказывал бы о том, как художник сидит дома за компьютером.

Иногда выпуск комикса xkcd — это поверхностная шутка в узкой области знаний. Понять такой юмор сможет специалист или хотя бы слабо знакомый с затрагиваемой областью, а остальные будут лишь недоумевать. Пример такого выпуска — xkcd.com/977 Map Projections 2011 года. Для полного понимания выпуска нужно лишь примерно представлять историю и функцию различных проекций карт мира, иначе комикс останется чёрно-белым рисунком.



Даже внешне однозначные вопросы имеют несколько решений. Форма Земли — это похожий на шар геоид, но для удобства восприятия его лучше развернуть на плоскую карту. Сделать это можно несколькими способами. Каждый из них будет выполнен с различными компромиссами, поскольку искажения формы, углов или длин неизбежны. Какие-то проекции дают больше искажений, другие легче воспринимать, к каким-то мы просто привыкли.

Не все мы смотрим на карту для навигации в открытом море. Часто выбор метода преобразования формы Земли — это не вопрос жизни и смерти, это художественная иллюстрация. В этих случаях проекцию выбирают из устоявшихся вкусов и предпочтений — точно так же, как выбирают одежду или автомобиль. Можно смешно шутить про моду на дорогие кроссовки среди директоров крупных компаний Кремниевой долины или про популярность заниженных автомобилей. Точно так же шуткам поддаются предпочтения картографической проекции, как это и было сделано в Map Projections.
Total votes 137: ↑136 and ↓1+135
Comments107

Lazydocker — GUI для Docker прямо в терминале

Reading time3 min
Views33K


Два года назад мы уже делали обзор GUI-интерфейсов для работы с Docker, однако мир любителей подобных решений не стоит на месте. На днях до версии 0.2 обновился, а вместе с тем и получил широкую огласку, молодой проект lazydocker, позиционирующий себя как «более ленивый путь управлять всем в Docker». Утилита стремительно набирает популярность — ещё вчера количество его GitHub stars не достигало 3000, а уже сегодня перевалило за 4000.
Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments16

Интернет для дачника. Часть 4. Достаточно одной SIM-карты

Reading time6 min
Views16K
Тема дачного мобильного Интернета не отпускает меня и я решил продолжить тесты. В прошлый раз я протестировал российский промышленный роутер, а на этот раз я сравню готовые изделия, в которые достаточно вставить sim-карту и смонтировать на стойке, чтобы получить вполне приличный Интернет. Испытуемыми будут уличные роутеры Zyxel LTE7460 и Microdrive NR-410. Вперед, к стабильному и быстрому интернету в своем доме!


Total votes 11: ↑11 and ↓0+11
Comments6

Энергия, тепло и вода: часть вторая

Reading time6 min
Views6.5K
Рассмотрим следующий этап развития схемы умного дома из подручных средств :) (продолжение, первая статья тут).

Решаемые задачи:


  1. Защита от протечек

    + Удалённое управление
    + Знать состояние ввода воды (перекрыто или открыто)
  2. Знать давление и температуру теплоносителя в контуре отопления
  3. Знать давление в системе водоснабжения

Мониторинг по-прежнему в едином интерфейсе отображения (Zabbix), оповещение — через единый механизм alert-инга. А вот управление — это что-то новое. Об этом — далее.

1. Защита от протечек


Да это же избитая тема, девайсов — пруд пруди! Всё работает из коробки!

Так я было и подумал и снова ошибся. Готовых решений действительно много, но найти комплексное решение с возможностью удалённого управления и мониторинга, но при этом не используя чьё-то «облако»/чей-то личный кабинет, — оказалось почти невыполнимой задачей. Ну ок, снова колхозим, попробуем решить задачу без паяльника и коддинга.

Итого, мне нужны:

  1. шаровый кран с электроприводом
  2. датчик протечек
  3. некий контроллер с интерфейсом мониторинга и управления
  4. силовое реле
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments9

Инженер Amazon создал блокирующее устройство с ИИ, которое не пускает в дом кота с уличной добычей

Reading time2 min
Views36K

Инженер Amazon Бен Хэмм разработал умный блокиратор, который не дает его коту по кличке Метрик приносить внутрь дома пойманных охотничьими лапками и зубками и по факту уже мертвых птиц и крыс.
Читать дальше →
Total votes 84: ↑81 and ↓3+78
Comments171

Тепловизор Seek Thermal Compact

Reading time5 min
Views22K
Добавляю отзыв о моем маленьком помощнике — мобильном тепловизоре-приставке Seek Thermal Compact. Тепловизор для смартфонов и планшетов поможет обнаружить и устранить утечки тепла или холода, заметить проблемы с электропроводкой, увидеть места локального нагрева или перегрева техники, найти добычу на охоте и так далее. Seek Thermal удалось создать недорогое и доступное компактное устройство, которое подключается к смартфону или планшету, и обладает полным функционалом «взрослых» профессиональных моделей.


Total votes 33: ↑24 and ↓9+15
Comments19

Грязный обзор электровелосипеда Twitter VS7.0-ER

Reading time10 min
Views16K
Внутренний перфекционист автора предыдущих обзоров не разрешал фотографировать «пыльные» велосипеды, из-за чего могло создаться впечатление, что на них никто не ездил и обзор написан «по картинкам из интернета». Нет-нет-нет и ещё раз нет: на всём катаемся, «и в хвост и в гриву» — по асфальту и песку, в жару и дождь, с пылью и падениями — только так можно «прочувствовать» железяку и сформировать о ней впечатление. 



Сегодня будет грязный обзор одного из самых доступных электровелосипедов компании Twitter (нет, не той самой) — VS7.0-ER (не пытайтесь сразу запомнить название модели). Let’s enjoy!
Читать дальше →
Total votes 38: ↑32 and ↓6+26
Comments140

Sublime Text 3 для верстки сайтов. Настройка внешнего вида и установка плагинов. Руководство для начинающих

Reading time8 min
Views215K
Сегодня расскажу о редакторе кода, которым пользуюсь для верстки сайтов уже много лет. Быстрый, удобный и полностью настраиваемый Sublime Text 3.



Мы с нуля настроем его внешний вид, а также применим плагины AutoFileName, BracketHighliter, ColorHighliter, Emmet, GotoCSSDeclaration и Tag, которые существенно помогут нам при верстке сайтов! Ну что ж, от слов к делу!
Total votes 29: ↑18 and ↓11+7
Comments28

Выбираем бюджетный карманный осциллограф

Reading time7 min
Views98K
Приветствую!

Добавляю небольшую статью на тему выбора домашнего компактного осциллографа начального уровня для работы и хобби.

Почему речь пойдет про карманные и компактные — потому что это самые бюджетные варианты. Настольные осциллографы – это более громоздкие, функциональные устройства, и, как правило, достаточно дорогие модели ($200-400 и дороже) на 4 канала со множеством функций.
А вот компактные модели на 1 канал для простых измерений и оценки формы сигнала можно приобрести буквально за $20...$40.


Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments66

Looper — Плагин для Sketch

Reading time2 min
Views3.5K
Looper генерирует паттерны. С помощью Looper я делаю фоны. Паттерн генерируется многократным дублированием заготовки с изменениями от копии к копии. Заготовкой может любая фигура или их комбинация.



Гляньте короткое видео, как работает с плагин.
Читать дальше →
Total votes 22: ↑17 and ↓5+12
Comments1

Инвестиции и софт: 5 торговых терминалов для торговли на бирже

Reading time3 min
Views96K


Всем привет! Вот уже пару лет я в качестве хобби экспериментирую со свободными финансами и изучаю доступные возможности и инструменты. Торговля на бирже (не форекс!) – очень интересная тема, и как оказалось, крайне технологичная.

Сегодня я подготовил обзор пяти интересных торговых терминалов – от инструментов профессиональных инвесторов до тех, которыми можно пользоваться для торговли на российских биржах.
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments31

Information

Rating
Does not participate
Registered
Activity