Pull to refresh
0
Вадим @Vadimonysread⁠-⁠only

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

Send message

Голосовой бот + телефония на полном OpenSource. Часть 1 — создание и обучение текстового бота RU

Reading time4 min
Views12K

В наше время голосовые роботы набирают огромную популярность, от банального заказа такси, до продаж клиентам. Создание голосового бота сводится к трем базовым этапам.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments0

Лексоранги — что это такое и как их использовать для эффективной сортировки списков

Reading time8 min
Views3.6K
В этой статье я расскажу, что такое Лексоранги, как ими пользуются в Jira, и как ими воспользовались мы для эффективной сортировки списков и перетаскивания элементов в нашем мобильном приложении.


Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments9

Алгоритм Джонсона на орграфе с отрицательными дугами

Reading time4 min
Views9.8K

Статья подготовлена в преддверии старта курса «Алгоритмы и структуры данных»





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


О, как звучит! Давайте разберём условие задачи по частям.

Читать дальше →
Total votes 17: ↑16 and ↓1+21
Comments9

AES — американский стандарт шифрования. Часть V. Атака

Reading time8 min
Views4.3K
image


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

К минусам-то я уже приучен, но с чем чёрт не шутит. Анализ возможных атак и ожидаемых результатов выполнялся многими авторами, но конкретных успешных примеров или просто впечатляющих замыслов явно недостаточно. Здесь будет рассмотрена с математических позиций атака с использованием вносимой нарушителем в шифртекст ошибки. Автор при выборе атаки для демонстрации старался не привлекать те, где используются слишком накрученые и заумные математические вещи, но сам рассматриваемый предмет достаточно серьёзный и не позволяет переходить к объяснениям на «пальцах».
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments5

Слияние списков на python. Сравнение скорости

Reading time5 min
Views28K

Сравнение различных методов слияния двух отсортированных списков


Пусть у нас есть два списка (для простоты из целых чисел), каждый из которых отсортирован. Хотим объединить их в один список, который тоже должен быть отсортирован. Эта задача наверняка всем знакома, используется, например, при сортировке слиянием.



Способов реализации (особенно на python) достаточно много. Давайте разберем некоторые из них и сравним затрачиваемое время на разных входных данных.

Читать дальше →
Total votes 8: ↑6 and ↓2+8
Comments4

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

Reading time2 min
Views5.4K
Вместо предисловия.

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

Что такое Scilab, рассказывать здесь смысла нет — интернетом читатель пользоваться умеет.
image

Интересным для читателя, уже знакомым с Scilab, эта работа может быть довольно нетривиальным применением данного средства. Имеется ввиду «конечноэлементный» подход в моделировани системы и анимационное отображение результатов осциллографом. Безусловно, есть средства, специально «заточенные» под механику, но, повторяю, целью было именно срочно обкатать Scilab.

Для тех же, кто ранее с этим простым и наглядным средством знаком не был, интересно будет узнать вот что. Весь процесс освоения этого ранее мне незнакомого типа софта (визуального программирования), от момента инсталляции бесплатного Xcos до создания нижеследующего текста, занял у меня пять дней. Более простая модель системы с одной степенью свободы была окончательно готова уже на второй день. И у вас, я думаю, дела в изучении этой программной среды, при желании, пойдут не хуже, так что дерзайте.

Сам текст, пожалуй, излишне лаконичен, так как на широкую аудиторию изначально рассчитан не был. Но если у читателя возникнут вопросы, попытаюсь вспомнить детали и на эти вопросы ответить. Итак.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments1

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

Reading time7 min
Views4.1K
Лето — время каникул и низкий сезон для образовательных проектов. За эти три месяца дети могут забыть до четверти знаний, полученных в классе и дома. Для того чтобы вовлечь детей в повторение математики на каникулах, мы делаем образовательные игры.

Сегодня я расскажу о нашем опыте в такой лернификации мультиплеерных игровых механик и адаптации их для детей от семи до одиннадцати лет на примере новой онлайн-игры «Формула 1+1». За несколько месяцев работы в тестовом режиме (игра доступна только 10% пользователей платформы) в ней приняли участие 95 тыс. игроков, а самые упорные провели в ней больше 100 часов, то есть более 6 тыс. игр. Я постараюсь показать, как мы реализуем лернификацию — процесс, когда мы не пытаемся сделать интересной учебу, а напротив — добавляем элемент обучения в игру.


Карта гонок в игре «Формула 1+1»
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments5

Создание браузерных 3d-игр с нуля на чистом html, css и js. Часть 2/2

