Karhin’s Blog
Apps, Design and Music
Later ↑

Начал понимать разговорный английский

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

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

У меня есть несколько советов, которые, походу, работают. Думаю, если попробовать делать так же, то вы тоже на слух начнёте понимать, почему Pumped Up Kicks не такая весёлая песня, и сможете смотреть презентацию Эппла в оригинале.

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

Перевод слов

Это не имеет прямого отношения к тому, чтобы начать понимать на слух английский, но всё-таки.

На первом курсе в университете был год английского. Преподавательница просила давать определение словам на английском вместо перевода и соответственно пользоваться толковым английским словарём.

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

Самое прикольное, что это можно начать делать прямо сейчас без напрягов.

Если у вас айфон, то скачайте в настройках толковый словарь. Если заметили незнакомое слово, то лонгтапните на него и нажмите «лук ап» (опять эти мерзкие англицизмы в речи). В айос 15 появился ещё и транслейт, но это на крайний случай.

На андроиде придётся установить стороннее приложение, которое интегрируется в контекстное меню выделения текста. Например, переводчик от Яндекса.

С MacOS всё понятно, в Windows в браузер можно поставить расширения, которые будут по клику показывать перевод или значение слова.

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

Караоке

Когда слушаете песню на английском, открывайте её текст и синхронно читайте. Самое клевое, если у вас Эппл Мьюзик. Терпимо, если Яндекс. Соболезную, если Спотифай. Думаю с него перейти из-за отсутствия текстов песен (и ещё ущербное качество звука, но про это в другой раз), это какая-то мерзость в конце 2021 года.

Обновлено 20.11.2021: в последнем обновлении Spotify наконец-то появились тексты песен. К сожалению, выделение текста не работает и быстро посмотреть незнакомое слово не получится.

Делайте это пока едете на работу или учебу и обратно. Если не начнёте понимать английский, то точно узнаете, что, например, песню Roses нельзя было крутить по радио.

Кстати, про радио. Как-то услышал радиоведущая озвучивала чарт и представляла песню «Dance Monkey» со словами «песня про танцующих обезьянок снова возглавляет чарт». Не надо так 🙈

Боб Марли, конечно, говорил, что музыка не знает слов и люди всё и так понимают, но, думаю, что это не стоит воспринимать буквально.

Фича с поиском и словарями из предыдущего совета очень помогает.

Фильмы и сериалы 🎥

Просмотр видео на английском вызывает лютейший дискомфорт, который в разы сильнее того, который испытываешь, когда меняешь язык интерфейса в телефоне. Хорошая новость: он тоже проходит. Не так быстро, но проходит.

Раньше смотреть фильмы и сериалы на английском и ещё с субтитрами – это прямо больно-больно. Нужно было идти на торренты, интернеты не очень быстрые, короче, ОДИНИКСБЭЭЭТ ОЗВУЧКА КУБИК В КУБЕ и никакого тебе оригинала. Английская поисковая выдача очень зацензурирована, а мусорных сайтов больше в два раза.

Сейчас всё красиво, заносить доллары за подписки на фильмы и сериалы проще простого:

  • Эппл ТВ. Внезапно на английском из коробки и субтитры. Посмотрел Servant, See, Mythic Quest, For All Mankind в оригинале. Клёво, если есть время залипать в сериалы.
  • Кинопоиск HD. Много большого кино, можно выбрать английскую аудиодорожку и всё с субтитрами на двух языках.
  • IMDb недавно добавил в приложения для iOS и Android просмотр видео. Нужен VPN с американским IP, но сам сервис бесплатный. Много больших фильмов, только английский.
  • Netflix, HBO и всё остальное, что вы знаете, но я не пробовал. Там тоже, наверное, можно менять звуковые дорожки и включать субтитры.

Я смотрю в комбинации английская аудиодорожка и английские субтитры. В другие комбинации не очень верю.

Кто-то говорит, что этот способ вообще не работает, потому что мозг облегчает себе жизнь и аудио не воспринимает, как и движения губ при разговоре. Как по мне, так всё наоборот: работает сразу визуальная и звуковая память на слова и звуки.

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

Ещё можно смотреть YouTube и включать там английские субтитры. Новые видео с нормальным аудио, обычно, с нормальными субтитрами. Смотрите MKBHD вместо Wylsacom.

Книги? Статьи? Что ещё?

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

Кто-то, конечно, посмеётся с этого всего добра из-за его очевидности, но у меня нет вообще способностей к изучению языков, не считая языков программирования, и я не разговариваю на английском вообще в принципе. Я даже русский язык не знаю, Тимур подтвердит.

С помощью этих простых вещей я начал понимать разговорный английский. Тут главное совсем немного терпения и преодоления самого себя. Ещё важная вещь, которую понял – не ставьте себе временных интервалов, за который вы должны что-то сделать с языком, это всё приходит постепенно. Добавьте английский в свою жизнь и всё станет проще.

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

Стив Джобс про файловую систему в 2005 году

Если лень смотреть минуту, то там про то, что фотографии должны быть в приложении «Фото», а песни в приложении «Музыка», потому что они лучше умеют работать с этими файлами. Finder будет нужен только тем, кто с ним умеет работать.

Примерно к этому и пришли, не считая того, что приложение «Фото» в MacOS работает ужасно и фотографии приходится скидывать с телефона на компьютер через AirDrop, если он не тупит, а если тупит, то через Telegram 😬

Сейчас как-то дико представить, но попробую: достаёшь телефон, открываешь файловый менеджер, заходишь в документы, ищешь папочку «Музыка» и идёшь по пути «Джаз» → «50-70» → «John Coltrane» и наконец-то нажимаешь на «Blue Train», выскакивает всплывающее окно «Через что воспроизвести?». Ой, только не рассказывайте про то, что вы FLAC напираченный с торрентов только так и слушаете.

