Перейдём к другому разделу данного очерка – истории распространения эпидемических болезней на Руси. С этим разделом древнерусской медицины связаны два любопытных момента. Первый: миф о том, что на Руси эпидемий не было, а если и были, то не охватывали широких слоёв населения. Второй: в связи со слабым развитием естественнонаучных и медицинских знаний, народное сознание породило удивительный мифологический материал, объясняющий происхождение инфекционных болезней, аналогов которому нет ни у одного народа мира. Но обо всём по порядку.
Пользователь
Эффективный поиск XSS-уязвимостей
Про XSS-уязвимости известно давным-давно — казалось бы, нужен ли миру ещё один материал о них? Но когда Иван Румак, занимающийся тестированием безопасности, поделился методологией их поиска на нашей конференции Heisenbug, реакция зрителей оказалась очень положительной.
И спустя два года у этого доклада по-прежнему растут просмотры и лайки, это один из самых востребованных материалов Heisenbug. Поэтому теперь мы решили, что многим будет полезна текстовая версия, и сделали ее для Хабра.
Под катом — и текст, и видео. Далее повествование идет от лица Ивана.
Нейросети против пылесоса, или Как мы убрали лишний шум в звонках ВКонтакте
Как-как, с помощью магии нейронок, конечно. А если серьёзно, то в этой статье расскажем, как эволюционировали технологии шумоподавления и улучшения речи, какие есть варианты, чтобы собрать своё решение, и какой сетап получился у нас.
Как собрать свой Lighthouse
Чем интенсивнее наш feature delivering, тем быстрее падает производительность. И, конечно, приходит время автоматизировать процесс слежения, чтобы просадка не дошла до прода или даже staging-окружения.
Про прод-мониторинг, оптимизацию и ручной анализ производительности легко узнать на web.dev. Но по автоматизации слежения за производительностью до того, как фичи покатятся в прод, информации не так уж много. Сегодня расскажу, как для профилирования собрать практически свой Lighthouse, чтобы проводить performance-тесты и успешно бороться с просадкой в работе команды фронтендеров.
Тайна списка шумерских царей. Часть 2. Плуг судьбы
Продолжаем разгадывать тайны списка шумерских царей. Тайны глиняной призмы с клинописным текстом, созданной четыре тысячи лет тому назад. В первой части было описание самой загадки и рассказ о тех астрономических инструментах, которые пришлось создать, чтобы подступиться к решению. Если вы пропустили начало, то можете читать сразу отсюда. Хотя я, конечно, рекомендовал бы заглянуть в первую часть, чтобы узнать историю самого списка и понять, почему его разгадка принципиально важна для понимания всей шумерской истории.
Итак, посмотрим на начало царского списка, на тех царей, что правили до потопа.
Популярная лингвистика. Часть 2. Шедевры языкостроения
Приглашаю окунуться в мир "языков Фаберже", — языков, придуманных для эстетики, пущего реализма или шутки ради. Степень их завершенности зачастую зависит лишь от одного-двух человек (если такое намерение вообще имело место), и о практическом применении таких языков почти никогда речи не идёт. Но познакомившись с ними поглубже, можно узнать много интересного и подивиться изобретательности их авторов. Среди этих артлангов можно встретить наречия Средиземья и говоры Вестероса, таинственные инопланетные диалекты и компактный словарь Эллочки-людоедки.
Откуда есть пошел дотракийский язык
Начнем с языков мира "Песни льда и пламени" Джорджа Мартина. Сам Мартин свои языки не прорабатывал и они так и остались бы воображаемыми, но на помощь пришла телевизионная сеть HBO с идеей высокобюджетного сериала "Игра престолов". И так как в любой области есть свои специалисты, то решено было обратиться за помощью к Обществу создания языков. Конкурс выиграл Дэвид Питерсон, американский лингвист, который уже имел богатый опыт в создании искуственных языков.
Как улучшить распознавание русской речи до 3% WER с помощью открытых данных
Меня зовут Николай, когда в 2009 году я защищал диссертацию по распознаванию речи, скептики мне говорили, что слишком поздно, так как Microsoft и Google уже “всё сделали”. Сейчас в SberDevices я обучаю модели распознавания речи, которые используются в семействе виртуальных ассистентов Салют и других банковских сервисах. Я расскажу, как обучил модель распознавания речи, используя Common Voice и недавно открытый датасет Golos. Ошибка распознавания составила от 3 до 11 % в зависимости от типа тестовой выборки, что очень неплохо для открытой модели.
Не так давно наша команда подготовила и опубликовала общедоступный датасет Golos. Почему встал вопрос об обучении и публикации акустической модели QuartzNet? Во-первых, чтобы узнать, какую точность достигает система распознавания речи при обучении на новом датасете. Во-вторых, обучение само по себе ресурсоёмкое, поэтому сообществу полезно иметь в открытом доступе предобученную модель на русском языке. Полная версия статьи опубликована на сайте arxiv.org и будет представлена на конференции INTERSPEECH2021.
Алгоритм для рейтинга комментариев, поощряющий хорошие аргументы
Сайты вроде Хабра, Пикабу, Реддита, и Hacker News имеют древовидные системы комментариев к постам. Зарегистрированные пользователи могут голосовать за комментарии. Сайты используют рейтинги комментариев двумя способами:
- Управляют вниманием читателей комментариев. "Лучшие" комментарии отображаются сразу под постом, "худшие" - в подвале. Хабр почти не управляет вниманием читателей: он лишь блюрит "плохие" комментарии, но не переупорядочивает их. Впрочем, я (как наверное и многие другие читатели) часто листаю комментарии только цепляясь взглядом за двузначное значение рейтинга.
- Дают какие-то плюшки авторам "хороших" комментариев. Например, в некоторых сабреддитах нужно иметь определенный рейтинг комментариев в данном сабреддите чтобы опубликовать пост.
Кроме того, рейтинг комментариев, естественно, влияет на их авторов: положительный рейтинг поощряет авторов писать больше таких комментариев, а отрицательный - меньше. Таким образом, рейтинги комментариев еще неявно влияют на дискуссию на сайте.
Nuxt.js и поисковики. Решение проблем с SЕО для Google и Yandex
Пришлось мне как-то столкнуться с одной проблемой, а именно с проблемой, которая связана с отдачей ошибки после выката разных обновлений созданных на Vuejs + Nuxtjs в проде.
Данная ошибка возникает чуть меньше чем на минуту, но роботы кэширует это дело на всех страницах примерно на дня 2-3, из-за этого поисковиками отдаются старые мета-данные и как следствие сайт проседает в выдаче.
Надеюсь мое решение поможет многим, кто столкнется с такой же проблемой и он не будет тратить на это так много времени как я, ведь такая проблема возникает часто, если используешь Nuxt.js в режиме SSR, а описания ее решения в интернете я так и не нашел.
Данное решение уже помогло четырем компаниям избавится от этой ошибки.
Что же происходит и почему возникает такая ошибка?
Я начал разбираться. Первое что я сделал, начал анализировать, как же именно происходит процесс работы при SSR. Да, я знаю как именно он работает, но есть одна вещь..как в одной юмористической передаче.
Кто и как поломал Землю, или откуда возникли планетарные горные хребты и разломы
В предыдущей статье Пространственные спектры и фрактальность рельефа, силы тяжести и снимков мы уже рассмотрели фрактальность рельефа и поля силы тяжести и показали, как она возникает в относительно тонкой и хрупкой земной коре толщиной от 5 км под океанами и до 100-150 км под материками. Также мы вычислили, что под корой находится слой упругий, так что верхний масштаб фрактальности ограничен примерно 200 км. При этом, мы наблюдаем разломы и горные хребты планетарного масштаба, пересекающие моря и океаны. Очевидно, что планетарные структуры масштаба десятков тысяч километров никак не могут быть объяснены явлениями в земной коре масштаба десятков-сотен километров, хотя все эти структуры самоподобны, то есть фрактальны. Таким образом, именно планетарные структуры являются первичными и воспроизводятся на меньших масштабах при тектонических процессах за счет хрупкости земной коры. Сегодня мы поговорим о том, откуда возникли эти первичные структуры, или кто и как «поломал» Землю.
Слева направо приведены следующие изображения Земли: магнитное поле (EMAG2), гравитационное (Sandwell & Smith), рельеф ( GEBCO 2020 Bathymetry). Смотрите HOWTO: Visualization on The Globe
Что такое дружба после 30? (Теория взрослой жизни)
Дружба — атрибут детства. Это не значит, что дружбы не может быть во взрослой жизни — очень даже может, но при определённых условиях, которые становятся понятны, если разобраться в разнице между детской и взрослой ролями человека в обществе.
Человек — существо социальное в том смысле, что «человечность» — то есть, то, что отличает человека от животного, как её ни назови (личность, душа, personality) возникли в процессе эволюции Homo как коллективного существа. Животные, даже стайные, действуют автономно — исходя из заложенных инстинктов и приобретённых навыков. Приматы вида Homo в процессе эволюции развили способность предсказывать поведение других членов группы, чтобы корректировать своё поведение в реальном времени. Феномен личности — то есть, предиктивной модели поведения других членов группы — возник как побочный эффект подобного усложнения взаимодействия. Self-awareness — то есть, распознание себя как личности, постройка предиктивной модели самого себя — эволюционный пик этого процесса, с которого, собственно, «человек» (то есть, «не-животное») как феномен и начался.
Тайна списка шумерских царей. Часть 1. Машина времени
На рубеже четвертого и третьего тысячелетия до нашей эры на Земле возникли две первые цивилизации. В долине Нила после объединения верхнего и нижнего Египта образовалось Египетское царство, а в междуречье Тигра и Евфрата появились города-государства, объединенные общей культурой, которые мы сегодня называем Шумером. Одновременно с появлением этих цивилизаций возникли две системы развитого письма — египетские иероглифы и шумерское письмо, которое позже превратилось в клинопись.
Если древний Египет со своими памятниками всегда был на виду, то о существовании шумеров наука узнала только в середине XIX века. Проделав огромный труд и расшифровав аккадскую клинопись, историки внезапно столкнулись с неожиданной проблемой. Часть клинописных текстов никак не получалось прочитать. Знаки были те же, но смысл не складывался. Сначала грешили на тайнопись жрецов, но потом поняли, что на самом деле столкнулись с другим более древним языком, письменность которого совпадала с аккадской. Так начался новый виток расшифровки клинописи, который в итоге привел к открытию великой шумерской цивилизации.
Игровая экономика: игры «free-to-play»
Статья расскажет о том, как работают F2P-игры и что можно сделать для повышения отдачи от них.
Подробно обсудим следующие вопросы:
→ Удержание как самый важный показатель для долгосрочной перспективы.
→ Основы треугольника игр-сервисов — рабочей модели, которую я призываю использовать в играх-сервисах: регулярные обновления контента, события в реальном времени и эффективный мерчандайзинг.
→ Метафора экономического напряжения в F2P-играх и некоторые методы, которые позволяют поднять этот показатель и увеличить доход.
→ Влияние степенного закона распределения в отношении вовлеченности и трат игроков, а также ранее не публиковавшиеся реальные данные из игр, с которыми я работал.
Vue.js и слоистая архитектура: вынесение бизнес-логики в сервисы
Когда нужно сделать код в проекте гибким и удобным, на помощь приходит разделение архитектуры на несколько слоев. Рассмотрим подробнее этот подход и альтернативы, а также поделимся рекомендациями, которые могут быть полезны как начинающим, так и опытным разработчикам Vue.js, React.js, Angular.
В старые времена, когда JQuery только появился, а о фреймворках для серверных языков лишь читали в редких новостях, веб-приложения реализовывали целиком на серверных языках. Зачастую для этого использовали модель MVC (Model-View-Controller): контроллер (controller) принимал запросы, отвечал за бизнес-логику и модели (model) и передавал данные в представление (view), которое рисовало HTML.
Объектно-ориентированное программирование (ООП) на тот момент только начинало формироваться, поэтому разработчики зачастую интуитивно решали, где и какой код надо писать. Таким образом, в мире разработки зародилось такое понятие, как «Божественные объекты», которые первоначально отвечали практически за всю работу отдельных частей системы. Например, если в системе была сущность «Пользователь», то разработчику следовало создать класс User и в нем писать всю логику, так или иначе связанную с пользователями. Без разбиения на какие-то ещё файлы. И если приложение было большим, то такой класс мог содержать тысячи строк кода.
Практическое руководство по именованию классов, функций и переменных
В этой статье рассказано о методе именования классов, функций и переменных, который позволяет улучшить читаемость вашего кода.
Понимаем красно-черное дерево. Часть 1. Введение
Довольно долгое время я воевал с красно-черным деревом. Вся информация, которую я находил, была в духе "листья и корень дерева всегда черные, ПОТОМУ ЧТО", "топ 5 свойств красно-черного дерева" или "3 случая при балансировке и 12 случаев при удалении ноды". Такой расклад меня не устраивал.
Мне не хотелось заучивать свойства дерева, псевдокод и варианты балансировки, я хотел знать: почему. Каким образом цвета помогают при балансировке? Почему у красной ноды не может быть красного потомка? Почему глубину дерева измеряют "черной высотой"?
Ответы на эти вопросы я получил только тогда, когда мне дали ссылку на лекцию про два-три дерево, с которого мы и начнем.
Эта статья разделена на 3 логические части. Я рекомендую прочитать их в указанном порядке. Первая часть (данная) будет направлена на введение в кчд и знакомство с ним. Во второй части мы поговорим о балансировке и вставке в кчд. В третьей, завершающей, части мы разберем процесс удаления ноды. Наберитесь терпения и приятного чтения.
Краткое введение в Машинное обучение
Пару лет назад я рассказывал жене сказки, что когда я буду старым маразматиком, мое ближайшее окружение не будет страдать от этого, ведь за мной будут ухаживать роботы. Новости о прогрессе искусственного интеллекта впечатляли меня (нейросетки то, нейросетки сё), свет в конце тоннеля манил, как и зарплаты специалистов в этой области. Разумеется, я не смог пройти мимо и решил погрузиться в Machine Learning.
Для старта хотелось почитать что-то совсем базовое, но поиск по строкам "машинное обучение для чайников" вменяемых результатов не дал. Все статьи начинались с тривиальных рассуждений, а потом перепрыгивали на загадочные формулы без особых пояснений. Я не сдавался и добыл несколько книг с хорошими отзывами, но получил то же самое, только уже на 600 страниц. Спустя полгода поисков могу сообщить вам следующее: при текущих темпах развития AI я не увижу роботов в старости, для работы с Machine Learning на самом деле не нужна математика, и как минимум одна статья "машинное обучение для чайников" существует, вы ее сейчас читаете.
Используй console.log () как про
Использование console.log() для отладки JavaScript - самая распространенная практика среди разработчиков. Но есть еще кое-что ...
Объект console обеспечивает доступ к отладочной консоли браузера. Особенности того, как она работает, варьируются от браузера к браузеру, но де-факто существует набор функций, которые обычно предоставляются.
Тихая революция и новый дикий запад в ComputerVision
Казалось бы, революция с Computer Vision уже была. В 2012 году выстрелили алгоритмы основанные на сверточных нейронных сетях. Года с 2014 они дошли до продакшна, а года с 2016 заполонили все. Но, в конце 2020 года прошел новый виток. На этот раз не за 4 года, а за один. поговорим о Трансформерах в ComputerVision. В статье будет обзор новинок, которые появились в последний год.
Поиск изображений
Пытаясь реализовать обратный поиск изображений для своего сайта, я столкнулся с огромным миром поиска изображений. Ниже приведены краткие описания и варианты применения некоторых подходов обратного поиска/поиска похожих изображений.
Информация
- В рейтинге
- 2 642-й
- Зарегистрирован
- Активность