Задать вопрос
  • Как хранить номера авто казахстанского учета в базе данных чтобы максимально быстро найти номер в БД?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тебе ничего не надо придумывать. Все уже придумано и база умеет индексировать.

    create table autonumbers(autonumber varchar(30), region varchar(30));
    
    create index idx1 on autonumbers(autonumber);
    create index idx2 on autonumbers(region );


    Запросы:
    поиск номеров в регионе (индексированный)
    select .... where region = 'Астана';
    
    точный поиск номера по полному совпадению
    
    select .... where autonumber= '111AAA11';


    все что я знаю это поиск чисел быстрее поиска строк


    Это слабое утверждение для баз данных. БД это на 80% IO bounded приложение
    и его нагрузка будет зависеть от дисковой подсистемы и от удачного расположения
    искомых строк в блоках БД.

    Мой личный опыт эксплуатации БД Oracle например показывает что практически
    нет разницы между varchar / number. Хотя многие DBMS (Postgresql) поддерживают
    примитивные типы данных, но когда строка (datarow) длинная - то практически
    безразлично будет ли у тебя integer, biginteger, decimal.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    неприлично долго думаю над тем что нужно вынеси в отдельный пакет, а что достаточно вынести в отдельную структуру


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

    Поэтому просто откажись от декомпозиции. Пиши сначала прототип в олимпиадном стиле. Тоесть функция
    main - и погнал писать как чукча. Что вижу то и пою.

    И после того как ты напишешь 1000 строк например к тебе придет понимание как следует декомпозировать.
    И к этому моменту у тебя будут ДОКАЗАТЕЛЬСТВА выгодности твоего дизана. И теоретические споры можно
    уже исключить.
    Ответ написан
    1 комментарий
  • Как прервать поток c#?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Раньше и всегда я делал, кучу говнокода, вставлял проверки на статус токена или булевой переменной.

    Да. Ты правильно делал. Это единственный дешевый пособ остановить поток не разрушив приложение.
    Единственное но. Если это численный метод и он вычисляет
    int[a][b][c][d]=Math.Pow(a*b*c*d,Math.Sqrt(Math.Sin(Math.Cos(Math.Sqrt(a-b/a)))))))*a+b;

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

    Практика показывает что частота 10-50 Гц является оптимальной для работы с пользователем.
    И нет смысла делать чаще. Ты все равно быстрее на кнопку не нажмешь.
    Ответ написан
    Комментировать
  • Полезность моделей памяти которые отличный от linear?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Любая оптимизация начинается от проблемы. Из проблем памяти я могу отметить технологический предел
    на пропускную способность. (так называемая Стена Фон-Неймана). Она частично решается
    кешамя для горячих участков кода но никак не решается в обобщенной постановке.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть утилита torrent-cli. Кажется у нее были опции для просмотра.
    Еще в гитхабе есть проекты похожие по смыслу
    https://github.com/casey/intermodal
    https://github.com/elektito/ih2torrent
    Они позволяют видеть каталог файлов.

    Непонятно зачем ты пишешь про tbpw. Если ты хочешь видеть контент самих файлов - у тебя только
    один вариант - качать торрент.
    Ответ написан
    Комментировать
  • Может ли язык Си работать на условной stack-based машине?

    mayton2019
    @mayton2019
    Bigdata Engineer
    на условной stack-based машине


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

    Является ли Форт в данном вопросе stack-based машиной - я не знаю. Он - скорее всего шире чем просто
    стек машина. По крайней мере есть ссылки на память и стек возвратов.

    Для прояснения - желательно чтобы автор привел свое понимание термина. Потому что есть еще
    push down automata, это тоже термин и его надо как-то сопоставить с тем что пишет автор
    иначе у нас будет оооочень много стековых машин с разными свойствами и мы запутаемся.
    Ответ написан
  • Как восстановить данные с дампа f2fs?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Посмотри утилиты scalpel, foremost. Они восстанавливают файлы с какой-то вероятностью основываясь на сигнатуре известных файлов а не разметке ФС. Эта техника называется data carving.

    Успех этих утилит будет зависеть от известности файловых форматов. Я думаю что mp3, jpg будут легко восстановлены. А какие-то неизвестные проприетарные форматы будут поскипаны.
    Ответ написан
    5 комментариев
  • Как математически расчитать ресурсы сервера?

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

    Это - как численные методы. Или как обучение простой нейросетки.
    Ответ написан
    Комментировать
  • Как замедлить размагничивание hdd?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я-бы не беспокоился по поводу размагничивания. Храни свои бэкапы в съемном диске в сейфе в прохладной
    температуре. И пролежит лет 10. Тут главное чтоб контроллер не умер еще раньше. Я сомневаюсь что
    производитель даст такую гарантию на него.

    А если ты озабочен гарантиями. Почитай про стриммеры. На их кассеты производитель давал гарантии
    и в 20 лет и более.
    Ответ написан
  • Как возможно автоматизировать импорт данных из CSV в XML файл?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Задача больше похожа не на импорт а на конвертирование.
    Коробочных утилит нету, потому что XML - это сложный документ,
    который обычно имеет схему. И ты должен предоставить маппинг
    между CSV полем и value тегов или value атрибутов.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Так-же как и в индексировании документов. Строится некое векторное представление документа.
    И потом похожие векторы - указывают на одинаковые (99.9%) документы. Методик векторизации
    много. В основном это токенизация слов и свертывание их к хешу.
    Ответ написан
  • Возможно ли объединение воксельной и полигональной графики в одной игре?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В игре Outcast, было использование и вокселов и полигонов. Ладншафт рисовался вокселами,
    а персонажи и вода и все остальное - полигонами.

    Да. Разрушаемость - это главное преимущество вокселов. Но это скорее оптимизация хранения
    и расчетов. С визуальной точки зрения можно сделать полигоны и вокселы неотличимыми.
    Яркий пример - Minecraft. Его модель мира основана на вокселах, но видим мы просто полигоны.
    Ответ написан
    Комментировать
  • Как создать объектную модель содержимого файла?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ты можешь работать на JavaScript/Node языках. С их точки зрения JSON (JavaScript Object Notation) это и есть
    объект и никаких других преобразований уже делать не надо.
    Ответ написан
  • Что стоит учить с или c++ или c#?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Добрый вечер! Столкнулся с такой проблемой: Мне очень нравятся семейство языков Си, у меня есть выбор учить C++ либо C#, хочу разрабатывать ПО для ПК. Подумал начать с C++ и говорят что сначала поучить чистый СИ, а после переходить на C++, так что же из этого правильно? Надо ли учить Си? Или может лучше начать с C#, а дальше уже выучу C++?

    Тема сравнения С/C++/C# в публичном пространстве - опасная тема. Она обычно заканчивается
    топиком в 1000 страниц и великой войной всех против всех. Я видел много таких войн.
    Они ничем не заканчиваются. Специалисты остаются при своих мнениях. А зритель просто развлекается.

    Сам по себе выбор языка ставят только новички. Професиионалу безразличен язык (почти). Его может больше интересует отрасль, стек технологий, стандарты и протоколы. С моей точки зрения сегодня
    таким стандартом может быть выбор облака (AWS, Azure, GCP).

    Чистый СИ учить смысла нет. Учи сразу С++. Но даже его создатель Бьорн Страуструп считает что С++ это
    сложный язык и он настаивает чтобы новички не брались учить все фичи сразу. Исключение по языку
    СИ может быть в том случае, если ты собрался быть инженером по разработке микро-контроллеров
    и у тебя скорее всего будет только СИ как основной (на 80-90%) инструмент взаимодействия с таким железом. Выйти на мидловый или синьорный уровень в С++ очень тяжело. Тяжелее чем в других языках.
    Поэтому будь готов терпеть. Вот когда виски станут седые - тогда и будешь господин-синьор.

    C# - это очень сильно корпоративный стандарт от Microsoft. Никакой связи с С++ он не имеет. Он конечно
    внешне похож но это сходство обманчиво. Да изучать его тоже можно. Он учится легко. Существуют книги
    вроде ".... C# за 14 дней". Разработка бизнес-приложений на шарпах идет гораздо быстрее чем на С++
    например. И завалить систему в синий экран в этом языке гораздо труднее. В нем реализованы методы
    защиты памяти и нельзя грязно трюкачить с указателями как это любят в С или С++. Производительность
    шарпов в численных методах будет слабее чем в С++ но обычно бизнес не ставит таких задач и чаще
    надо будет писать веб-хендлеры или хендлеры MQ-систем. Кач уровней синьорити идет быстрее в шарпах.
    Ответ написан
    2 комментария
  • Почему SVG с вложенным PNG внутри не отображается в Safari?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно png преобразвать в векторную картинку. И будет такая нативная интеграция. SVG внутри SVG.
    Ответ написан
  • Как сделать так чтобы бот понимал какой сегодня день недели?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Почитай про structural pattern matching в Python.

    И почитай про шаблон RCWP (Replace Condition With Polymorphism)
    Ответ написан
    Комментировать
  • Как построить векторное поле из массива случайных точек?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я плохо знаю вышку. Но я-бы смотрел на эту задачу с точки зрения инструментов инженерной графики.
    А инструменты там такие. Полигоны. Вокселы. И particles (частицы).

    Для вокселов проще всего наверное. У тебя есть напреженность поля как функция F(x,y,z). Вот и рисуй
    воксел когда напряженность выше уровня и не рисуй иначе. Будет такая картинка вроде Minecraft.

    Для двумерного случая - тоже самое. Рисуй квадратик.
    Ответ написан
    Комментировать
  • Полезные книги/ресурсы по архитектуре компьютера?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вопрос - просто замечательный. Если говорить простым языком - Хочу Все знать!

    Мне кажется что тебе лучше пойти от практики. Тоесть начать делать игру под Windows/Android
    на том языке который ты знаешь и уже потом пойти "от проблемы". Например, ты пишешь
    как оптимизировать. Оптимизиация графики или основных алгоритмов игры или оптимизация I/O
    это такие себе три разные задачи по каждой из которых можно книгу написать.

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

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

    Можешь делать запрос периодически (через 15 минут) и определять менялась таблица или нет по твоим
    известным тебе метрикам.

    Использовать здесь Python или Java или С++ - без разницы. Все они играют по правилам сетевого протокола БД.

    Возможно существуют технологии типа MQ/CDC которые нативно реализованы в конкретной БД , но это очень узкая, и специфичная тема, и ее точно не стоит рассматривать в тегах БАЗЫ ДАННЫХ.
    Ответ написан
    Комментировать