Кстати, приложение «Файлы» представили вместе с iOS 11 в 2017 году, но получить полноценный доступ к файловой системе можно только с джейлбрейком. Зато к iPad Pro можно даже подключить SSD.

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

Как слушать YouTube видео в фоне и смотреть картинку-в-картинке без подписки на iOS

Раньше веб-версия YouTube позволяла открывать видео в режиме картинка в картинке (Picture in Picture), но сейчас после перехода в этот режим видео мгновенно сворачивается.

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

И даже не нужно платить 6 баксов!

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

Для того, чтобы слушать видео в фоне до iOS 14 включительно, выведите его в режиме PiP, заблокируйте телефон, разблокируйте и нажмите на плеере Play. Не очень удобно, но бесплатно. В iOS 15 это поведение изменили и видео просто продолжают воспроизводиться даже после блокировки.

Технические подробности Artykul

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

Предыстория

Я делаю веб с 2013 года. Начинал в те времена, когда JQuery был модным (или выходил из моды, не помню), никто особо не делил разработку на фронт и бэк, JavaScript был мерзким, а PHP приятным. В общем, трава зелёная и мозг ещё чистый от академического программирования.

Что тут интересного? Ничего, веб самая лёгкая по порогу вхождения технология. Вот тебе Body, DIV, CSS классы, пару функций JS для работы с DOM и npm. Разобрался? Ты уже почти умеешь в веб и можешь даже деньги зарабатывать.

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

Основное содержимое веб-страниц

Слышали когда-нибудь про Facebook Instant Article? Google AMP? Yandex Turbo? Telegram Instant View? Ну в браузерах ещё кнопка такая есть, типа Show Reader View.

Reader View в Safari

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

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

При чём здесь эта предыстория?

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

Карточка в твиттере

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

Google, Facebook и Yandex не дурят себе голову и предлагают вам самим разобраться с вашим сайтом и отдать содержимое в нужном им формате.

С телеграмом веселее. Ничего перевёрстывать не нужно, достаточно разобраться в их расширении для XPath и написать шаблон, который занимает десяток строк. Только вот будет ли у вашей ссылки кнопка Instant View и не зря ли вы писали шаблон, решат модераторы платформы. Уточка говорит, что зря 🦆

С Reader View интереснее. Исходный код оригинальной реализации в Firefox под названием Readability.js доступен любому желающему. В Safari используется его модификация, если они там ещё всё не переписали.

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

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

А ещё в HTML недавно завезли прикольную штуку под названием Custom Elements. Вы можете сами определять свои собственные теги. Эту технологию можно использовать прямо сейчас. Если завтра кому-то придёт идея использовать её в крупных библиотеках, типа Vue или React, можно будет услышать громкий хруст семантической вёрстки, вы же помните про низкий порог вхождения? Readability на таких сайтах не работает, проверял.

Статья в Artykul, оригинальная страница в Safari и в режиме Reader View

Есть ещё машинное зрение и нейронные сети. Прикинул, как это может работать:

  • хром рендерит страницу;
  • некоторый модуль X просматривает страницу и возвращает координаты хрому с основным содержимым;
  • хром преобразует кусок DOM дерева в этих координатах.

Звучит минимум дорого, если у тебя нет чемоданчика с баблом или проект так и останется навсегда на локальной машине.

Приложение и сервис

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

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

  • Вся обработка происходит на стороне сервера, клиенты не пыхтят над разбором и не делают лишних HTTP запросов.
  • Пользователи добавляют сайты, где есть RSS или Atom каналы. Мы поддерживаем любой сайт, который поддерживает эти технологии.
  • Из RSS или Atom извлекаются только ссылки на статьи и небольшая часть метаинформации. Содержимое фидов разработчики часто режут и оставляют только анонсы, поэтому мы на них не ориентируемся.
  • Метаинформация статей извлекается комбинировано из потоков, веб-страниц и содержимого статьи, если его удалось определить. Последнее слово всегда за веб-страницей.
  • Содержимое извлекает полноценный браузер, которому можно скармливать даже сайты, где страницы рендерит JavaScript.
  • Содержимое статей из HTML преобразуется в JSON с нормальной типизацией (абзацы, заголовки, изображения и так далее), который значительно легче исходной разметки.
  • По моим замерам, статьи в Artykul в 15 раз меньше, чем исходные HTML документы.
  • Алгоритм обладает эффектом “памяти”. Чем больше статей обрабатывается с веб-сайта, тем корректнее определяется основное содержимое (при условии, что оно определяется корректно в большинстве случаев).

Для владельцев сайтов и разработчиков

Если вы ведёте блог или вы владелец новостного сайта, давайте дружить. У нас есть некоторые идеи с интеграцией в нашу систему.

Например, мы можем оповещать ваших подписчиков про новые статьи. Есть варианты с более тесной интеграцией, например, счётчики комментариев и активные ссылки на них; дополнительные функции для общения с аудиторией в нашем приложении. Это, наверное, было бы полезно и вам, и вашим подписчикам. А нам интересно, что из этого может выйти.

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

Если вам интересно, свяжитесь со мной.

Привет, мир!

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

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

Писать на чужих платформах про свои проекты так себе: корона с головы магистра упадёт. Могу же сделать свою собственную со всеми своими хотелками и блэкджеком.

Предыдущий блог был на Jekyll, а в качестве хостинга использовался халявный GitHub Pages. Я бы, наверное, снова в нём разобрался, написал бы шаблон и пару плагинов, но вспомнил, что уже год или два пылится собственный редактор, который должен был заменить вузивуг в Ghostly, но там руки не дошли и вообще как-то всё заглохло с перезапуском паблишинга.

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

Earlier ↓