Как стать автором
Обновить
-9
0
Илья @pust0ta

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

Отправить сообщение

Создаём основу для диалогового Телеграм бота в облаке

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров8.4K

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

Это первая статья цикла, в ней я расскажу, как создать базу — шаблонного serverless бота на Python с использованием Yandex Cloud Functions и базы данных YDB с нуля.

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

/start
Всего голосов 12: ↑9 и ↓3+6
Комментарии7

На пути к идеальной клавиатуре

Время на прочтение9 мин
Количество просмотров61K

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


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


image

Читать дальше →
Всего голосов 90: ↑89 и ↓1+114
Комментарии355

Достаточно одной К155ЛА3

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров55K

Продолжая тему легендарных микросхем, нельзя обойти вниманием замечательнейшую микросхему 7400, также известную на постсоветском пространстве, как К155ЛА3.

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

И поможет нам в этой проверке другое откровение: «Инверсия конъюнкции есть дизъюнкция инверсий». Заодно и разберёмся, что есть «конъюнкция», что есть «дизъюнкция», и причём здесь «инверсия».
И это совсем несложно
Всего голосов 158: ↑153 и ↓5+191
Комментарии156

Публикация локального сервера из дома в интернет

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров47K

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

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

Мы рассмотрим здесь несколько сценариев - статический белый айпи, динамический белый айпи, и серый. Для серого рассмотрим варианты с готовыми сервисами, с помощью Keenetic и с помощью ssh туннеля. Погнали!

Читать далее
Всего голосов 57: ↑55 и ↓2+62
Комментарии97

«Квантовая» диаграма Виенна: как нас дурит научпоп

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров31K

Хорошо, когда нам простыми словами объясняют сложные вещи, правда? Особенно когда речь про такие неочевидные эффекты как квантовая запутанность, суперпозиция и прочее квантовое. А как здорово, когда квантовый эффект можно увидеть своими глазами! Нам всего-то нужны три простые советские поляризующие пластинки...

Читать далее
Всего голосов 75: ↑71 и ↓4+85
Комментарии146

Китайский паяльный робот: тыкаем палкой и заставляем работать

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров20K

Раньше паяльные роботы стоили миллионы рублей, но в последнее время подешевели.

Почему бы не попробовать такого робота в деле? Сможет ли он заменить «кожаный мешок» с паяльником?

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

Интересно? Ныряйте под кат

Читать далее
Всего голосов 75: ↑75 и ↓0+75
Комментарии43

Простая, недорогая, точная высокотемпературная электропечь своими руками

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров13K

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

Здесь мы говорим о разного рода работах в условиях домашней любительской мастерской, где обычные печные дела — термообработка металлов, литьё из алюминия-бронзы, гончарное дело.
Читать дальше →
Всего голосов 98: ↑98 и ↓0+98
Комментарии74

Графические оболочки FFmpeg

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров31K


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

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

FFmpeg — изначально консольная утилита. Но её популярность крайне высока. Поэтому появляются всё новые варианты графических оболочек для FFmpeg, чтобы доступ к инструменту получили абсолютно все пользователи.
Читать дальше →
Всего голосов 107: ↑107 и ↓0+107
Комментарии76

Вам не нужен для этого JavaScript

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров28K

Прошу вас не возмущаться названием статьи. Я не ненавижу JavaScript, я люблю его. Ежедневно я пишу на нём кучу кода. Но ещё я люблю CSS и даже люблю JSX HTML. Я люблю все эти три технологии по причине, которая называется…

▍ Правило наименьших полномочий


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

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

В отличие от JS с его императивностью, HTML и CSS декларативны. Вы говорите браузеру, что делать, а не как это делать. Это значит, что браузер сам выбирает, как это делать, и может сделать это наиболее эффективным образом.

Так как функции HTML и CSS обрабатываются браузером, они могут быть более производительными, более нативными, более адаптируемыми к предпочтениям пользователя и в общем случае иметь бОльшую accessibility. Это не значит, что так будет всегда (особенно когда дело касается accessibility), но когда все сложные задачи берёт на себя браузер, от этого обычно выигрывают конечные пользователи.
Читать дальше →
Всего голосов 81: ↑79 и ↓2+93
Комментарии38

Прорывная концепция ракетного двигателя

Уровень сложностиСложный
Время на прочтение25 мин
Количество просмотров87K

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

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

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

Читать далее
Всего голосов 240: ↑233 и ↓7+285
Комментарии491

Пароль не нужен. Разбиение файла на зашифрованные фрагменты по схеме Шамира

Время на прочтение4 мин
Количество просмотров13K


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

Например, простенькая утилита horcrux (крестраж*) разбивает файл на несколько зашифрованных частей (например, пять), причём для дешифровки и восстановления исходного текста не нужен пароль, а нужно найти и соединить несколько из этих частей (например, три). Предполагается, что сами отдельные части хранятся у разных людей в разных местах и/или надёжно спрятаны, например, в разных местах дома, сейфах, банковских ячейках и т. д.

*Крестраж — волшебный артефакт, созданный с помощью тёмной магии, из вселенной Гарри Поттера.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+29
Комментарии14

Безопасное управление двигателем постоянного тока

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров11K

Речь о том, как управлять включением и скоростью двигателя постоянного тока на примере сервопривода MC50 так, чтобы сервопривод не сгорел. Несмотря на то, что MC50 был разработан для управления BLDC моторами, он также хорошо подходит и для управления коллекторными двигателями постоянного тока мощностью до 600 Вт. Правда для этого пришлось сделать некоторые незначительные модификации.

Читать далее
Всего голосов 19: ↑18 и ↓1+20
Комментарии23

