Search
Write a publication
Pull to refresh
3
0

Руковожу разработкой всякого разного

Send message

Как ИИ учится литературному творчеству, или Любовные письма от тостера

Reading time20 min
Views4.6K


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

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

Оптимизация на простых типах данных. Часть №1 «Строки»

Reading time12 min
Views8.1K
19 апреля автор курса «Алгоритмы для разработчиков» в Яндекс.Практикуме и разработчик в компании Joom Александра Воронцова провела открытый вебинар «Оптимизация на простых типах данных». У Аси за спиной 11 лет разработки, опыт олимпиадного программирования, а также работа в Яндексе с высоконагруженными проектами.

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

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


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

Найти подстроку в строке

Reading time6 min
Views32K

Алгоритм поиска строки Бойера — Мура — алгоритм общего назначения, предназначенный для поиска подстроки в строке.

Давайте попробуем найти вхождение подстроки в строку.

Подготовка к собеседованию

Не злите инженеров

Reading time4 min
Views25K

Автор: Борис Плавник

Когда мы говорим про «войну токов», то первым на ум приходит противостояние Томаса Эдисона и Николы Теслы. Но у этой войны было множество фронтов (на большинстве из которых присутствовал Эдисон). Об одном из них и пойдёт речь.

А точнее – о талантливом и умелом инженере, которого звали Хайрем. Родился он в 1840 году на северо-востоке США. Свой немалый инженерный талант Хайрем по началу вложил в пар, в котором он разбирался очень и очень хорошо, но в 1870х уже было видно, что эра стим-панка откладывается, и не за горами повальная электрификация...

Читать далее

Почему мне так нравится использовать Python для автоматизации тестирования?

Reading time8 min
Views20K

Когда дело доходит до автоматизации тестирования, первый и самый сложный вопрос, который встает перед вами это какой язык выбрать, чтобы он имел хорошую поддержку автоматизации тестирования. Python, Java, C#, Ruby и т.д. – лишь некоторые из популярных языков, которые можно использовать с фреймворком для автоматизации Selenium. Несмотря на это, во всем мире QA-команды активно используют именно Python, особенно в связке с Selenium WebDriver.

У разработчиков и тестировщиков появляется несколько вариантов, когда дело доходит до использования языков программирования с фреймворком Selenium. Как у инженера по автоматизации, у меня была возможность пользоваться разными языками, начиная с С и заканчивая Java, Python, C++ в зависимости от проекта. Несмотря на то, что мне удобно использовать Java и C# с Selenium, Python все равно остается лучшим языком для написания скриптов для автоматизации тестирования с этим фреймворком.

В этой статье я расскажу о 12 основных причинах, по которым автоматизированное тестирование на Python в связке с Selenium WebDriver – это отличный вариант в моем случае. 

Начнём!

Топ-20 самых сильных IT-брендов работодателей России и как мы их нашли: подводим итоги исследования

Reading time7 min
Views71K


Привет! В августе Хабр и Экопси начали исследовать IT-бренды работодателей на предмет их «веса» среди айтишников. Анкеты обработаны, данные проанализированы — и мы готовы поделиться результатами. В прошлый раз мы рассказали о респондентах нашего исследования (или его «паспорте»), а теперь, собственно, к итогам. О том, кто в итоге вошел в Топ-20, а самое главное,  как мы это определили – под катом.  
Читать дальше →

Как я пытался придумать новый подход к изучению алгоритмов через интерактивные визуализации

Reading time4 min
Views28K

Представьте человека, который изучает алгоритмы. Чтобы понять как они работают, приходится разбираться в их коде и представлять, как компьютер будет его выполнять. Это странно — почему мы должны учиться думать как компьютер, вместо того, чтобы заставить его помогать нам? Какая-то сильная технозависимость.

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

Читать далее

До 40 релизов в день в Enterprise: наша сool story

Reading time6 min
Views5.4K

Пару слов о нас: мы – команда банка «Открытие», которая отвечает за разработку всех розничных фронтов от рабочего места сотрудника в отделении до мобильных приложений физических лиц. В последние пару лет мы переживаем взрывной рост в несколько раз – у нас более 400 сотрудников ИТ и мы продолжаем расти и расти. Как оказалось, многие решения, которые были приняты на старте нашей работы, оказались верными. И о некоторых из них мы вам расскажем. Готовы? Поехали!

Один из вопросов на старте цифровой трансформации банка был таким: как нам хранить исходный код – используя монорепозиторий для хранения всех миросервисов или много репозиториев? Мы выбрали такой подход: для каждого приложения, библиотеки или микросервиса создаем отдельный репозиторий.

В рамках дискуссий внутри команды для нас было очевидно, что...

Читать далее

