Задать вопрос
  • Как научиться делать безшовные фоны?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В родительском ресурсе https://habr.com/ есть очень хорошие статьи на эту тему. Поищи с тегами tile, textures, game e.t.c.
    Ответ написан
  • Как на основе данных с камеры, отправлять их в бд (python)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для отправки данных с камеры в базу данных в Python, вы можете использовать следующий подход:
    1. Получите данные с камеры: Используйте библиотеку OpenCV для получения данных с камеры. Вы можете использовать метод cv2.VideoCapture() для получения кадров с камеры.
    2. Подключитесь к базе данных: Используйте библиотеку Python для работы с базами данных, такую как sqlite3 или pymysql. Вы можете использовать метод connect() для подключения к базе данных и создания объекта подключения.
    3. Создайте таблицу в базе данных: Используйте SQL-запросы для создания таблицы в базе данных. Например, если вы используете SQLite, то можете создать таблицу следующим образом
    import sqlite3
    
    conn = sqlite3.connect('database.db')
    c = conn.cursor()
    
    c.execute('''CREATE TABLE frames
                 (frame BLOB)''')

    Вставьте данные в таблицу: Используйте SQL-запросы для вставки данных в таблицу. Например, если вы используете SQLite, то можете вставить данные следующим образом:
    import sqlite3
    
    conn = sqlite3.connect('database.db')
    c = conn.cursor()
    
    frame_data = # полученные данные с камеры
    c.execute("INSERT INTO frames VALUES (?)", (frame_data,))

    Закройте соединение с базой данных: Используйте метод commit() для сохранения изменений в базе данных, а затем метод close() для закрытия соединения.
    import sqlite3
    
    conn = sqlite3.connect('database.db')
    c = conn.cursor()
    
    frame_data = # полученные данные с камеры
    c.execute("INSERT INTO frames VALUES (?)", (frame_data,))
    conn.commit()
    
    conn.close()


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

    Ответ написан
    5 комментариев
  • Почему иногда выходит ошибка java.awt.HeadlessException: null?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Headless - это специальный релиз Java который ставится на сервера где никогда не будет подключенного
    монитора. Виртуалки. Фиксится это наверное установкой правильног десктопного релиза на десктоп
    где все графические библитеки в наличии.

    Почему у тебя что-то рандомно выскакивает - это вопрос.
    Ответ написан
    1 комментарий
  • Как увеличить стабильность интернета?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это особенно чувствуется в онлайн играх/трансляциях и тд.

    Значить по некоторым базовым вещам. Такого понятия как "скорость Интернета" не существует.
    Это метафора. Но есть конкретно скорость и лаг между двумя хостами интернета. Вот нужно
    мерять между конкретными точками. Зафиксировать ситуацию. Вот в момент тормоза в играх
    будет ли такая-же скорость связи с гугл-dns 8.8.8.8 ?

    Между провайдеров со скоростями обычно все хорошо. Там оптические каналы давно лежат
    и резервирование. Проблемой может быть т.н. последняя миля. Это то что у тебя в квартире. В подъезде.
    В домовой сети. Вот я-бы начал искать именно так. Есть ли такие-же проблемы у соседей дома?
    Ответ написан
  • Dbeaver не видит новые БД, что делать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Что там по сетевому доступу?

    Сделай в консоли

    $ nc -zv your-db-host 5432

    Александр Богдашкин, если нет - установи ее под Windows. Синоним - netcat. В данном случая я проверяю доступ к TCP-сокету.

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

    Если сокет закрыт - то нет смысла делать эксперименты с Бивером. Тебя просто файрвол не пускает.

    UPD. Удалено лишнее.
    Ответ написан
  • Как реализовать распознавание объектов на python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Raspberry Pi - это игрушка для энтузиастов. Если вы на разработку модели потратили тера-флопы облаков с TPU то нет смысла такую модель запускать на детской конфигурации. Тем более что речь идет о рельсах. Это железная дорога. А железная дорога вполне себе способна оплатить нормальный десктоп. И я никогда не поверю в какую-то здесь в данном случае экономию.
    Ответ написан
  • Какой из способов создания оффлайн биткоин-кошелька самый безопасный?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У меня возникал аналогичный вопрос но не в части кошельков а в сервисах двухфакторной автентификации для мобил. Вот потеряю допустим телефон. Какова процедура восстановления? Это головняк. Даже чтоб восстанавливать что-то их бэкапа - надо себя идентифицировать или предьявлять мастер-пароли которые очень длинные.

    К слову я ничего не придумал. Немного замкнутый круг получается. Самый простой и надеждый способ - все таки использовать мнемонические фразы из стандартного bip39. Эти фразы выжечь у себя татуировкой на руке или блин заказать себе жетон на шею с гравировкой. Или как Киану Ривзу прошить в мозг под гипнозом. Вобщем нужно такое хранилище чтоб.... ну короче лучше сейфа и бумагами я пока ничего не придумал. Звучит смешно но бумага оказывается надежнее чем жесткие диски сидюки и кассеты стриммера.

    Археологи подтвердят.
    Ответ написан
    Комментировать
  • Самоучитель по Solidity?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Онлайн курсы : Udemy, Coursera, and edX

    Книги:
    "Mastering Ethereum" by Andreas M. Antonopoulos, Gavin Wood, and others
    "Building Ethereum Dapps" by Roberto Infante.
    Ответ написан
  • Хочу использовать компьютер одновременно как NAS так и Свитч вопрос в том возможно ли это?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Сеть без подключения к Интернету. Что это? Я могу предположить что Microsoft наличие интернета определяет по доступности какого-то интернет ресурса. Статус - вполне ожидаемый ведь у нас действительно там нет интернета. Мы-же делаем свитч?

    По поводу использования Windows в роли NAS/switch. Мы живем в эпоху челленджей. Когда люди например целый день швыряют карандаш в бутылку и снимают на телефон успешные попадания. Я думаю что эта задача тоже - безсмысленный челледж.

    Можно ли вообще это сделать? Я думаю можно.

    Для Linux/BSD сущесвтуют мануалы по конфигурации проксей, мостов и натов. Можно их брать и консольными командами идти к успеху. Для Windows десктовов я таких манов не знаю. Ну... может быть есть визуальные инструкции из серии - зайди в панель управления и нажми на Сеть и т.д. Но проблема в том что они датируются эпохой Windows-XP и безнадежно устарели. А дизайн Windows от версии к версии меняется так что сложно потом где-то искать нужный батон. Куда его производитель запихнул. Это знают инженеры по ремонту железа. Которые домохозяйкам ставят антивирусы и интернет. Но они NAS/router не делают. Невыгодно и хлопотно.

    Кроме того в эпоху экономии электроэнергии нам не очень выгодно держать включенный десктоп. Шумит. Тепловыделяет. Вибрации лишние. Для дома и для семьи лучше держать тихую технику. Чтоб ночью спать спокойно.

    А если делать медиацентр - то можно в обычный роутер tp-link включить portable-drive и пошарить медиа-сервер. И можно фильмы смотреть.
    Ответ написан
    1 комментарий
  • Как с помощью Python записать "внутренний" звук компьютера?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно с помощью youtube-dl отдельно скачать дорожку в mp3. Но в настоящий момент Youtube что-то поменял в ендпоинтах и эта утилита сломана. Ждем фикса здесь https://github.com/ytdl-org/youtube-dl/issues

    И тогда можно ее вызвать из Python. И сама она тоже написана на Python. Поэтому с интеграцией не будет проблем я думаю.
    Ответ написан
    Комментировать
  • В чем минусы событийно ориентированного подхода?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не претендую на правду. Просто несколько мыслей.

    В чем минусы событийно ориентированного подхода?
    Насколько я понимаю, Алан Кей (тот кто придумал термин Объекто-ориентированный) старался придерживаться именно этого подхода. т.е. кто-то отправляет сообщение, а объекты в системе на него реагируют, каждый по-своему.
    По сути у нас есть message bus, в который добавляется сообщение, а объекты системы слушают этот самый message bus.

    Мысль первая. Наследие.

    Когда мы говорим о наследии Алана Кея - надо просто глянуть что он создал практически.
    А создал он язык Smalltalk. Поэтому логично изучать минусы событийного подхода на
    примере софта который написан с использованием Smalltalk. Кто из коллег в топике
    знает примеры такого софта? Я - к сожалению не знаю.

    По ссылкам википедии https://en.wikipedia.org/wiki/Smalltalk можно видеть в категории
    influenced мы просто видим что Smalltalk
    влиял на Java, Go, Swift. Но я здесь не согласен потому что мы не можем измерить глубину
    этого влияния. Это все равно что сказать что Сталин влиял на Черчилля. Как влиял? На 10%?
    Или более чем половину? Сложно. Насчет Java я тут сказал-бы что сомнительно. ООП? Может быть.
    Акторы? Нет. В Java изначально нет акторов. Они существуют позже в виде фреймворков но
    языком не поддерживаются.

    По поводу MessageBus. Если брать технологию акторов которая используется в Erlang.
    то там скорее не message bus а очереди сообщений между потоками-акторами.
    Если про Smalltalk сказать нечего то про Erlang я могу сказать что на нем написаны
    две единицы софта такие как RabbitMq (очень надежная и неубиваемая система MQ).
    Может не супер-производительная. И CouchDb которая выделяется своей
    устойчивостью ко всяким сетевым сбоям. Реклама говорит что Кауч работает
    практически при мигающей сети, при обрывах и т.п. лучше чем аналогичый TCP-IP совт.

    Мысль вторая. Что Кей говорил про ООП.

    У меня есть цитатник. Я туда собираю некоторые слова на лытни. И иногда слова Кнута, Дейкстры
    и прочих it-академиков. Вот из цитатника Кея:

    I made up the term "object-oriented," and I can tell you
    I did not have C++ in mind.

    Что в этой прямой речи можно понять. Что господин Кей открещивается от современного ООП.
    А фактически все современное ООП зеркалит то что есть в С++. Здесь вы можете со мной спорить
    о первенстве (я не буду спорить я не знаю). Но абсолютно очевиден факт что мир пошел по пути
    жесткой синхронщины в 80х. И пока все еще идет. Будут ли примитивные типы int/double обьектами
    не суть важно. Тут важно что Кей постулирует среду в которой двигаются сообщения. Как сеть в миниатюре.
    А классическое ООП С++ - лишает нас этой среды и заменяет ее вызовом метода. Никакого сообщения
    в С++ нет и быть не может потому что сообщение НЕ существует в отрыве от основного потока который
    инициировал вычисления. Умрет поток - развалится весь стек и параметры и все. В противоположность
    в языке Erlang поток (процесс) приёмник может дохнуть много раз но стек сохраняет свою живучесть
    просто повторяя вычисления заново. И здесь мне кажется и идет развилка путей.

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

    Интересно почему в 80х Алан Кей проигрывал. Я думаю что победил прагматизм. В те далекие 80-е
    комьютеры были еще слабыми. Частота мерялась сотнями килогерц и мегагерцами. И в расчетах
    каждый такт был важен. И красивые и академические языки такие как Lisp, Prolog, Smalltalk
    просто проигрывали языку С в силу оверинжинеринга. А поскольку С++ был вначале действительно
    ООП-надстройкой над С - то он предлагал и ООП-подход и скорость портабельного ассемблера.
    И хотя я лично не люблю С++ (я считаю его перегруженным техническими долгами прошлого)
    я признаю что бизнес выбирая С++ выбирал просто скорость вычислений. Академизм и красивые
    доказательства правоты программ были тогда не нужны. Нужно чтоб банковское приложение
    быстро считало кредиты и выдавало зарплаты и пенсии.

    Сегодня, когда мы нежемся в сладкой неге мощных процессоров и даже (!) облаков - мы можем
    себе позволить любого уровня парадигмы и абстракции. Цена 1 абстракции стала настолько дешево
    стоить что нам дешевле в банках запускать Java/Net приложения и на ходу фиксить ошибки
    чем долго разрабатывать на С++ и иметь неопредленнное поведение и тяжелый анализ
    в случае падения. Даже такой уродец как Python взлетел как язык интеграции а не разработки.

    Мысль третья. Нестандартные и асинхронные архитектуры реализованные в железе.

    Недавно смотрел анонс нового процессора от Чака Мура (это тот самый Мур который создал закон имени себя).
    Мне кажется это пример той самой асинхронной клетки о которой мечтал Алан Кей.

    Мысль четвертая. На кого похож Алан Кей?

    Не знаю как вам. :) А мне он уж очень напоминает Боливара Траска из Люди Икс Дни Минувшего будущего.

    Мысль 5. Что делает Алан Кей на фото?

    Бренчит на музыкальных инструментах. Наверное блюз. Блюз потерянных архитектур :)
    Ответ написан
    Комментировать
  • Как в консоли выбрать файл не вводя его имя?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Bash поддерживает hexadecimal unicode символы

    Вот заглавная А.
    echo -e '\u0410'
    Если знаешь код следующей буквы то можещь ввести и снова нажать tab.
    Ответ написан
    2 комментария
  • Какой тип БД лучше использовать для веб-игры?

    mayton2019
    @mayton2019
    Bigdata Engineer
    При такой постановке задачи тебе безразлично какую NoSQL брать. Я-бы выбирал из скорости
    вхождения в API. Посмотри где более легкий для тебя API из списка например:
    - CouchDB
    - Tarantool
    - RocksDb
    - LevelDb
    на Python и бери и используй.

    Вряд-ли твоя игра достигнет каких-то технических лимитов в этих системах. Можешь брать любую.
    В NoSQL системах под нагрузкой либо канал затыкается (что почти невозможно в твоем конфиге)
    либо твой код. Но задидосить NoSQL движок почти невозможно. Юзай смело.
    Ответ написан
  • Ошибка: sqlite3.OperationalError: no such column: telegram_id: Как исправить?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Добавь новую колонку telegram_id.

    А этот код скорее всего не работает
    CREATE TABLE IF NOT EXISTS users
    потому что он опционален.

    Ты сам себя перехитрил :)
    Ответ написан
    Комментировать
  • Как написать свой парсер (поисковик) CSV на Java?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Использовать готовые библиотеки для работы с CSV

    Я не согласен с этим ограничением. Зачем оно? Так хочет твой преподаватель? Это просто неконструктивно. В процессе написания парсера ты соберешь миллион гвоздей и шишек. Лучше брать готовы парсеры которые работают со скорость канала IO (Univocity например).

    Перечитывать полностью весь CSV файл каждый раз (и даже отдельные колонки)

    Я не согласен с этим ограничением. Почему нельзя? Цель найти данные. А не банить операции I/O.
    Если ты делаешь In-Memory DB то так и напиши. А то получаетася такое завуалированное требовие.
    Потому-что решать эту задачу не читая CSV невозможно.

    У меня уже есть некоторое решение, а именно решил так: читаю файл, сравниваю с введенной строкой, и кеширую, если в кеше уже есть такой ключ (кеш реализовал с помощью LinkedHashMap

    Какая-то ерунда. Откуда здесь берется условие "если" ? Тебе не нужно если, чувак. Тебе нужно 100% данных
    положить in-memory сразу во время первого чтения. Причем тебе нужно столько LHM, сколько колонок.

    Я не прошу решить за меня если что) Мне бы задать вектор, что почитать, что посмотреть, потому что какое-то более хорошее решение придумать не получается... Спасибо!

    Скорее всего нет такого вектора. Но ты должен начать читать с Алгоритмов и Структур данных
    Потом почитай про дисковые структуры данных для поиска B+Tree, LSMTree. Почитай как устроены
    таблицы в Cassandra (partitionkey, clustering key). Почитай как работает LRU и кеш блоков.
    Ответ написан
  • Какая есть альтернатива для lowdb?

    mayton2019
    @mayton2019
    Bigdata Engineer
    работает на node.js , без ruby, .net и тд.

    Я не согласен с такими странными требованиями. Что за религия запретила .net? Тебе нужен только nodejs-клиент к этой базе а сама база может быть написана на чем угодно. Тебя-же не смущает что nginx написан на языке С ? Как-то же node-приложения работают с ним?

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

    Посмотри https://db-engines.com/en/system/LevelDB. Это классика и обычно всем подходит. Даже в блокчейнах (кошельках) используется.

    для неё не нужен свой сервер и всё взаимодействие с ней идёт через ноду

    Скорее всего речь идет об однопользовательской файловой БД. Тут тоже leveldb подходит.

    По поводу промисов - ничего не скажи. Возможно есть обертка которая закроет для тебя синхронность
    и сделает видимость асинхронности.
    Ответ написан
    Комментировать
  • Есть ли простое и быстрое решение определить, что фраза изменена незначительно?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно вести подсчет триграмм. (Троек символов). И если разница в небольшом числе триграмм - тогда
    считаем что слова равны с "допуском". Величину допуска можно установить экспериментально исходя
    из тестовых выборок.

    Для случая сходразвал сход-развал.
    сходразвал: схо ход одр дра раз азв вал
    для слова с дефисом из триграмм выпадают
    одр дра
    следовательно допуск равен двум.

    Можно использовать би-граммы или четерех-граммы. Это вопрос эксперимента. Что лучше подойдет на
    данном наборе исходных данных.
    Ответ написан
    Комментировать
  • Как присвоить несколько элементов в одной ячейки SQLite3?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Согласно законам нормализации в самой первой нормальной форме 1НФ требуется чтобы все данные лежали
    в таблице и ячейчки содержали атомарные значения. Тоесть списки - нельзя. Иначе такая таблица
    не признается реляционной и делать с ней реляционные действия невозможно.

    Попробуй разбить свою таблицу на две. Пользователи. И id_пользователей.
    Ответ написан
  • Что написать на C++ для практики?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У меня периодически возникает одна и таже задача - очень быстро искать нужный текст в логах. Логи большие. Могут быть по терабайту. Россыпь файлов типа

    application/log-2023-02-16-12-30.log
    application/log-2023-01.gz

    Загружать их в эластик - некогда обычно. Тут работа такая что нужно за час разобратсья и логи потом можно
    выкинуть.

    Вот есть сделать предложение - создать утилиту igrep (index-grep) которая при первом пуске - быстро проиндексирует по датам и словам.
    И при полседующих будет искать быстро. И диапазон учитывать например.

    Классический греп не подходит. Он все равно ищет линейно. Не учитывая даты. А мне надо так.

    $ igrep time=-12h level=ERROR Tomcat Network Error
    Вот. Здесь я как-бы захотел поискать все события за 12 часов назад уровня ошибки и содержащие
    два ключевых слова.

    Сами файлы обычно внутри структурированы так. Это почти всегда шаблон.
    2023-02-16T00:00:01,000 [Info] Server started.
    Есть метка времени. Уровень события. И текст события. Много-строчники (стектрейсы) можно соединять в одну строку. О длине самих файлов - ничего не известно. Могут быть от мелких (дневных) до архивов.

    Вот такая вот задача. На мой взгляд - практичная. И есть где позаниматся оптимизацией. Дисковая
    оптимизация. Индексные структуры. И размышления на тему как вообще в одном тексте искать
    другой текст.

    UPD.
    Ответ написан
    Комментировать
  • С чего начать изучать математику?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Изучить всю математику наверное невозможно. Имеется в виду высшую.
    Если говорить о road-map - то он есть у ВУЗ-ов в контексте специальности. Физ-мат. Мех-мат.
    Вот поступайте в ВУЗ и вам там накидают роадмапов. Мало не покажется.

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