Pull to refresh
4
0
xRay @xRay

Пользователь

Send message

Восстановление знаков пунктуации и заглавных букв — теперь и на длинных текстах

Reading time5 min
Views7.9K

изображение


Open In Colab


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


изображение


В целом, архитектура и датасеты остались прежними. Что изменилось:


  • обучение теперь производилось не на отдельных предложениях, а на нескольких последовательных предложениях (принимаем во внимание, что конструктивное ограничение модели при обучении — 512 токенов на вход, что позволяет свободно подавать ~150 слов на любом из четырех поддерживаемых языков)
  • для ускорения обучения модели сокращение словаря теперь проводилось не только на инференсе, но и на трейне, что позволило увелить размер батча
Читать дальше →

Как реализовать DDD в Go

Reading time25 min
Views38K

С помощью микросервисной архитектуры можно построить масштабируемое и гибкое приложение. Однако, если команда бессистемно использует этот подход в своей работе, то скоро столкнется с разочарованием и неконтролируемой сложностью. Избежать этого поможет DDD (Domain-Driven Design, предметно ориентированное проектирование). Не так давно я ничего не знал про этот подход, но сейчас я постоянно натыкаюсь на эту тему.

Представляю вам перевод статьи "How to Implement Domain-Driven Design (DDD) in Golang". Повествование буду вести от лица автора, иногда прерывая собственными мыслями в таком же формате, как и это отступление. Приятного чтения.

Читать далее

История славянских шипящих: почему мы пишем жи-ши через И?

Reading time7 min
Views45K
tl;dr: потому что перед Ы не могли возникнуть ни Ж, ни Ш.

Орфография многих живых языков отражает давно исчезнувшие вещи: например, написание английского слова knight указывает на то, что когда-то в 14 в. оно произносилось «книхт». В русской орфографии тоже полно «доисторических окаменелостей»; и для того, чтобы не зубрить, а понимать орфографические правила — нужно разбираться, откуда эти правила взялись. Готового обзора истории шипящих я не нашёл, так что взялся составить его сам. Особенно интригует природа буквы Щ — самой необычной в нашем алфавите.

Читать дальше →

Golang-дайджест № 11 (1 – 30 ноября  2021)

Reading time4 min
Views5.1K

Свежая подборка новостей и материалов

Интересное в этом выпуске

Выпущены Go 1.17.3 и Go 1.16.10, 12 лет Golang, Как насчет того чтобы объединить Go & Ruby, вредоносное по на Golang, парсер математических выражений, Сarotid Artillery 2D игра написанная на GO

Приятного чтения!

Читать далее

Мы создали автоматизированный YouTube-канал на Python и он стал виральным

Reading time6 min
Views24K
image

Статистика канала Most Popular TikTok Compilations в YouTube Analytics за 365 дней (8 октября 2019 года — 6 октября 2020 года). 16,7 миллиона просмотров, 911,1 тысяч часов просмотра и 51,2 тысяч подписчиков.

С чего всё началось: история


В 2019 году мы с друзьями искали проект, которым нам было бы интересно заниматься летом. Я заходил на YouTube и как обычно просматривал финансовые каналы разных ютуберов. Одного из них звали «Biaheza». Его видео под названием «Как люди зарабатывают миллионы долларов на TikTok» привлекло моё внимание. Почему? Потому что эти каналы генерируют миллионы просмотров, то есть должны и приносить большую прибыль. Но так ли это на самом деле?

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

Как создаются компиляции?

Честно говоря, не представляю, чтобы мне было весело создавать эти компиляции копипастингом одного ролика за другим. Я разработчик ПО, поэтому первым делом мне в голову пришла мысль…

Почему бы не автоматизировать этот процесс?
Читать дальше →

Как я разблокировал Upwork профиль и заработал более $250k за год

Reading time6 min
Views30K

Мне было страшно писать об этом до недавнего времени.

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

Но в этой статье я поделюсь историей от блокировки агенства до создания своей бизнес-империи вокруг платформы Upwork.

Читать далее

SmartTV-приставка Amazon Fire TV Stick 4K: Netflix, Dolby Vision и автофреймрейт за копейки

Reading time10 min
Views24K

