Использование переходов в Material Design дает приложению визуальную непрерывность. Пока пользователь ходит по приложению, элементы интерфейса в нем меняют состояние. Анимации переходов соответствующих элементов от одного экрана к другому подчеркивают идею о том, что интерфейсы осязаемы.


Целью этой статьи является предоставление гайдлайнов и реализации для определенных непрерывных переходов между фрагментами ОС Android. Мы продемострируем, как реализовать переход из картинки в RecyclerView в картинку внутри ViewPager и обратно, используя "общие элементы" (shared elements) чтобы определить, как и какие элементы участвуют в переходе. Мы также обработаем сложный случай перехода обратно в сетку после листания на странице к элементу, который в сетке изначально был за пределами экрана.


Вот результат, которого мы хотим добиться (анимированная версия под катом).



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


От переводчика. Далее будет довольно много кода и гифок (по прикидкам, мегабайт на 20).

Читать дальше →

Актуальны ли ещё угрозы XSS? Прошло около 20 лет с тех пор, как Cross Site Scripting (XSS) появился как вид атаки. С тех пор мы получили богатый опыт и знания, защита наших сайтов стала намного сложнее, а многочисленные фреймворки были призваны оберегать нас от ошибок. Но последние данные показывают совсем другую картину: в первых кварталах 2017 года количество сообщений об XSS-атаках и количество найденных уязвимостей выросло в несколько раз.


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


Прототипом статьи является доклад на конференции HolyJS 2017 Moscow. Алексей — фронтенд-тимлид/архитектор в компании EPAM Systems и один из лидеров сообщества FrontSpot в Минске. Основные области профессиональных интересов: архитектура и инфраструктура приложений, управление разработкой.


В этом тексте огромное количество картинок со слайдов. Осторожно, трафик!

Читать дальше →

С 40-х годов прошлого века и до настоящего времени существовало четыре основных технологии, на которых базировались вычислительные машины: начиная с электронных ламп и заканчивая микропроцессорами. С момента появления первых ЭВМ потребность во все большем объеме вычислительных ресурсов не останавливалась ни на минуту. Квантовые компьютерные вычисления рассматриваются как одна из технологий следующего поколения, которая позволит реализовать весь потенциал искусственного интеллекта (ИИ).

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


Читать дальше →

Это перевод одной из статей Lin Clark. Если вы не читали остальные, мы рекомендуем начать с начала.

Чтобы понять, как работает WebAssembly, неплохо понимать, что такое код на ассемблере и как компиляторы его генерируют. В статье о JIT я сравнивала взаимодействие с компьютером со взаимодействием с инопланетянином.

Читать дальше →

image

Знаю, звучит толсто. Но это правда возможно. Почти. Предлагаемый мной способ вряд ли применим в крупных проектах, но в мелких, для себя, типа «сайтов про кота», вполне рабочее решение. Возможность сортировки нам предоставит flexbox и css-переменные (они же custom properties) и js тут не потребуется.
Итак, приступим

Совсем недавно я наткнулся на очередное обсуждение DevRel в «Разборе Полетов», в котором услышал странно знакомое слово «карго-культ». Потом оно же всплыло и в Telegram-канале Алексея 23derevo Федорова. Потом еще где-то… Всё это привело меня к мысли, что карго-культ охватил умы людей во всех сферах: от HR до разработки, от выбора диеты до принятия решения о выборе фреймворка или профессионального инструмента.

Про диеты, пожалуй, говорить не будем, а вот проблему несознательного принятия профессиональных решений хотелось бы обсудить. Еще ниже по тексту расскажу о том, как мы в JUG.ru Group пытаемся с этим явлением бороться, а в комментах можете сказать мне, какой я плохой/хороший, и заодно поделиться своими наблюдениями: замечали ли за собой склонность к «культизму»?

Под катом нет кода, нет котиков и нет ничего про разработку. Зато есть немного размышлений про маркетинг, HR, философию потребления и принятия решений. А еще там есть анонс нашего открытого семинара Карго Культ, на котором выступит, например, Boomburum.
Читать дальше →



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

Благодаря Крису Талингеру в Twitter уже вовсю используют новый компилятор Graal, и не просто во имя любви к инновациям: это помогает компании экономить ощутимые суммы. Крис уже делился опытом Twitter в Петербурге на конференции Joker, а теперь приготовил новый доклад, призванный показать обычным Java-разработчикам, как им подступиться к Graal. А в ожидании этого доклада мы расспросили его и об основах Graal, и о том, как теперь в Twitter заходят ещё дальше, и о том, как Крис организовал на Гавайях Java-конференцию LavaOne.

Читать дальше →

Часть 1. Введение, стили
Часть 2. Строки, разметка
Часть 3. Редактирование через PL/SQL

Доброго дня. Третья часть разговора про формат XLSX подоспела. Я не случайно начал со внутреннего устройства файла. Не понимая где что находится и как выглядит, сложно понять, для чего я сделал то-то и то-то. К тому же, теперь я могу сделать несколько замечаний:

Первое. Если я не упомянул какой-то элемент, который нужен именно вам, — создайте пустой файл XLSX, сделайте нужный элемент и сохраните. Теперь вы знаете, где искать код, определяющий этот элемент.

Второе. OpenXML допускает наличие в разметке произвольного текста, если он не нарушает структуру тегов (этим мы будем очень активно пользоваться). Сейчас проиллюстрирую. Вот так делать можно:
Читать дальше →

image

Хочу поделиться с сообществом своей реализацией концепции flux как единого источника данных и видением построения веб-приложений. Мотивом к созданию своего решения послужило желание избавиться от большого количества шаблонного кода и сделать взаимодействие с источником данных удобным. Я работал над большим приложением (10 команд + 1 архитектурная) с использованием связки React + Redux как архитектор и как лид команды разработки и вынес для себя моменты, которые доставляли большие неудобства в процессе написания кода:

  • большое количество шаблонного кода
  • как следствие многословности — перенос небольших кусков логики в представление
  • сложность динамического добавления/удаления бизнес-логики модулей
  • возможность подписаться только на обновления всего стора (утомительные селекторы + возможны неожиданные перерисовки)

3 пункт особенно важен в контексте архитектуры микро-фронтендов, которая используется на проекте (и на многих других проектах).
Читать дальше →


Так получилось, что некогда возникала необходимость иметь данные по всем телефонным звонкам в одной организации, где для связи использовалась Avaya CM 5.0 (а в последствии 6.0), сейчас уже и эти версии динозавры из прошлого, но это все не важно. Важно то, что еще в 2010 г. (если не ошибаюсь) была на коленке написана программа, которая собирала данные о звонках и записывала их в MySQL. Серверный скрипт тогда был написан на Perl, а web-морда для всего этого работала на самописном PHP движке. За все это мне сейчас очень стыдно и я не хочу публично позорится выкладывая исходники, но вот что я хочу.

Читать дальше →