Reading time43 min
Views12K
В данной статье мы продолжим создавать трехмерную браузерную игру лабиринт на чистом html, css и javascript. В предыдущей части мы сделали простой 3-мерный мир, реализовали движение, управление, столкновения игрока со статическими объектами. В этой части мы будем добавлять гравитацию, статическое солнечное освещение (без теней), загружать звуки и делать меню. Увы, как и в первой части, демок здесь не будет.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments4

Функциональные тесты в Циан

Reading time9 min
Views4.8K


Привет!


Меня зовут Тимофей, я Python-разработчик в команде Платформа компании Циан. Наша команда занимается разработкой инструментов для продуктовых разработчиков. Это и библиотеки: HTTP-клиент, веб-сервер, библиотеки доступа к базам данных, и средства мониторинга микросервисов и сайта в целом, и интеграция с CI/CD и многое другое.


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


Но для начала...

Читать дальше →
Total votes 6: ↑5 and ↓1+6
Comments4

Архитектура — Декларативна. Реализация — Императивна. Все остальное — Бюрократия

Reading time14 min
Views8.6K
Что такое Архитектура? Чем Архитектура отличается от Дизайна? Где граница между Архитектурой и Реализацией? Можно ли увидеть Архитектуру? Можно ли тестировать Архитектуру? Чем отличаются Инженерный и Эволюционный подходы к Архитектуре? Что такое Хорошая Архитектура? В чем состоит работа Архитектора? Чем она отличается от работы Разработчика? Какие инструменты доступны Архитектору? Можно ли менять Архитектуру отдельно от Реализации? Есть ли у Архитектуры ДНК?


Читать дальше →
Total votes 12: ↑10 and ↓2+13
Comments14

SHISHUA: самый быстрый в мире генератор псевдослучайных чисел

Reading time14 min
Views16K

Полгода назад мне захотелось создать лучший генератор псевдослучайных чисел (ГПСЧ) с какой-нибудь необычной архитектурой. Я думал, что начало будет лёгким, а по мере работы задача станет медленно усложняться. И думал, смогу ли я научиться всему достаточно быстро, чтобы справиться с самым сложным.

К моему удивлению, сложность возрастала не линейно. Побайтовое тестирование по критерию хи-квадрат оказалось очень трудным! Позднее столь же трудно было пройти тесты diehard. Я опубликовал текущие результаты, чтобы понять, какие ещё трудности меня ожидают. Однако тест PractRand в тот раз пройти не удалось.

Затем было очень трудно прохождение теста BigCrush.

Затем было очень трудно передавать 32 тебибайта данных при прохождении PractRand. Скорость стала проблемой. Мало было создать конструкцию, генерирующей десять мегабайтов в секунду, потому что прохождение PractRand заняло бы месяц. Но должен признаться, что пройти этот тест со скоростью гигабайт в секунду было очень трудно.
Читать дальше →
Total votes 61: ↑59 and ↓2+85
Comments16

Пишем игру «Жизнь» для NES на Rust

Reading time12 min
Views5.6K
image

Этот пост — о программе на Rust…

$ cargo install conway-nes

…выводящей двоичный файл NES…

$ conway-nes > life.nes

…в котором выполняется конвеевская игра «Жизнь»!

$ fceux life.nes    # fceux is a NES emulator

Запустив игру на эмуляторе, нажмите любую кнопку контроллера, чтобы начать заново с рандомизированного состояния.
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments4

Создайте свой собственный симулятор Q# — Часть 1

Reading time4 min
Views3.1K
Симуляторы — это особенно универсальная особенность QDK. Они позволяют вам выполнять различные задачи в программе на Q#, не меняя ее. Такие задачи включают симуляцию полного состояния, оценку ресурса или симуляцию трассировки. Новый интерфейс IQuantumProcessor позволяет очень легко создавать собственные симуляторы и интегрировать их в свои проекты на Q#.

Этот пост является первым в серии, посвященной этому интерфейсу. Мы начнем с реализации обратимого симулятора в качестве первого примера, который мы расширим в будущих публикациях в блоге. Обратимый симулятор может моделировать квантовые программы, которые состоят только из классических операций: X, CNOT, CCNOT (Toffoli gate) или произвольно управляемых X-операций. Поскольку обратимый симулятор может представлять квантовое состояние, присваивая одно булево значение каждому кубиту, он может запускать даже квантовые программы, состоящие из тысяч кубитов. Этот симулятор очень полезен для тестирования квантовых операций, которые оценивают булевы функции.

Читать дальше →
Total votes 8: ↑7 and ↓1+9
Comments1

Наилучшие практики создания REST API

Reading time13 min
Views48K
Всем привет!

Предлагаемая вашему вниманию статья, несмотря на невинное название, спровоцировала на сайте Stackoverflow столь многословную дискуссию, что мы не смогли пройти мимо нее. Попытка объять необъятное — внятно рассказать о грамотном проектировании REST API — по-видимому, удалась автору во многом, но не вполне. В любом случае, надеемся потягаться с оригиналом в градусе обсуждения, а также на то, что пополним армию поклонников Express.