Fire TV Stick 4K это невероятно недооцененная smart TV приставка в виде стика, которая умеет такое, что многим китайским боксам даже и не снилось. Если вы хотите получить доступ к крупнейшему стриминговому сервису фильмов и сериалов Netflix, да еще и в максимальном 4K качестве, то это пожалуй лучшее решение, которое сейчас существует. Более того, Fire TV Stick 4K умеет воспроизводить не только обычный HDR и более продвинутый HDR10+, но и самый технологичный стандарт Dolby Vision. У приставки есть на него лицензия и в том же Netflix, фильмы и сериалы доступны в Dolby Vision. Пользуетесь подписками отечественных легальных онлайн кинотеатров, таких как IVI, Megogo или Кинопоиск HD? И здесь тоже все в порядке. У Fire TV Stick 4K есть поддержка HDCP 2.2 и Widewine L1, что позволяет получить максимальное 4К качество с поддержкой HDR. Кроме этого, без каких-либо проблем воспроизводятся ролики YouTube 4K\60 fps в HDR, тяжелые торренты и можно смотреть IPTV даже в Ultra HD качестве. Самые продвинутые пользователи могут заметить, что все тоже самое можно получить и в TiVo Stream 4K. Это так, но есть одно кардинальное отличие в пользу устройства от Amazon. У TiVo нет автофреймрейта, а у Fire TV Stick 4K он есть. 

Читать далее

Пишем сервис на GO. Runtime контроллер и Graceful Shutdown

Reading time20 min
Views30K


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


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


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


  • Выработаем понимание структуры и жизненного цикла приложения.
  • Формализуем наше представление жизненного цикла на языке go.
Читать дальше →

Быстрый туториал по установке и эксплуатации системы фильтрации IP-адресов CrowdSec v.1.0.x

Reading time7 min
Views12K

Всем привет! Перед Новым годом мы выпустили большой апдейт нашего продукта — CrowdSec v.1.0.X, в котором содержатся значительные изменения по сравнению с предыдущей версией. Самое главное: был введен в эксплуатацию локальный REST API и проведены соответствующие архитектурные изменения. Как следствие, значительно упростился процесс создания баунсеров и повышена их устойчивость, при этом снизилось время на обслуживание системы. 

В этой статье вы найдете основные материалы о том, как был переделан CrowdSec и, в целом, ее можно рассматривать как User Guide для тех, кто собирается попробовать наш продукт на своих системах. 

Быстрый и приятный туториал далее

CrowdSec v.1.0.0 — локальная альтернатива Fail2Ban

Reading time4 min
Views4.7K


Привет. Мы, команда проекта CrowdSec, рады сообщить о выходе версии CrowdSec 1.0.0. Этот релиз крайне важен, потому что кроме добавления нескольких новых функций весь проект претерпел серьезные архитектурные изменения, чтобы стать быстрее, выше и сильнее.

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

Для тех, кто не знает о CrowdSec или задается вопросом, как вообще французский стартап оказался на Хабре, сделаем небольшое отступление:
Несколько недель назад тут, на Хабре, вышла целая статья о нашем проекте, конкретно в ключе сравнения нас с Fail2Ban: «CrowdSec — современная альтернатива Fail2Ban и коллективный иммунитет для Интернета».

Команда нашего проекта базируется во Франции и хотя для нас русскоязычный сегмент всегда имел большое значение, мы не имели представления, как попасть в него и продемонстрировать наш продукт местному IT-сообществу. Имел место и языковой барьер. Однако оказалось, что существует Хабр и для местных специалистов наш проект оказался весьма интересен — мы зафиксировали достаточно много трафика со стороны РФ и несколько десятков новых пользователей.

Еще больше нас удивила техническая глубина комментариев на Хабре, а также совершенно иной взгляд на многие вещи. И вот, как итог, мы тут. Презентуем вам версию 1.0.0 :)
Читать дальше →

Как защитить сайты на PHP при помощи CrowdSec

Reading time5 min
Views5.5K

По данным статистики W3Techs, PHP применяется в 79% сайтов (о которых есть данные об используемых языках программирования). Для их защиты явно нужен собственный баунсер, и он уже добавлен в наш хаб! В этом посте поговорим о том, как этот баунсер может помочь защитить сайты от атак.

Читать далее

Яркий проектор VS точный проектор. А также сверхсекретный метод подбора проектора всего по двум параметрам

Reading time11 min
Views6.8K

Постоянные читатели блога уже хорошо осведомлены о том, что все без исключения проекторы Epson основаны на технологии 3LCD и обладают высокой цветовой яркостью (подробнее – в данном посте). По нашей задумке, понятие «цветовая яркость» призвано указать потенциальному покупателю проектора на очевидные преимущества именно проекторов Epson, ибо речь о цветовой яркости идет рука об руку с понятным широкому кругу пользователей понятием «световой поток» (или «яркость по белому»).

