Выключаем звук на сайтах в Google Chrome на Windows и Android.

Некоторые новостные сайты настолько пренебрежительно относятся к своим посетителям, что не стесняясь запускают ролики со звуком во время просмотра. Я абсолютно уверен, что они в курсе, что поступают, как последние упыри, но а я научу вас с этим бороться в браузере Google Chrome.

Windows

  1. Нажимаем Ctrl-L
  2. Вбиваем в строку chrome://settings/
  3. В поисковой строке вбиваем настройки сайтов и переходим в найденный пункт
  4. Мотаем вниз, открываем Дополнительные настройки контента и затем Звук
  5. В разделе Запретить сайтам воспроизводить звук давим кнопку Добавить
  6. Добавляем сайты lenta.ru и moslenta.ru, чтоб их маркетологи были здоровы, мать их

Android

  1. Переходим в Настройки из меню справа на три точки
  2. Затем пункт Настройки сайтов
  3. Заходим в пункт Звук
  4. Давим Добавить исключение
  5. Добавляем сайты lenta.ru и m.lenta.ru
  6. Шлём лучик поноса авторам Ленты
  7. PROFIT

Ну и не мог пройти мимо цитаты из книжки «HTML5 для веб–дизайнеров»:

Краниопластика — титановый апгрейд организма

Слабонервным беременным детям со слабой психикой и желудком без чувства юмора просьба убраться от экрана. Контент строго 18+, возможны дикпики, невыносимая тяжесть бытия и груз прожитых лет. Я вас предупредил!

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

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

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

Операция не считается особо сложной, но рискованная, как и любое хирургическое вмешательство. Расскажу, как всё проходило у меня.

Перво-наперво, я созрел морально. Это сложно, это нервно, но я справился, потому что выбора нет. Затем записался к нейрохирургу на приём в Елизаветинской больнице. Для дозревания потребовалось около двух лет.

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

После получения разрешения, мне назначили дату госпитализации и туда я пришёл с уже побритой головой. Заселился в палату, взяли анализ крови, дополнительно пообщался с анестезиологом, запретили ужинать и есть до операции. Разрешили пить воду до полуночи, но без фанатизма. Утром был разбужен фразой медсестры: У тебя операция в девять! Был снова побрит, надели компрессионные чулки первого типа против тромбоза, сняли всё остальное и повезли в операционную номер один.

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

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

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

Кто-то возразит: «Вот прицепился к катетеру Фолея, мне делали и всё нормально было», а я отвечу: «вали нахер, извращенец, и больше сюда не приходи, нам не по пути, грязный овцеёб!»

Обстановка в нейрохирургическом отделении номер два местами напоминает помесь игры Outlast и психушку. Специфика такова, что люди с проблемами в голове в виде кровоизлияний и опухолей сначала неадекватны из-за своего недуга, а затем из-за последствий оперативного вмешательства в мозги. А значит увидеть мычащего зомби в окровавленной шапочке из бинтов в своей палате посреди ночи обычное дело. Как правило медперсонал всё время начеку, поэтому зомби быстро ловят и отводят в свою палату. Разумеется, встречаются товарищи, которые пробухали свои мозги и потеряли человеческий облик. И они нам совсем не товарищи! Таким уже всё равно и их обычно переводят прямиком в дурку. В прошлый раз на отделение было три палаты: женская, мужская и мужская для буйных. В дурку уезжают из третьей. На этот раз палаты для буйных не было.

В прошлый визит, у нас был чокнутый дед, который ходил голый в одних подгузниках и босиком с важным видом по палатам и задумчиво говорил: «Тааак!». У него был такой серьезный вид, что мы дали ему кличку Главврач. Сначала он был вроде нормальный, но посреди ночи начал ловить кикимору, которая сидела у него на кровати и хотела его задушить. В итоге через пару недель увезли деда в психушку.

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

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

И вы можете меня спросить:, что я делал две с лишним недели в больнице после операции, а я отвечу: ходил с важным видом, чтоб остальные не заподозрили, что я нормальный.

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

Между прочим, результат операции поразительный — череп теперь ровный, лишние рубцы и бугры со шрама убрали. Хочу сказать огромное спасибо Андрееву Станиславу Иосифовичу за проделанную работу!

