2016-12-24

Об IFTTT

Недавно Telegram обзавёлся поддержкой IFTTT. Или IFTTT обзавёлся поддержкой Telegram. Это смотря с какой стороны смотреть. Самое время вспомнить, что такое IFTTT, и зачем оно нужно.
IFTTT — это IF This Then That. Если Это, То То. Если что-то где-то происходит, то сделать с этим то-то. Что-то и то-то — это интернет сервисы, а в последнее время и всякие штуки интернета вещей. Если что-то случается в одном интернет сервисе или умной домашней штуке, можно сделать что-то в другом интернет сервисе или другой умной домашней штуке.
IFTTT
Эти сервисы или штуки раньше назывались каналами (channel), а сейчас, называются именно сервисами. Просто сервисы, с которыми может работать IFTTT. У каждого такого сервиса есть две стороны. С одной стороны оно может стоят в условии if, т.е. быть источником каких-то событий. Называется это триггером (trigger). С другой стороны оно может стоять после then, т.е. совершать какие-то действия. Называется это экшеном (action).
Объединение условия и действия раньше называлось рецептом (recipe), а сейчас называется апплетом (applet). Задаёте себе апплеты и они работают. Где-то в недрах IFTTT, типа в облаке. Это тотальная автоматизация интернетов. И, в какой-то мере, умных домов.
IFTTT
Я постоянно пользуюсь такими рецептами. Feed в качестве триггера. Это полноценная читалка RSS и Atom лент. Соответственно, событие возникает, когда появляется новая запись. Ну ещё опциально можно отфильтровать по ключевым словам. И Pocket в качестве экшена. Это тот самый Pocket, который замечательное приложение для чтения потом. В него я засовываю всякоразные статьи, чтобы потом с комфортом читать с планшета. А с помощью IFTTT туда же сами попадают новые статьи из RSS. Таких рецептов, Feed + Pocket, у меня аж шестнадцать штук. Таким странным образом я подписываюсь на RSS.
Конечно же, можно подписаться на RSS через Feedly. Помните, он возник, когда Google похоронила свой Reader, объявив, что RSS умирает. Вот только Feedly предоставляет интеграцию с IFTTT только в Pro версии, которая стоит денег. А Feed в IFTTT — бесплатен.
Ещё один мой рецепт шлёт новости из Feed по электропочте. Сервис Email умеет слать симпатичные письма.
Есть интеграция и с Gmail. Но Gmail больше подходит для отправки писем, от вашего имени, чем для получения писем. Как-то письма с новостями от самого себя выглядят немного странно. А вот триггеры у Gmail весьма интересные. Можно мониторить входящие, по меткам или разным условиям поиска. А уж в then потом можете сделать что угодно.
У IFTTT есть приложение для Android. В нём можно рулить рецептами. Но и IFTTT получает возможность рулить вашим Андроидом. IFTTT может следить за состоянием батареи вашего телефона, есть соответствующие триггеры. Может следить (триггеры) за Bluetooth и Wi-Fi подключениями, и менять (экшены) рингтоны, обои и прочую мелочь. Может следить за вашим местоположением. Может следить, кто вам звонит и какие звонки вы пропустили. Узнаёт, когда вы сделали новую фоточку. Может следить на СМСками и даже отсылать их. А ещё может отсылать уведомления на умные часы с Android Wear.
Конечно, более специализированные штуки, работающие в рамках одного Android устройства, могут быть более точны и эффективны. Например, для отключения звонка, когда находишься на работе, лучше работает Locale или Llama. А Automate вообще творит чудеса. А фоточки в облако прекрасно заливает и сам Google Photos. Но когда надо связать разные сервисы с вашим телефоном, а прямой интеграции нет, то IFTTT остаётся чуть ли не единственным вариантом.
Кстати, вместо какого-то условного триггера, можно просто разместить кнопку на экране вашего телефона. Нажимаете кнопку, и некий экшен происходит.
IFTTT
IFTTT — это самый универсальный способ репоста между разными соцсеточками. Поддерживаются Twitter, Facebook, Foursquare, Instagram, LinkedIn и некоторые другие. А вот ни ВКонтакте, ни Гуглоплюса нет.
Гугль вообще как-то плохо дружит с IFTTT. Гуглокалендарь, например, есть. Но триггер там срабатывает только в момент наступления события в календаре, а вовсе не заранее. Почти бесполезно.
Поддерживаются чатики. Можно послать сообщение в Slack. А можно что-то сделать в Telegram.
Интеграция с Телеграмом получилась очень мощная. Со стороны Телеграма это выглядит как бот по имени @IFTTT. Его можно добавить в группы и каналы. И триггером в IFTTT будут определённые сообщения напрямую боту или в эти группы или каналы. А в качестве экшена IFTTT может посылать сообщения, фоточки, видосики, музычку прямо вам или снова в группы или каналы. Даже не выходя за пределы Телеграмма получается довольно мощный и универсальный бот. Но ведь триггерами в IFTTT может быть почти всё, что угодно, и экшенами тоже всё, что угодно. Можно настроить уведомление в Телеграм о всём, что угодно. Или наоборот, настроить управление из Телеграма всем, чем угодно.
Интернет вещей. Есть простые штуки, вроде тех самых лампочек, меняющих цвет, с неприличным названием Philips Hue, или того самого термостата Nest. А есть интеграция с сервисами, которые сами являются полноценными мозгами для умного дома, например, openHAB.
В общем, IFTTT — очень крутая штука. И часто — совершенно бесплатная. Довольно сложно сразу придумать, зачем он нужен. Но иногда он весьма элегантно решает насущные проблемы.
Сейчас IFTTT почему-то акцентирует внимание на готовых апплетах, хотя вся мощь IFTTT запрятана в сервисах. Начните с поиска сервисов. Посмотрите, что они умеют. Вдруг пригодятся.
IFTTT Infrastructure

