Нашел серию статей разработчиков Instagram о том, к каким методам им приходится прибегать для поддержания работы веб-версии, написанной на Python и Django.
середа, 28 лютого 2018 р.
пʼятниця, 23 лютого 2018 р.
Квадрокоптеры-атлеты
Квадрокоптеры-атлеты балансируют с тростью. Странно звучит, не так ли? Сегодня поделюсь с вами видео из robot lab в TEDGlobal. Raffaello D'Andrea демонстрирует применение моделей из теории управления и не только на квадрокоптерах. Сначала, один коптер с одной и тойже моделью балансирует как с тростью, так и с фужером с жидкостью. Смотрится очень эффектно. Затем, коптеры-атлеты выполняют кувырки и ловят мячи сетью, отбивают летящие мечи и имитируют другую среду, например, вязкую жидкость или гравитацию Плутона. В общем, очень занимательное видео, длится 16 минут. Рекомендую к просмотру.
понеділок, 19 лютого 2018 р.
"японский морской бой" на квантовом компьютере
В январе писал про квантовые вычисления и вот попалась интересная статья. Уже видел "квантовые шахматы", на ютубе есть ролик со Стивеном Хокингом и человеком-муравьём из одноименного фильма. Здесь же "японский морской бой". Автор рассказывает как воспользоваться облаком IBM для квантовых вычислений в примитивной игре. Статья даст вам некоторое представление о том, где может пригодиться суперпозиция кубита.
середа, 7 лютого 2018 р.
Телеграм сделал виджет для аутентификации
Долгое время все те, кто хотел прикрутить к своему сайту или приложению аутентификацию через телеграм выкручивали всякие финты с ботами и даже с кастомными клиентами (на хабре есть пара статей), мне тоже на паре своих пет-проектов пришлось через это пройти. Проблема была в том, что пользователю необходимо было явно обратиться к боту авторизации и только после этого процесс взаимодействия мог быть запущен (deep linking спасал нас как мог). Вчера телеграм наконец-то представил возможность разместить на сайте виджет для аутентификации. Попробую в ближайшее время, тем более есть где заменить самописную реализацию. По заявлениям это первая стадия введения Telegram ID. Ссылка на официальный обзор
неділя, 4 лютого 2018 р.
Kotlin Generics
Первый релиз языка Kotlin включает в себя Kotlin Generics. Обобщенные типы, благодаря которым мы с вами можем писать более гибкие приложения с меньшим дублированием кода и большей типобезопасностью. Одно из важных преимуществ, которое дает вашему приложению использование Generics - проверка типов на этапе компиляции. Дизайнеры языка Kotlin ввели новые ключевые слова для работы с дженериками, что по началу может ввести в ступор даже опытного Java разработчика. Сегодня мы с вами обсудим что такое “дженерики”, удалим страх перед словами типа “контравариантность”, а заодно познакомимся с reified generics и star-projection.
Система типов в Kotlin
Нашёл отличную статью, которая на пальцах в картинках разбирает иерархию типов, включая Any, Nullable Types, Unit и Nothing. Для новичков в Kotlin - cтатья полезная, для опытных разработчиков, только если закрыть какие-то пробелы.
LazyInstance
В C++ глобальные объекты не POD типов имеют динамические инициализаторы. Это означает, что при запуске приложения до вызова функции main произойдет инициализация этих глобальных объектов. Это, конечно, влияет на время старта приложения. Но самое страшное, что эта инициализация и, соответственно, деинициализация глобальных объектов в разных единицах трансляции происходят недетерминированно. То есть в стандарте языка не указывается, в каком порядке будут вызываться конструкторы и деструкторы объектов. Как правило, это зависит от порядка линковки объектных файлов. Что это влечет за собой? А то, что если вы в одном файле создаете глобальный объект и инициализируете его значением другого глобального объекта в другой единице трансляции или при закрытии приложения начинаете обращаться к таким глобальным объектам, результат непредсказуем. Чаще всего возникает краш.