В этой статье я представляю десять советов по работе с инструментами разработчика Chrome, которые помогут повысить вашу продуктивность и вывести её на новый уровень.
![](http://webcf.waybackmachine.org/web/20220312154443im_/https://habrastorage.org/getpro/habr/hub/c10/6a9/79d/c106a979d03bfd070d4d8bf45ab7f2dd.png)
Google Web Toolkit *
Свободный Java-фреймворк для Ajax-приложений
Новости
Современное SEO: качество страниц
![](https://webcf.waybackmachine.org/web/20220312154443im_/https://habrastorage.org/getpro/habr/upload_files/69c/35e/480/69c35e480aac4e1a4cf6cd2fe74c71f1.png)
В конце мая с. г. в Google сообщили, что теперь они намерены в алгоритм ранжирования сайтов ввести понятие "качества страницы" (page experience). А в понятие качества страницы они включили: скорость загрузки страницы, интерактивность (т.е. например, чтобы кнопка быстро приобретала способность нажиматься), и стабильность контента во время загрузки (т.е. вы не должны случайно нажимать кнопки или ссылки из-за того что всё на экране прыгает пока страница грузится). Кроме того страница должна быть оптимизирована для мобильных устройств (mobile friendly), безопасна для просмотра, передаваться по протоколу https (не http), и не иметь навязчивой рекламы между страницами (intrusive interstitials).
Современное SEO: AMP-истории
![AMP истории](https://webcf.waybackmachine.org/web/20220312154443im_/https://habrastorage.org/webt/mt/d2/ac/mtd2acljh1lbdbi4hcd7vfkexyi.png)
Да, вот такой гибридный, русско-английский заголовок получился… Поэтому давайте сразу кое-что проясним. Итак, если SEO широко известный (в узких кругах) термин, то AMP — ещё не столь. Accelerated Mobile Pages был анонсирован Google в 2015 г. (см. статью в Википедии), как инструмент, позволяющий быстро просматривать веб-страницы на мобильных телефонах. Со временем AMP превратился в фреймворк, позволяющий создавать страницы для любых сайтов (не только для мобильных устройств), и расширил свою «номенклатуру»: собственно сайты (AMP Websites), истории (AMP Stories; тема этой статьи), рекламные блоки (AMP Ads), и электронные письма (AMP email). За всем этим, как было сказано выше, стоит Google, и если вас интересует продвижение сайтов в этой поисковой машине — полезно будет отнестись к теме AMP с должным вниманием. Но давайте сначала посмотрим как выглядят эти самые AMP-истории (UPD: с 1 мая 2020 AMP Stories переименованы в Web Stories, поэтому теперь по-русски их лучше называть Веб-истории), затем решим нужны ли они нам, и, если окажется, что нужны — рассмотрим как это сделать.
WebRTC через Kurento: опыт тестирования и внедрения
![](https://webcf.waybackmachine.org/web/20220312154443im_/https://habrastorage.org/webt/gp/n6/4m/gpn64m3nht-yuv6pzbeye6d8zv0.png)
В этой статье я поделюсь опытом работы с технологией WebRTC и медиасервером Kurento на этапе тестирования и внедрения. Расскажу с какими проблемами я столкнулся и как их решил. Я не расскажу о том как разработать приложение с нуля, но приведу много полезных ссылок. Уверен, что мой рассказ будет полезен тем, кто собирается работать с WebRTC.
Визуализации в Google Spreadsheets
Недавно провел небольшое исследование гугл таблиц для работы с визуализациями. В процессе изучения родились несколько интересных идей и один скрипт. Под катом результаты моих изысканий.
![](https://webcf.waybackmachine.org/web/20220312154443im_/https://habrastorage.org/webt/aq/-e/qu/aq-equpt7vacygpbxtrlgmbl7ve.jpeg)
J2CL — Лучше поздно, чем никогда
Ещё никому не удалось опоздать на свои похороны.
Валентин Домиль
На прошлой неделе команда из Google наконец-то выложила исходники фреймворка J2CL, о котором говорили с 2015 года. Идея трансляции Java в JavaScript далеко не нова, и все уже давно набили шишек с Google Web Toolkit, однако этот продукт сообщество ждало как ни один другой — о нем говорили и делали выступления, но никто его не видел.
![](https://webcf.waybackmachine.org/web/20220312154443im_/https://habrastorage.org/webt/ye/fe/6k/yefe6kgvdo8449ifrxfzlfenbve.png)
Прошло больше 3-х лет с первого анонса и, кажется, что продукт потерял рынок даже не родившись. Сегодня у нас есть Scala.js, Kotlin.js и JSweet, не говоря уже о том, что веб-разработка захвачена TypeScript и для Java не осталось места. За такое время многие, даже самые преданные джависты, утратили веру в “Java для Front-end” и обуздали тот или иной JavaScript фреймворк.
Поскольку релиз всё-таки случился, давайте посмотрим, что получилось, и кому это может пригодиться.
Vaadin Flow — диковинный олень
всегда сопряжена с неудобствами
Ричард Хукер
Как вы возможно знаете, Vaadin — один из самых популярных web-фреймворков на Java:
Совсем недавно вышел новый релиз этого фреймворка для разработки web UI — Vaadin 10. Про Vaadin 10 и Vaadin Flow пока довольно мало публикаций на русском, и этот пост призван восполнить этот пробел.
![](https://webcf.waybackmachine.org/web/20220312154443im_/https://habrastorage.org/webt/td/86/hk/td86hkhcruqgdewpgjjkk4oi4_8.png)
Создатели позиционируют Vaadin Flow как новый Java web-фреймворк для разработки современных web-приложений и web-сайтов (вот тут я им не совсем верю). Это часть Vaadin Platform, которая приходит на замену другому продукту — Vaadin Framework, она позволяет разрабатывать web-приложения (а если быть точным, то web UI) с применением стандарта Web Components на Java.
Тут у читателя в голове скорее всего всё уже смешалось, все эти Vaadin Bla Bla, фреймворк, платформа и прочее. Что происходит?
Мы используем Vaadin в составе своей платформы CUBA для UI back-office систем на протяжении 7 лет и за это время накопили большой опыт работы с ним, поэтому нас не может не волновать его судьба. Под катом вы найдёте мои спекуляции на тему Vaadin 10.
За год Google проанализировал 760 тыс. взломов сайтов и анонсировал новый инструмент оповещения веб-мастеров
Разработка была представлена на 25-м Международном World Wide Web-консорциуме, там же, где другие работники Google анонсировали свой черновик протокола передачи данных между веб-страницами и USB-устройствами.
![image](https://webcf.waybackmachine.org/web/20220312154443im_/https://habrastorage.org/getpro/habr/post_images/729/904/baa/729904baa58c0a17335fb4d2c5995382.png)
Google отказывается от Flash в рекламе
![](https://webcf.waybackmachine.org/web/20220312154443im_/https://habrastorage.org/files/0c1/c5a/ea3/0c1c5aea3baf4657953312bdd7b81725.png)
Последние несколько лет HTML5 все больше вытесняет FLASH.
На днях Google анонсировал, что полностью откажется от показа рекламы на Flash, в пользу HTML5 в самом ближайшем времени.
Brotli — новый алгоритм сжатия веб-данных от Google
![image](https://webcf.waybackmachine.org/web/20220312154443im_/https://habrastorage.org/getpro/habr/post_images/72f/5da/7c3/72f5da7c3efa235ad7d6ab685ccbfe4a.jpg)
Так как веб-сайты и онлайн-сервисы с каждым годом становятся все «тяжелее», возрастает необходимость и сжатия данных в вебе. По этой причине Google выпустил новый алгоритм сжатия данных для веб-сайтов — Brotli, что в переводе с швейцарского немецкого означает «маленькая булка хлеба». Алгоритм уже доступен широкой аудитории на GitHub.
Пишем и отлаживаем компонент для GWT и Vaadin
![image](https://webcf.waybackmachine.org/web/20220312154443im_/https://habrastorage.org/files/fd4/dd9/aa0/fd4dd9aa0a874d7faa3ae6f7e9194719.png)
Фреймворки Google Web Toolkit и Vaadin достаточно хорошо себя показывают, когда вы просто используете их. Если вдруг вам понадобилось расширить их функциональность, то вам придётся серьёзно попотеть. В этой статье я хочу рассказать, как написать простой компонент на GWT, добавить к нему серверную часть Vaadin и использовать в своём приложении. Я не буду создавать некий совсем пустой GWT/Vaadin проект и с самого начала настраивать компиляцию GWT, вместо этого возьму приложение на базе CUBA.Platform, в котором и реализую сам компонент, а затем попробую в деле. Так будет видно, насколько хорошо всё впишется в настоящее приложение. Отдельное внимание я бы хотел уделить отладке компонента, поскольку она нетривиальна и всегда вызывает трудности у разработчиков.
Хочу предупредить, что не всё описанное в статье относится к GWT и Vaadin, часть шагов и приёмов применимы только в контексте использования CUBA.Platform, за счёт этого сильно упрощена настройка окружения и некоторые рутинные действия.
Запуск GWT Super Dev Mode для удаленного сервера
GWT, Java 8 и Future
Думаю, многие из вас знают о выходе Java 8, и о том, какие нововведения она несет. К сожалению, последняя версия GWT(2.6.0) на данный момент до сих пор не поддерживает лямбды и default-методы в интерфейсах. Поскольку фреймворк GWT довольно востребован, многим приходится часто сталкиваться с разработкой именно на нем, мне не терпелось попробовать писать на GWT с использованием вновь добавленных в язык фич.
Коран по поискам дублей в Google Spreadsheet
Помните ли вы овцу Долли? При работе с документами google, особенно со spreadsheet (MS Excel) таблицами для решения многих нетипичных задач, таких как: специальное форматирование по множеству условий или удаление дубликатов, необходимо было научится пользоваться JavaScript, так как не все можно исполнить с помощью стандартных функций, а по формулам есть ограничения, которые раскроем в следующем выпуске. Теперь же представляем ликбез по поиску дублей ссылок и текста в Google Spreadsheet.
![image](https://webcf.waybackmachine.org/web/20220312154443im_/https://habrastorage.org/getpro/habr/post_images/a47/8f8/ddb/a478f8ddbe66960ed4b888fcf2faee82.png)
Поэтому начнем писать скрипты для Google Spreadsheet. Если вы знаете несколько языков программирования хотя бы поверхностно, вам, конечно, будет легче. На JavaScript я начал писать без проблем, но работал в основном с VBA, Visual basic, C/C++, C#. Как говорится, всего понемногу и везде по чуть-чуть. Ежели знания языков программирования хромают, то добро пожаловать на наш ликбез.
GWT-Platform основы работы с презентерами
Я начинающий Java-программист и так уж получилось, что свою карьеру я начинаю с разработки серьезного приложения на GWT. На хабре довольно много статей на тему GWT, однако почему-то совсем нет информации о замечательном фреймворке GWT-Platform. Подробно познакомиться с данным фреймворком можно тут, а я расскажу вкратце об основах работы на примере простого приложения.
GWT – подглядываем в передаваемые данные
![image](https://webcf.waybackmachine.org/web/20220312154443im_/https://habrastorage.org/storage2/1af/2fe/77c/1af2fe77cfb8f32843063113ab56e00f.jpg)
Сериализация GWT RPC в запрашиваемую страницу для индексирования приложения поисковиками и ускорения загрузки
GWT + Hibernate + Dispatch
Caused by: com.google.gwt.user.client.rpc.SerializationException: Type 'org.hibernate.collection.PersistentSet' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded. For security purposes, this type will not be serialized.
at com.google.gwt.user.server.rpc.impl.StandardSerializationPolicy.validateSerialize(StandardSerializationPolicy.java:83)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:591
Не сразу понятно что пошло не так. Дело в том, что как только объект становится персистентным, в нем происходит ряд изменений, необходимых для работы Hibernate. Например обычные Set меняются на PersistentSet. Из-за этого браузер уже никак не может десериализовать отправленный ему объект, ни при каких условиях.
Как попасть в App Store. Или история случайного аппрува
![](https://webcf.waybackmachine.org/web/20220312154443im_/https://habrastorage.org/storage2/e97/0e7/dd3/e970e7dd30316d2b0b353d821402b954.png)
Привет Хабр,
На сайте немало статей рассказывающих о том, как успешно пройти модерацию у Apple Review Team. Эта статья не об этом. Она скорее о том, как мы случайно получили аппрув, не особо этого желая.
К чему это привело и во что вылилось — читайте дальше.
Google передает управление проектом GWT независимому комитету
![](https://webcf.waybackmachine.org/web/20220312154443im_/https://habrastorage.org/storage2/927/f95/c80/927f95c80b089aa21994fe09b8fabb9d.png)
В список компаний, помимо неназванных разработчиков из сообщества, входят представители Sencha, Red Hat, Vaadin и некоторые другие. К слову, разработчики Google в этом списке пока тоже присутствуют.
Такой поворот событий воспринимается двояко: либо компания на самом деле хочет ускорить и упорядочить развитие довольно медленно развивающегося инструмента, либо это плавный уход в сторону Dart. Учитывая текущую политику Google, второй вариант может оказаться более чем реальным.
Вклад авторов
-
jreznot 51.0 -
paradoxs 37.0 -
b441berith 34.0 -
sidney3172 33.0 -
ragequit 28.0 -
windicted 27.0 -
schroeder 25.0 -
akakunin 24.0 -
YuriPikin 21.0 -
bobzer 19.0