Использование переходов в 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 я сравнивала взаимодействие с компьютером со взаимодействием с инопланетянином. Читать дальше ->
Знаю, звучит толсто. Но это правда возможно. Почти. Предлагаемый мной способ вряд ли применим в крупных проектах, но в мелких, для себя, типа «сайтов про кота», вполне рабочее решение. Возможность сортировки нам предоставит flexbox и css-переменные (они же custom properties) и js тут не потребуется. Итак, приступим
Совсем недавно я наткнулся на очередное обсуждение DevRel в «Разборе Полетов», в котором услышал странно знакомое слово «карго-культ». Потом оно же всплыло и в Telegram-канале Алексея 23derevo Федорова. Потом еще где-то… Всё это привело меня к мысли, что карго-культ охватил умы людей во всех сферах: от HR до разработки, от выбора диеты до принятия решения о выборе фреймворка или профессионального инструмента.
Про диеты, пожалуй, говорить не будем, а вот проблему несознательного принятия профессиональных решений хотелось бы обсудить. Еще ниже по тексту расскажу о том, как мы в JUG.ru Group пытаемся с этим явлением бороться, а в комментах можете сказать мне, какой я плохой/хороший, и заодно поделиться своими наблюдениями: замечали ли за собой склонность к «культизму»?
Под катом нет кода, нет котиков и нет ничего про разработку. Зато есть немного размышлений про маркетинг, HR, философию потребления и принятия решений. А еще там есть анонс нашего открытого семинара Карго Культ, на котором выступит, например, Boomburum Читать дальше ->
«Жить на Гавайях, работать над суперпопулярным сервисом, внедрить в продакшне экспериментальную Java-технологию, на которую все ещё только с опаской поглядывают» — звучит как описание выдуманной идеальной Java-карьеры, о которой можно только мечтать. Но есть человек, для которого это всё суровые будни, и мы с ним пообщались.
Благодаря Крису Талингеру в Twitter уже вовсю используют новый компилятор Graal, и не просто во имя любви к инновациям: это помогает компании экономить ощутимые суммы. Крис уже делился опытом Twitter в Петербурге на конференции Joker, а теперь приготовил новый доклад, призванный показать обычным Java-разработчикам, как им подступиться к Graal. А в ожидании этого доклада мы расспросили его и об основах Graal, и о том, как теперь в Twitter заходят ещё дальше, и об организованной Крисом гавайской конференции LavaOne.
Открывать новый сезон мероприятием по Java уже стало традицией. Это уже девятая конференция серии посвящённая этому языку, и на этот раз мы решили немного изменить наш обычный формат. В программе DEV Labs 2018 мы постарались сделать акцент на создании прототипов, так сказать «на лету». Будем писать, анализировать и оптимизировать и смотреть на результат под разными углами. Матчасть без внимания тоже не оставим. Читать дальше ->
Часть 1. Введение, стили Часть 2. Строки, разметка Часть 3. Редактирование через PL/SQL
Доброго дня. Третья часть разговора про формат XLSX подоспела. Я не случайно начал со внутреннего устройства файла. Не понимая где что находится и как выглядит, сложно понять, для чего я сделал то-то и то-то. К тому же, теперь я могу сделать несколько замечаний:
Первое. Если я не упомянул какой-то элемент, который нужен именно вам, — создайте пустой файл XLSX, сделайте нужный элемент и сохраните. Теперь вы знаете, где искать код, определяющий этот элемент.
Второе. OpenXML допускает наличие в разметке произвольного текста, если он не нарушает структуру тегов (этим мы будем очень активно пользоваться). Сейчас проиллюстрирую. Вот так делать можно: Читать дальше ->
Хочу поделиться с сообществом своей реализацией концепции flux как единого источника данных и видением построения веб-приложений. Мотивом к созданию своего решения послужило желание избавиться от большого количества шаблонного кода и сделать взаимодействие с источником данных удобным. Я работал над большим приложением (10 команд + 1 архитектурная) с использованием связки React + Redux как архитектор и как лид команды разработки и вынес для себя моменты, которые доставляли большие неудобства в процессе написания кода:
большое количество шаблонного кода
как следствие многословности — перенос небольших кусков логики в представление
Так получилось, что некогда возникала необходимость иметь данные по всем телефонным звонкам в одной организации, где для связи использовалась Avaya CM 5.0 (а в последствии 6.0), сейчас уже и эти версии динозавры из прошлого, но это все не важно. Важно то, что еще в 2010 г. (если не ошибаюсь) была на коленке написана программа, которая собирала данные о звонках и записывала их в MySQL. Серверный скрипт тогда был написан на Perl, а web-морда для всего этого работала на самописном PHP движке. За все это мне сейчас очень стыдно и я не хочу публично позорится выкладывая исходники, но вот что я хочу.
Появилась необходимость сменить основной домен компании в G Suite с .ru на .com с сохранением всех данных, календарей, псевдонимов и доступов на сторонние ресурсы. Информации о переезде в интернете не очень много, а точнее, кроме справки самого Google, вообще ничего не нашлось, что и стало причиной создания этого how-to. Будет полезно, если кто-то решит повторить подобное.
Дело в том, что изначально в компании использовался домен pixonic.ru. Затем был добавлен псевдоним pixonic.com, но везде по умолчанию стояла почта в зоне .ru. А так как многие сотрудники компании ведут переписку с зарубежными коллегами и клиентами, было желание использовать международный формат. Для этого им приходилось заходить в настройки аккаунта, самостоятельно менять основной почтовый адрес и приводить подпись в соответствии с корпоративным шаблоном. Не все это делали (или делали, но через раз) и можно представить, какой беспорядок и путаница творились в ветках сообщений. Для внешних партнеров это выглядело еще менее презентабельно из-за разных подписей.
В общем, настал момент, когда было решено — вся переписка должна вестись с использованием почты pixonic.com. Задача упала на нас — системных администраторов.
В конце статьи есть ссылка на весь скрипт, поэтому в тексте будут лишь его куски.Читать дальше ->
В сегодняшней статье я расскажу об уязвимостях сервера 1С в корпоративной сети.
Как показала практика, в инсталляциях с 1С все допускают одни и те же ошибки разной степени серьезности. Я не буду касаться очевидных вещей вроде установки обновлений, но пройдусь по специфике работы сервера приложений под Windows. Например, по возможности бесконтрольно манипулировать базами Microsoft SQL с помощью инструментов 1С.
В течение последних лет компания-разработчик видеокарт демонстрирует стремительный рост: с февраля 2016 года стоимость ее акций выросла на 850%, за последние три года — на 1150%. Рост был столь стремительным, что аналитик трейдинговой фирмы Miller Tabak Мэтт Мэли в колонке для CNBC усмотрел в этом свидетельство нового экономического пузыря. С другой стороны — в настоящий момент рыночная конъюнктура такова, что рост акций технологических компаний может продолжаться очень долго. Читать дальше ->
Торговые весы — неотъемлемая часть любого продуктового магазина. Их там много разных: прикассовые, самообслуживания, порционные, подвесные, платформенные. Рассказываем, как разобраться во всём этом многообразии и выбрать подходящее устройство в зависимости от формата магазина. Читать дальше ->
Привет, Хабр! Однажды один человек, сильно заинтересованный в .NET Core, решил начать вести свой блог. И тут же перед ним встал вопрос: «Какой ресурс использовать?». Существующие Facebook и Telegram оказались совершенно неприспособленными для структуризации публикаций. В итоге, было решено с помощью того же самого .Net Core создать свой сайт блэкджеком и структуризацией.
Статья про использование Python в научных вычислениях подтолкнула меня написать эту статью. Это история, случившаяся со мной и с коллегами 6 лет назад. На тот момент я уже достаточно подразобрался с Delphi и Python, но только теперь я ощущаю что достаточно поработал с C/C++, чтобы здраво оценить время на «ремонт» сломанного кода и вообще — общее время разработки. Да, это статья про код, который был написан разными людьми на Delphi, Python и C++ для одной и той же задачи, внутри одной команды.
Если вы пишете код, который попадает в общедоступные репозитории, вам может пригодиться PGP. В этой серии статей, перевод первой из которых мы публикуем сегодня, будут рассмотрены вопросы использования PGP для обеспечения целостности кода программного обеспечения. Эти материалы, в основном, нацелены на разработчиков свободного ПО, хотя изложенные здесь принципы применимы в любых ситуациях, когда разработка ведётся силами распределённых команд программистов.
Здесь будут раскрыты следующие темы:
Основы PGP и рекомендации по работе с соответствующим ПО.
Перед нами стоит задача улучшать продукты банка с учетом пользовательского опыта. Можно решить эту задачу, протестировав всё приложение, и написать отчёт на несколько сотен страниц с рекомендациями по исправлению. По времени эта работа займёт где-то 3-4 месяца (кошмар, Agile и недельные спринты в шоке). Такой формат не работает (пробовали и не только мы, вспомните все те отчёты, которые есть в вашей компании от агентства, проводившего независимый аудит, а то и юзабилити-тестирование). К моменту, когда отчёт будет готов, его ценность упадёт процентов на 30%, а когда хотя бы одна из команд освободится и сможет начать работать над предложенными рекомендациями, актуальность будет ещё ниже. Читать дальше ->
Возможно кто-то воспримет эту статью, как очередное нытье на тему того "как плохо жить". Но я все же напишу ее с надеждой, что кого-то это сподвигнет на самосовершенствование. И, вдруг, текущий релиз нашей разумной (хотелось бы верить) цивилизации станет чуточку стабильнее.
Причиной моего недовольства стал очередной неудачный опыт работы с фрилансером, именующим себя "мобильным разработчиком". Человеку была поставлена задача, он ее даже выполнил — приложение как-то работало, хотя некоторые баги с удалением объектов навевали грустные мысли о неправильной работе с индексами списков. А это — плохая примета. Если человек не умеет работать с удалением из списков, то это скорее всего только начало проблем, и далее стоит ожидать худшего.