Задать вопрос
  • Почему компьютеры с троичной системой наиболее быстрые?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Троичное кодирование активно использовалось в системах связи. Это код ЧПИ (чередование полярности импульсов). Но в современных сетях типа Ethernet используется манчестерское кодирование (двоичный код) которое предотрващает дрейф постоянного напряжения и поэтому такая хитрая программная реализация позволила не использовать ЧПИ. Еще есть целая куча программных и аппаратных схем оптимизации каналов связи но я уже это все и забыл.

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

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Как сделать поиск максимально производительным? Что использовать? Асинхронность? Многопоточность?

    Оптимизация запроса к БД начинается с того что вы выделяете сет активных запросов которые важны для вас.
    Для каждого из них строите план исполнения запросов
    EXPLAIN [ ANALYZE ] [ VERBOSE ] ......
    Потом с этим планом приходите к специалисту (или сюда) и спрашиваете что надо улучшить в
    тексте запроса или в таблице или в индексе чтоб было быстрее.

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

    Насчет асинхронных операций - не знаю. Если мы работаем через пул коннектов - то надо обсудить
    построение абстракции асинхронности над абстракцией пула. Это тема отдельного топика.
    Ответ написан
    Комментировать
  • Выгодно ли заморачиваться с своим хостингом или дешевле купить виртуальный?

    mayton2019
    @mayton2019
    Bigdata Engineer
    На малинке можно поднять домашнюю страницу Васи Пупкина. Сложно назвать это хостингом в современном
    понимании этого слова. Хостинг - это и вычисления. И базы данных.
    Ответ написан
  • Как лучше\проще реализовать работу с серийными номерами\лицензиями чтобы не особо пиратили?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно изготовить такой USB-брелок который содержит важный функционал. Без которого приложение - бесполезно.
    Типа аппаратное решение задачи в железе. Тогда получается что вы продаете софт + аппаратуру установка которой очень легкая. Но при этом пиратить и копировать такое решение невозможно.
    Ответ написан
    Комментировать
  • Можно ли сегодня использовать Rust вместо C++, в разработке серьёзных низкоуровневых программ?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Какое состояние у языка Rust на текущий момент?


    Я несколько лет наблюдаю за долей Rust исходников в браузере Mozilla.
    По состоянию на 2022 год там была такая пропорция С/C++/Rust 0.19 : 0.39 : 0.42
    (При этом я игнорировал прочие типы файлов). И эта доля Rust кода практически
    не меняется несколько лет. Тоесть видимо те цели которые ставили Mozilla/Microsoft
    были достигнуты. Они переписали что хотели и успокоились.

    Любитель пингвинов и нелюбитель NVidia тоже обещал затащить Rust в исходники
    linux-ядра, но я не собирал сведенья по линуксу и не знаю что там сейчас. Кто
    знает? Поделитесь.

    Можно ли уже полностью отказаться от C++ в пользу Rust, в низкоуровневых вещах

    Скорее всего нет. Потому что есть потребность в безшовной интеграции с вызовами kernell и библиотек.
    В Rust скорее всего потребуется сильная адаптация кода чтобы он был пригодным для ABI например.

    Понятно, что нет полноценной IDE

    Забавное наблюдение. Я слушаю блоги хаскелистов. Душкина. Брагилевского. Вершилова.
    И практически все они хором поют одну и ту-же вещь.. дескыть им IDE не нужна а им
    достаточно vim или блокнот. Я с ними не до конца согласен. Но что-то есть в этом. Получается
    что математически совершенному языку незачем иметь обязательноую IDE. И вообще
    с каких пор мы язык должны рассматривать в комплекте с IDE? Неужели язык без
    этого инструмента неполноценен? Можем ли мы рассматривать "зрелость" языка просто
    как языка?
    Ответ написан
    83 комментария
  • Как удалить предложение в столбце с типом TEXT?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Могу дать просто несколько советов как упростить работу с текстом.
    1) У тебя слишком много всего наворочено в одной строке. Разбей запрос на части.
    Например сначала сделай просто SELECT того что ты хочешь удалять. Почему это важно?
    Если ты ошибешся и сделаешь слишком либеральный квантор - то удалишь те строки которые
    удалять было не надо. И назад дороги нет.

    SELECT * 
    FROM 
     `sonnik` 
    WHERE 
     SUBSTRING_INDEX(SUBSTRING_INDEX(`text`, '\n', find_in_set('женщине или мужчине', `text`)), '\n', -1) 
              LIKE 'Сонник %' 
     AND text LIKE '%Сонник %';

    И просматривай глазами кандидатов на удаление.

    2) Вот это выражение 'женщине или мужчине' слишком строгое. В реальном тексте может
    быть многообразие склонений падежей и вообще слова могут быть с переносом через
    дефис на новую строку. Поэтому надо искать лемму или основу слова типа "жен".... "муж"

    И лучше использовать предикат ILIKE для регистро-независимого сравнения.

    3) И как всегда я выражаю своё ворчание по поводу этого тега SQL. Что такое SQL? MySQL? Postgres? Там возможности текстового поиска разные. Есть всякие текстовые индексы и прочие функции FTS.
    Ответ написан
  • Что за хеш такой?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Что указать в параметре -m - на это отвечает хелп.

    $ hashcat --help
    hashcat - advanced password recovery
    
    Usage: hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]...
    
    - [ Options ] -
    
     Options Short / Long           | Type | Description                                          | Example
    ================================+======+======================================================+=======================
     -m, --hash-type                | Num  | Hash-type, see references below                      | -m 1000
    Ответ написан
    Комментировать
  • Можно ли в c++ реализовать new() с c#?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Насколько я помню new - это зарезервированное ключевое слово языка. Поэтому использовать
    его в роли функции вряд-ли получится.

    Да и зачем это автору? Создание новых конструкций синтаксиса - это путь в Lisp, Nemerle, Forth.
    Языку С++ это не надо. А если автору так сильно хочется - то наверное настало время сменить язык.
    Ответ написан
  • В каком виде, хранятся записи в БД, подобные постам в соц.сетях?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Современная соц-сеть - это уникальная софтварная архитектура которая строилась индивидуально.
    Вряд-ли вы сможете ее просто повторить имея mysql/php/nginx.

    VK/Facebook имеют свои технологии кеширования контента в основном построенные на материализации
    страниц. Базы данных обычно - не-реляционные. Модель проектируется так чтобы не было joins между
    таблицами. И активно используются очереди сообщений. Вот в соц-сети Linked-In это было настолько
    важно что даже был создан отдельный программный продукт который сейчас называют Apache Kafka.

    Активно используются горизонтальное масштабирование. Сеть наращивает мощности просто путем подключения
    новых адресов в dns с балансом по географии, и запуска новых web-nodes и новых дисковых реплик хранилищ для картинок и текстов постов.

    Поэтому вопрос в каком виде хранятся записи - тут не важен. Тут важно чтоб кеши обновились синхронно с событием поста например.
    Ответ написан
    7 комментариев
  • Какие есть способы верификации пользователей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно идет верификация номера телефона. Тоесть если чел обладает двумя смартфонами с 2 сим-картами то теоретически он может создать до 4 аккаунтов.

    Самих пользоватлей хрен проверишь. Для этого нужна биометрия. В Windows по крайней мере в настройках уже закладываются параметры сенсоров отпечатков и фото лица но пока эти настройки в моем корпоративном ноуте к примеру заблочены.
    Ответ написан
    Комментировать
  • Какую нейронную сеть выбрать для прогноза товаров на складе?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Хотелось бы к этому всему включить в модель возможные корреляции товаров ,чтобы на основе изменений в продажах первого товара предсказывать второй .

    Ты уверен что твоя гипотеза о корреляциях верная?

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

    А какой метод машинного обучения - это уже будет второй вопрос.
    Ответ написан
  • Можно ли произвести установку пароля на запись DVD дисков?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В наше время что самое дорогое?

    Участие специалиста. Сисадмина. Девопса. Разработчика. Если смотреть с практической стороны
    то дешевле просто демонтировать DVD привод и вопрос будет закрыт. Все остальные решения
    это какой-то техно-дрочь или фетишизм.
    Ответ написан
    Комментировать
  • Как разобрать mp3 файл?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну автор блин затянул сюда разных вопросов. Тут есть и музыка и майнкрафт.
    Очень правильно предложили выше что такую задачу невозможно сделать сразу.
    Ее придется бить на части чтобы хоть как-то договориться о корректности выхода.

    Здесь явно две задачи. Первое - это перевод mp3 в нотные блоки (кстати что это?).
    И второе - это собственно интеграция этих блоков с приложением майнкрафт.

    И лучше этот вопрос закрыть и поднять новые два в qna.
    Ответ написан
  • Какую структуру данных выбрать для описания конфигуратора изделия?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Непонятно зачем автор протегал это АЛГОРИТМАМИ. Тут вобщем-то имеет место обычная работа с формочкой.
    Дизайнеры форм лабают это и не зная ваших умных абстракций. Просто пишут там хендлер на каждую радио-кнопку или на чек-боксик и в зависимости от действий - скрывают некоторые филды или подсвечивают.

    Но если вам интересна теория, то такое поведение можно описать небольшим конечным автоматом. Или
    в данной задаче несколькими конечными автоматами которые взаимосвязаны по реакции на переходы.

    Гуглить можно по FSM (Finite State Machine) и библиотек по сям и питонам будет много.

    Вообще данная задача еще не набрала критическую массу знаний чтоб кодить ее в автоматах.
    Время потраченное на библиотеки и на привязку их к формам может быть слишком большим
    и эффекта не будет. Будет разочарование.
    Ответ написан
    3 комментария
  • Способ получения ФИО через номер телефона или соц сети?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Поскольку это сбор сведений на людей то легального способа скорее всего нет. А если он появляется
    его быстро закрывают. Государство и правозащитники здесь вобщем-то едины. Такие базы не должны
    быть открытыми никогда.

    Базы для "пробива" предположительно лежат во всяких Даркнетах но я ХЗ... не видел никогда.
    Ответ написан
    Комментировать
  • Как хранить множество слов в БД?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут сложно ответить однозначно. Тут есть какое-то дублирование технологий. С одной стороны - есть некий
    умный софт (автор пишет nlp-средство) который сделал разбиение писем на слова. Зачем именно nlp? В чем там была глубокая идея? Разве нельзя это-же разбиение сделать с помощью
    - Postgres
    - MySQL
    - SQlite
    как предлагали выше ?

    Так было-бы проще. А теперь мы все думаем - зачем так сложно?
    Ответ написан
    Комментировать
  • Как эффективно использовать 'сервисы' для обращения к БД?

    mayton2019
    @mayton2019
    Bigdata Engineer
    По поводу смыслов. Обычно с БД работают сущностями (entities). Я не специалист в Node и я не знаю
    как у вас принято. Кажется в новых ecma-спецификациях уже ввели понятие класса.

    В данном коде идет проверка на то что email существует. Но полезный эффект - слабый.
    Я-бы сразу возвращал сущность пользователя. Чтоб не бегать потом в базу еще
    раз когда надо поискать имя или дату регистрации. Ну идея такая что
    если вы уж пошли в базу (это сетевой round-trip) то постарайтесь
    за этот трип собрать максимум информации.

    Вот это более рационально
    export const findUserEntityByEmail = async (
      email: string
    ): Promise<User> => {
      try {
        const users = await db
          .query('SELECT * FROM accounts WHERE email = $1', [email])


    Тоже самое относится к выборкам множества строк по множеству ключей.
    Лучше сделать 1 callback который вернет коллекцию чем для коллекции
    ключей дергать один несчастный метод который по штучке что-то достает.

    Еще важне - join. Если соединяете сущности - то соединяйте сразу в БД
    без попыток соединять в приложении. Это кстати еще бонус к компетенции
    в части ACID.

    Тоесть идеальный вариант работы с БД - запросить пакетом всю информацию
    что может потербоваться на ближайшие несколько секунд. Это рациональнее
    чем потом что-то подтягивать.
    Ответ написан
    6 комментариев
  • Как реализовать классификатор на датасете рукописных цифр?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Эффективность идеи зависит тоже от того в каком виде представлены данные. Если рукописные цифры - это квадратные картинки (как в наборе MNIST) то тогда решается просто. Считай расстояние Хемминга для всех картинок ко всем. Там где расстояние будет минимально - найден кластер картинок. Или класс символов похожих на букву. Далее можешь искать среднее. Завести вещественные значения для кластера. (Тут кстати тебя надо спросить у тебя 1-битные изображения или GrayScale?)

    Если цифры еще не размечены на атласе картинок и тебе предстоит еще и найти их место-положение - то это
    задача уровня FineReader/Tesseract. Это посложнее будет и идей и методов там сразу еще +10 штук.

    Поэтому опиши как выглядят исходные данные. Понял да? Идей целый вагон. Только не заставляй распылятся на пустяки.
    Ответ написан
  • Почему space 32 в ascii называется printable?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Символы с кодами от 0 до 31 куда входит ТАБ являются управляющими символами (comma control / control symbold). И их задача - вызывать разные эффекты при выводе строки на экран. Звук. Backspace. Движения
    курсора в разные стороны. Поэтому данный диапазон символов не рекомендуется к оформлению текста. Потому что при печати текста на принтер например - эффект непредсказуем. Многие из них были частью сетевых протоколов и сейчас уже не используются.

    Символ табуляции в середине 20-го века использовали для оформления исходников на ассемблере
    ради экономии места. Это было удобно. Когда вся память ПК мерялась десятком килобайт - надо было
    экономить даже на тексте программы. И это реально работало. В современной разработке вообще
    нет необходимости использовать TAB (0x09). Ну разве что в Makefile он по старинке еще используется.
    Но мейк делали такие длинно-бородые колдуны что там нет диалога о модернизации. Часть колдунов
    уже померли. А оставшимся пофиг.

    Еще иногда символ TAB я встречаю в экспортах баз данных в формате TSV (Tab-Separated) но
    честно говоря на экране такой дамп выглядит ужасно. Все равно по 1 линии выравнивание не
    получается. Поэтому втопку такое.

    Сегодня в современнных IDE символ табуляции автоматически заменяется на серию пробелов. Поэтому
    смысла спорить о ТАБ нет никакого. Потому что и символа то уже нет. Есть просто клавиша которая
    имеет семантику добивания пробелов.

    UPD: Для исходников типа Python/Scala TAB (0x09) может создавать проблемы. Особенно когда идет
    микс отступов например одна строка TAB а другая spaces. Это сложные невидимые глазами
    проблемы. Только компиллятор увидит и ругнётся. Поэтому - выпиливайте ТАБы как сорняк.
    Чем скорее - тем лучше.
    Ответ написан
    1 комментарий
  • Как решить ошибку при установке Ubuntu 18.04?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Текущая LTS версия 22.0. Зачем автор ставит морально устаревшую?
    Ответ написан