Pull to refresh
-4
0
Send message

Ещё одно решение игры Wordle на Python

Reading time6 min
Views12K

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

1) https://habr.com/ru/company/skillfactory/blog/645653/ -- перевод решателя от Mickey Petersen, написано на идеальном Питоне, использует статистический анализ букв английского алфавита и вполне успешно справляется с задачей.

2) https://habr.com/ru/post/647391/ -- перевод решателя от Tom Lockwood, который решает англоязычную игру в 99,4% случаев. Автор исследовал внутренности игры и постарался максимально использовать полученную информацию о возможных загаданных словах и возможных вводимых словах, но по итогу всё сводится к статистическому анализу. Возможно, в будущем я воспользуюсь извлечённой из игры информацией для улучшения своего алгоритма.

Читать далее

Причуды Stream API

Reading time23 min
Views54K
Stream – таинственный мир функциональщины, несвойственный староверцам в мире объектной Java. Одновременно интересен и чужд мир лямбд, позволяющий вытворять с наборами данных порой такие вещи, что иные, увидев такое, захотят вас сжечь на костре.

Сегодня мы поговорим об Stream API и попробуем приоткрыть завесу тайны в до сих пор до конца неизведанном мире. Несмотря на то, что Java 8 вышла достаточно давно, далеко не все используют полный набор ее возможностей в своих проектах. Открыть этот ящик Пандоры и узнать, что собственно скрывается внутри столь загадочного явления, нам поможет разработчик из JetBrains – Тагир lany Валеев, который давно изучил этого фантастического зверя и места его обитания вдоль и поперек (и совсем недавно написал очередной гайд о том, как правильно, и как неправильно писать стримы), да еще и написал свою библиотеку StreamEx, улучшающую работу с джавовыми стримами. Кому стало интересно, просим под кат!



SQL миграции в Postgres. Часть 1

Level of difficultyMedium
Reading time15 min
Views40K

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

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

На эти и другие вопросы, возникающие при проведении миграций схемы и данных в PostgreSQL, постараемся дать ответы в виде практических советов.
Читать дальше →

Как мы избавились от 80% своего кода, повысив скорость разработки и уменьшив количество ошибок

Reading time12 min
Views64K


Оптимизация кода и развитие микросервисной архитектуры занимает значительную часть жизни команды разработчиков МВидео-Эльдорадо. Тем любопытней изучить опыт коллег за рубежом. Предлагаем вашему вниманию очередной пост на тему: «А как там у них».
Читать дальше →

О доверии

Reading time8 min
Views29K
Волнует в последнее время эта тема, решил порассуждать. Буду признателен за комментарии и замечания.

1. Микроуровень


Большинство людей реально компетентны в 1-2 областях. По поводу всех остальных вынуждены полагаться на мнения знакомых и признанных (реальных или мнимых) специалистов и opinion-maker’ов (известных людей, формирующих своими публичными действиями или высказываниями общественное мнение). Иначе никак – ты не можешь проверять каждый факт и тем более быть профессионалом во всех областях.

И вот тут начинается интересное. А кому верить?

Похоже, что верят люди на ИНСТИНКТИВНОМ уровне – тем, с кем разделяют систему ценностей, базовые представления о жизни: в чём важно разбираться/что не заслуживает внимания, что круто/что не круто (эстетические предпочтения). Кто-то с восторгом смотрит на чётких пацанчиков с бритым затылком, кого-то восхищает хорошо написанный текст.

Каждый день с утра до вечера мы посылаем в общество сигналы: манера двигаться, одеваться, формулировать и произносить фразы, выбор лексикона – всё это способы заявить, кто мы есть. И притягивать себе подобных. «Мне пофиг, что обо мне думают» – детский сад. И прекратите уже исправлять тех, кто говорит «звОнит». Всё они знают, не мешайте людям самоидентифицироваться.
Читать дальше →

Любопытство и прокрастинация в машинном обучении

Reading time7 min
Views4.7K
Обучение с подкреплением (RL) — одна из самых перспективных техник машинного обучения, которая сейчас активно развивается. Здесь агент ИИ получает положительное вознаграждение за правильные действия, и отрицательное — за неправильные. Такой метод кнута и пряника прост и универсален. С его помощью DeepMind научила алгоритм DQN играть в старые видеоигры Atari, а AlphaGoZero — в древнюю игру Go. Так OpenAI обучила алгоритм OpenAI-Five играть в современную видеоигру Dota, а Google научила роботизированные руки захватывать новые объекты. Несмотря на успехи RL, до сих пор есть много проблем, которые снижают эффективность этой техники.

Алгоритмам RL трудно работать в среде, где агент редко получает обратную связь. Но это типично для реального мира. В качестве примера, представьте себе поиск любимого сыра в большом лабиринте, как супермаркет. Вы ищете и ищете отдел с сырами, но никак не находите. Если на каждом шагу не получать ни «кнута», ни «пряника», то невозможно сказать, в правильном ли направлении вы движетесь. В отсутствие награды что мешает вам вечно бродить по кругу? Ничего, кроме, возможно, вашего любопытства. Оно мотивирует перейти в продуктовый отдел, который выглядит незнакомым.
Читать дальше →