А на сегодня всё. Ставьте лайк, подписывайтесь на канал, нажимайте колокольчик где-нибудь в другом месте.

Знакомимся с полезными инструментами STL — std::remove() и std::remove_if()

Добрый день, всем привет!

Снова в эфире рубрика «Вы не спрашивали, но мы отвечаем», раздел «Программирование», глава «Что нового я узнал в сейчас лет».

Например, не так давно я узнал, что std::unordered_map не сортирует данные в отличие от std::map. А много-много лет назад (в 2007-м году) нам пришлось реализовывать бинарный поиск, чтобы ускорить вставку элементов в std::map (там жил кэш текстур) вместо того, чтобы взять std::unordered_map. Наш просчёт немного оправдывает то, что мы были молоды, неопытны и std::unordered_map появился спустя пять с лишним лет после описываемых событий.

Вообще, я не отношусь к тем людям, которые ежедневно читают свежайший стандарт C++, подчеркивая карандашиком важные места. Скорее, я начинаю читать стандарт, когда нужно найти решение текущей задачи. Так, например, я совершенно случайно наткнулся на std::enable_shared_from_this, когда просматривал код нашего проекта, поминая тимлида нехорошими словами . Там был метод типа make() у класса, который должен вернуть std::shared_ptr от экземпляра этого класса. Если вы наследуете класс от std::enable_shared_from_this, то у вас появляется метод shared_from_this(), и дело в шляпе. Поскольку это было пять лет назад, уже не помню всех подробностей, но сначала было не очень, а потом резко стало хорошо! )

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