Однако в данной публикации я предлагаю немного отойти от привычной методики оценки проектора и «копнуть глубже».

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

Приглашаю всех заинтересованных под кат за эксклюзивным сакральным знанием.

Читать далее

Карта гулябельности Санкт-Петербурга

Reading time10 min
Views38K

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

Читать далее

Лучшие в мире батарейки по 13 рублей

Reading time2 min
Views136K
Протестировав эти батарейки, я сильно удивился. При самой низкой цене они превзошли по ёмкости и нагрузочной способности все топовые батарейки Duracell, Energizer и Varta.

Читать дальше →

Интернет на магнитах 6 — Децентрализованные комментарии

Reading time3 min
Views3.1K

На редите я наткнулся на вопрос: Как комментировать торренты? (how do i comment on torrents?)


Из предложенных решений было только комментировать на сайте где торрент файл был взят. Но это вариант далеко не всегда доступен. Особенно когда это поисковик по типу BtDigg.


На этом вопрос был закрыт и дать другой ответ на него стало не возможно.


Но есть ещё одно простое решение. Это комментировать где угодно просто указывая хеш того что комментируешь и по этому хешу искать комментарии.

Читать дальше →

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

Reading time8 min
Views14K


Open In Colab


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


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


По этой причине мы бы хотели поделиться с сообществом системой, которая:


  • Расставляет заглавные буквы и основные знаки препинания (точка, запятая, дефис, вопросительный знак, восклицательный знак, тире для русского языка);
  • Работает на 4 языках (русский, английский, немецкий, испанский);
  • По построению должна работать максимально абстрактно на любом тексте и не основана на каких-то фиксированных правилах;
  • Имеет минимальные нетривиальные метрики и выполняет задачу улучшения читабельности текста;

На всякий случай явно повторюсь — цель такой системы — лишь улучшать читабельность текста. Она не добавляет в текст информации, которой в нем изначально не было.

Читать дальше →

PHP Generics. Right here. Right now

Reading time9 min
Views16K


Многие PHP разработчики хотели бы видеть в PHP поддержку дженериков, и я в том числе. RFC по их добавлению был создан ещё в 2016 году, но до сих пор не принял окончательный вид. Я рассмотрел несколько вариантов решений поддержки дженериков в синтаксисе PHP, но не нашёл рабочей версии, которой мог бы воспользоваться обычный разработчик.


В итоге я решил, что могу сам попробовать реализовать такое решение на PHP. Скриншот выше — реальный пример того, что у меня получилось.


Если хочется сразу попробовать, то вот библиотека mrsuh/php-generics и репо, в котором можно поиграться.

Читать дальше →

Как в восемь раз уменьшить количество DNS-запросов в Go

Reading time6 min
Views14K

Привет, Хабр. Меня зовут Рустам. Я работаю в Ozon: админю Kubernetes и пишу на Go.

У нас очень много сервисов на Go — их количество исчисляется тысячами. Запускаются они внутри кластеров Kubernetes. А я плотно работаю с Kubernetes и заметил, что при запуске кода внутри Kubernetes для резолва одного адреса делается до десяти DNS-запросов. Это, конечно, влияет на производительность.

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

Узнать больше про Go+DNS

Смотрим на Санкт-Петербург сквозь призму публикаций в соцсетях — базовый анализ популярных локаций

Reading time6 min
Views4K

Магистры, аспиранты и сотрудники Института дизайна и урбанистики ИТМО рассказывают, как можно изучить публичный образ той или иной локации. Для Санкт-Петербурга они проанализировали более пяти млн публикаций из популярной в России соцсети с соответствующими геотегами за 2018, 2019 и 2020-й.

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

Читать далее

Сколько должен получать разработчик?

Reading time7 min
Views53K

Итак, сегодня мы поговорим о самой интимной для любого специалиста теме - его зарплате. Именно из-за интимности этот простой вопрос способен вызвать холивар, бунт или даже маленькую войну. Всё потому, что как и в любой интимной теме люди легко радикализируются и бьются на две противоположные секты. Обзовём их “Адепты бесконечной зарплаты” и “Свидетели отсутствия мотивации”. Рассмотрим идеологию этих сект подробнее.

Читать далее

Information

Rating
Does not participate
Registered
Activity