Великая война хакеров 1990 года (Great Hacker War)

Reading time6 min
Views20K


Под «Великой войной хакеров» подразумевается конфликт 1990-1991 гг. между Masters of Deception (MOD) и группой, отколовшейся от группировки Legion of Doom (LOD), от старой гвардии хакеров, а также другими менее известными хакерами. Якобы обе главные группы предпринимали попытки взлома ресурсов друг друга через интернет, Х.25 и телефонные сети.

На дебатах в рамках конференции «The Next HOPE» в 2010 г. Phiber Optik не раз повторил, что «война группировок в киберпространстве» между LOD и MOD — всего лишь сплетни, что она выдумана прокуратурой США и падкими на сенсации СМИ. Более того, двое из высокопоставленных членов LOD подтвердили, что «Великой войны хакеров» не было, а если что и было, то не более чем соревнование, желание показать свое превосходство.

Однако, все же был конфликт между «новым» LOD, возглавляемым Erik Bloodaxe, и MOD. Даже если и была «война», все это совсем не так, как принято считать.

Про двух лидеров уже писали на Хабре:
» Erik Bloodaxe (Крис Гогганс)
» Phiber Optik (Марк Абен)

Что было на самом деле

Теория поколений: как и почему она поменялась за 30 лет?

Reading time10 min
Views40K

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

Так что же представляет из себя эта теория, и насколько адекватна реальности? Попробуем разобраться, как эта теория выглядит из наших дней. Благо как раз в прошлом году ей исполнилось ровно 30 лет, и за это время она претерпела изрядные изменения.
Читать дальше →

Килрой был здесь. Самый популярный мем аналоговой эпохи

Reading time3 min
Views31K

"Кто придумал Килроя и что он должен был значить — никто не знает до сих пор, хотя над этим после обнаружения рисунков на военных объектах и оборудовании ломали головы аналитики СССР и Третьего рейха. Факт в том, что рисунок-мем с Килроем заполнил мир задолго до того, как начала зарождаться всемирная сеть" — писали во вчерашнем посте про историю мемов.

Он выгравирован на камне в Национальном мемориале Второй мировой войны в Вашингтоне — в маленькой нише, где его видели очень немногие. Для поколения Второй мировой войны это навеет воспоминания. Для нового поколения это мелочи, которые являются неотъемлемой частью американской истории и легенды.

Это была причуда своего времени.

История популярного мема периода ВМВ

Значение и загадочная история происхождения слова «религия»: расследование

Reading time7 min
Views43K

Неожиданно для меня, происхождение слова «религия» оказалось настоящей загадкой. Сперва всё было как будто бы просто: Google выдал родословное древо слова religion по первому же запросу. Оказалось, что корнями «религия» уходит в латинский глагол religare.

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

Во-первых, объяснение про связь с богом ничего не объясняет — даже если бы это было так, то каким образом это превратилось в дальнейшем в «религию» в современном значении?

Во-вторых, там же написано, что «religio (лат.) – совестливость, добросовестность, благочестие» — всё бы ничего, только это перевод не с латыни, а с древнефранцузского.

Расследование того, откуда на самом возникло слово «религия» в современном значении, уводит более чем на две тысячи лет в прошлое и обнаруживает столкновение двух совершенно разных версий двух значимых древнеримских мыслителей — известного ритора Цицерона и известного богослова Лактанция.
Читать дальше →

Основатель Signal: «Первые впечатления от web3»

Reading time15 min
Views81K

Несмотря на то, что я считаю себя криптографом, меня не особенно привлекает слово "крипто". Не думаю, что я уже староват, но я гораздо чаще кликаю на мемы в духе "Интернет всё помнит" о том, как "крипто" раньше означало "криптография", чем на последние новости об NFT.

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

Читать далее

AASIST: Аудио защита с использованием сети с интегрированным спектро-временным графом внимания

Reading time16 min
Views2K

Артефакты, которые отличают подделку от реальных данных, могут находиться в спектральной или временной областях. Их надежное обнаружение обычно зависит от ансамбля сложных систем, где каждая подсистема настроена на определенные артефакты. Мы стремимся разработать единую, эффективную систему, которая может обнаруживать широкий спектр различных атак с использованием спуфинга без использования групп баллов. Мы предлагаем новый слой внимания с гетерогенным наложением графа, который моделирует артефакты, охватывающие разнородные временные и спектральные области с гетерогенным механизмом внимания и узлом стека. С новой операцией максимального графа, которая включает конкурентный механизм и расширенную схему считывания, наш подход, названный AASIST, превосходит текущее состояние дел в данной области примерно на 20%. Даже облегченный вариант, AASIST-L, всего с 85 тыс. параметров, превосходит все конкурирующие системы.

Читать далее

Букварь материалиста. Пространственная логика

Reading time15 min
Views4.8K

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

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

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

Пространственная логика.