Приборы и материалы для чистки зубов (какая щётка лучше, например)

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров35K
Вот это южнокорейская зубная щётка. Она в два раза длиннее обычной, потому что корейцы привыкли получать максимум эффекта на каждую потраченную вону. Теперь простой вопрос: может, стоит тоже купить такую, раз она больше? Можно будет чистить зубы быстрее или эффективнее?

image

Нет, не стоит. Лучше купить щётку с большим количеством щетинок, хотя бы 5 тысячами штук.

Такие щётки стоят в Москве 500–900 рублей в аптеках. Вот с ними реально одно движение может быть эквивалентно по эффекту 4–5 движениям обычной щёткой.

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

А, может, взять ионную, которая имеет заряд и лучше притягивает всякий мусор? Тоже есть пара исследований.

Давайте разбираться, как лучше чистить зубы с позиции девайсов и здравого смысла.
Читать дальше →
Всего голосов 70: ↑65 и ↓5+71
Комментарии65

Как работает компьютер: глубокое погружение (на примере Linux)

Уровень сложностиСложный
Время на прочтение48 мин
Количество просмотров149K



Введение


Я делала много вещей с компьютерами, но в моих знаниях всегда был пробел: что конкретно происходит при запуске программы на компьютере? Я думала об этом пробеле — у меня было много низкоуровневых знаний, но не было цельной картины. Программы действительно выполняются прямо в центральном процессоре (central processing unit, CPU)? Я использовала системные вызовы (syscalls), но как они работают? Чем они являются на самом деле? Как несколько программ выполняются одновременно?


Наконец, я сломалась и начала это выяснять. Мне пришлось перелопатить тонны ресурсов разного качества и иногда противоречащих друг другу. Несколько недель исследований и почти 40 страниц заметок спустя я решила, что гораздо лучше понимаю, как работают компьютеры от запуска до выполнения программы. Я бы убила за статью, в которой объясняется все, что я узнала, поэтому я решила написать эту статью.


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


Более удобный формат статьи.

Читать дальше →
Всего голосов 151: ↑151 и ↓0+151
Комментарии36

Исходники закрыты, но мы не сдадимся: Пишем полностью нативное GUI-приложение под No-Name смартфон без Android

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров20K
image

Для многих разработчиков приложений далеко не секрет, что экосистема Android не предполагает написание полностью нативных приложений: в этой платформе очень многое завязано на Java и без ART можно запустить только простые службы без какого-либо интерфейса. Однако, есть один способ писать практически под «голый» Linux, не перекомпилируя ядро и при этом пользоваться самыми интересными фишками устройства без оверхеда в виде тяжелого Android: ускорение 3D-графики (OpenGLES), микшер звука, ввод с различных устройств, OTG, Wi-Fi и если очень постараться — даже 3G. Это открывает множество разных интересных применений старым устройствам: «железо» смартфонов зачастую гораздо мощнее современных недорогих одноплатников. Сегодня я покажу вам, как написать и запустить программу, которая полностью написанное на C без Android, на No-Name Android-смартфоне практически без модификаций. Интересно? Жду вас в статье!
Читать дальше →
Всего голосов 81: ↑80 и ↓1+91
Комментарии38

Развлекаемся с электрофоретическими дисплеями

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров25K

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

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

Читать далее
Всего голосов 176: ↑176 и ↓0+176
Комментарии32

Системы счисления, которым ещё не время умирать

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров16K

В сегодняшнем мире доминирует индийско-арабская десятичная система. И эта система, принятая почти в каждом обществе, представляет собой то, что большинство людей считают «числами». Десятичная система оперирует числами, выраженными цифровой базой от 0 до 9. Но существуют значимые альтернативы, и они столь же разнообразны, как и культуры, к которым принадлежат. В 1994 году группа инуитских учащихся под руководством преподавателя изобрели новую систему счисления.

«Кактовикские цифры», названные в честь населённого пункта на Аляске, где они были созданы, выглядят совершенно иначе, чем цифры десятичной системы, и функционируют совсем по-другому. Они как нельзя лучше подходят для скоростной визуальной арифметики с использованием традиционной двадцатеричной системы устного счета инуитов.

Читать далее
Всего голосов 42: ↑41 и ↓1+55
Комментарии26

Разные идеи по апгрейду DIY-процесса изготовления печатных плат

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров15K

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

Конечно, зачастую вопрос решается пучком проводов, подключённых «левой ногой» и breadboard-ом, но раз уж мы говорим о более-менее финальном варианте, то здесь без самодельной платы не обойтись.
Читать дальше →
Всего голосов 45: ↑42 и ↓3+62
Комментарии129

Шпионские страсти: самые странные и причудливые приспособления на службе разведок ХХ века. Часть 2

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров23K

Работа шпионов и контрразведчиков во все века была непростой — и со временем им на помощь стали приходить достижения науки, техники и пытливой инженерной мысли. В прошлой части мы рассказали про несколько девайсов времён Холодной войны: советский герб-жучок 1945 года для посольства США, американские трубки-зубопередатчики и даже акустических кошек. Во второй части продолжим обещанное — про нарочито мерзкие контейнеры, смертельные зонтики и другие странные шпионские устройства ХХ века.
Читать дальше →
Всего голосов 65: ↑63 и ↓2+84
Комментарии9

Как создать аппаратный эмулятор CD-ROM без паяльника

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров16K

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

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

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

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

Я сам узнал много интересного, систематизировал свои знания, поэтому надеюсь, что чтение будет познавательно и интересно для вас.
Читать дальше →
Всего голосов 94: ↑94 и ↓0+94
Комментарии17
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Ленинск, Волгоградская обл., Россия
Дата рождения
Зарегистрирован
Активность