2016-12-18

О субботнике

В Омске у нас раз в месяц проходят ИТ субботники. Это такие маленькие полустихийные конференции на айтишную тематику.
А в прошлый раз субботник был выездным. На самом деле, он случился вместо более большой конференции HappyDev. Ну просто подустали организовывать, бегать за иногородними докладчиками. Поэтому решили просто потусить на БО им. Стрельникова. Самостоятельно. Силами омичей. Впрочем гости из Новосибирска и Павлодара тоже были.
Олскульный субботник
Получилась маленькая (хотя не такая уж и маленькая) тесная тусовочка с вечера пятницы до вечера субботы, или даже воскресенья (кто хотел, тот остался). Причём по уровню полезности получилось получше иных полноценных двухдневных конференций.
Вечером пятницы случились баркемпы. Сергей Мячин взялся рассказать про корпоративную культуру. А получился какой-то экскурс в особенности человеческого мышления. Про то, что всякие причинно-следственные связи — это иллюзия. Что то, что мы считаем истинным — лишь наши предубеждения и навязанные стереотипы. В общем, про то, что все врут, и в первую очередь сами себе. Нормуль. Но причём тут корпоративная культура и ИТ, я не понял.
А потом был бассейн. Кто не помнит, в Стрельникова есть открытый йодо-бромный (типа лечебный, мутно-коричневатый) бассейн. Открытый. В минус 17. Вода плюс 32. Очень мило и хорошо. И сауна рядом. Я там два часа плюхался. Кто-то не просто плюхался, но и болтал. Кто-то ещё и запивал напитками. Хорошо.
Докладчики
Первая половина субботы была посвящена докладам. Ну почти как на конференции.
Вадим Литвинов, постоянный гость из Новосибирска, рассказал про интересную штуку. Как по фотографиям, с разных точек или ракурсов, или по видеосъемке, построить 3D модель объекта или окружающего пространства. Например, по записи видеорегистратора можно построить модель улицы, с фасадами и текстурами. Очень интересно было узнать, какой матан при этом используется. Про воксели я догадывался, но что можно 3D пространство разбить на тетраэдры, обозначить пустые и принадлежащие объекту, получить поверхность и затекстурировать её, я не знал. Здорово, что для всей этой магии нужны только плоские изображения, ничего больше. Только нужно ещё знать параметры линз, через которые делалась съемка, чтобы убрать их нелинейные искажения.
Алексей Городецкий очень кратко и интересно рассказал про LLVM. Как работают компиляторы. Почему между языком высокого уровня с одной стороны и машинным кодом конкретной платформы с другой стороны получается универсальное промежуточное представление. В LLVM — это инструкции виртуальной машины. Какие получаются преимущества от наличия этого универсального представления.
Евгений Тюменцев рассказал про разновидности формальных грамматик, тех самых, которыми описываются языки программирования. Каким образом осуществляется синтаксический анализ этих наших языков.
Как-то темы про компиляторы и то, как они работают, возникли как раз в тот момент, когда мы на курсах программирования на Java, занялись созданием лексического анализатора. Удивительное совпадение.
Алексей Коровянский поведал о дополненной реальности, которая Augmented или AR. Не путать с виртуальной реальностью, которая Virtual или VR. Что там как. Как поживает проект Tango от Google, где есть куча всяких крутых датчиков в формате небольшого планшета, чтобы эту самую дополненную реальность строить. Это пересекается с докладом Вадима. Только тут датчиков больше, и штуковина в реальном времени строит объемное представление того, что видит, и дополняет картинку виртуальными элементами. После таких докладов даже родился спор: что победит на рынке, дополненная или виртуальная реальность?
Хаски
Потом были хаски и обед. Хаски, лайки и прочие милые собачухи. Осторожно, они очень милые. Всего меня облизали, когда я присел к ним на корточках. Обед был вкусный, как всегда.
После обеда снова были баркемпы. Я посетил три штуки.
Александр Селезнёв поделился личной болью. Что никто не знает и не понимает, каким должен быть DevOps. И никто не делает DevOps так, как положено. Не должно быть отдельного отдела DevOps, не должно приглашать отдельного DevOps на проект. DevOps — это ещё одна кучка проектной работы, которую нужно делать.
Игорь Артамонов рассказал про блокчейн вообще и Ethereum в частности. Очень интересно. А история раскола Ethereum на Ethereum Classic и просто Ethereum достойна увековечивания в каком-нибудь голливудском фильме.
Напоследок, под вечер субботы, Евгений Тюменцев дал ответ Николаю Линкеру по поводу функционального программирования. Речь о том, что в функциональном программировании нет решающего преимущества. Просто вместо объектов у нас тут функции. И SOLID принципы, хоть и были сформулированы для ООП, вполне себе применимы и для ФП.
Между делом нашлась отличная метрика трудоёмкости программных единиц. Эта метрика вполне может быть подсчитана какой-нибудь IDE. И те функции или методы, где она будет слишком высокой, должны быть досмотрены и переписаны. Хорошая идея для плагинчика к IDEA.
Писюк
В качестве ночных посиделок на субботнике была игротека. Кучка настольных игр. Неаутентичный "Денди", купленный в "Метро ЦЦ". PS4. И я ещё притащил старый писюк, откопанный в чулане. Целерон об 1.2 гигагерцах, одноядерный. 100 МГц системная шина. 384 мегабайта ОЗУ. GeForce 2 MX 400. Винт на 60 гигабайт. Нормальный такой писюк начала двухтысячных. Мы ещё ЭЛТ монитор нарыли, чтобы было ещё более аутентично.
Я замучался на это железо накатывать Windows 98 SE. Там уже давно Linux стоял. А теперь захотелось в старые игрушки поиграть. Если на сайтах Nvidia и Gigabyte вполне ещё можно найти старые драйвера, в разделе legacy hardware, то на сайте Microsoft нет совсем ничего, относящегося к тем временам. Даже DirectX для Windows 98 пришлось качать с каких-то левых форумов энтузиастов.
Кажется, игротека сработала. Сам я немного поиграл в Rollcage и The Neverhood. Но кто-то ещё ночами мучал сей комп. Мы рядом с компом положили старые CD с играми. И после субботника обнаружилось, что кто-то поставил несколько частей HoMM и даже Black & White (хотя, насколько помню, она еле шевелилась на этом железе).
Ёлочки
Непонятно, что лучше, выездной субботник или полноценная конференция. Концентрация полезных докладов получилась выше. Народу было меньше. Возможно, в следующем году выйдет что-то промежуточное по формату.