auto iter=data.begin()
while(iter != data.end()) {
    if (condition(*iter)) {
        iter = puf(data, iter);
    else {
        ++iter;
    }
}

Вся упомянутая в статье магия с перемещением в конец массива и удалением происходит в puf(). ЗдОрово, правда?

Оказывается, есть метод лучше, и имя ему — std::remove_if(), а самый интересный момент, что этот метод не удаляет элементы, а перемещает их в конец массива, возвращая итератор на начало этого кладбища погибших элементов. Между прочим, эксперимент показал, что после итератора лежит мусор.

С новыми знаниями, удаление элементов из контейнера будет выглядеть так:

auto iter = std::remove_if(data.begin(), data.end(), condition);
data.erase(iter, iter.end());

Что является более продвинутым вариантом и пишется короче, с чем я вас и поздравляю!

Фунция std::remove_if() удаляет элементы, для которых условие истинно, а std::remove() удаляет элементы с конкретным значением.

Про Турцию в целом и отдых в Алании в частности

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

Турция. Панорама Алании

Жалобы

Для ЛЛ: обратный вылет задержали на 12 часов без каких либо компенсаций.

1. Турецкие авиалинии Turkish Airlines

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

2. Туроператор Пегас Туристик

Во время трансфера на вылет, развернули автобус и вернули всех туристов обратно без объяснения причин, при этом водитель ни русского, ни английского не знает. На кой чёрт нанимают водителей для трансфера иностранных туристов без знания языков для меня загадка. Цитирую водителя: «проблемо, но инглиш» и чемодан на улицу херак. Общались с помощью непереводимой игры слов и администратора отеля, о котором будет ниже. Плюс к этому хочу отметить отельного гида, в обязанности которой входит лишь впаривание экскурсии по цене примерно вдвое обычных. Экскурсии категорически рекомендую покупать на улице: в итоге вас заберёт автобус и привезёт к тем, кто купил её дороже у отельного гида.

3. Турагентство АнексТур

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

4. Отель Сариташ

Захотели доплаты (30$) при вселении, чтобы был вид на море. Убрались в номере (плохо) ровно один раз за две недели после третьей жалобы на ресепшн. Постельное бельё поменяли только на десятый день. Каждый завтрак/обед/ужин организовали очередь за горячей едой (кости куриные или жареная рыба, яичница и блинчики на завтрак). Столовка почему-то вызывала стойкую ассоциацию с фильмом Платформа. К счастью, мы были на первом уровне. Но надо отдать должное: блинчики были вкусные и администратор не оставил нас без горячей пищи во время ожидания трансфера: номер для поспать не дали — авиакомпания/туроператор пожалели компенсировать €45, но поесть обед, ужин и напитки — пожалуйста.

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

Экскурсии

Среди отдыхающих нам встречались русские, украинцы, молдаване, поляки, немцы, англичане. Плюс к этому общались с узбеком, норвежцами и иракцем из Дании. Конфликтов на тему Украины ни с кем не возникало. А у норвежцев, как и положено северному народу, был с собой лёд!

Экскурсии брали у эксцентричного Альберта 5★ и Тимура — турка из Оренбурга. Альберт 5★ говорит на английском, его коллега Максим на русском. Тимур знает русский в совершенстве. Будете заказывать экскурсию с оплатой по частям: требуйте, чтобы оставшуюся сумму писали в турецких лирах, иначе придется заплатить на месте больше, чем рассчитывали. Про каждую экскурсию напишу отдельно.

1. Хамам (Альберт 5★, $20 за двоих)

Многие рекомендуют посетить хамам сразу после прибытия, чтоб загар лучше ложился брат. В назначенное время нас посадили на измену к двум джигитам, которые знают только турецкий, в старый рыдван и увезли в неизвестном направлении вдоль моря в сторону Сирии. Километров через 10-15 мы приехали в подвал/автостоянку за шлагбаумом возле какого-то отеля, где собственно находился хамам. Было несколько тревожно. Нам предоставили шкафчики для личных вещей. После переодевания полежали в парилке, потом в парной, затем нас хорошенько потерли скрабом и после сделали мыльный массаж, затем чай с крендельками, маска глиняная на лицо и, когда мы вконец разомлели: массаж с маслом. В итоге, те же джигиты на том же рыдване отвезли нас обратно. Мне всё понравилось, супруге тоже. Узнал, что левая рука у меня гнётся хуже правой — пойду у ревматолога спрошу, как с этим быть. Хамам рекомендую к посещению.

2. Катамаран (Альберт 5★, $40 за двоих)

Включает в себя путешествие на лодке и купание. Проблема в том, что с маршрутами для лодок в той части Турции наряженка, поэтому в 10:30 из порта стартует флотилия из 12-ти одинаковых посудин и идут они все по одному и тому же маршруту, в котором всего семь потенциальных мест для купания. Нам не повезло и купаться мы останавливались всего два раза по 15 минут и один из них в грязной воде. Питание включено, кола, фанта, спрайт безлимит, алкоголь за деньги.

3. Джиппинг (гид туроператора, $70 за двоих)

Катания на открытых джипах (Land Rover Defender) по местным просёлочным дорогам с заездом в местную деревню за покупками, потом везут покушать и искупаться в бассейне. Ушлый турок хотел нас нагреть во время обеда: вместо 250 турецких лир насчитал €11 или 295 лир за напитки, но супруга убедила его в обратном. Причём тут евры никто не понял, уговор был про лиры. Будьте внимательны. Катания на джипах сопровождаются обливанием водой других джипов и пассажиров в них из бутылок — получается очень весело. Рекомендую отдельно джипы не брать, а выбрать экскурсию в Сападере каньон — получается тоже самое. В конце вам предлагают купить набор фотографий и видео о поездке за $25.

4. Судно Relax (Тимур, $50 за двоих)

С одной стороны тоже самое, что Катамаран, а с другой народу поменьше и купаться разрешают по 40 минут вместо 15-ти. Плюс музыки поменьше и народа. Остановок было, вроде, четыре. Я настолько расслабился, что в первый раз обгорел. На судне даже есть своя маленькая толстая собачка.

Судовая собачка

Никакой суеты, релакс как он есть и прыжки в воду с третьего этажа (я лично только со второго прыгал, выше уже сцу). Рекомендую.

5. Каньон Сападере (Тимур, 1000₺ за двоих)

Почти тоже самое, что джиппинг, но машин одновременно семь-восемь вместо трёх и поливать водой становится веселее и чаще. Там мы познакомились с харизматичным дедом из Швейцарии, который умеет танцевать руками, держась одной ногой за джип. Как зовут — не знаю. Наверно Клаус, мне кажется всех дедов в Швейцарии зовут Клаус и говорят они на швейцарском языке, который очень уж похож на немецкий.
Швейцарский дед, возможно, Клаус.
В конце экскурсии так же предлагают фотографии и видео за $20, но нам сделали хорошую скидку, как друзьям Тимура.

6. Квадроциклы (Тимур, $35 за один байк плюс пассажир)

Квадроциклы запомнились тем, что не вся экипировка включена в стоимость: только шлем и шапочка под него. Не хочешь пыль глотать — плати за бандану, не хочешь камнем в глазик — плати за очки. Заранее об этом Тимур упомянуть забыл. А так два заезда с перерывом в 15 минут по пыльным дорогам в лесу возле бетонного завода. Грязное потом всё: ухи, глаза, нос, шея, колени, но всё равно довольно интересно. Если любите такую технику, как я, то рекомендую. Помните про экстра расходы: не забывайте в отеле солнцезащитные очки — они вам точно пригодятся и купите заранее бандану, в других местах она дешевле в два-три раза.

Итого

Турки много и часто курят. Я хоть и бросил в 21-м году (стаж 25 лет), но от табачного дыма до сих пор кайфую. Ещё в Турции любят котиков и чёрный чай.

Котёнок спит на скамейке, парк Ататюрка, Алания, Турция

Деньги брали с собой в наличных долларах, которые были накоплены ещё в довоенное время. Дополнительно переводили себе деньги через приложение от компании CONTACT по грабительскому курсу. Инфляция в Турции бешеная: фуникулёр был 160₺, через день — 190₺, а в 2018 стоил всего 90₺. За один доллар сначала давали 22.83₺, через две недели уже 24₺. Так что нашему рублю ещё есть куда стремиться. Здорово, правда?

Личинки шелкопряда, 1940 год, Алания, Турция

Несмотря на всё выше перечисленное, отпуск в целом понравился. Единственное тёмное пятно: это задержка рейса на 12 часов и в корне неправильные действия всех к этому причастных, в остальном мы отдохнули, наелись и накупались.

Отдельно хочу поблагодарить компанию Мегафон за отличную работу накопленных дней роуминга.

И раз уж вы дочитали до этого места: самый вкусный суп Том Ям делают в ресторане Mai Thai в Мурино, не благодарите. Заказывайте на кокосовом молоке — не ошибётесь.

Пару слов про компьютерный звук

Компьютерный звук в компьютере представлен в виде (сюрприз-сюрприз!) массива чисел. Минимальная единица звука в компьютере — это семпл — одно число. Частота дискретизации — это количество семплов в одной секунде. Всем известная цифра 44100 — это всего лишь сорок четыре тысячи сто семплов в секунду. Семпл может быть в разных форматах и их достаточно много, чтобы описывать в этой статье. Лично я встречался с форматом float32 и с одним байтом (std::uint8_t) на семпл.

Расскажу в общих словах алгоритм проигрывание звука на компьютере. Я так делал, друзья делали всем понравилось и, в целом, везде одинаковый принцип. Алгоритм такой:

  1. Создать два буфера (A и B) в нужном формате
  2. Заполнить буфер A семплами
  3. Отдать буфер A на проигрывание звуковой карте
  4. Заполнить буфер B семплами
  5. Отдать буфер B на проигрывание звуковой карте
  6. Перейти к шагу 2.

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

Буферов должно быть не меньше двух, но может быть и гораздо больше. Как правило буфер для проигрывания — это указатель на кусок памяти и его длина в семплах или байтах. Про размер буфера ничего не скажу — я встречал размер буфер как 512 байт, так и миллион (один мегабайт) и все работали вроде бы одинаково. Возможно, кто-нибудь знает тру размер буфера и будет так любезен, чтобы написать о нём в комментариях.

«А как же второй канал, стерео и звук вокруг?», — спросит внимательный читатель. Лично я сталкивался только со стерео звуком, поэтому про пяти и более канальный звук не расскажу. Семплы для стерео звука располагаются в буфере interleaved, по очереди: LRLRLRLR. А значит для стерео звука количество семплов на секунду в буфере удваивается. И на одну секунду для частоты 44100 надо уже 88200 семплов.

Блог Евгения Жирнова