• Как правильно использовать гит, если нужны данные из другой ветки?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Гит всегда разрешает параллельную разработку. Никто не заблокирован никогда.
    Другой вопрос, если ты просто сделал бранч из branchOne, то ты сам как-бы принял риски
    того что этот бранч еще может изменится.

    И в целом это вопрос не про гит а про организацию процессов и риски.
    Ответ написан
    Комментировать
  • Как сделать Linux более безопасным?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Без конкретного моделирования угрозы это невозможно.
    Самая безопасная ОС как правило это бесполезная и неудобная ОС. Или вообще
    отключенная от сети.

    По поводу Manjaro. С моей точки зрения бесплатые ОС - всегда хуже чем платные.
    Бесплатность в данном случае можно рассматривать как площадку для бета-тестинга.
    Где лично вы, пользователь это и есть бета-тестер. Не удивляйтесь если вам будут
    прилетать сырые обновления а RedHat Enterprise - будут более зрелые и проверенные.
    Поэтому имеет смысл потратить денег на лицензию.
    Ответ написан
    6 комментариев
  • Как распознать на изображении два креста?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Преобразование Хафа ( https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D... )
    позволяет находить на картинках длинные прямые линии. В виде уравнения прямой.
    Тоесть точка например и угол.

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

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

    Были такие инструменты как SoftIce, IDA Pro. Они помогали профессионалам в дизассемблере
    бинарей. Можешь попробовать но сразу скажу что это не задача на 5 минут. И в этой области
    практически нет кухонных советов. Очень многие вещи не документированы и их надо
    понимать в суперпозиции с опытом например использования Ассемблера и знания архитектуры CPU.
    Короче это очень долгая и самостоятельная активность. И реально очень мало людей смогут
    тебе помогать в процессе.

    Хотя возможно твоя задача решается проще. Если сам создатель Paint Tool Sai заложил туда
    такую возможность - то следует ей сначала воспользоваться. Это будет быстрее и без
    лишнего оверхеда.
    Ответ написан
    Комментировать
  • Почему эта программа вычисляет факториал больших чисел неправильно?

    mayton2019
    @mayton2019
    Bigdata Engineer
    По поводу факториала 1000 и более толстых факториалов.
    Есть формула Стирлинга. Она позволяет приблизительно прикинуть
    число в вещественной форме.

    Тебе это надо чтобы ответить на вопрос, а вообще принципиально возможно ли посчитать это
    число и положить его в память.
    Например для 1000 последние члены этого ряда в умножении будут
    добавлять по 3 десятичных разряда.

    .......998 * 998 * 999 =

    Должно быть порядка 2500 знаков.

    По поводу AVX и прочее. Один регистр AVX будет брать 512 бит. В перерасчете на десятичную
    систему - можно делить грубо на 3 и это будет 170 десятичных цифр. Тоесть надо много
    таких регистров.

    По поводу этого кода.

    unsigned long long result = factorial[j] * i + carry;
                factorial[j] = result % BASE;
                carry = result / BASE;


    Я не понимаю что здесь происходит. Зачем ты переводишь в систему счисления с основнием 1000000000

    Двоичная система нормально работает. Используй ее возможности. А это - какой-то рудимент.


    Я просто не программист, это у меня задание такое.
    Сторонние библиотеки по условиям нельзя.

    Про SIMD слышу впервые.

    Это вообще приводит в изумление. По хорошему, мультипоточка и параллелизм это очень
    сложная тема. Очень синьорная и в ней много всяких квантовых эффектов. И чтобы ей
    просто заниматься нужно иметь хотябы 1-2 года опыта. Сомнительно чтобы новичек
    вообще что то написал (и отладил под нагрузкой) работающее. Или разве что тебе
    ChatGPT что-то там написал и ты просто случайно где-то проскочил. Повезло наверное.
    Ответ написан
    Комментировать
  • Алгоритм маршрута перевозчика?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это - задача коммивояжера. Но с дополнениями. В классической постановке например
    коммивояжер должен объехать все 50 штатов и при этом его путь по дорогам должен быть минимален.

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

    Плюс есть еще гараж А и Б но для нас это не важно. Просто все генерируемые маршруты будут А .... Б. По шаблону.

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

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Провайдеру в общем и целом плевать на пользователей. Что они делают и куда ходят.

    Примерно как и водителю автобуса плевать куда едут пассажиры. Лишь бы платили деньги.

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

    Если автор серьезно так озабочен скрытностью своих действий то никакой провайдер
    ему не товарищ. Надо изучать другие способы коммуникации. Личная встреча там.
    Или через надежного человечка. Вобщем в лучших традициях 20-го века.
    Ответ написан
    Комментировать
  • Проблемы с загрузкой файлов через S3 API на Backblaze B2 (Laravel, Timeweb хостинг). Большие файлы прерываются во время загрузки, кто сталкивался?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Лет 5 назад использовал.

    Не знаю что такое Backblaze B2. Но в Amazon S3 реализации, любая загрузка
    длинного файла шла через массив байт который передавался единоразово.
    Почему так странно сделано - непонятно. Почему не было streamable-API - ХЗ.

    Но если вы допустим захотите загрузить файл в 1Г то сервис у себя должен аллоцировать
    буфер такого-же размера. Возможно у сервера просто не хватает памяти для этого буфера.
    Ответ написан
    2 комментария
  • Python не выходит из цикла while, что делать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Мне кажется я понимаю в чем проблема автора. Socket - это не файл.
    Это просто стриминговый протокол по которому можно ждать данных
    бесконечно. Потому что никакого маркера конца нету.

    Тут нужно договориться что либо сервер закрывает соединение после отдачи файла.
    Либо клиент сам отваливается когда детектирует либо принятие числа байтов
    либо специальный байт маркер EOT (как договоритесь).
    Ответ написан
    Комментировать
  • Как выкачать все gif с сайта?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Попробуйте так.
    wget -r -l1 -nd -A jpg,jpeg,png,gif https://example.com

    Это работало для классических сайтов (.html / WEB 1.0) где контент был статичным.

    К сожалению современный веб контент это вообще ни разу не сайт. Это динамический
    документ который генерируется JS приложением прямо в браузере. И чтобы полноценно
    создать такой контент вам нужен браузер или шука похожая на Selenium. Иммитатор браузера.
    Это требует процесса разработки. Тоесть нужен программист.

    Утилиты наподобие wget, curl, httrack работают только со статическим html и не могут гарантировать
    что картинки будут скачиваться всегда.

    Короче - это опция. Может сработать и может нет.
    Ответ написан
    Комментировать
  • Что именно дают миллиарды транзисторов в процессоре для работы программы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Автор пишет

    Ну и пример: вот есть у меня программа, которая делает простой инкремент числа, допустим. По сути это равносильно тому, что в некий регистр запихали значение и сделали инкремент в цикле, а ля
    mov ax, 0
    inc ax.
    Будет ли данная программа получать какой-то выигрыш от увеличения количества транзисторов на кристалле при равной тактовой частоте процессора и если да, то как?


    В данном конкретном случае никаих миллиардов транзисторов не нужно. Задача инкремента
    действительно решается на десятках лампочек и реле или если хотите транзисторов.

    Но технологически, число транзисторов это метрика которая грубо показывает сложность
    устройства на кристалле. И ядерность. Технологически, компании производящие железо заинтересованы
    делать кристалл меньше и число транзисторов больше. Это показывает их техно-превосходство.
    Почему кристал меньше - понятно? Иначе он был-бы размером с чемодан или шкаф например.
    Что уже десктопом не может быть. И энергопотреблял бы как хорошая электроплитка.

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

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    1) Можешь смело брать sha256/512. Они уже имеют аппаратную поддержку в процессорах и должны быть быстрее чем MD5. Проверь этот факт для твоего API.

    2) По поводу борьбы с коллизиями. Нужно посчитать цену коллизии. Тоесть если она все таки
    возникает - как это повлияет на ваш бизнес
    . И как вы будете выходить из ситуации.

    Вообще я думаю что все будет в порядке. 350 млрд. Номерная емкость SHA256 - это 1.157920892373162E77
    и доля ключей составляет 3.0226589942830556E-66.

    Это буквально 0 процентов. Ноль целых и потом 60 нулей после запятой.
    Ответ написан
    Комментировать
  • Почему долго стартует сервер на Gigabyte MZ73-LM0 ( 4 минуты )?

    mayton2019
    @mayton2019
    Bigdata Engineer
    4 минуты это нормально. Это как машину в гараже зимой завести. Тебе-же не каждые 5 минут
    заводить надо? Завел и оно год работает.

    По поводу SVGA и прочего. Да. Для серверов это тоже нормально. Ты-же собрался в нем
    считать математику, а не в игры играть. Да и вообще для удаленного доступа тебе видяшка не к чему.
    Ответ написан
    Комментировать
  • Как проверить 500 000 файлов word,exel,pdf ,txt что они не битые?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я-бы поделил файлы word,exel,pdf ,txt на группы.

    1) Aрхивы docx, xlsx. Как выше заметил один джентльмен их можно проверить любой
    утилитой которая умеет читать zip и делать zip -t (test) с выводом статуса в errorlevel.
    Автоматизировать можно либо bash либо python скриптом.

    Если архив целый (контрольные суммы совпали) то и документ почти 100% не поврежден.

    2) Офисные документы старого формата (doc/xls). Здесь я-бы парсил их через apache POI
    (это java библиотека). Это разработка. Но простая. На 1 story point. Я думаю
    любой первокурсник напишет.

    3) Adobe документы. Масса вариантов. Есть автоматизация с помощью bash/python
    и консольными тулзами. Я перечислю тулзы которые есть под линукс и которые читают
    pdf.

    - pdfimages
    - pdfextract
    - pdftoppm

    Напомню что почти все они должны в случае неуспеха генерировать статус код не нулевой.
    Это будет критерий проверки.

    4) Прочие текстовые документы. Неструктурированные. Я тут честно не знаю как их проверять.
    Но допустим если они содержат текст в кодировке win-1251 то любой криптохакер
    с cryptohack вам быстро напишет скриптик
    для проверки что гистограмма или биграмма
    соотвествует примерно тексту и национальным признакам. Если файл будет в нулях
    или в рандомном шуме то какой-то критерий не сработает. Здесь надо подумать
    и просто глазами посмотреть на эти документы. Возможно большая часть из них
    это бланки - и тогда надо чекать наличие просто каких-то шаблонов.
    Ответ написан
    2 комментария
  • Как заблокировать некоторые комбинации клавиш на Windows?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В борьбе в вандало-устойчивостью любое устройство можно превратить в кирпич.

    Пускай учатся работать аккуратно. Это более ценно чем "кирпичить" умные устройства.
    Ответ написан
    Комментировать
  • Как работать с большими json файлами, которые получаются по запросу в Андроид приложении?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    В Андроиде насколько я помню есть API для работы с SQLite БД. Это в тех случаях
    когда тебе надо экономить память но и работать с данными тоже надо.
    Можно попробовать 1 раз скачать список станций и считая его достаточно
    стационарным - положить в БД
    и потом делать с ним joins из других запросов.
    Ответ написан
    Комментировать
  • Как устроиться в начинающую компанию?

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

    Начинающая компания (стартап) - это шайка друзей у которых есть тесные горизонтальные
    связи
    чтобы работать вместе. Иногда дружеские. Иногда родственные. Кум. Брат. Любовница.
    И по большему счету вам будут не сильно рады. Потому что им придется делить общий пирог с вами.
    Подумайте зачем вы вообще нужны в такой шайке?
    Ответ написан
    2 комментария
  • Что делать когда при конвертации из utf8 в string я получаю (string)\0\0\0 и так далее?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Смотри. Символ с кодом 0x0000 не является запрещенным с точки зрения Utf8.

    Но его использование c/c++ языках и в системных коллах может создать проблемы.
    Поэтому в рамках хабра и в такой постановке вопроса мы скорее всего не знаем
    что с этим делать.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Коробочное решение шифрования - это nginx

    https://nginx.org/en/
    Ответ написан
    Комментировать