Самый древний и один из самых красивых кораблей Европы, сохранившийся до наших дней. Загадка корабля из Осеберга

Reading time6 min
Views85K

Автор Лысый Камрад (@LKamrad)

Осебергский корабль удивительно красив. Построенный двенадцать веков назад он выглядит так, как будто совсем недавно спущен на воду, такова его сохранность. Это не реконструкция– 90% деревянных деталей подлинные, даже 60% железных болтов* те же самые, что использовались при его постройке. Нос и корма судна украшены великолепной резьбой и имеют навершия спиральной формы, имитирующие хвост и голову дракона или морского змея.

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

Читать далее

Нестандартное применение программирования в реальной жизни

Reading time8 min
Views19K

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

Однако программное обеспечение — это не только проекты компьютерных игр класса ААА или корпоративных проектов, предлагающих программное обеспечение по модели SaaS, это и использование его в обычной жизни, порой весьма неожиданным образом. О чём мы и поговорим в этой статье.
Читать дальше →

Сравнение доходности портфеля проектов с акциями

Reading time9 min
Views7.4K

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

Для сравнения инвестиционных проектов между собой и в целом оценки доходности портфеля проектов с периодическими выплатами/вложениями, необходимо использовать модифицированную внутреннюю норму доходности проектов MIRR (без учета стоимости инвестиций и реинвестирования денежных потоков), а также чистую приведенную дисконтированную стоимость денежных потоков NPV от проектов и портфеля в целом;

Разработан специальный метод (см. на рис.1 Таблицу 2, позволяющую сравнивать инвестиционные проекты с вложениями в фондовый рынок);

Основой предложенного метода является представление вложений и изъятий средств из инструментов фондового рынка в виде денежного потока с периодическими платежами, позволяющего применить к нему стандартные функции MIRR и NPV. Интересно же проверить, насколько ваши инвестиции в целом выгоднее/убыточнее вложений тех же средств в акции Газпрома, Сбербанка, или, скажем, Теслы или Apple :)  

Читать далее

Как писать посты в стиле Артемия Лебедева? Подробный анализ телеграм-канала и кое-что еще

Reading time9 min
Views26K


Дисклеймер номер один: 18+. В этой статье присутствует ненормативная лексика, так как автор текстов, которые мы анализируем, не стесняется в выражениях. Мы не хотим никого задеть или оскорбить чьи-то чувства, присутствие мата объясняется лишь объектом нашего исследования.

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

Изначально, мы поставили перед собой следующие задачи: собрать тексты всех постов и метаинформацию о них, получить динамику подписчиков на канале, а после провести описательный и семантический анализы собранных данных. Но нам удалось сделать даже больше — в результате мы смогли обучить нейронную сеть на текстах Артемия Лебедева.
Теперь мы можем писать тексты для тг-канала Лебедева без него самого. Правда-правда.
Хотите узнать как?

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

Прекрасное далёко, не будь к мозгам жестоко

Reading time12 min
Views5.6K
ПРОжЕКТ «БЕССМЕРТИЕ»



Жизнь, даже если она у вас длинная и успешная, всё равно неизбежно катится к своему закономерному концу. И чем она к нему ближе, тем чаще в голову приходят мысли, как бы этот конец отсрочить. Причем не на 30-50 лет, как обещают нам геронтологи, а нормально так на тысячу или вообще… навечно.

До последнего времени в решении этого вопроса человечество упирало в основном на Бога и вечные райские кущи. Но… Всё больше индивидуумов знакомых с последними достижениями наук, осознают, что Его, увы, нет и что за порогом смерти нас не ждёт ничего интересного. Конечно, остаются слабые надежды, что живём мы под присмотром какой-нибудь сверхцивилизации, и после естественного или неестественного конца, наша личность может сохранится и даже как-то там, куда-то перейти.
Читать дальше →

Использование рекуррентных нейронных сетей в Reinforcement Learning

Reading time12 min
Views11K
В задачах машинного обучения для обучения модели может использоваться известная целевая переменная (задачи такого типа называются «обучение с учителем»), либо модель самостоятельно учится находить закономерности с имеющихся данных, не имея заранее известные правильные результаты (такой тип задач называется «обучение без учителя»). Обучение с подкреплением (Reinforcement Learning, RL) не относится ни к первому типу, ни ко второму, однако обладает свойствами и того, и другого. Этот вид машинного обучения в настоящее время бурно развивается, разрабатывается множество теоретических алгоритмов RL [1], однако основная причина всплеска интереса заключается в множестве практических задач, в которых применяется RL, прежде всего в автоматизации, оптимизации и робототехнике. Обучение с подкреплением эффективно прежде всего там, где системе требуется анализировать окружающую среду и выбирать политику поведения с учетом получаемого отклика.
Читать дальше →

В поиске почти тонкого множества целых

Reading time4 min
Views4.4K

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

Я решил с помощью вычислительных и аналитических методов нащупать границу между 'большими' и 'тонкими' бесконечными множествами натуральных чисел. Что это? Объясню под катом.

Читать далее

Information

Rating
7,223-rd
Registered
Activity