Keychron K6. Обзор добротной механической клавиатуры

Reading time6 min
Views22K

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

Читать далее

RTX 3080 для ноутбуков — насколько это реально RTX 3080?

Reading time6 min
Views27K
Это NVIDIA GeForce RTX 3080 — видеокарта настолько редкая, что если вы ее сейчас и найдете, то за цену, за которую едва ли решите покупать.



А это игровой ноутбук XMG NEO 17, в состав которого входят: видеокарта RTX 3080, восьмиядерный процессор AMD Ryzen 5000, память NVMe и дисплей с разрешением 1440p и высокой частотой обновления.



У ноутбуков, как и у настольных ПК, есть свои плюсы и минусы, но важно отметить, что RTX 3080 в том и другом случае — совсем не то же самое.

Продолжим рассматривать XMG NEO 17. Надо сказать, что это, конечно, просто зверь среди ноутбуков. Но основное внимание мы уделим его видеокарте.
Читать дальше →

Рыдания ретрофаната над старым телевизором

Reading time11 min
Views42K
Ой всё. Мне всегда было интересно, где у ретрохобби… не дно, а граница серьезного увлечения, на грани помешательства. Теперь я знаю, это — старый ЭЛТ-телевизор. Они тяжелые. Они мерцают. Качество изображения — в лучшем случае терпимое, или так мне поначалу казалось. Когда ты покупаешь гудящий ящик с тысячами вольт внутри, ты переходишь на новый уровень коллекционирования, и уже не будет пути назад.

Если серьезно, теплые (натурально, они греются) ламповые (как минимум одна) телевизоры — это большой этап развития технологий, как домашних-телевизионных, так и компьютерных. Этап, который закончился достаточно резким переходом на тощие ЖК-экраны в течение буквально пяти лет, в конце нулевых. Хотя на дачах или даже дома у многих из нас (или у родственников) старый телевизор найдется и сейчас, это ненадолго. Их больше не делают, слишком сложно и не стоит оно того. Срок жизни у них меньше, чем у ЖК-дисплеев. Мы наблюдаем завершение жизненного цикла большого ассортимента технологий, в прошлое уходят связанные с ними потребительские привычки.


Вот эти особенности старого телевидения, просмотра видео с аналоговых источников на «голубом экране», восьмибитного гейминга я и хочу сегодня повспоминать. Ну и поискать примеры задач, в которых ЭЛТ до сих пор вне конкуренции. А начну с самого простого аргумента про преимущество телевизора с трубкой: он стильный! Вы посмотрите, какая роскошная коробка! Какой возмутительно неплоский экран! Какие божественные крутилки! Это же микроволновка (с тостером), только вместо еды она подогревает ностальгические чувства.

Разработка REST-серверов на Go. Часть 3: использование веб-фреймворка Gin

Reading time7 min
Views40K
Сегодня, в третьей части серии материалов, посвящённых разработке серверов на Go, мы займёмся реализацией нашего REST-сервера с использованием Gin — одного из самых популярных веб-фреймворков для Go. Вот код, который мы будем тут обсуждать.



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

Kubernetes Headless Service: А если Pod исчез?

Reading time7 min
Views19K

Мы столкнулись с достаточно занятным поведением при работе с Headless-сервисом в Kubernetes. В нашем случае проблема возникла с mongos, но она актуальна для любого Headless-сервиса. Приглашаю вас почитать нашу историю и самим попробовать поиграться с этой проблемой локально.

На одном из проектов мы используем MongoDB и Kubernetes. У MongoDB есть компонент: mongos. Через него выполняются запросы в шардированном MongoDB кластере (можно считать, что это просто хитрый proxy). До переезда в Kubernetes сервисы mongos устанавливались непосредственно на каждый хост.

При переезде сервисов в Kubernetes мы поселили пул mongos в Headless-сервис с автоматическим масштабированием Deployment через HPA (Horizontal Pod Autoscaler).

Через некоторое время выяснилось, что приложению при уменьшении количества Pod с mongos становится не очень хорошо.

Читать далее

Автозаказ: как сделать так, чтобы нужные продукты сами попадали на полки 17 000 магазинов по всей стране

Reading time5 min
Views12K

Автозаказ: как сделать так, чтобы нужные продукты сами попадали на полки 17 000 магазинов по всей стране

Существует задача: масштабной ритейл-сети по продаже товаров необходимо, чтобы огромное количество номенклатурных позиций доезжало в каждый из 17000 магазинов, расположенных на половине площади самой большой страны в мире, вовремя и в нужном количестве. Для решения такой задачи в X5 Group существует ряд реализованных решений, и одним из самых важных является процесс автозаказа товаров. 