Приятного чтения!
Читать дальше →
Total votes 20: ↑17 and ↓3+24
Comments54

4 революционных возможности JavaScript из будущего

Reading time8 min
Views21K
JavaScript, с момента выхода стандарта ECMAScript 6 (ES6), быстро и динамично развивается. Благодаря тому, что теперь новые версии стандарта ECMA-262 выходят ежегодно, и благодаря титаническому труду всех производителей браузеров, JS стал одним из самых популярных языков программирования в мире.

Недавно я писал о новых возможностях, которые появились в стандарте ES2020. Хотя некоторые из этих возможностей и весьма интересны, среди них нет таких, которые достойны называться «революционными». Это вполне можно понять, учитывая то, что в наши дни спецификация JS обновляется достаточно часто. Получается, что у тех, кто работает над стандартом, просто меньше возможностей для постоянного внедрения в язык чего-то особенного, вроде ES6-модулей или стрелочных функций.



Но это не значит, что нечто исключительно новое в итоге в языке не появится. Собственно говоря, об этом я и хочу сегодня рассказать. Мне хотелось бы поговорить о 4 возможностях, которые, в перспективе, можно будет назвать революционными. Они находятся сейчас на разных стадиях процесса согласования предложений. Это, с одной стороны, означает, что мы можем никогда их в JavaScript и не увидеть, а с другой стороны — наличие подобных предложений даёт нам надежду на то, что мы их, всё же, когда-нибудь встретим в языке.
Читать дальше →
Total votes 32: ↑27 and ↓5+37
Comments33

Пол Грэм: Привилегия ортодоксальности

Reading time3 min
Views1.9K
В последнее время много говорят о привилегиях. Хоть эта концепция и перегружена, в ней что-то есть. В частности идея о том, что привилегии ослепляют – имея привилегию, вы не можете увидеть то, что заметно тем, чья жизнь значительно отличается от вашей.

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

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

И все же, на каждом этапе истории существовали истины, высказывание которых могло привести к ужасным неприятностям. Может быть к нашей истине это не относится? Это было бы удивительное совпадение.
Читать дальше →
Total votes 12: ↑6 and ↓6+3
Comments3

Вероятно, хватит рекомендовать «Чистый код»

Reading time13 min
Views178K
Возможно, мы никогда не сможем прийти к эмпирическому определению «хорошего кода» или «чистого кода». Это означает, что мнение одного человека о мнении другого человека о «чистом коде» обязательно очень субъективно. Я не могу рассматривать книгу Роберта Мартина «Чистый код» 2008 года с чужой точки зрения, только со своей.

Тем не менее, для меня главная проблема этой книги заключается в том, что многие примеры кода в ней просто ужасны.
Читать дальше →
Total votes 128: ↑118 and ↓10+137
Comments427

Взаимодействие bash-скриптов с пользователем. Часть 2

Reading time3 min
Views51K
Наша программа настолько сурова, что даже логин отображается звездочками (bash.org.ru)

Вашему вниманию представляется новая подборка средств общения скриптов с пользователем. Надеюсь, интересно будет всем, кто не боится работать с консолью.
Первую часть можно найти тут.
Читать дальше →
Total votes 48: ↑48 and ↓0+48
Comments17

Массивы bash

Reading time3 min
Views93K
Предлагаю вашему вниманию перевод статьи Митча Фрейзера (Mitch Frazier) "Bash Arrays" с сайта linuxjournal.com.

Если вы используете «стандартную» оболочку *NIX-системы, возможно, вы не знакомы с такой полезной особенностью bash как массивы. Хотя массивы в bash не так круты, как в P-языках (Perl, Python и PHP) и других языках программирования, они часто бывают полезны.
Bash-массивы имеют только численные индексы, но они не обязательны к использованию, то есть вы не должны определять значения всех индексов в явном виде. Массив целиком может быть определен путем заключения записей в круглые скобки:

  arr=(Hello World)

Отдельные записи могут быть определены с помощью знакомого всем синтаксиса (от Бейсика (да простит меня Дейкстра — прим. переводчика) до Фортрана):

  arr[0]=Hello
  arr[1]=World

Читать дальше →
Total votes 22: ↑21 and ↓1+24
Comments30

Spothiefy: как переехать из Яндекс.Музыки быстро, бесплатно

Reading time5 min
Views75K
Итак, в июле жизнь в стране наконец стала меняться к лучшему, ведь произошло то, чего многие жители с нетерпением ждали: Spotify запущен в России и ряде других стран.

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

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

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

Пётр и крышка спотифая
Завести трактор
Total votes 42: ↑36 and ↓6+45
Comments111

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity