• Допиливаем прибитое поле поиска Гугла

      За десятилетие развития Гугл уже давно перестал выкладывать страницы поиска с примитивной вёрсткой, денег и времени на дизайн поисковой страницы стало хватать. Недавно (на самом деле, в разных районах мира он экспериментировал уже 2 месяца) он выложил новый дизайн результатов поиска, которые ещё постепенно дорабатываются — появилось овальное поле ввода (в поиске картинок — ещё прямоугольное), прибитое к верху (при прокрутке страницы) поле поиска. Остальные функции, в основном, остаются теми же, для которых довольно давно был сделан юзерскрипт (расширение браузера) Google Search Extra Buttons. В связи с изменениями вёрстки страницы были сделаны доработки, и заодно они затронули новые элементы пользовательского интерфейса, о которых порассуждаем сейчас, показав работающие модификации.
      Читать дальше →
      • +14
      • 4.2k
      • 6
    • Firefox Gecko, «который мы потеряли»

        Эволюция идёт, и более слабые, медленные и неэффективные организмы вымирают. Не так давно мы проводили в пучину истории Оперу-12, глядя куда-то вдаль, молча слушая за спиной всхлипывания сочувствующих. В отличие от трупа последнего животного из Красной Книги, ею можно было ещё пользоваться 2-3 года, да и на некрофилов пользователи не смахивали. Похожая ситуация повторяется с Firefox на движке Gecko с последней наиболее удобной версией 56.0.2. Есть много полезной и привычной функциональности, не только встроенной, но и в аддонах (расширениях). Даже пониженное быстродействие — не основание для перехода к новой версии, если с ней теряется несколько полезных функций. А со старым движком есть, что терять...


        Рассмотрим список того, чем ещё можно пользоваться в старой версии Firefox и с какими успехами идёт замена и восстановление этого в новых версиях. Что имеется совершенно нового, ради чего стоит всё бросить и забыть. (На самом деле — не обязательно. Ведь можно одновременно открывать старую и новую версии.)

        Читать дальше →
      • Сложности регистрации в Скайпе без телефона

          Для того, чтобы продолжать пользоваться Скайпом как классической программой, должно выполняться одно из требований — простота регистрации (однофакторная, без телефона и других избыточных действий). Рассмотрим текущие проблемы пользования Скайпом и истории о том, как обойтись без телефона.


          Собственно, MS с радостью бы придушили эту свободу, чем они планомерно занимаются. Что-то их держит не перекрыть все выходы до конца. К примеру, Гугл душить не стремится, хотя мог бы. Есть, видимо, в мире много сервисов, не дающих сказать MS-овцам "Мы просто делаем, как все".


          Поначалу придётся остановиться на вопросе, касающемся не только Скайпа, почему местами важно не соглашаться на телефоны, СМС и регистрацию по месту жительства, если есть простая задача пользования современными интернет-коммуникациями без последствий. Если хотите, немного паранойи, но её совсем немного, а есть ряд обычных рассуждений, довольно азбучных, существующих с момента появления интернета и коммуникаций.

          Читать дальше →
        • Недокументированный строчный тег «Это перевод, тупица!» на Хабре

            Всем известны проблемы трудного распознавания того, сам ли автор написал статью или лишь перевёл её. На Хабре с этим положением долго думали, как бороться, но осенью приняли все ранее предлагавшиеся меры:

            • Поставить вверху более заметную метку «Перевод»;
            • поставить перед статьёй открытым текстом ссылку на оригинал;
            • поставить внизу тоже сссылку на оригинал;
            • указать внизу открытым текстом автора оригинала.

            Всё уже почти хорошо, но с одним условием: если составитель не забыл вначале, ПЕРЕД публикацией на сайте, указать, что он публикует перевод. Если забыл — перевести публикацию в формат «Перевод» невозможно, только с удалением и опубликованием новой копии. Но уже могут быть комментарии и история просмотра, которую не хотелось бы терять.
            Что делать, если забыл?
          • Галерный хакатон

              Вдохновителем статьи послужила история о хакатоне и идея наблюдателя в комментарии.

              Все знают, как труден путь по прибрежным городам, где не всегда ветер попутный, поэтому нам помогает дружная команда галерщиков. Эти скромные труженики моря тихо скрипят на своих клавиатурах, в полуоткрытых кубиклах с одним-двумя Windows и мощными профессиональными вёслами в интерфейсе. Их вклад в наши проекты неоценим, и всё же, мы всегда думаем о том, как сделать его ещё весомее.

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

              Наша команда галерщиков очень дружна. Разлучить их может только увольнение. Именно про таких песни поют: связанные одной целью, скованные одной… И вот помочь бы им так же за два дня напрямик махнуть через море, а там бы наши воины постреляли бы львов. Обычно окольный путь по побережью занимает две недели, но ведь умеют же лодочники выкладываться и гнать напрямик. Казалось бы, нашим в чём разница?

              image

              Читать дальше →
              • +15
              • 7.4k
              • 7
            • Доработки шаблонизатора DoT.js

                Время зоопарка шаблонизаторов миновало, теперь вокруг бегают динозаврики MVC, а в них используются встроенные шаблонизаторы и билдеры компонентов. Но для замены старых менее удобных шаблонизаторов в Knockout и Backbone иногда нужны они, в основном, остановившиеся в развитии на уровне около 2014 года.

                Так случилось и с DoT.js. Поначалу заброшенный авторами примерно на год в 2013-м, он получил их внимание ненадолго, поднявшись с версии 1.0.1 до 1.1.1, и снова был заброшен (или стабилизирован, смотря как рассуждать). В связи с этим ещё в 2013 году понадобилось (делать клон DoT.js), а теперь — и апгрейдить его.

                Он — такой же быстрый, как и встроенный _.template() в Underscore/Lodash, но с улучшенным синтаксисом, при котором необходимость писать JS в шаблонах встречается нечасто, а в Underscor-овском — нужна всегда. Этим скобкам со скриптами даже придумали специальный термин: javascript encapulated sections (JES), и от них, в основном, избавились.

                Что получаем дополнительно?


                1. Структура шаблонизатора была переработана (в 2013-м, ссылка оттуда), чтобы лучше читалась и уменьшилось число декодирований функций;
                2. Тесты показали, что быстродействие в среднем не изменилось (колебания -3% — +10% в зависимости от параметров);
                3. Добавлена команда работы по структуре, аналогично работе по массиву;
                Читать дальше →
              • Не находите ли вы неудачной кнопку перехода на страницу номер 100?

                  Поговорим про интерфейсы и про то, что видим на этой ленте статей, прокрутив её вниз, до пагинатора.



                  Конечно, очевидно, что после кнопки с номером «8», ведущей на страницу номер 8 по стрелке, похожей на стрелку возле слова «Туда» должна идти кнопка, ведущая на страницу с номером 9.

                  Но вы удивитесь, увидев, куда она ведёт. Просто наведите мышь и посмотрите на адрес ссылки. «Очевидность» существует месяца 3 и мне удалось по ошибке нажать эту кнопку и сходить на сотую страницу раза 3. Стало понятно, что в этой кнопке что-то не так и в интернете кто-то неправ.

                  Поможем доказать это.

                  1. Почему вредно после кнопки «8» ставить кнопку со стрелкой, похожей на стрелку «туда», но ведущую не туда?

                  К примеру, вот очень похожая…

                • Раскрываем тему WebAssembly с Бренданом Айком

                  • Translation
                  (Прим. перев.: технологии asm.js и WebAssembly ещё не вышли в практическую плоскость, о них регулярно идут сдержанные сигналы с самых верхов Олимпа разработки веб-технологий (Mozilla, Microsoft, Google), но многие об их состоянии знают мало. Значит, самое время — узнать о них сейчас.

                  Представлено интервью Брендана Айка, сделанное 31 марта 2017 года Оно — на 1.5 часа, но 2-я половина — про проект браузера Brave, не относится к компиляторам JS), создателя Javascript и журналистов из SE Daily.

                  Читать дальше →
                • Кто выложил 10-миллионный комментарий? Тайны нумерологии

                    image8 января между 11:24 и 12:12 наше предприятие выпустило 10-миллионный комментарий. Ура. Смотрим статью, самую близкую к этому времени, и видим доказательство:

                    https://habrahabr.ru/post/319094/#comment_9999994
                    https://habrahabr.ru/post/319094/#comment_10000014

                    Как же найти сам комментарий? Расследование.

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

                    Но всё оказалось хорошо, и на удалении примерно 10 страниц назад по https://habrahabr.ru/all/ от этой даты, комментарий с этим номером был найден (сам пост от 3 января, а комментарий — на 5 дней позже).

                    https://habrahabr.ru/post/318938/#comment_10000000

                    Дальше видим, что автор комментария Kavabunga в этот момент написал свой ПЕРВЫЙ комментарий на Хабр, и тут же попал в «десятку».
                    Читать дальше →
                  • Способ борьбы со зверствующими анти-адблокерами, блокировщиками самих себя

                      Всё верно, слишком агрессивное поведение окружающей среды (производителей контента) приводит ко всё более жёстким попыткам цивилизации подчинить окружающий мир себе. В этом — естественная природа человека и человечества, поэтому незнание законов природы приведут контентчиков к тому, что их надёжно обезопасят. Чтобы они, наконец стали приносить пользу, а не рекламу разумным людям.

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

                      TL;DR: есть способ обойти агрессивные анти-адблокеры сейчас, в рамках существующих правил игры, в расширениях браузеров.
                      Читать дальше →
                    • Розовые мечты евролоббистов о цензуре на тему «1984»

                        Источник новости — статья депутата Европарламента из Германии juliareda.eu/2016/12/10-illegal-things от Пиратской партии на её собственном сайте, на котором она поднимает некоторые кричащие дела о лоббировании и следит за мероприятиями лоббистов. Особого внимания ИТ-сообщества заслуживает её последняя информация, пока что на уровне предложений в Европарламент (далее везде?). Не самый последний по должности еврокомиссар (по цифровой экономике и обществу) Гюнтер Эттингер на днях оставит свой пост, определявший интернет-политику ЕС и перейдёт на повышение — будет контролировать бюджет ЕС. Но венцом своего пути на текущей должности оставил удивительный законопроект, который, если будет реализован в полной мере, глубоко затронет привычные отношения в интернете и посеет новые надежды в сердца тысяч простых тружеников-копирастов по всему миру. Речь, фактически — о реформе авторского права.

                        Если кратко — что он предлагает. (Ранжирую по степени влияния на IT.)

                        * Github обяжут проверять все загрузки исходного кода на нарушение авторских прав;
                        * Wikipedia будет цензурироваться на загрузки фотографий;
                        * Вам нельзя будет развивать собственные реализации искусственного интеллекта на основе текстов и прочих данных, защищённых авторским правом (кроме НИИ в целях научных исследований);
                        * Запрет поисковикам на индексирование страниц даже в целях хранения данных (т.е. «для себя» тоже нельзя);
                        * Картинки нельзя куда-либо прикреплять, как в соцсетях сейчас, даже «для души», ибо копирайт;
                        * В твиттерах нельзя копировать авторские словосочетания, слоганы, заголовки;
                        * В соцсетях, конечно, нельзя копировать посты из блогов;
                        * Нельзя даже делиться ссылками (да, линками со сколь угодно короткими цитатами), это же копирайт, собственность авторов (можно, если с разрешения, за деньги или как-то ещё согласованно);
                        Читать дальше →
                      • Каникулы Василия или использование МТС ошибки учёта трафика для длительной блокировки счёта

                          По следам аналогичной публикации о технических ошибках систем, приводящих к ошибкам в расчётах с клиентами, публикую обещанную историю с МТС. Не реклама. :)

                          Был август. До 2-го курса студента Василия Задёрганова (персональные данные изменены) оставалось несколько дней. Он был доволен летним интернетом от МТС на тарифе «МТС Коннект-4» по услуге «МТС-Планшет» — 4 ГБ трафика в месяц. И оставался последний день услуги и последний нескачанный гигабайт.

                          «Эх, скачаю фильм, и укачу на последние дни на природу!» — безмятежно подумал Василий. У него было просчитано всё. Он знал истории об облапошенных велосипедистах-любителях, у которых из-за незакрытого велозамка на прокате массово списывают тысячу рублей. Он знал, что вернут деньги лишь избранным, кто хорошо и красиво напишет об этом и прославит сервис на всю страну. Но это — не его путь. Он сделал всё, чтобы не пострадать. Он — стратег.

                          1) заранее для интернета завёл отдельную сим-карту;
                          2) заранее оставил для подлых крохоборов лишь 20 непотраченных рублей на счёте; а мог и меньше; но верил им, что побрезгуют такой мелочью;
                          3) в Личном Кабинете отключил опции законного жульничества — автоматической оплаты сверхлимитного трафика по повышенному тарифу;
                          4) там же отключил опцию «передавать трафик на услуге сверх лимита».

                          Вы поняли, какая перестраховка? Это вам не тракторист Федя, которого вы в этом сезоне обули на рекламе. Кто-то бы успокоился на отключении первой опции, а тут ему — вторая, не автоматическая. Вася — не такой.

                          … До конца его сим-карты оставалась пара часов.
                          Читать дальше →
                        • Расширенный поиск Яндекса (и Гугла) с помощью установленного скрипта или в интерфейсе

                            В яндекс-поисковике, как и в Гугле, есть настройки расширенного поиска (по датам, документам, сайтам, стране, языку, ...) и специальные страницы для расширенного поиска. То и другое бывает неудобно из-за интерфейса — большого количества нажимаемых кнопок, кликов и движений. Для некоторых (частоиспользуемых) режимов поиска сделаны юзерскрипты с выбором одной из десятков кнопок в один клик. На экране видны лишь несколько стартовых кнопок, работающих как спадающие списки по наведению мыши.

                            Такой скрипт, когда-то бывший без спадающих списков, давно работал на страницах Гугла, и, судя по количеству скачиваний, приобрёл популярность среди англоязычных пользователей (есть выбор 5 языков интерфейса). Однажды подумалось, что его несложно будет перенести на Яндекс, и на выходных за пару дней адаптация и перекраска под цвета Яндекса была сделана, и теперь он представляется «целевой аудитории» — людям из IT, которым иногда приходится много искать и которым привычно устанавливать дополнительные скрипты и ходить по гитхабам.
                            далее
                            • +7
                            • 20.8k
                            • 4
                          • Анимация падающего снега на Canvas эффективнее анимации на DOM в несколько раз

                            • Tutorial
                            .В сравнении с нативным JS на элементах DOM, реализация анимационных алгоритмов на Canvas обычно производительнее во много раз. Это известный факт (но с особенностями для малого числа частиц, как выяснится позже), и он может найти реализацию так всем мешающего традиционного под НГ, но гонимого рациональными пользователями «падающего снега». Чтобы нагрузки было мало, в последние годы считается хорошим тоном «запускать» снег на сайте едва заметным, с минимальным количеством снежинок (5-15). Тут и эффект есть, и нагрузки на процессор почти никакой.

                            Поэтому, пока до НГ ещё несколько дней ещё зима, предлагаю устроить хакатончик по реализации лучших алгоритмов на канвасе и их аналогов на DOM, взяв за основу в основном древние нативные алгоритмы, которые как максимум обёртывались в плагин jQuery, чтобы было удобно подключать. Большая часть этих алгоритмов не соразмеряет нагрузку на процессор или сделана неэффективно, поэтому даже при малом числе снежинок грузят процессор на 100%. Вот пример обзорной статьи, где рассмотрены более 10 реализаций, не все, встречающиеся в природе. В дополнение, рассмотрим несколько избранных, чтобы получить задел на развитие алгоритма и реализацию его с хорошей эффективностью (получится ещё 5-6 вариантов). На этой основе можно построить доработку. Github с 12 демо (ссылки повторяются ниже) и несколькими алгоритмами.
                            подробности
                          • Firefox и iOS — разве это совместимо? Оказалось, что да

                              Вся проблема издавна была в том, что руководство Apple хотело видеть браузеры в iOS c рядом ограничений по движку (движок браузера — Webkit, рендеринг — UIWebView). Firefox никогда не делал браузеров на Webkit, но неудобство было ещё и в том, что сама Apple использовала более быстрый движок Nitro. В 2013 году по этой причине руководство Mozilla не планировало выпускать браузер в iOS. С версии iOS 8 политика несколько смягчилась — к Nitro допущены сторонние разработчики. Весь последний год мы получали сообщения о разработке Firefox под iOS. 2 месяца назад он появился в магазине AppStore для Новой Зеландии. Сейчас тестовый период прошёл, и Firefox для iOS версии не менее 8.2 доступен для установок по всему миру.
                              Далее
                            • Опубликованы jQuery 3.0 alpha и jQuery Compat 3.0 alpha

                              • Translation
                              (Перевод этого рассказа от авторов популярнейшей библиотеки будет весьма поучительным для всех, кто хотел бы держать руку на пульсе тектоники браузеров в свете решаемых проблем с парсингом DOM на данном этапе.)

                              Много воды утекло со времени последнего крупного релиза, и вы, конечно, заслуживаете обновлений. Поэтому мы рады объявить о выходе первой альфа-версии jQuery!

                              Несмотря на номер версии 3.0, мы ожидаем, что этот выпуск не доставит слишком много неприятностей при модернизации кода. Да, есть несколько критичных изменений, что оправдано сменой старшего индекса версии, но, надеемся, что эти переделки не повлияют на многих. Плагин jQuery Migrate поможет выявить проблемы совместимости кода. Также, ваши мнения об этой альфе нам сильно помогут, поэтому, пожалуйста, попробуйте её на существующем коде и плагинах!

                              Первый из релизов, jQuery 3.0, поддерживается новыми браузерами и IE 9+. Второй, jQuery Compat 3.0, поддерживается в IE 8+. Как бонус, оба релиза будут поддерживаться Яндекс-браузером, выпущенным в 2012-м.
                              Читать дальше →
                              • +36
                              • 23.6k
                              • 6
                            • Свой шаблон отклика-письма на HeadHunter (и moikrug) без Copy-Paste

                                Многим хорош сервис поиска вакансий hh.ru, но ищущий всегда найдёт, что усовершенствовать. К примеру, на сервисе есть поле для заполнения письма — ответа на вакансию, но нет элементарного шаблона оформления письма — заголовок, кратко о себе, ответы на требования по вакансии.

                                Если нет — надо сделать. Ведь специалист по JS не будет многократно заниматься Copy-Paste-операциями, когда знает, что их можно автоматизировать, даже не обременяя просьбами службы сайта. Есть такие инструменты, как пользовательские скрипты.

                                UPD 12.1.2016: Скрипт расширен на сайты career.ru (клон HH с той же клиентской базой), itmozg.ru, superjob.ru.

                                Вначале, конечно, пришлось покопировать, пока не выявились закономерности и не получился юзерскрипт hhFiller. Шаблон отклика, на мой взгляд, должен содержать:
                                1. Заголовок-приветствие. После него пойдёт сразу рукописный текст, живой ответ на вакансию в 2-3 или более строчек.

                                Читать дальше →
                                • +8
                                • 17.5k
                                • 3
                              • Кросс-публикатор статей — каким он должен быть?

                                  Давайте подумаем о том, для каких сайтов или соцсетей было бы полезно организовать кросс-публикацию своих (или размножение чужих, строго в рамках приличия, конечно) статей. Кросс-публикация — это генерация исходного образца статьи в форматах, подходящих для публикации на двух или нескольких не связанных между собой ресурсах.

                                  Это востребовано довольно часто по разным причинам: защита публикации от недоступности к прочтению на одном-двух ресурсах (из-за поломки сервера, бана администрацией или периода модерации), для повышения популярности своей публикации за счёт массовости (спама, но, конечно, добросовестно-дилетантского; о недобросовестном — чуть ниже), для экономии времени публикации, для сбора своих статей на каком-либо одном авторском ресурсе. Большой плюс будет и в том, что базу исходных образцов статей легко будет хранить в виде архива в копиях и восстановить при необходимости прочтения или повторных публикаций, даже если исчезли все другие прежние копии.

                                  Несомненно, это нужно для каждого ресурса вообще, но никто (или почти никто) этим не «заморачивается», потому что чаще всего вопрос решается методом «как вывезет» — или автор хранит тексты статей в архиве, или надеется на проверенную надёжность места публикации (сайт, не предвещающий годами своего краха, Google Wave или что-нибудь попроще и малоизвестнее). Часто и сами статьи теряют актуальность. В любом случае, текстов в любом оформлении и картинок к ним в архиве бывает достаточно, чтобы вопросом дублирования публикаций не задаваться.
                                  а как же, если грянет гром?
                                  • +10
                                  • 5.8k
                                  • 4
                                • Страница about:about в Firefox

                                    То, что иногда наблюдается в адресной строке пустой страницы «about:blank», для Мозиллы стало философией доступа к ресурсам браузера. Мало кто знает об этой философии, кроме просвещённых монахов, для которых адресная строка менее священна и более инструментальна, чем для остальных. Но трудно запомнить всё разнообразие свойств этой строки. Приоткрыть окно к просветлению помогает мантра «about:about». Сейчас, на момент версии 37, она открывает 34 варианта продолжений ссылок после двоеточия. Есть и недокументированные.

                                    Шутники потирают руки: можно вызывать самые натуральные озадачивающие странички минимальными усилиями. Но есть и ряд полезных страниц. Цель списка ниже — выделить долю полезных страниц для продвинутого пользователя браузера.
                                    Читать дальше →
                                  • Справочник методов console в JS

                                      Со времён систематизации методов объекта console прошло достаточно много времени, некоторые браузеры получили поддержку недостающих ранее методов. Таблица вызывает естественный интерес у разработчиков, поэтому — почему бы её не обновить, дополнив в одной статье описаниями? Github.
                                      Читать дальше →