Техническую поддержку этого направления в X5 Group обеспечивает команда 2-SAP Логистики.  Наша команда поддерживает решения, которые помогают бесперебойно обеспечивать полки магазинов свежими продуктами, а покупателям на территории всей России доступны к продаже десятки тысяч товарных позиций. 

Читать далее

Интервью с Марселем Ибраевым о распиле монолита или «Успех распила монолита – грамотный менеджмент»

Reading time10 min
Views3.6K
«Я как-то видел, когда в команду разработки закинули задачу распилить монолит. И всё. Люди должны были работать в два раза больше – это ужасно».
Когда поступает похожий запрос, важно не наворотить дел и понять, как избежать новых трудностей. Об этом рассказал Марсель Ибраев, технический директор Слёрма.

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


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

Epomaker GK96S. Хороша со всех сторон. Обзор механической клавиатуры

Reading time7 min
Views8.8K

В последнее время сильно увлекся механическими клавиатурами. Уже около года я пользуюсь раздельными механическими клавиатурами. Тут я уже писал статью "Эргономичная раздельная клавиатура. Iris". Но сейчас про более стандартный форм-фактор.

Это довольно популярная клавиатура, на нее собирали деньги на кикстартере. Более двух тысяч человек скинулись и собрали около двухсот тысяч долларов.

Читать далее

Мы сделали наш публичный синтез речи еще лучше

Reading time11 min
Views20K

6cc6e0011d4d26aeded6f052080b1890


Обновление — забыл ссылку на репозиторий и на колаб с примерами.


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


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


Если коротко:


  • Мы сделали наш вокодер в 4 раза быстрее;
  • Мы сделали пакетирование моделей более удобным;
  • Мы сделали мультиспикерную / мультязычную модель и "заставили" спикеров говорить на "чужих" языках;
  • Мы добавили в наши русские модели возможность автопростановки ударений и буквы ё с некоторыми ограничениями;
  • Теперь мы можем сделать голос с нормальным качеством на 15 минутах — 1 часе (с теплого старта в принципе заводилось даже на 3-7 минутах) или на 5 часах аудио (с холодного старта). Но тут все очень сильно зависит от качества самого аудио и ряда деталей;
  • Мы привлекли коммьюнити к работе, и нам помогли сделать удобный интерфейс для записи. Мы начали работу над голосами на языках народностей СНГ (украинский, татарский, башкирский, узбекский, таджикский). Если вы хотите увидеть свой язык в числе спикеров — пишите нам;
  • Мы продолжаем собирать обратную связь по применимости нашей системы для экранных интерфейсов чтения, и пока кажется, что нужно где-то еще всё ускорить в 5-10 раз, чтобы наши модели закрывали и этот кейс;

Постмортем инцидентов для начинающих

Reading time3 min
Views11K

image
Фото с сайта Unsplash.com


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


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

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

Кража закрытых видео YouTube по одному кадру

Reading time5 min
Views36K

В декабре 2019 года, спустя несколько месяцев после того, как я занялся хакингом по программе Google VRP, я обратил внимание на YouTube. Мне хотелось найти способ получать доступ к закрытым (Private) видео, которыми я не владею.

При загрузке видео на YouTube можно выбрать один из трёх параметров доступа. «Открытый» (Public) позволяет находить и просматривать видео любым пользователям, «Доступ по ссылке» (Unlisted) позволяет просматривать видео только пользователям, знающим ID видео (URL), «Ограниченный доступ» (Private) позволяет просматривать видео только вам или другим аккаунтам, которым дано на это разрешение.

Первым делом я загрузил видео на свой второй тестовый канал аккаунта YouTube и переключил параметры доступа видео на Private, чтобы его можно было использовать для тестирования. (Помните, что тестирование всегда нужно проводить на тех ресурсах/аккаунтах, которыми вы владеете!) Если я смогу найти способ получить доступ к видео с первого тестового аккаунта, то мы выявим наличие бага.

Я открыл YouTube под первым аккаунтом, проверил каждую функцию и нажал на каждую кнопку, которую смог найти. Каждый раз, когда я видел HTTP-запрос с указанием ID видео, я заменял его на тестовое видео с доступом Private, надеясь, что так утечёт какая-нибудь информация о нём, но успеха не добился. Похоже, что основной веб-сайт YouTube (по крайней мере, все его конечные точки, которые я протестировал) всегда проверяет, находится ли видео в состоянии Private, и когда пытается выполнить запрос к целевому закрытому видео, он всегда возвращает ошибки наподобие This video is private!.

Мне нужно найти другой способ.

И грянул гром: эскалации, проблемы с производительностью и как мы это решали

Reading time10 min
Views4.6K

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

Читать далее

Information

Rating
Does not participate
Location
Россия
Registered
Activity